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/calls/program.cps | |
| 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/calls/program.cps')
| -rw-r--r-- | tests/ii/calls/program.cps | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/ii/calls/program.cps b/tests/ii/calls/program.cps new file mode 100644 index 0000000..9a79ad6 --- /dev/null +++ b/tests/ii/calls/program.cps @@ -0,0 +1,40 @@ +TYPE Pair + DECLARE X : INTEGER + DECLARE Y : INTEGER +ENDTYPE +TYPE PairPtr = ^Pair +PROCEDURE IgnoreCopy(P : Pair) + P.X <- 999 +ENDPROCEDURE +PROCEDURE Shift(BYREF X : INTEGER, Y : INTEGER) + X <- X + 1 + Y <- Y - 1 +ENDPROCEDURE +FUNCTION Triangle(N : INTEGER) RETURNS INTEGER + IF N = 0 THEN + RETURN 0 + ENDIF + RETURN N + Triangle(N - 1) +ENDFUNCTION +DECLARE Count : INTEGER +DECLARE Index : INTEGER +DECLARE N : INTEGER +DECLARE Value : Pair +DECLARE Saved : Pair +DECLARE P : PairPtr +INPUT Count +FOR Index <- 1 TO Count + INPUT N + DECLARE X : INTEGER + DECLARE Y : INTEGER + INPUT X + INPUT Y + Value.X <- X + Value.Y <- Y + Saved <- Value + CALL IgnoreCopy(Value) + P <- ^Value + P^.X <- P^.X + P^.Y + CALL Shift(X, Y) + OUTPUT Value.X, ":", Saved.X, ":", X, ":", Y, ":", Triangle(N) +NEXT Index |
