aboutsummaryrefslogtreecommitdiff
path: root/tests/sheet_test.ml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sheet_test.ml')
-rwxr-xr-xtests/sheet_test.ml26
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/sheet_test.ml b/tests/sheet_test.ml
index 1a1bef3..b289b14 100755
--- a/tests/sheet_test.ml
+++ b/tests/sheet_test.ml
@@ -80,6 +80,29 @@ let test_create_indirect_cycle ctx = begin
result
end
+let test_check_BFS ctx = begin
+
+ let s = Sheet.Raw.create
+ (* 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"
+ (* A3 = A1 + A1 = 6 *)
+ |> snd |> Sheet.Raw.add (1,3) @@ Expression.load @@ u"=A2 + E5"
+ (* Then set A1 to 2 *)
+ |> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=2"
+ |> snd in
+ let result = (Sheet.Raw.get_value (1, 3) s) in
+ (* A3 = A1 + A1 = 4 *)
+ let expected = Some (ScTypes.Result (ScTypes.Num (Num.num_of_int 4, None))) in
+
+ assert_equal
+ ~msg:(_msg ~expected ~result)
+ expected
+ result
+end
+
let test_delete ctx = begin
let s = Sheet.Raw.create
@@ -126,7 +149,7 @@ let test_update_succs2 ctx = begin
|> snd |> Sheet.Raw.add (1,2) @@ Expression.load @@ u"=A1/0"
|> snd |> Sheet.Raw.add (1,1) @@ Expression.load @@ u"=2"
|> fst in
- (* Only (1, 1) is updated ; (1, 2) does not change, neither (2, 2) *)
+ (* Only (1, 1) is updated ; (2, 2) does not change, neither (2, 2) *)
let expected = Cell.Set.of_list [(1,1)] in
assert_equal
@@ -139,6 +162,7 @@ let tests = "sheet_test">::: [
"test_ref1" >:: test_create_ref_1;
"test_cycle1" >:: test_create_direct_cycle;
"test_cycle2" >:: test_create_indirect_cycle;
+ "test_BFS" >:: test_check_BFS;
"test_delete" >:: test_delete;
"test_update_succs1" >:: test_update_succs1;
"test_update_succs2" >:: test_update_succs2;