Skip to content

Commit 79b0a27

Browse files
committed
test: factor out duplicate code in the unparser tests
1 parent bb59058 commit 79b0a27

1 file changed

Lines changed: 31 additions & 50 deletions

File tree

src/test/java/VariationUnparserTest.java

Lines changed: 31 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
import org.variantsync.diffdetective.variation.diff.parse.VariationDiffParseOptions;
1313
import org.variantsync.diffdetective.variation.tree.VariationTree;
1414
import org.variantsync.diffdetective.variation.VariationUnparser;
15-
import org.variantsync.diffdetective.variation.tree.source.VariationTreeSource;
1615

1716
import static org.junit.jupiter.api.Assertions.assertEquals;
1817
import static org.variantsync.diffdetective.experiments.thesis_es.UnparseAnalysis.removeWhitespace;
@@ -39,81 +38,54 @@ public static Stream<Path> testsDiff() throws IOException {
3938

4039
@Test
4140
public void testTree() throws IOException, DiffParseException {
42-
String original = Files.readString(treeDir.resolve("test8.txt"));
43-
VariationTree<DiffLinesLabel> tree =
44-
VariationTree.fromText(original, VariationTreeSource.Unknown, VariationDiffParseOptions.Default);
45-
String unparsed = VariationUnparser.variationTreeUnparser(tree);
41+
Path file = treeDir.resolve("test8.txt");
4642

47-
assertEquals(removeWhitespace(original, false), removeWhitespace(unparsed, false));
43+
assertEqualTree(
44+
Files.readString(file),
45+
parseUnparseTree(file, VariationDiffParseOptions.Default));
4846
}
4947

5048
@Test
5149
public void testDiffSemEq() throws IOException, DiffParseException {
52-
String original = Files.readString(treeDir.resolve("diff").resolve("diff.diff"));
53-
VariationDiff<DiffLinesLabel> diff = VariationDiff.fromDiff(original, VariationDiffParseOptions.Default);
54-
String unparsed = VariationUnparser.variationDiffUnparser(diff);
55-
56-
assertEquals(
57-
removeWhitespace(VariationUnparser.undiff(original, Time.BEFORE), false),
58-
removeWhitespace(VariationUnparser.undiff(unparsed, Time.BEFORE), false));
59-
assertEquals(
60-
removeWhitespace(VariationUnparser.undiff(original, Time.AFTER), false),
61-
removeWhitespace(VariationUnparser.undiff(unparsed, Time.AFTER), false));
50+
Path file = treeDir.resolve("diff").resolve("diff.diff");
51+
52+
assertEqualDiff(
53+
Files.readString(file),
54+
parseUnparseDiff(file, VariationDiffParseOptions.Default));
6255
}
6356

6457
@ParameterizedTest
6558
@MethodSource("testsTree")
6659
public void testTreeUnparse(Path testCasePath) throws IOException, DiffParseException {
67-
String original = Files.readString(testCasePath);
68-
original = original.replaceAll("\\r\\n", "\n");
69-
7060
String unparsed1 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(false, false));
7161
String unparsed2 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(false, true));
7262
String unparsed3 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(true, false));
7363
String unparsed4 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(true, true));
7464

75-
original = removeWhitespace(original, false);
76-
unparsed1 = removeWhitespace(unparsed1, false);
77-
unparsed2 = removeWhitespace(unparsed2, false);
78-
unparsed3 = removeWhitespace(unparsed3, false);
79-
unparsed4 = removeWhitespace(unparsed4, false);
65+
String original = Files.readString(testCasePath);
66+
original = original.replaceAll("\\r\\n", "\n");
8067

81-
assertEquals(original, unparsed1);
82-
assertEquals(original, unparsed2);
83-
assertEquals(original, unparsed3);
84-
assertEquals(original, unparsed4);
68+
assertEqualTree(original, unparsed1);
69+
assertEqualTree(original, unparsed2);
70+
assertEqualTree(original, unparsed3);
71+
assertEqualTree(original, unparsed4);
8572
}
8673

8774
@ParameterizedTest
8875
@MethodSource("testsDiff")
8976
public void testDiffUnparse(Path testCasePath) throws IOException, DiffParseException {
90-
String original = Files.readString(testCasePath);
91-
original = original.replaceAll("\\r\\n", "\n");
92-
9377
String unparsed1 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(false, false));
9478
String unparsed2 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(false, true));
9579
String unparsed3 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(true, false));
9680
String unparsed4 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(true, true));
9781

98-
String original1 = VariationUnparser.undiff(original, Time.BEFORE);
99-
String original2 = VariationUnparser.undiff(original, Time.AFTER);
100-
String unparsed11 = VariationUnparser.undiff(unparsed1, Time.BEFORE);
101-
String unparsed12 = VariationUnparser.undiff(unparsed1, Time.AFTER);
102-
String unparsed21 = VariationUnparser.undiff(unparsed2, Time.BEFORE);
103-
String unparsed22 = VariationUnparser.undiff(unparsed2, Time.AFTER);
104-
String unparsed31 = VariationUnparser.undiff(unparsed3, Time.BEFORE);
105-
String unparsed32 = VariationUnparser.undiff(unparsed3, Time.AFTER);
106-
String unparsed41 = VariationUnparser.undiff(unparsed4, Time.BEFORE);
107-
String unparsed42 = VariationUnparser.undiff(unparsed4, Time.AFTER);
108-
109-
assertEquals(removeWhitespace(original1, false), removeWhitespace(unparsed11, false));
110-
assertEquals(removeWhitespace(original2, false), removeWhitespace(unparsed12, false));
111-
assertEquals(removeWhitespace(original1, false), removeWhitespace(unparsed21, false));
112-
assertEquals(removeWhitespace(original2, false), removeWhitespace(unparsed22, false));
113-
assertEquals(removeWhitespace(original1, false), removeWhitespace(unparsed31, false));
114-
assertEquals(removeWhitespace(original2, false), removeWhitespace(unparsed32, false));
115-
assertEquals(removeWhitespace(original1, false), removeWhitespace(unparsed41, false));
116-
assertEquals(removeWhitespace(original2, false), removeWhitespace(unparsed42, false));
82+
String original = Files.readString(testCasePath);
83+
original = original.replaceAll("\\r\\n", "\n");
84+
85+
assertEqualDiff(original, unparsed1);
86+
assertEqualDiff(original, unparsed2);
87+
assertEqualDiff(original, unparsed3);
88+
assertEqualDiff(original, unparsed4);
11789
}
11890

11991
public static String parseUnparseTree(Path path, VariationDiffParseOptions option) throws IOException, DiffParseException {
@@ -125,4 +97,13 @@ public static String parseUnparseDiff(Path path, VariationDiffParseOptions optio
12597
VariationDiff<DiffLinesLabel> diff = VariationDiff.fromFile(path, option);
12698
return VariationUnparser.variationDiffUnparser(diff);
12799
}
100+
101+
private static void assertEqualDiff(String expected, String actual) {
102+
assertEqualTree(VariationUnparser.undiff(expected, Time.BEFORE), VariationUnparser.undiff(actual, Time.BEFORE));
103+
assertEqualTree(VariationUnparser.undiff(expected, Time.AFTER), VariationUnparser.undiff(actual, Time.AFTER));
104+
}
105+
106+
private static void assertEqualTree(String expected, String actual) {
107+
assertEquals(removeWhitespace(expected, false), removeWhitespace(actual, false));
108+
}
128109
}

0 commit comments

Comments
 (0)