add boilerplate helper functions in persistent-vector-tests.sml to check if list contains indices that are in range, or are not in range

This commit is contained in:
2026-01-15 12:49:02 +00:00
parent ef43efb680
commit ac3b987c42

View File

@@ -1 +1,63 @@
structure PersistentVectorTests = struct val tests = [] end
structure PersistentVectorTests =
struct
open Railroad
open Railroad.Test
fun isNotInRange (lst, pv) =
let
fun loopNotInRange lst =
case lst of
hd :: tl =>
if PersistentVector.isInRange (hd, pv) then
let
val msg =
"idx " ^ Int.toString hd
^ " is in range when it shouldn't be\n"
val () = print msg
in
Expect.isTrue false
end
else
loopNotInRange tl
| [] => Expect.isTrue true
in
loopNotInRange lst
end
fun isInRange (lst, pv) =
let
fun loopInRange lst =
case lst of
hd :: tl =>
if PersistentVector.isInRange (hd, pv) then
loopInRange tl
else
let
val msg =
"idx " ^ Int.toString hd
^ " is not in range when it should be\n"
val () = print msg
in
Expect.isTrue false
end
| [] => Expect.isTrue true
in
loopInRange lst
end
val initial =
let
val f = PersistentVector.append
val pv = PersistentVector.empty
val pv = f (1, 3, pv)
val pv = f (5, 7, pv)
val pv = f (9, 13, pv)
val pv = f (19, 27, pv)
val pv = f (33, 33, pv)
in
pv
end
val tests = []
end