diff options
Diffstat (limited to 'tests/i/class-overload-methods')
| -rw-r--r-- | tests/i/class-overload-methods/case.json | 1 | ||||
| -rw-r--r-- | tests/i/class-overload-methods/expected.txt | 7 | ||||
| -rw-r--r-- | tests/i/class-overload-methods/notes.md | 7 | ||||
| -rw-r--r-- | tests/i/class-overload-methods/program.cps | 46 |
4 files changed, 61 insertions, 0 deletions
diff --git a/tests/i/class-overload-methods/case.json b/tests/i/class-overload-methods/case.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/tests/i/class-overload-methods/case.json @@ -0,0 +1 @@ +{} diff --git a/tests/i/class-overload-methods/expected.txt b/tests/i/class-overload-methods/expected.txt new file mode 100644 index 0000000..d7fa519 --- /dev/null +++ b/tests/i/class-overload-methods/expected.txt @@ -0,0 +1,7 @@ +174 +11 +9 +ok! +3 +8 +1 diff --git a/tests/i/class-overload-methods/notes.md b/tests/i/class-overload-methods/notes.md new file mode 100644 index 0000000..accde5e --- /dev/null +++ b/tests/i/class-overload-methods/notes.md @@ -0,0 +1,7 @@ +# class-overload-methods + +Human review: pending. Expected output was independently traced by AI, not captured from cpsc. + +Basis: OVERLOAD is a project extension. + +Trace: The default constructor sets 1, INTEGER sets 7, STRING length sets 4. Holder.Item and both array elements default to 1. Get(INTEGER) adds 2 to 7; Get(STRING) appends !. Set(STRING) stores length 3. Keyword NEW stores 8; explicit NEW() resets to 1. diff --git a/tests/i/class-overload-methods/program.cps b/tests/i/class-overload-methods/program.cps new file mode 100644 index 0000000..e68d416 --- /dev/null +++ b/tests/i/class-overload-methods/program.cps @@ -0,0 +1,46 @@ +CLASS Box +Value : INTEGER +PUBLIC OVERLOAD PROCEDURE NEW() +Value <- 1 +ENDPROCEDURE +PUBLIC OVERLOAD PROCEDURE NEW(x : INTEGER) +Value <- x +ENDPROCEDURE +PUBLIC OVERLOAD PROCEDURE NEW(x : STRING) +Value <- LENGTH(x) +ENDPROCEDURE +OVERLOAD FUNCTION Get() RETURNS INTEGER +RETURN Value +ENDFUNCTION +OVERLOAD FUNCTION Get(x : INTEGER) RETURNS INTEGER +RETURN Value + x +ENDFUNCTION +OVERLOAD FUNCTION Get(x : STRING) RETURNS STRING +RETURN x & "!" +ENDFUNCTION +OVERLOAD PROCEDURE Set(x : INTEGER) +Value <- x +ENDPROCEDURE +OVERLOAD PROCEDURE Set(x : STRING) +Value <- LENGTH(x) +ENDPROCEDURE +ENDCLASS +TYPE Holder +DECLARE Item : Box +ENDTYPE +DECLARE a : Box +DECLARE b : Box(7) +DECLARE c : Box("four") +DECLARE h : Holder +DECLARE items : ARRAY[1:2] OF Box +OUTPUT a.Get(), b.Get(), c.Get() +OUTPUT h.Item.Get(), items[2].Get() +OUTPUT b.Get(2) +OUTPUT b.Get("ok") +CALL a.Set("abc") +OUTPUT a.Get() +a <- NEW Box(8) +OUTPUT a.Get() +CALL a.NEW() +OUTPUT a.Get() +DELETE a |
