@@ -641,7 +641,7 @@ public void testCorrectChangeIssue114() throws IOException {
641
641
642
642
assertThat (rows ).extracting (item -> item .getTag ().name ()).containsExactly ("CHANGE" , "DELETE" , "EQUAL" , "CHANGE" , "EQUAL" );
643
643
}
644
-
644
+
645
645
@ Test
646
646
public void testCorrectChangeIssue114_2 () throws IOException {
647
647
List <String > original = Arrays .asList ("A" , "B" , "C" , "D" , "E" );
@@ -662,7 +662,7 @@ public void testCorrectChangeIssue114_2() throws IOException {
662
662
assertThat (rows ).extracting (item -> item .getTag ().name ()).containsExactly ("CHANGE" , "DELETE" , "EQUAL" , "CHANGE" , "EQUAL" );
663
663
assertThat (rows .get (1 ).toString ()).isEqualTo ("[DELETE,~B~,]" );
664
664
}
665
-
665
+
666
666
@ Test
667
667
public void testIssue119WrongContextLength () throws IOException {
668
668
String original = Files .lines (Paths .get ("target/test-classes/com/github/difflib/text/issue_119_original.txt" )).collect (joining ("\n " ));
@@ -683,4 +683,82 @@ public void testIssue119WrongContextLength() throws IOException {
683
683
.filter (item -> item .getTag () != DiffRow .Tag .EQUAL )
684
684
.forEach (System .out ::println );
685
685
}
686
+
687
+ @ Test
688
+ public void testIssue129WithDeltaDecompression () {
689
+ List <String > lines1 = Arrays .asList (
690
+ "apple1" ,
691
+ "apple2" ,
692
+ "apple3" ,
693
+ "A man named Frankenstein abc to Switzerland for cookies!" ,
694
+ "banana1" ,
695
+ "banana2" ,
696
+ "banana3" );
697
+ List <String > lines2 = Arrays .asList (
698
+ "apple1" ,
699
+ "apple2" ,
700
+ "apple3" ,
701
+ "A man named Frankenstein" ,
702
+ "xyz" ,
703
+ "to Switzerland for cookies!" ,
704
+ "banana1" ,
705
+ "banana2" ,
706
+ "banana3" );
707
+ int [] entry = {1 };
708
+ String txt = DiffRowGenerator .create ()
709
+ .showInlineDiffs (true )
710
+ .oldTag ((tag , isOpening ) -> isOpening ? "==old" + tag + "==>" : "<==old==" )
711
+ .newTag ((tag , isOpening ) -> isOpening ? "==new" + tag + "==>" : "<==new==" )
712
+ .build ()
713
+ .generateDiffRows (lines1 , lines2 )
714
+ .stream ()
715
+ .map (row -> row .getTag ().toString ())
716
+ .collect (joining (" " ));
717
+ // .forEachOrdered(row -> {
718
+ // System.out.printf("%4d %-8s %-80s %-80s\n", entry[0]++,
719
+ // row.getTag(), row.getOldLine(), row.getNewLine());
720
+ // });
721
+
722
+ assertThat (txt ).isEqualTo ("EQUAL EQUAL EQUAL CHANGE INSERT INSERT EQUAL EQUAL EQUAL" );
723
+ }
724
+
725
+ @ Test
726
+ public void testIssue129SkipDeltaDecompression () {
727
+ List <String > lines1 = Arrays .asList (
728
+ "apple1" ,
729
+ "apple2" ,
730
+ "apple3" ,
731
+ "A man named Frankenstein abc to Switzerland for cookies!" ,
732
+ "banana1" ,
733
+ "banana2" ,
734
+ "banana3" );
735
+ List <String > lines2 = Arrays .asList (
736
+ "apple1" ,
737
+ "apple2" ,
738
+ "apple3" ,
739
+ "A man named Frankenstein" ,
740
+ "xyz" ,
741
+ "to Switzerland for cookies!" ,
742
+ "banana1" ,
743
+ "banana2" ,
744
+ "banana3" );
745
+ int [] entry = {1 };
746
+ String txt =
747
+ DiffRowGenerator .create ()
748
+ .showInlineDiffs (true )
749
+ .decompressDeltas (false )
750
+ .oldTag ((tag , isOpening ) -> isOpening ? "==old" + tag + "==>" : "<==old==" )
751
+ .newTag ((tag , isOpening ) -> isOpening ? "==new" + tag + "==>" : "<==new==" )
752
+ .build ()
753
+ .generateDiffRows (lines1 , lines2 )
754
+ .stream ()
755
+ .map (row -> row .getTag ().toString ())
756
+ .collect (joining (" " ));
757
+ // .forEachOrdered(row -> {
758
+ // System.out.printf("%4d %-8s %-80s %-80s\n", entry[0]++,
759
+ // row.getTag(), row.getOldLine(), row.getNewLine());
760
+ // });
761
+
762
+ assertThat (txt ).isEqualTo ("EQUAL EQUAL EQUAL CHANGE CHANGE CHANGE EQUAL EQUAL EQUAL" );
763
+ }
686
764
}
0 commit comments