aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoromagdy7 <omar.professional8777@gmail.com>2023-12-04 14:17:04 +0200
committeromagdy7 <omar.professional8777@gmail.com>2023-12-04 14:17:04 +0200
commitcd77fcbf850574b02616c84a6169ea3abcba1a94 (patch)
tree1d1b56b48ab6de002a2fe81b8a9160590889eca1 /src
parentc82a3bcdac78bafbe7d7e686e083562253fd04d2 (diff)
downloadrex-cd77fcbf850574b02616c84a6169ea3abcba1a94.tar.xz
rex-cd77fcbf850574b02616c84a6169ea3abcba1a94.zip
Added some extra tests
Diffstat (limited to 'src')
-rwxr-xr-xsrc/main.rs4
-rw-r--r--src/nfa.rs11
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"));
}
diff --git a/src/nfa.rs b/src/nfa.rs
index 4757b83..eb06b88 100644
--- a/src/nfa.rs
+++ b/src/nfa.rs
@@ -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"));
}
}