diff options
Diffstat (limited to 'grep-matcher/tests/test_matcher.rs')
-rw-r--r-- | grep-matcher/tests/test_matcher.rs | 172 |
1 files changed, 97 insertions, 75 deletions
diff --git a/grep-matcher/tests/test_matcher.rs b/grep-matcher/tests/test_matcher.rs index 9edbdf69..b550df6b 100644 --- a/grep-matcher/tests/test_matcher.rs +++ b/grep-matcher/tests/test_matcher.rs @@ -25,18 +25,22 @@ fn find() { fn find_iter() { let matcher = matcher(r"(\w+)\s+(\w+)"); let mut matches = vec![]; - matcher.find_iter(b"aa bb cc dd", |m| { - matches.push(m); - true - }).unwrap(); + matcher + .find_iter(b"aa bb cc dd", |m| { + matches.push(m); + true + }) + .unwrap(); assert_eq!(matches, vec![m(0, 5), m(6, 11)]); // Test that find_iter respects short circuiting. matches.clear(); - matcher.find_iter(b"aa bb cc dd", |m| { - matches.push(m); - false - }).unwrap(); + matcher + .find_iter(b"aa bb cc dd", |m| { + matches.push(m); + false + }) + .unwrap(); assert_eq!(matches, vec![m(0, 5)]); } @@ -47,14 +51,17 @@ fn try_find_iter() { let matcher = matcher(r"(\w+)\s+(\w+)"); let mut matches = vec![]; - let err = matcher.try_find_iter(b"aa bb cc dd", |m| { - if matches.is_empty() { - matches.push(m); - Ok(true) - } else { - Err(MyError) - } - }).unwrap().unwrap_err(); + let err = matcher + .try_find_iter(b"aa bb cc dd", |m| { + if matches.is_empty() { + matches.push(m); + Ok(true) + } else { + Err(MyError) + } + }) + .unwrap() + .unwrap_err(); assert_eq!(matches, vec![m(0, 5)]); assert_eq!(err, MyError); } @@ -89,28 +96,30 @@ fn captures_iter() { let matcher = matcher(r"(?P<a>\w+)\s+(?P<b>\w+)"); let mut caps = matcher.new_captures().unwrap(); let mut matches = vec![]; - matcher.captures_iter(b"aa bb cc dd", &mut caps, |caps| { - matches.push(caps.get(0).unwrap()); - matches.push(caps.get(1).unwrap()); - matches.push(caps.get(2).unwrap()); - true - }).unwrap(); - assert_eq!(matches, vec![ - m(0, 5), m(0, 2), m(3, 5), - m(6, 11), m(6, 8), m(9, 11), - ]); + matcher + .captures_iter(b"aa bb cc dd", &mut caps, |caps| { + matches.push(caps.get(0).unwrap()); + matches.push(caps.get(1).unwrap()); + matches.push(caps.get(2).unwrap()); + true + }) + .unwrap(); + assert_eq!( + matches, + vec![m(0, 5), m(0, 2), m(3, 5), m(6, 11), m(6, 8), m(9, 11),] + ); // Test that captures_iter respects short circuiting. matches.clear(); - matcher.captures_iter(b"aa bb cc dd", &mut caps, |caps| { - matches.push(caps.get(0).unwrap()); - matches.push(caps.get(1).unwrap()); - matches.push(caps.get(2).unwrap()); - false - }).unwrap(); - assert_eq!(matches, vec![ - m(0, 5), m(0, 2), m(3, 5), - ]); + matcher + .captures_iter(b"aa bb cc dd", &mut caps, |caps| { + matches.push(caps.get(0).unwrap()); + matches.push(caps.get(1).unwrap()); + matches.push(caps.get(2).unwrap()); + false + }) + .unwrap(); + assert_eq!(matches, vec![m(0, 5), m(0, 2), m(3, 5),]); } #[test] @@ -121,16 +130,19 @@ fn try_captures_iter() { let matcher = matcher(r"(?P<a>\w+)\s+(?P<b>\w+)"); let mut caps = matcher.new_captures().unwrap(); let mut matches = vec![]; - let err = matcher.try_captures_iter(b"aa bb cc dd", &mut caps, |caps| { - if matches.is_empty() { - matches.push(caps.get(0).unwrap()); - matches.push(caps.get(1).unwrap()); - matches.push(caps.get(2).unwrap()); - Ok(true) - } else { - Err(MyError) - } - }).unwrap().unwrap_err(); + let err = matcher + .try_captures_iter(b"aa bb cc dd", &mut caps, |caps| { + if matches.is_empty() { + matches.push(caps.get(0).unwrap()); + matches.push(caps.get(1).unwrap()); + matches.push(caps.get(2).unwrap()); + Ok(true) + } else { + Err(MyError) + } + }) + .unwrap() + .unwrap_err(); assert_eq!(matches, vec![m(0, 5), m(0, 2), m(3, 5)]); assert_eq!(err, MyError); } @@ -150,10 +162,12 @@ fn no_captures() { assert!(!matcher.captures(b"homer simpson", &mut caps).unwrap()); let mut called = false; - matcher.captures_iter(b"homer simpson", &mut caps, |_| { - called = true; - true - }).unwrap(); + matcher + .captures_iter(b"homer simpson", &mut caps, |_| { + called = true; + true + }) + .unwrap(); assert!(!called); } @@ -161,18 +175,22 @@ fn no_captures() { fn replace() { let matcher = matcher(r"(\w+)\s+(\w+)"); let mut dst = vec![]; - matcher.replace(b"aa bb cc dd", &mut dst, |_, dst| { - dst.push(b'z'); - true - }).unwrap(); + matcher + .replace(b"aa bb cc dd", &mut dst, |_, dst| { + dst.push(b'z'); + true + }) + .unwrap(); assert_eq!(dst, b"z z"); // Test that replacements respect short circuiting. dst.clear(); - matcher.replace(b"aa bb cc dd", &mut dst, |_, dst| { - dst.push(b'z'); - false - }).unwrap(); + matcher + .replace(b"aa bb cc dd", &mut dst, |_, dst| { + dst.push(b'z'); + false + }) + .unwrap(); assert_eq!(dst, b"z cc dd"); } @@ -182,27 +200,31 @@ fn replace_with_captures() { let haystack = b"aa bb cc dd"; let mut caps = matcher.new_captures().unwrap(); let mut dst = vec![]; - matcher.replace_with_captures(haystack, &mut caps, &mut dst, |caps, dst| { - caps.interpolate( - |name| matcher.capture_index(name), - haystack, - b"$2 $1", - dst, - ); - true - }).unwrap(); + matcher + .replace_with_captures(haystack, &mut caps, &mut dst, |caps, dst| { + caps.interpolate( + |name| matcher.capture_index(name), + haystack, + b"$2 $1", + dst, + ); + true + }) + .unwrap(); assert_eq!(dst, b"bb aa dd cc"); // Test that replacements respect short circuiting. dst.clear(); - matcher.replace_with_captures(haystack, &mut caps, &mut dst, |caps, dst| { - caps.interpolate( - |name| matcher.capture_index(name), - haystack, - b"$2 $1", - dst, - ); - false - }).unwrap(); + matcher + .replace_with_captures(haystack, &mut caps, &mut dst, |caps, dst| { + caps.interpolate( + |name| matcher.capture_index(name), + haystack, + b"$2 $1", + dst, + ); + false + }) + .unwrap(); assert_eq!(dst, b"bb aa cc dd"); } |