Files
sml-projects/test/regression.sml

65 lines
1.6 KiB
Standard ML
Raw Normal View History

structure Regression =
struct
open Railroad
open Railroad.Test
fun updateLoop (pos, str, app) =
if pos = String.size str then
app
else
let
val chr = String.sub (str, pos)
val () = ExceptionLogger.addCommand (InputMsg.CHAR_EVENT chr)
val app = AppUpdate.update (app, InputMsg.CHAR_EVENT chr)
in
updateLoop (pos + 1, str, app)
end
fun applyChars (historyString, app) = updateLoop (0, historyString, app)
fun appFromText text =
let val buffer = LineGap.fromString text
in AppType.init (buffer, 0, 0)
end
fun loadFromFile (io, acc) =
case TextIO.inputLine io of
SOME line => loadFromFile (io, acc ^ line)
| NONE => acc
val initialText =
let
val io = TextIO.openIn "temp.txt"
val str = loadFromFile (io, "")
val () = TextIO.closeIn io
in
str
end
val initialApp = appFromText initialText
val charEventTests = describe "CHAR_EVENT regressions"
[test "SearchList.goToNum vector bounds regression (1)" (fn _ =>
let
val app = appFromText initialText
val history = "G12dk"
val newApp = applyChars (history, app)
in
(* just expect that we do not fail or throw an exception *)
Expect.isTrue true
2025-08-04 10:59:01 +01:00
end),
test "idk yet" (fn _ =>
let
val app = appFromText initialText
val history = "16G18ddjjjjjjjjjdkdkdkjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj"
val newApp = applyChars (history, app)
in
Expect.isTrue true
end
)
]
val tests = [charEventTests]
end