Changeset - 9ddf4beb947b
[Not reviewed]
default
0 1 0
Laman - 10 months ago 2024-06-16 23:20:36

added tests
1 file changed with 63 insertions and 2 deletions:
0 comments (0 inline, 0 general)
tests/test_regexp.rs
Show inline comments
 
use regexp::Regexp;
 

	
 
#[test]
 
fn test_eval() {
 
	let r = Regexp::new(&String::from("(ab)*"));
 
fn test_eval_basic_nfa() {
 
	let r = Regexp::new(&String::from("abc"));
 
	assert!(r.eval(String::from("abc")));
 
	assert!(!r.eval(String::from("ab")));
 
	assert!(!r.eval(String::from("abcd")));
 
}
 

	
 
#[test]
 
fn test_eval_basic_dfa() {
 
	let r = Regexp::new(&String::from("abc")).determinize();
 
	assert!(r.eval(String::from("abc")));
 
	assert!(!r.eval(String::from("ab")));
 
	assert!(!r.eval(String::from("abcd")));
 
}
 

	
 
#[test]
 
fn test_eval_empty_nfa() {
 
	assert!(Regexp::new(&String::from("a*")).eval(String::from("")));
 
	assert!(Regexp::new(&String::from("")).eval(String::from("")));
 
	assert!(!Regexp::new(&String::from("")).eval(String::from("a")));
 
	assert!(!Regexp::new(&String::from("a")).eval(String::from("")));
 
}
 

	
 
#[test]
 
fn test_eval_empty_dfa() {
 
	assert!(Regexp::new(&String::from("a*")).determinize().eval(String::from("")));
 
	assert!(Regexp::new(&String::from("")).determinize().eval(String::from("")));
 
	assert!(!Regexp::new(&String::from("")).determinize().eval(String::from("a")));
 
}
 

	
 
#[test]
 
fn test_eval_asterisk_nfa() {
 
	let r = Regexp::new(&String::from("a*b*"));
 
	assert!(r.eval(String::from("a")));
 
	assert!(r.eval(String::from("ab")));
 
	assert!(r.eval(String::from("aabb")));
 
	assert!(!r.eval(String::from("abab")));
 
}
 

	
 
#[test]
 
fn test_eval_asterisk_dfa() {
 
	let r = Regexp::new(&String::from("a*b*")).determinize();
 
	assert!(r.eval(String::from("a")));
 
	assert!(r.eval(String::from("ab")));
 
	assert!(r.eval(String::from("aabb")));
 
	assert!(!r.eval(String::from("abab")));
 
}
 

	
 
#[test]
 
fn test_eval_plus_nfa() {
 
	let r = Regexp::new(&String::from("(ab)+"));
 
	assert!(!r.eval(String::from("a")));
 
	assert!(r.eval(String::from("ab")));
 
	assert!(r.eval(String::from("abab")));
 
	assert!(!r.eval(String::from("aabb")));
 
}
 

	
 
#[test]
 
fn test_eval_plus_dfa() {
 
	let r = Regexp::new(&String::from("(ab)+")).determinize();
 
	assert!(!r.eval(String::from("a")));
 
	assert!(r.eval(String::from("ab")));
 
	assert!(r.eval(String::from("abab")));
 
	assert!(!r.eval(String::from("aabb")));
 
}
0 comments (0 inline, 0 general)