add basic tests for PersistentVector.delete

This commit is contained in:
2025-12-09 12:27:23 +00:00
parent e6bda83309
commit 102f2788a1

View File

@@ -33,23 +33,58 @@ struct
end
val deleteTests = describe "PersistentVector.delete"
[test
"deletes last value correctly \
\when only last value is in deletion range"
(fn _ =>
let
(* arrange *)
val pv = Pv.fromList [(0, 0), (3, 3), (5, 5)]
[ test
"deletes last value correctly \
\when only last value is in deletion range"
(fn _ =>
let
(* arrange *)
val pv = Pv.fromList [(0, 0), (3, 3), (5, 5)]
(* act *)
val pv = Pv.delete (5, 1, pv)
(* act *)
val pv = Pv.delete (5, 1, pv)
(* assert *)
val outputList = Pv.toList pv
val expectedList = [(0, 0), (3, 3)]
in
Expect.isTrue (outputList = expectedList)
end)]
(* assert *)
val outputList = Pv.toList pv
val expectedList = [(0, 0), (3, 3)]
in
Expect.isTrue (outputList = expectedList)
end)
, test
"deletes middle value correctly \
\and adjusts values-after-middle as well"
(fn _ =>
let
(* arrange *)
val pv = Pv.fromList [(0, 0), (3, 3), (5, 5)]
(* act *)
val pv = Pv.delete (3, 1, pv)
(* assert *)
val outputList = Pv.toList pv
val expectedList = [(0, 0), (4, 4)]
in
Expect.isTrue (outputList = expectedList)
end)
, test
"deletes first value correctly \
\and adjusts values-after-first as well"
(fn _ =>
let
(* arrange *)
val pv = Pv.fromList [(0, 0), (3, 3), (5, 5)]
(* act *)
val pv = Pv.delete (0, 1, pv)
(* assert *)
val outputList = Pv.toList pv
val expectedList = [(2, 2), (4, 4)]
in
Expect.isTrue (outputList = expectedList)
end)
]
val tests = [appendTests, deleteTests]
end