From e0bebb6d1a8c56c2254816709e6a9f011d93dd8d Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Thu, 15 Jan 2026 13:20:45 +0000 Subject: [PATCH] add tests checking that PersistentVector.toList works as expected --- test/persistent-vector-tests.sml | 77 ++++++++++++++++++++++++++++++-- 1 file changed, 74 insertions(+), 3 deletions(-) diff --git a/test/persistent-vector-tests.sml b/test/persistent-vector-tests.sml index be7f5d6..75004a2 100644 --- a/test/persistent-vector-tests.sml +++ b/test/persistent-vector-tests.sml @@ -69,7 +69,7 @@ struct val indicesInRange3 = [21, 22, 23, 24, 25, 26, 27, 33] val indicesInRange = - List.concat [indicesInRange1, indicesInRange2, indicesInRange3] + indicesInRange1 @ indicesInRange2 @ indicesInRange3 in isInRange (indicesInRange, pv) end) @@ -78,7 +78,6 @@ struct (* arrange *) val f = PersistentVector.append val pv = PersistentVector.empty - (* act *) val pv = f (1, 3, pv) val pv = f (5, 7, pv) @@ -94,5 +93,77 @@ struct end) ] - val tests = [appendTests] + val toListTests = describe "PersistentVector.toList" + [ test "returns input list when input list has 5 elements" (fn _ => + let + (* arrange *) + val inputList = + [ {start = 1, finish = 3} + , {start = 5, finish = 7} + , {start = 9, finish = 13} + , {start = 19, finish = 27} + , {start = 33, finish = 33} + ] + val pv = PersistentVector.fromList inputList + + (* act *) + val outputList = PersistentVector.toList pv + + (* assert *) + in + Expect.isTrue (inputList = outputList) + end) + , test "returns input list when input list has more than 32 elements" + (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} + , {start = 9, finish = 9} + , {start = 10, finish = 10} + , {start = 11, finish = 11} + , {start = 12, finish = 12} + , {start = 13, finish = 13} + , {start = 14, finish = 14} + , {start = 15, finish = 15} + , {start = 16, finish = 16} + , {start = 17, finish = 17} + , {start = 18, finish = 18} + , {start = 19, finish = 19} + , {start = 20, finish = 20} + , {start = 21, finish = 21} + , {start = 22, finish = 22} + , {start = 23, finish = 23} + , {start = 24, finish = 24} + , {start = 25, finish = 25} + , {start = 26, finish = 26} + , {start = 27, finish = 27} + , {start = 28, finish = 28} + , {start = 29, finish = 29} + , {start = 30, finish = 30} + , {start = 31, finish = 31} + , {start = 32, finish = 32} + , {start = 33, finish = 33} + , {start = 34, finish = 34} + , {start = 35, finish = 35} + ] + val pv = PersistentVector.fromList inputList + + (* act *) + val outputList = PersistentVector.toList pv + + (* assert *) + in + Expect.isTrue (inputList = outputList) + end) + ] + + val tests = [appendTests, toListTests] end