| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-11-03 18:04:07 +0100 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2020-11-03 18:04:07 +0100 |
| commit | 5b3884e1850050dcf2c6928b5ee55b65ef6d989e (patch) | |
| tree | 074180c2e0f29320ac7a2b3eb08a789eb67210d4 | |
| parent | c2cbe46aef61efee72bf5af7771a78d16472a4e2 (diff) | |
...
5 files changed, 95 insertions, 3 deletions
diff --git a/data/unit-testing/access_pointer.fate b/data/unit-testing/access_pointer.fate index 39af580..e9218e9 100644 --- a/data/unit-testing/access_pointer.fate +++ b/data/unit-testing/access_pointer.fate @@ -1,5 +1,9 @@ (fate_version 1) +(global string test_name) + +(set test_name ( ACCESS POINTER )) + (global (list int) li) (global (ptr (list int)) li_ptr) @@ -17,6 +21,36 @@ ) ) +(global (list (list int)) lili) + +(for (set i 0) (=< i 10) (set i (+ i 1)) + (add! (range 0 i 1) lili) +) + +(assert (= (at (access_ptr (at (access_ptr lili 10)) 0)) 0) [FAILED] (var test_name) lili.10.0 was (at (access_ptr (at (access_ptr lili 10)) 0)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 9)) 1)) 1) [FAILED] (var test_name) lili.9.1 was (at (access_ptr (at (access_ptr lili 9)) 1)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 8)) 2)) 2) [FAILED] (var test_name) lili.8.2 was (at (access_ptr (at (access_ptr lili 8)) 2)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 7)) 3)) 3) [FAILED] (var test_name) lili.7.3 was (at (access_ptr (at (access_ptr lili 7)) 3)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 6)) 4)) 4) [FAILED] (var test_name) lili.6.4 was (at (access_ptr (at (access_ptr lili 6)) 4)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 5)) 5)) 5) [FAILED] (var test_name) lili.5.5 was (at (access_ptr (at (access_ptr lili 5)) 5)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 4)) 3)) 3) [FAILED] (var test_name) lili.4.3 was (at (access_ptr (at (access_ptr lili 4)) 3)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 3)) 2)) 2) [FAILED] (var test_name) lili.3.2 was (at (access_ptr (at (access_ptr lili 3)) 2)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 2)) 1)) 1) [FAILED] (var test_name) lili.2.1 was (at (access_ptr (at (access_ptr lili 2)) 1)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 1)) 0)) 0) [FAILED] (var test_name) lili.1.0 was (at (access_ptr (at (access_ptr lili 1)) 0)) for part A.) +(assert (= (at (access_ptr (at (access_ptr lili 0)) 0)) 0) [FAILED] (var test_name) lili.0.0 was (at (access_ptr (at (access_ptr lili 0)) 0)) for part A.) + +(assert (= (at (access_ptr lili.10 0)) 0) [FAILED] (var test_name) lili.10.0 was (at (access_ptr lili.10 0)) for part B.) +(assert (= (at (access_ptr lili.9 1)) 1) [FAILED] (var test_name) lili.9.1 was (at (access_ptr lili.9 1)) for part B.) +(assert (= (at (access_ptr lili.8 2)) 2) [FAILED] (var test_name) lili.8.2 was (at (access_ptr lili.8 2)) for part B.) +(assert (= (at (access_ptr lili.7 3)) 3) [FAILED] (var test_name) lili.7.3 was (at (access_ptr lili.7 3)) for part B.) +(assert (= (at (access_ptr lili.6 4)) 4) [FAILED] (var test_name) lili.6.4 was (at (access_ptr lili.6 4)) for part B.) +(assert (= (at (access_ptr lili.5 5)) 5) [FAILED] (var test_name) lili.5.5 was (at (access_ptr lili.5 5)) for part B.) +(assert (= (at (access_ptr lili.4 3)) 3) [FAILED] (var test_name) lili.4.3 was (at (access_ptr lili.4 3)) for part B.) +(assert (= (at (access_ptr lili.3 2)) 2) [FAILED] (var test_name) lili.3.2 was (at (access_ptr lili.3 2)) for part B.) +(assert (= (at (access_ptr lili.2 1)) 1) [FAILED] (var test_name) lili.2.1 was (at (access_ptr lili.2 1)) for part B.) +(assert (= (at (access_ptr lili.1 0)) 0) [FAILED] (var test_name) lili.1.0 was (at (access_ptr lili.1 0)) for part B.) +(assert (= (at (access_ptr lili.0 0)) 0) [FAILED] (var test_name) lili.0.0 was (at (access_ptr lili.0 0)) for part B.) + [COMPLETED] ACCESS POINTER (end) diff --git a/data/unit-testing/add_element_at.fate b/data/unit-testing/add_element_at.fate new file mode 100644 index 0000000..97c0b3c --- /dev/null +++ b/data/unit-testing/add_element_at.fate @@ -0,0 +1,41 @@ +(fate_version 1) + +(global string test_name) + +(set test_name ( ADD ELEMENT AT )) + +(global (list int) li0) +(global (list int) li1) + +(set li0 (add_element_at 0 0 li0)) +(set li0 (add_element_at 1 1 li0)) +(set li0 (add_element_at 2 2 li0)) +(set li0 (add_element_at 0 -1 li0)) +(set li0 (add_element_at 0 -3 li0)) +(set li0 (add_element_at 1 -2 li0)) +(set li0 (add_element_at 44 3 li0)) +(set li0 (add_element_at -44 -4 li0)) + +(add_element_at! 0 0 li1) +(add_element_at! 1 1 li1) +(add_element_at! 2 2 li1) +(add_element_at! 0 -1 li1) +(add_element_at! 0 -3 li1) +(add_element_at! 1 -2 li1) +(add_element_at! 44 3 li1) +(add_element_at! -44 -4 li1) + +(assert (= (var li0) (var li1)) [FAILED] (var test_name) equality.) + +(assert (= (var li0.0) (var li1.0) -4) [FAILED] (var test_name) at 0: (var li0.0), (var li1.0).) +(assert (= (var li0.1) (var li1.1) -3) [FAILED] (var test_name) at 1: (var li0.1), (var li1.1).) +(assert (= (var li0.2) (var li1.2) -2) [FAILED] (var test_name) at 2: (var li0.2), (var li1.2).) +(assert (= (var li0.3) (var li1.3) -1) [FAILED] (var test_name) at 3: (var li0.3), (var li1.3).) +(assert (= (var li0.4) (var li1.4) 0) [FAILED] (var test_name) at 4: (var li0.4), (var li1.4).) +(assert (= (var li0.5) (var li1.5) 1) [FAILED] (var test_name) at 5: (var li0.5), (var li1.5).) +(assert (= (var li0.6) (var li1.6) 2) [FAILED] (var test_name) at 6: (var li0.6), (var li1.6).) +(assert (= (var li0.7) (var li1.7) 3) [FAILED] (var test_name) at 7: (var li0.6), (var li1.6).) + +[COMPLETED] (var test_name) + +(end) diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java index 0b316e1..30fe7b8 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/ComputationCompiler.java @@ -2170,7 +2170,16 @@ implements tonkadur.fate.v1.lang.meta.ComputationVisitor collection_size.get_value() ), collection_size.get_value(), - index_compiler.get_computation() + new IfElseComputation + ( + Operation.less_than + ( + index_compiler.get_computation(), + Constant.ZERO + ), + Constant.ZERO, + index_compiler.get_computation() + ) ) ) ); diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java index 679fcea..438dde7 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/fate/v1/InstructionCompiler.java @@ -253,7 +253,16 @@ implements tonkadur.fate.v1.lang.meta.InstructionVisitor new Size(collection_compiler.get_address()) ), new Size(collection_compiler.get_address()), - index_compiler.get_computation() + new IfElseComputation + ( + Operation.less_than + ( + index_compiler.get_computation(), + Constant.ZERO + ), + Constant.ZERO, + index_compiler.get_computation() + ) ) ) ); diff --git a/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java b/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java index 71c4bc1..b01e007 100644 --- a/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java +++ b/src/core/src/tonkadur/wyrd/v1/compiler/util/InsertAt.java @@ -74,7 +74,6 @@ public class InsertAt value_of_index = new ValueOf(index); - /* (set .end collection_size) */ result.add(new SetValue(end.get_address(), collection_size)); |


