diff --git a/src/diff/myers_diff.rs b/src/diff/myers_diff.rs index a649d46ee..72a9b243c 100644 --- a/src/diff/myers_diff.rs +++ b/src/diff/myers_diff.rs @@ -1,6 +1,6 @@ //! A fast diff for linear content, using Myer's diff algorithm. -#[derive(Debug)] +#[derive(Debug, PartialEq)] pub enum DiffResult { Left(T), Both(T, T), @@ -21,3 +21,31 @@ pub fn slice<'a, T: PartialEq + Clone>(lhs: &'a [T], rhs: &'a [T]) -> Vec>() } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_slice_same_items() { + let diff_items = slice(&["a", "b"], &["a", "b"]); + assert_eq!( + diff_items, + vec![DiffResult::Both(&"a", &"a"), DiffResult::Both(&"b", &"b")] + ); + } + + #[test] + fn test_slice_different_items() { + let diff_items = slice(&["a", "b"], &["c", "d"]); + assert_eq!( + diff_items, + vec![ + DiffResult::Left(&"a"), + DiffResult::Left(&"b"), + DiffResult::Right(&"c"), + DiffResult::Right(&"d"), + ] + ); + } +}