diff --git a/src/algorithms/myers.rs b/src/algorithms/myers.rs index ce36a67..d7ef1ef 100644 --- a/src/algorithms/myers.rs +++ b/src/algorithms/myers.rs @@ -185,26 +185,7 @@ fn test_diff() { let mut d = crate::algorithms::Replace::new(crate::algorithms::Capture::new()); diff_slices(&mut d, a, b).unwrap(); - insta::assert_debug_snapshot!(d.into_inner().ops(), @r###" - [ - Equal { - old_index: 0, - new_index: 0, - len: 3, - }, - Replace { - old_index: 3, - old_len: 1, - new_index: 3, - new_len: 1, - }, - Equal { - old_index: 4, - new_index: 4, - len: 1, - }, - ] - "###); + insta::assert_debug_snapshot!(d.into_inner().ops()); } #[test] @@ -214,32 +195,7 @@ fn test_contiguous() { let mut d = crate::algorithms::Replace::new(crate::algorithms::Capture::new()); diff_slices(&mut d, a, b).unwrap(); - insta::assert_debug_snapshot!(d.into_inner().ops(), @r###" - [ - Equal { - old_index: 0, - new_index: 0, - len: 3, - }, - Replace { - old_index: 3, - old_len: 2, - new_index: 3, - new_len: 2, - }, - Equal { - old_index: 5, - new_index: 5, - len: 2, - }, - Replace { - old_index: 7, - old_len: 1, - new_index: 7, - new_len: 1, - }, - ] - "###); + insta::assert_debug_snapshot!(d.into_inner().ops()); } #[test] @@ -249,33 +205,5 @@ fn test_pat() { let mut d = crate::algorithms::Capture::new(); diff_slices(&mut d, a, b).unwrap(); - insta::assert_debug_snapshot!(d.ops(), @r###" - [ - Equal { - old_index: 0, - new_index: 0, - len: 2, - }, - Delete { - old_index: 2, - old_len: 1, - new_index: 2, - }, - Equal { - old_index: 3, - new_index: 2, - len: 2, - }, - Insert { - old_index: 5, - new_index: 4, - new_len: 1, - }, - Insert { - old_index: 5, - new_index: 5, - new_len: 1, - }, - ] - "###); + insta::assert_debug_snapshot!(d.ops()); } diff --git a/src/algorithms/patience.rs b/src/algorithms/patience.rs index 29b1535..b70b8b2 100644 --- a/src/algorithms/patience.rs +++ b/src/algorithms/patience.rs @@ -183,71 +183,17 @@ fn test_patience() { let mut d = Replace::new(crate::algorithms::Capture::new()); diff_slices(&mut d, a, b).unwrap(); - insta::assert_debug_snapshot!(d.into_inner().ops(), @r###" - [ - Replace { - old_index: 0, - old_len: 1, - new_index: 0, - new_len: 1, - }, - Equal { - old_index: 1, - new_index: 1, - len: 3, - }, - Replace { - old_index: 4, - old_len: 2, - new_index: 4, - new_len: 2, - }, - Equal { - old_index: 6, - new_index: 6, - len: 2, - }, - Replace { - old_index: 8, - old_len: 1, - new_index: 8, - new_len: 1, - }, - Equal { - old_index: 9, - new_index: 9, - len: 1, - }, - Replace { - old_index: 10, - old_len: 1, - new_index: 10, - new_len: 1, - }, - ] - "###); + insta::assert_debug_snapshot!(d.into_inner().ops()); } #[test] fn test_patience_out_of_bounds_bug() { + // this used to be a bug let a: &[usize] = &[1, 2, 3, 4]; let b: &[usize] = &[1, 2, 3]; let mut d = Replace::new(crate::algorithms::Capture::new()); diff_slices(&mut d, a, b).unwrap(); - insta::assert_debug_snapshot!(d.into_inner().ops(), @r###" - [ - Equal { - old_index: 0, - new_index: 0, - len: 3, - }, - Delete { - old_index: 3, - old_len: 1, - new_index: 3, - }, - ] - "###); + insta::assert_debug_snapshot!(d.into_inner().ops()); } diff --git a/src/algorithms/snapshots/similar__algorithms__myers__contiguous.snap b/src/algorithms/snapshots/similar__algorithms__myers__contiguous.snap new file mode 100644 index 0000000..05b117c --- /dev/null +++ b/src/algorithms/snapshots/similar__algorithms__myers__contiguous.snap @@ -0,0 +1,28 @@ +--- +source: src/algorithms/myers.rs +expression: d.into_inner().ops() +--- +[ + Equal { + old_index: 0, + new_index: 0, + len: 3, + }, + Replace { + old_index: 3, + old_len: 2, + new_index: 3, + new_len: 2, + }, + Equal { + old_index: 5, + new_index: 5, + len: 2, + }, + Replace { + old_index: 7, + old_len: 1, + new_index: 7, + new_len: 1, + }, +] diff --git a/src/algorithms/snapshots/similar__algorithms__myers__diff.snap b/src/algorithms/snapshots/similar__algorithms__myers__diff.snap new file mode 100644 index 0000000..aa3556d --- /dev/null +++ b/src/algorithms/snapshots/similar__algorithms__myers__diff.snap @@ -0,0 +1,22 @@ +--- +source: src/algorithms/myers.rs +expression: d.into_inner().ops() +--- +[ + Equal { + old_index: 0, + new_index: 0, + len: 3, + }, + Replace { + old_index: 3, + old_len: 1, + new_index: 3, + new_len: 1, + }, + Equal { + old_index: 4, + new_index: 4, + len: 1, + }, +] diff --git a/src/algorithms/snapshots/similar__algorithms__myers__pat.snap b/src/algorithms/snapshots/similar__algorithms__myers__pat.snap new file mode 100644 index 0000000..469a1fc --- /dev/null +++ b/src/algorithms/snapshots/similar__algorithms__myers__pat.snap @@ -0,0 +1,31 @@ +--- +source: src/algorithms/myers.rs +expression: d.ops() +--- +[ + Equal { + old_index: 0, + new_index: 0, + len: 2, + }, + Delete { + old_index: 2, + old_len: 1, + new_index: 2, + }, + Equal { + old_index: 3, + new_index: 2, + len: 2, + }, + Insert { + old_index: 5, + new_index: 4, + new_len: 1, + }, + Insert { + old_index: 5, + new_index: 5, + new_len: 1, + }, +] diff --git a/src/algorithms/snapshots/similar__algorithms__patience__patience.snap b/src/algorithms/snapshots/similar__algorithms__patience__patience.snap new file mode 100644 index 0000000..d86a588 --- /dev/null +++ b/src/algorithms/snapshots/similar__algorithms__patience__patience.snap @@ -0,0 +1,45 @@ +--- +source: src/algorithms/patience.rs +expression: d.into_inner().ops() +--- +[ + Replace { + old_index: 0, + old_len: 1, + new_index: 0, + new_len: 1, + }, + Equal { + old_index: 1, + new_index: 1, + len: 3, + }, + Replace { + old_index: 4, + old_len: 2, + new_index: 4, + new_len: 2, + }, + Equal { + old_index: 6, + new_index: 6, + len: 2, + }, + Replace { + old_index: 8, + old_len: 1, + new_index: 8, + new_len: 1, + }, + Equal { + old_index: 9, + new_index: 9, + len: 1, + }, + Replace { + old_index: 10, + old_len: 1, + new_index: 10, + new_len: 1, + }, +] diff --git a/src/algorithms/snapshots/similar__algorithms__patience__patience_out_of_bounds_bug.snap b/src/algorithms/snapshots/similar__algorithms__patience__patience_out_of_bounds_bug.snap new file mode 100644 index 0000000..051c596 --- /dev/null +++ b/src/algorithms/snapshots/similar__algorithms__patience__patience_out_of_bounds_bug.snap @@ -0,0 +1,16 @@ +--- +source: src/algorithms/patience.rs +expression: d.into_inner().ops() +--- +[ + Equal { + old_index: 0, + new_index: 0, + len: 3, + }, + Delete { + old_index: 3, + old_len: 1, + new_index: 3, + }, +] diff --git a/src/snapshots/similar__text__captured_ops.snap b/src/snapshots/similar__text__captured_ops.snap new file mode 100644 index 0000000..cf74a13 --- /dev/null +++ b/src/snapshots/similar__text__captured_ops.snap @@ -0,0 +1,22 @@ +--- +source: src/text.rs +expression: "&diff.ops()" +--- +[ + Equal { + old_index: 0, + new_index: 0, + len: 1, + }, + Replace { + old_index: 1, + old_len: 1, + new_index: 1, + new_len: 1, + }, + Equal { + old_index: 2, + new_index: 2, + len: 1, + }, +] diff --git a/src/snapshots/similar__text__char_diff.snap b/src/snapshots/similar__text__char_diff.snap new file mode 100644 index 0000000..82217b6 --- /dev/null +++ b/src/snapshots/similar__text__char_diff.snap @@ -0,0 +1,39 @@ +--- +source: src/text.rs +expression: diff.ops() +--- +[ + Equal { + old_index: 0, + new_index: 0, + len: 1, + }, + Replace { + old_index: 1, + old_len: 1, + new_index: 1, + new_len: 1, + }, + Equal { + old_index: 2, + new_index: 2, + len: 5, + }, + Replace { + old_index: 7, + old_len: 2, + new_index: 7, + new_len: 1, + }, + Equal { + old_index: 9, + new_index: 8, + len: 1, + }, + Replace { + old_index: 10, + old_len: 1, + new_index: 9, + new_len: 1, + }, +] diff --git a/src/snapshots/similar__text__line_ops.snap b/src/snapshots/similar__text__line_ops.snap new file mode 100644 index 0000000..2fc6396 --- /dev/null +++ b/src/snapshots/similar__text__line_ops.snap @@ -0,0 +1,42 @@ +--- +source: src/text.rs +expression: "&changes" +--- +[ + Change { + tag: Equal, + old_index: Some( + 0, + ), + new_index: Some( + 0, + ), + value: "Hello World\n", + }, + Change { + tag: Delete, + old_index: Some( + 1, + ), + new_index: None, + value: "some stuff here\n", + }, + Change { + tag: Insert, + old_index: None, + new_index: Some( + 1, + ), + value: "some amazing stuff here\n", + }, + Change { + tag: Equal, + old_index: Some( + 2, + ), + new_index: Some( + 2, + ), + value: "some more stuff here\n", + }, +] diff --git a/src/snapshots/similar__text__unified_diff.snap b/src/snapshots/similar__text__unified_diff.snap new file mode 100644 index 0000000..70f8474 --- /dev/null +++ b/src/snapshots/similar__text__unified_diff.snap @@ -0,0 +1,11 @@ +--- +source: src/text.rs +expression: "&diff.unified_diff(3, Some((\"old\", \"new\")))" +--- +--- old ++++ new +@@ -0 +2 @@ + Hello World +-some stuff here ++some amazing stuff here + some more stuff here diff --git a/src/text.rs b/src/text.rs index c1c149d..7734bda 100644 --- a/src/text.rs +++ b/src/text.rs @@ -605,26 +605,7 @@ fn test_captured_ops() { "Hello World\nsome stuff here\nsome more stuff here\n", "Hello World\nsome amazing stuff here\nsome more stuff here\n", ); - insta::assert_debug_snapshot!(&diff.ops(), @r###" - [ - Equal { - old_index: 0, - new_index: 0, - len: 1, - }, - Replace { - old_index: 1, - old_len: 1, - new_index: 1, - new_len: 1, - }, - Equal { - old_index: 2, - new_index: 2, - len: 1, - }, - ] - "###); + insta::assert_debug_snapshot!(&diff.ops()); } #[test] @@ -634,15 +615,7 @@ fn test_unified_diff() { "Hello World\nsome amazing stuff here\nsome more stuff here\n", ); assert_eq!(diff.newline_terminated(), true); - insta::assert_snapshot!(&diff.unified_diff(3, Some(("old", "new"))), @r###" - --- old - +++ new - @@ -0 +2 @@ - Hello World - -some stuff here - +some amazing stuff here - some more stuff here - "###); + insta::assert_snapshot!(&diff.unified_diff(3, Some(("old", "new")))); } #[test] @@ -657,44 +630,11 @@ fn test_line_ops() { .iter() .flat_map(|op| diff.iter_changes(op)) .collect::>(); - insta::assert_debug_snapshot!(&changes, @r###" - [ - Change { - tag: Equal, - old_index: Some( - 0, - ), - new_index: Some( - 0, - ), - value: "Hello World\n", - }, - Change { - tag: Delete, - old_index: Some( - 1, - ), - new_index: None, - value: "some stuff here\n", - }, - Change { - tag: Insert, - old_index: None, - new_index: Some( - 1, - ), - value: "some amazing stuff here\n", - }, - Change { - tag: Equal, - old_index: Some( - 2, - ), - new_index: Some( - 2, - ), - value: "some more stuff here\n", - }, - ] - "###); + insta::assert_debug_snapshot!(&changes); +} + +#[test] +fn test_char_diff() { + let diff = TextDiff::from_chars("Hello World", "Hallo Welt"); + insta::assert_debug_snapshot!(diff.ops()); }