aboutsummaryrefslogtreecommitdiff
path: root/tests/sheet_test.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sheet_test.ml')
-rwxr-xr-xtests/sheet_test.ml80
1 files changed, 41 insertions, 39 deletions
diff --git a/tests/sheet_test.ml b/tests/sheet_test.ml
index 3960c4b..dfa8da4 100755
--- a/tests/sheet_test.ml
+++ b/tests/sheet_test.ml
@@ -4,6 +4,8 @@ module Option = Tools.Option
let u = UTF8.from_utf8string
+let catalog = Functions.C.compile @@ Functions.built_in Functions.C.empty
+
let _msg ~expected ~result = begin
let get_string v = match v with
@@ -16,17 +18,17 @@ let _msg ~expected ~result = begin
(get_string result)
end
-let build_num value = ScTypes.number @@ DataType.Num.of_int value
+let build_num value = ScTypes.Type.number @@ DataType.Num.of_int value
(** Test a simple references between two cells *)
let test_create_ref_1 ctx = begin
let s = Sheet.Raw.empty
- |> Sheet.Raw.add (3,3) @@ Expression.load @@ u"=-1"
- |> snd |> Sheet.Raw.add (0,0) @@ Expression.load @@ u"=C3"
+ |> Sheet.Raw.add (3,3) (Expression.load @@ u"=-1") catalog
+ |> snd |> Sheet.Raw.add (0,0) (Expression.load @@ u"=C3") catalog
|> snd in
let result = (Sheet.Raw.get_value (0, 0) s) in
- let expected = Some (ScTypes.Result (build_num (-1))) in
+ let expected = Some (ScTypes.Result.Ok (build_num (-1))) in
assert_equal
~msg:(_msg ~expected ~result)
@@ -37,14 +39,14 @@ end
let test_create_ref_2 ctx = begin
let s = Sheet.Raw.empty
- |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=C3"
- |> snd |> Sheet.Raw.add (3,3) @@ Expression.load @@ u"=A1"
- |> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"123"
+ |> Sheet.Raw.add (2,2) (Expression.load @@ u"=C3") catalog
+ |> snd |> Sheet.Raw.add (3,3) (Expression.load @@ u"=A1") catalog
+ |> snd |> Sheet.Raw.add (1,1) (Expression.load @@ u"123") catalog
|> snd in
let result = (Sheet.Raw.get_value (2, 2) s) in
- let expected = Some (ScTypes.Result (build_num 123)) in
+ let expected = Some (ScTypes.Result.Ok (build_num 123)) in
assert_equal
~msg:(_msg ~expected ~result)
@@ -55,10 +57,10 @@ end
let test_create_direct_cycle ctx = begin
let s = Sheet.Raw.empty
- |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=B2 + 1"
+ |> Sheet.Raw.add (2,2) (Expression.load @@ u"=B2 + 1") catalog
|> snd in
let result = (Sheet.Raw.get_value (2, 2) s) in
- let expected = Some (ScTypes.Error Errors.TypeError) in
+ let expected = Some (ScTypes.Result.Error Errors.TypeError) in
assert_equal
~msg:(_msg ~expected ~result)
@@ -70,11 +72,11 @@ end
let test_recover_from_cycle ctx = begin
let s = Sheet.Raw.empty
- |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=B2 + 1"
- |> snd |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=6"
+ |> Sheet.Raw.add (2,2) (Expression.load @@ u"=B2 + 1") catalog
+ |> snd |> Sheet.Raw.add (2,2) (Expression.load @@ u"=6") catalog
|> snd in
let result = (Sheet.Raw.get_value (2, 2) s) in
- let expected = Some (ScTypes.Result (build_num (6))) in
+ let expected = Some (ScTypes.Result.Ok (build_num (6))) in
assert_equal
~msg:(_msg ~expected ~result)
@@ -85,13 +87,13 @@ end
let test_create_indirect_cycle ctx = begin
let s = Sheet.Raw.empty
- |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=A1"
- |> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=2"
- |> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=B2+1"
- |> snd |> Sheet.Raw.add (0,0) @@ Expression.load @@ u"=A1"
+ |> Sheet.Raw.add (2,2) (Expression.load @@ u"=A1") catalog
+ |> snd |> Sheet.Raw.add (1,1) (Expression.load @@ u"=2") catalog
+ |> snd |> Sheet.Raw.add (1,1) (Expression.load @@ u"=B2+1") catalog
+ |> snd |> Sheet.Raw.add (0,0) (Expression.load @@ u"=A1") catalog
|> snd in
let result = (Sheet.Raw.get_value (0, 0) s) in
- let expected = Some (ScTypes.Error Errors.Cycle) in
+ let expected = Some (ScTypes.Result.Error Errors.Cycle) in
assert_equal
~msg:(_msg ~expected ~result)
@@ -103,18 +105,18 @@ let test_check_cycle3 ctx = begin
let s = Sheet.Raw.empty
(* First set A1 to 3 *)
- |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=3"
- |> snd |> Sheet.Raw.add (1,2) @@ Expression.load @@ u"=A1"
- |> snd |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=A1"
- |> snd |> Sheet.Raw.add (5,5) @@ Expression.load @@ u"=B2"
+ |> Sheet.Raw.add (1,1) (Expression.load @@ u"=3") catalog
+ |> snd |> Sheet.Raw.add (1,2) (Expression.load @@ u"=A1") catalog
+ |> snd |> Sheet.Raw.add (2,2) (Expression.load @@ u"=A1") catalog
+ |> snd |> Sheet.Raw.add (5,5) (Expression.load @@ u"=B2") catalog
(* A3 = A1 + A1 = 6 *)
- |> snd |> Sheet.Raw.add (1,3) @@ Expression.load @@ u"=A2 + E5"
+ |> snd |> Sheet.Raw.add (1,3) (Expression.load @@ u"=A2 + E5") catalog
(* Then set A1 to 2 *)
- |> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=2"
+ |> snd |> Sheet.Raw.add (1,1) (Expression.load @@ u"=2") catalog
|> snd in
let result = (Sheet.Raw.get_value (1, 3) s) in
(* A3 = A1 + A1 = 4 *)
- let expected = Some (ScTypes.Result (build_num 4)) in
+ let expected = Some (ScTypes.Result.Ok (build_num 4)) in
assert_equal
~msg:(_msg ~expected ~result)
@@ -125,10 +127,10 @@ end
let test_delete ctx = begin
let s = Sheet.Raw.empty
- |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=C3"
- |> snd |> Sheet.Raw.add (3,3) @@ Expression.load @@ u"=A1"
- |> snd |> Sheet.Raw.remove (2,2)
- |> snd |> Sheet.Raw.remove (3,3)
+ |> Sheet.Raw.add (2,2) (Expression.load @@ u"=C3") catalog
+ |> snd |> Sheet.Raw.add (3,3) (Expression.load @@ u"=A1") catalog
+ |> snd |> Sheet.Raw.remove (2,2) catalog
+ |> snd |> Sheet.Raw.remove (3,3) catalog
|> snd in
let result = (Sheet.Raw.get_value (3, 3) s) in
let expected = None in
@@ -142,10 +144,10 @@ end
let test_update_succs1 ctx = begin
let result = Sheet.Raw.empty
- |> Sheet.Raw.add (1,1) @@ Expression.load @@ u" =1"
- |> snd |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=A2"
- |> snd |> Sheet.Raw.add (1,2) @@ Expression.load @@ u"=A1/1"
- |> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=2"
+ |> Sheet.Raw.add (1,1) (Expression.load @@ u" =1") catalog
+ |> snd |> Sheet.Raw.add (2,2) (Expression.load @@ u"=A2") catalog
+ |> snd |> Sheet.Raw.add (1,2) (Expression.load @@ u"=A1/1") catalog
+ |> snd |> Sheet.Raw.add (1,1) (Expression.load @@ u"=2") catalog
|> fst in
(* All the cells are updated by the change *)
@@ -163,10 +165,10 @@ end
let test_update_succs2 ctx = begin
let result = Sheet.Raw.empty
- |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=1"
- |> snd |> Sheet.Raw.add (2,2) @@ Expression.load @@ u"=A2"
- |> snd |> Sheet.Raw.add (1,2) @@ Expression.load @@ u"=A1/0"
- |> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=2"
+ |> Sheet.Raw.add (1,1) (Expression.load @@ u"=1") catalog
+ |> snd |> Sheet.Raw.add (2,2) (Expression.load @@ u"=A2") catalog
+ |> snd |> Sheet.Raw.add (1,2) (Expression.load @@ u"=A1/0") catalog
+ |> snd |> Sheet.Raw.add (1,1) (Expression.load @@ u"=2") catalog
|> fst in
(* Only (1, 1) is updated ; (2, 2) does not change, neither (2, 2) *)
let expected = Cell.Set.of_list [(1,1)] in
@@ -178,10 +180,10 @@ end
let test_paste_undo ctx = begin
- let empty = Sheet.create Sheet.Raw.empty in
+ let empty = Sheet.create catalog Sheet.Raw.empty in
(* The expected result for the whole test *)
- let expected = Some (ScTypes.Result (ScTypes.number (DataType.Num.of_int 6))) in
+ let expected = Some (ScTypes.Result.Ok (ScTypes.Type.number (DataType.Num.of_int 6))) in
let sheet = empty
|> Tools.Option.test @@ Sheet.move (Actions.Absolute (2, 1))