@@ -641,7 +641,7 @@ public void testCorrectChangeIssue114() throws IOException {
641641
642642 assertThat (rows ).extracting (item -> item .getTag ().name ()).containsExactly ("CHANGE" , "DELETE" , "EQUAL" , "CHANGE" , "EQUAL" );
643643 }
644-
644+
645645 @ Test
646646 public void testCorrectChangeIssue114_2 () throws IOException {
647647 List <String > original = Arrays .asList ("A" , "B" , "C" , "D" , "E" );
@@ -662,7 +662,7 @@ public void testCorrectChangeIssue114_2() throws IOException {
662662 assertThat (rows ).extracting (item -> item .getTag ().name ()).containsExactly ("CHANGE" , "DELETE" , "EQUAL" , "CHANGE" , "EQUAL" );
663663 assertThat (rows .get (1 ).toString ()).isEqualTo ("[DELETE,~B~,]" );
664664 }
665-
665+
666666 @ Test
667667 public void testIssue119WrongContextLength () throws IOException {
668668 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 {
683683 .filter (item -> item .getTag () != DiffRow .Tag .EQUAL )
684684 .forEach (System .out ::println );
685685 }
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+ }
686764}
0 commit comments