Files
sml-projects/test/persistent-vector-tests.sml

64 lines
1.4 KiB
Standard ML
Raw Normal View History

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