diff options
| author | _ov4 <ov4@ov4.one> | 2026-10-16 20:53:55 +0800 |
|---|---|---|
| committer | _ov4 <ov4@ov4.one> | 2026-10-16 20:53:55 +0800 |
| commit | d19f9ddb866ac2415cbfe66966897a8efe8ddb63 (patch) | |
| tree | 6be1a9a6e316e776a396813f7cb22c688287b21a /tests/ii/strings/reference.cc | |
| parent | 5c00b8cd03cbfc516cce92229f3f4974d7549c24 (diff) | |
test(compiler): add seeded C++ differential tests across seven groups
Generate 10000 random records per group plus boundary inputs using a
portable SHA-256 stream. Compare native and runner output independently.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Diffstat (limited to 'tests/ii/strings/reference.cc')
| -rw-r--r-- | tests/ii/strings/reference.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/ii/strings/reference.cc b/tests/ii/strings/reference.cc new file mode 100644 index 0000000..54d6efc --- /dev/null +++ b/tests/ii/strings/reference.cc @@ -0,0 +1,20 @@ +#include <algorithm> +#include <cctype> +#include <iostream> +#include <string> +int main() { + int count; + if (!(std::cin >> count)) return 1; + for (int i = 0; i < count; ++i) { + int empty, start, width; + std::string text; + if (!(std::cin >> empty >> text >> start >> width)) return 1; + if (empty) text.clear(); + auto lower = text, upper = text; + for (auto &c : lower) c = static_cast<char>(std::tolower(static_cast<unsigned char>(c))); + for (auto &c : upper) c = static_cast<char>(std::toupper(static_cast<unsigned char>(c))); + auto mid = text.substr(static_cast<std::size_t>(start - 1), static_cast<std::size_t>(width)); + auto right = text.substr(text.size() - static_cast<std::size_t>(width)); + std::cout << text.size() << ':' << mid << ':' << right << ":TRUE:" << lower << ':' << upper << '\n'; + } +} |
