From 4a34e970fb224be7640883f6b0dfa602157759f4 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Sat, 17 Oct 2026 10:39:45 +0000 Subject: test(overload): add randomized differential coverage Co-Authored-By: Claude Opus 5.5 --- tests/ii/overload-methods/program.cps | 75 +++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 tests/ii/overload-methods/program.cps (limited to 'tests/ii/overload-methods/program.cps') diff --git a/tests/ii/overload-methods/program.cps b/tests/ii/overload-methods/program.cps new file mode 100644 index 0000000..5594cf0 --- /dev/null +++ b/tests/ii/overload-methods/program.cps @@ -0,0 +1,75 @@ +CLASS Meter + PRIVATE Value : INTEGER + PUBLIC OVERLOAD PROCEDURE NEW() + Value <- 5 + ENDPROCEDURE + PUBLIC OVERLOAD PROCEDURE NEW(X : INTEGER) + Value <- 2 * X + 3 + ENDPROCEDURE + PUBLIC OVERLOAD PROCEDURE NEW(Text : STRING) + Value <- LENGTH(Text) + 20 + ENDPROCEDURE + PUBLIC OVERLOAD PROCEDURE NEW(X : INTEGER, Y : INTEGER) + Value <- X - Y + ENDPROCEDURE + PUBLIC OVERLOAD FUNCTION Get() RETURNS INTEGER + RETURN Value + ENDFUNCTION + PUBLIC OVERLOAD FUNCTION Get(X : INTEGER) RETURNS INTEGER + RETURN Value + 3 * X + ENDFUNCTION + PUBLIC OVERLOAD FUNCTION Get(X : REAL) RETURNS BOOLEAN + RETURN Value > X + ENDFUNCTION + PUBLIC OVERLOAD FUNCTION Get(Text : STRING) RETURNS STRING + RETURN Text & "!" + ENDFUNCTION + PUBLIC OVERLOAD PROCEDURE Set(X : INTEGER) + Value <- X + ENDPROCEDURE + PUBLIC OVERLOAD PROCEDURE Set(Text : STRING) + Value <- LENGTH(Text) + ENDPROCEDURE + PUBLIC PROCEDURE Apply(X : INTEGER) + CALL this.Set(this.Get(X)) + ENDPROCEDURE +ENDCLASS +TYPE Holder + DECLARE Item : Meter +ENDTYPE +DECLARE Count : INTEGER +DECLARE Row : INTEGER +DECLARE A : INTEGER +DECLARE B : INTEGER +DECLARE Size : INTEGER +DECLARE Text : STRING +DECLARE I : INTEGER +DECLARE Total : INTEGER +INPUT Count +FOR Row <- 1 TO Count + INPUT A + INPUT B + INPUT Size + INPUT Text + DECLARE DefaultItem : Meter + DECLARE NumberItem : Meter(A) + DECLARE TextItem : Meter(Text) + DECLARE PairItem : Meter(A, B) + DECLARE Wrapped : Holder + DECLARE Items : ARRAY[1:Size] OF Meter + DECLARE ChangedNumber : Meter(A) + DECLARE ChangedText : Meter(Text) + DECLARE Rebuilt : Meter(A, B) + DECLARE HeapItem : Meter + Total <- 0 + FOR I <- 1 TO Size + Total <- Total + Items[I].Get() + NEXT I + HeapItem <- NEW Meter(A, B) + CALL ChangedNumber.Set(Text) + CALL ChangedText.Set(A) + CALL ChangedText.Apply(B) + CALL Rebuilt.NEW(Text) + OUTPUT DefaultItem.Get(), ":", NumberItem.Get(), ":", TextItem.Get(), ":", PairItem.Get(), ":", Wrapped.Item.Get(), ":", Total, ":", NumberItem.Get(B), ":", NumberItem.Get(B / 8), ":", NumberItem.Get(Text), ":", HeapItem.Get(), ":", ChangedNumber.Get(), ":", ChangedText.Get(), ":", Rebuilt.Get() + DELETE HeapItem +NEXT Row -- cgit v1.3.1-4-g156e