| summaryrefslogtreecommitdiff | 
diff options
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)); | 


