1
1
package com .github .difflib .text ;
2
2
3
+ import com .github .difflib .DiffUtils ;
4
+ import com .github .difflib .algorithm .myers .MyersDiffWithLinearSpace ;
3
5
import java .io .File ;
4
6
import java .io .IOException ;
7
+ import java .net .URISyntaxException ;
8
+ import java .nio .file .FileSystem ;
9
+ import java .nio .file .FileSystems ;
5
10
import java .nio .file .Files ;
6
11
import java .nio .file .Paths ;
7
12
import java .util .Arrays ;
@@ -721,7 +726,7 @@ public void testIssue129WithDeltaDecompression() {
721
726
722
727
assertThat (txt ).isEqualTo ("EQUAL EQUAL EQUAL CHANGE INSERT INSERT EQUAL EQUAL EQUAL" );
723
728
}
724
-
729
+
725
730
@ Test
726
731
public void testIssue129SkipDeltaDecompression () {
727
732
List <String > lines1 = Arrays .asList (
@@ -743,25 +748,25 @@ public void testIssue129SkipDeltaDecompression() {
743
748
"banana2" ,
744
749
"banana3" );
745
750
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 (" " ));
751
+ String txt
752
+ = DiffRowGenerator .create ()
753
+ .showInlineDiffs (true )
754
+ .decompressDeltas (false )
755
+ .oldTag ((tag , isOpening ) -> isOpening ? "==old" + tag + "==>" : "<==old==" )
756
+ .newTag ((tag , isOpening ) -> isOpening ? "==new" + tag + "==>" : "<==new==" )
757
+ .build ()
758
+ .generateDiffRows (lines1 , lines2 )
759
+ .stream ()
760
+ .map (row -> row .getTag ().toString ())
761
+ .collect (joining (" " ));
757
762
// .forEachOrdered(row -> {
758
763
// System.out.printf("%4d %-8s %-80s %-80s\n", entry[0]++,
759
764
// row.getTag(), row.getOldLine(), row.getNewLine());
760
765
// });
761
766
762
767
assertThat (txt ).isEqualTo ("EQUAL EQUAL EQUAL CHANGE CHANGE CHANGE EQUAL EQUAL EQUAL" );
763
768
}
764
-
769
+
765
770
@ Test
766
771
public void testIssue129SkipWhitespaceChanges () throws IOException {
767
772
String original = Files .lines (Paths .get ("target/test-classes/com/github/difflib/text/issue129_1.txt" )).collect (joining ("\n " ));
@@ -780,9 +785,33 @@ public void testIssue129SkipWhitespaceChanges() throws IOException {
780
785
Arrays .asList (revised .split ("\n " )));
781
786
782
787
assertThat (rows ).hasSize (13 );
783
-
788
+
784
789
rows .stream ()
785
790
.filter (item -> item .getTag () != DiffRow .Tag .EQUAL )
786
791
.forEach (System .out ::println );
787
792
}
793
+
794
+ @ Test
795
+ public void testIssue188HangOnExamples () throws IOException , URISyntaxException {
796
+ try (FileSystem zipFs = FileSystems .newFileSystem (Paths .get ("target/test-classes/com/github/difflib/text/test.zip" ), null );) {
797
+ List <String > original = Files .readAllLines (zipFs .getPath ("old.html" ));
798
+ List <String > revised = Files .readAllLines (zipFs .getPath ("new.html" ));
799
+
800
+ DiffRowGenerator generator = DiffRowGenerator .create ()
801
+ .lineNormalizer (line -> line )
802
+ .showInlineDiffs (true )
803
+ .mergeOriginalRevised (true )
804
+ .inlineDiffByWord (true )
805
+ .decompressDeltas (true )
806
+ .oldTag (f -> f ? "<s style=\" background-color: #bbbbbb\" >" : "</s>" )
807
+ .newTag (f -> f ? "<b style=\" background-color: #aaffaa\" >" : "</b>" )
808
+ .build ();
809
+
810
+ //List<DiffRow> rows = generator.generateDiffRows(original, revised);
811
+ List <DiffRow > rows = generator .generateDiffRows (original , DiffUtils .diff (original , revised , new MyersDiffWithLinearSpace <>() ));
812
+
813
+ System .out .println (rows );
814
+ }
815
+ }
788
816
}
817
+
0 commit comments