aboutsummaryrefslogtreecommitdiff
path: root/tests/ii/overload-methods/program.cps
diff options
context:
space:
mode:
author_ov4 <ov4@ov4.org>2026-10-17 10:39:45 +0000
committer_ov4 <ov4@ov4.org>2026-10-17 10:39:45 +0000
commit4a34e970fb224be7640883f6b0dfa602157759f4 (patch)
tree3f2e0a54163b179b411e604b6362c08cb1075d3d /tests/ii/overload-methods/program.cps
parentb47c302bbffd668334f307d512b674f804f8f2fc (diff)
test(overload): add randomized differential coverage
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'tests/ii/overload-methods/program.cps')
-rw-r--r--tests/ii/overload-methods/program.cps75
1 files changed, 75 insertions, 0 deletions
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