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/generate.pl | |
| 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/generate.pl')
| -rw-r--r-- | tests/ii/strings/generate.pl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/ii/strings/generate.pl b/tests/ii/strings/generate.pl new file mode 100644 index 0000000..f3ac098 --- /dev/null +++ b/tests/ii/strings/generate.pl @@ -0,0 +1,23 @@ +use strict; +use warnings; +use FindBin; +use lib "$FindBin::Bin/.."; +use Random; +my ($seed, $count) = @ARGV; +my $rng = Random->new($seed, "strings"); +my @edges = ( + '1 placeholder 1 0', + '0 A 1 1', + '0 Ab09 4 1', + '0 Ab09 1 4', + '0 Ab09 2 0', +); +$rng->emit($count, \@edges, sub { +my $size = $rng->integer(0,24); +return '1 placeholder 1 0' if $size == 0; +my @alphabet = split //, 'ABCXYZabcxyz019@_-'; +my $text = join '', map { $alphabet[$rng->integer(0,$#alphabet)] } 1 .. $size; +my $start = $rng->integer(1,$size); +my $width = $rng->integer(0,$size-$start+1); +return "0 $text $start $width"; +}); |
