From bc16421a249ef77c01327b6e1f94c398271f8345 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Sat, 11 Oct 2025 14:35:15 +0100 Subject: [PATCH] add failing test --- test/regex-tests.sml | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/test/regex-tests.sml b/test/regex-tests.sml index c851083..f0c7373 100644 --- a/test/regex-tests.sml +++ b/test/regex-tests.sml @@ -103,21 +103,37 @@ struct ] val endMarkerTests = describe "regex endMarker" - [test "returns an empty DFA when regexString contains endMarker" (fn _ => - let - (* arrange *) - (* the end marker is #"\^@" *) - val regexString = "hello \^@ world" + [ test "returns an empty DFA when regexString contains endMarker" (fn _ => + let + (* arrange *) + (* the end marker is #"\^@" *) + val regexString = "hello \^@ world" - (* act *) - val dfa = CsDfa.fromString regexString + (* act *) + val dfa = CsDfa.fromString regexString - (* assert *) - val actualLength = Vector.length dfa - val expectedLength = 0 - in - Expect.isTrue (actualLength = expectedLength) - end)] + (* assert *) + val actualLength = Vector.length dfa + val expectedLength = 0 + in + Expect.isTrue (actualLength = expectedLength) + end) + , test "matches a string when regex has question mark at the end" (fn _ => + let + (* arrange *) + val sentence = "favo" + val regexString = "favou?" + val dfa = CsDfa.fromString "favorite" + + (* act *) + val matches = CsDfa.matchString (dfa, sentence) + + (* assert *) + val expectedMatches = [(0, 3)] + in + Expect.isTrue (matches = expectedMatches) + end) + ] fun recogniseEscapeSequence (regexString, inputString) = let