diff options
| author | omagdy7 <omar.professional8777@gmail.com> | 2023-12-04 14:17:04 +0200 |
|---|---|---|
| committer | omagdy7 <omar.professional8777@gmail.com> | 2023-12-04 14:17:04 +0200 |
| commit | cd77fcbf850574b02616c84a6169ea3abcba1a94 (patch) | |
| tree | 1d1b56b48ab6de002a2fe81b8a9160590889eca1 | |
| parent | c82a3bcdac78bafbe7d7e686e083562253fd04d2 (diff) | |
| download | rex-cd77fcbf850574b02616c84a6169ea3abcba1a94.tar.xz rex-cd77fcbf850574b02616c84a6169ea3abcba1a94.zip | |
Added some extra tests
| -rwxr-xr-x | src/main.rs | 4 | ||||
| -rw-r--r-- | src/nfa.rs | 11 |
2 files changed, 10 insertions, 5 deletions
diff --git a/src/main.rs b/src/main.rs index b6033c1..0fa03d5 100755 --- a/src/main.rs +++ b/src/main.rs @@ -10,7 +10,5 @@ fn test(regex: &str, input: &str) -> bool { } fn main() { - println!("{}", dbg!(test("(a|b)a", "aa"))); - println!("{}", dbg!(test("(a|b)a", "ba"))); - println!("{}", dbg!(test("(a|b)a", "bb"))); + dbg!(test("regexisawesome", "regexisawesome")); } @@ -121,7 +121,6 @@ impl NFA { } fn matches_helper(&self, state: &State, mut chars: Chars) -> bool { - println!("{state:?}\n{chars:?}"); if self.accepting_states.contains(&state.id) { return chars.next().is_none(); } @@ -208,6 +207,14 @@ mod tests { } #[test] + fn test_star_empty_input() { + assert!(test("", "")); + assert!(test("a*", "")); + assert!(test("b*", "")); + assert!(test("(a|b)*", "")); + } + + #[test] fn test_star_succ() { assert!(test("(0)*1(0)*", "000000000100000")); assert!(test("(a)*abc(a)*", "aaaaaaabcaaaaaa")); @@ -224,7 +231,7 @@ mod tests { #[test] fn test_complex_succ() { + assert!(test("(a|b|c)*", "abababababcbcba")); assert!(test("(a|b)*cc", "aaabababaabacc")); - assert!(test("(0)*0101(1)*", "00000101111")); } } |
