added tests for 'PersistentVector.splitLeft' function
This commit is contained in:
@@ -166,30 +166,123 @@ struct
|
|||||||
]
|
]
|
||||||
|
|
||||||
val splitLeftTests = describe "PersistentVector.splitLeft"
|
val splitLeftTests = describe "PersistentVector.splitLeft"
|
||||||
[test "returns same vector when split idx is greater than any idx in vector"
|
[ test
|
||||||
(fn _ =>
|
"returns same vector when split idx is greater than any idx in vector"
|
||||||
let
|
(fn _ =>
|
||||||
(* arrange *)
|
let
|
||||||
val inputList =
|
(* arrange *)
|
||||||
[ {start = 1, finish = 1}
|
val inputList =
|
||||||
, {start = 2, finish = 2}
|
[ {start = 1, finish = 1}
|
||||||
, {start = 3, finish = 3}
|
, {start = 2, finish = 2}
|
||||||
, {start = 4, finish = 4}
|
, {start = 3, finish = 3}
|
||||||
, {start = 5, finish = 5}
|
, {start = 4, finish = 4}
|
||||||
, {start = 6, finish = 6}
|
, {start = 5, finish = 5}
|
||||||
, {start = 7, finish = 7}
|
, {start = 6, finish = 6}
|
||||||
, {start = 8, finish = 8}
|
, {start = 7, finish = 7}
|
||||||
]
|
, {start = 8, finish = 8}
|
||||||
val pv = PersistentVector.fromList inputList
|
]
|
||||||
|
val pv = PersistentVector.fromList inputList
|
||||||
|
|
||||||
(* act *)
|
(* act *)
|
||||||
val pv = PersistentVector.splitLeft (9, pv)
|
val pv = PersistentVector.splitLeft (9, pv)
|
||||||
|
|
||||||
(* assert *)
|
(* assert *)
|
||||||
val outputList = PersistentVector.toList pv
|
val outputList = PersistentVector.toList pv
|
||||||
in
|
in
|
||||||
Expect.isTrue (inputList = outputList)
|
Expect.isTrue (inputList = outputList)
|
||||||
end)]
|
end)
|
||||||
|
, test "removes last element when split idx is = to last element" (fn _ =>
|
||||||
|
let
|
||||||
|
(* arrange *)
|
||||||
|
val inputList =
|
||||||
|
[ {start = 1, finish = 1}
|
||||||
|
, {start = 2, finish = 2}
|
||||||
|
, {start = 3, finish = 3}
|
||||||
|
, {start = 4, finish = 4}
|
||||||
|
, {start = 5, finish = 5}
|
||||||
|
, {start = 6, finish = 6}
|
||||||
|
, {start = 7, finish = 7}
|
||||||
|
, {start = 8, finish = 8}
|
||||||
|
]
|
||||||
|
val pv = PersistentVector.fromList inputList
|
||||||
|
|
||||||
|
(* act *)
|
||||||
|
val pv = PersistentVector.splitLeft (8, pv)
|
||||||
|
|
||||||
|
(* assert *)
|
||||||
|
val outputList = PersistentVector.toList pv
|
||||||
|
val expectedOutput =
|
||||||
|
[ {start = 1, finish = 1}
|
||||||
|
, {start = 2, finish = 2}
|
||||||
|
, {start = 3, finish = 3}
|
||||||
|
, {start = 4, finish = 4}
|
||||||
|
, {start = 5, finish = 5}
|
||||||
|
, {start = 6, finish = 6}
|
||||||
|
, {start = 7, finish = 7}
|
||||||
|
]
|
||||||
|
in
|
||||||
|
Expect.isTrue (outputList = expectedOutput)
|
||||||
|
end)
|
||||||
|
, test "removes all elements when split idx = first element" (fn _ =>
|
||||||
|
let
|
||||||
|
(* arrange *)
|
||||||
|
val inputList =
|
||||||
|
[ {start = 1, finish = 1}
|
||||||
|
, {start = 2, finish = 2}
|
||||||
|
, {start = 3, finish = 3}
|
||||||
|
, {start = 4, finish = 4}
|
||||||
|
, {start = 5, finish = 5}
|
||||||
|
, {start = 6, finish = 6}
|
||||||
|
, {start = 7, finish = 7}
|
||||||
|
, {start = 8, finish = 8}
|
||||||
|
]
|
||||||
|
val pv = PersistentVector.fromList inputList
|
||||||
|
|
||||||
|
(* act *)
|
||||||
|
val pv = PersistentVector.splitLeft (1, pv)
|
||||||
|
|
||||||
|
(* assert *)
|
||||||
|
val outputList = PersistentVector.toList pv
|
||||||
|
val expectedOutput = []
|
||||||
|
in
|
||||||
|
Expect.isTrue (outputList = expectedOutput)
|
||||||
|
end)
|
||||||
|
, test
|
||||||
|
"removes element whose start and finish is in range \
|
||||||
|
\of the split idx, and removes all elements after it too"
|
||||||
|
(fn _ =>
|
||||||
|
let
|
||||||
|
(* arrange *)
|
||||||
|
val inputList =
|
||||||
|
[ {start = 1, finish = 1}
|
||||||
|
, {start = 2, finish = 2}
|
||||||
|
, {start = 3, finish = 3}
|
||||||
|
, {start = 4, finish = 4}
|
||||||
|
, {start = 5, finish = 155}
|
||||||
|
, {start = 200, finish = 200}
|
||||||
|
, {start = 210, finish = 210}
|
||||||
|
, {start = 220, finish = 220}
|
||||||
|
, {start = 230, finish = 230}
|
||||||
|
, {start = 240, finish = 240}
|
||||||
|
, {start = 250, finish = 250}
|
||||||
|
]
|
||||||
|
val pv = PersistentVector.fromList inputList
|
||||||
|
|
||||||
|
(* act *)
|
||||||
|
val pv = PersistentVector.splitLeft (7, pv)
|
||||||
|
|
||||||
|
(* assert *)
|
||||||
|
val outputList = PersistentVector.toList pv
|
||||||
|
val expectedOutput =
|
||||||
|
[ {start = 1, finish = 1}
|
||||||
|
, {start = 2, finish = 2}
|
||||||
|
, {start = 3, finish = 3}
|
||||||
|
, {start = 4, finish = 4}
|
||||||
|
]
|
||||||
|
in
|
||||||
|
Expect.isTrue (outputList = expectedOutput)
|
||||||
|
end)
|
||||||
|
]
|
||||||
|
|
||||||
val tests = [appendTests, toListTests, splitLeftTests]
|
val tests = [appendTests, toListTests, splitLeftTests]
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user