|
18 | 18 | import static org.variantsync.diffdetective.experiments.thesis_es.UnparseAnalysis.removeWhitespace; |
19 | 19 |
|
20 | 20 | public class VariationUnparserTest { |
21 | | - private final static Path testDirTree = Constants.RESOURCE_DIR.resolve("unparser"); |
22 | | - |
| 21 | + private final static Path treeDir = Constants.RESOURCE_DIR.resolve("unparser"); |
23 | 22 | private final static Path testDirDiff = Constants.RESOURCE_DIR.resolve("diffs").resolve("parser"); |
24 | | - private final static String testCaseSuffixTree = ".txt"; |
25 | | - |
26 | | - private final static String testCaseSuffixDiff = ".diff"; |
| 23 | + private final static String treeSuffix = ".txt"; |
| 24 | + private final static String diffSuffix = ".diff"; |
27 | 25 |
|
28 | | - protected static Stream<Path> findTestCases(Path dir, String testCaseSuffix) throws IOException { |
| 26 | + protected static Stream<Path> findTestCases(Path dir, String filenameSuffix) throws IOException { |
29 | 27 | return Files |
30 | 28 | .list(dir) |
31 | | - .filter(filename -> filename.getFileName().toString().endsWith(testCaseSuffix)); |
| 29 | + .filter(filename -> filename.getFileName().toString().endsWith(filenameSuffix)); |
32 | 30 | } |
33 | 31 |
|
34 | 32 | public static Stream<Path> testsTree() throws IOException { |
35 | | - return findTestCases(testDirTree, testCaseSuffixTree); |
| 33 | + return findTestCases(treeDir, treeSuffix); |
36 | 34 | } |
37 | 35 |
|
38 | 36 | public static Stream<Path> testsDiff() throws IOException { |
39 | | - return findTestCases(testDirDiff, testCaseSuffixDiff); |
| 37 | + return findTestCases(testDirDiff, diffSuffix); |
40 | 38 | } |
41 | 39 |
|
42 | 40 | @Test |
43 | 41 | public void testTree() throws IOException, DiffParseException { |
44 | | - String source = Files.readString(testDirTree.resolve("test8.txt")); |
45 | | - VariationTree<DiffLinesLabel> tree = VariationTree.fromText(source, VariationTreeSource.Unknown, |
46 | | - VariationDiffParseOptions.Default); |
47 | | - String temp = VariationUnparser.variationTreeUnparser(tree); |
| 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); |
48 | 46 |
|
49 | | - assertEquals(removeWhitespace(source, false), removeWhitespace(temp, false)); |
| 47 | + assertEquals(removeWhitespace(original, false), removeWhitespace(unparsed, false)); |
50 | 48 | } |
51 | 49 |
|
52 | 50 | @Test |
53 | 51 | public void testDiffSemEq() throws IOException, DiffParseException { |
54 | | - String source = Files |
55 | | - .readString(testDirTree.resolve("diff").resolve("diff.diff")); |
56 | | - VariationDiff<DiffLinesLabel> diff = VariationDiff.fromDiff(source, VariationDiffParseOptions.Default); |
57 | | - String temp = VariationUnparser.variationDiffUnparser(diff); |
| 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); |
58 | 55 |
|
59 | 56 | assertEquals( |
60 | | - removeWhitespace(VariationUnparser.undiff(source, Time.BEFORE), false), |
61 | | - removeWhitespace(VariationUnparser.undiff(temp, Time.BEFORE), false)); |
| 57 | + removeWhitespace(VariationUnparser.undiff(original, Time.BEFORE), false), |
| 58 | + removeWhitespace(VariationUnparser.undiff(unparsed, Time.BEFORE), false)); |
62 | 59 | assertEquals( |
63 | | - removeWhitespace(VariationUnparser.undiff(source, Time.AFTER), false), |
64 | | - removeWhitespace(VariationUnparser.undiff(temp, Time.AFTER), false)); |
| 60 | + removeWhitespace(VariationUnparser.undiff(original, Time.AFTER), false), |
| 61 | + removeWhitespace(VariationUnparser.undiff(unparsed, Time.AFTER), false)); |
65 | 62 | } |
66 | 63 |
|
67 | 64 | @ParameterizedTest |
68 | 65 | @MethodSource("testsTree") |
69 | | - public void testCaseTree(Path testCasePath) throws IOException, DiffParseException { |
70 | | - String temp = Files.readString(testCasePath); |
71 | | - temp = temp.replaceAll("\\r\\n", "\n"); |
72 | | - |
73 | | - String unparse1 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(false, false)); |
74 | | - String unparse2 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(false, true)); |
75 | | - String unparse3 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(true, false)); |
76 | | - String unparse4 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(true, true)); |
77 | | - |
78 | | - temp = removeWhitespace(temp, false); |
79 | | - unparse1 = removeWhitespace(unparse1, false); |
80 | | - unparse2 = removeWhitespace(unparse2, false); |
81 | | - unparse3 = removeWhitespace(unparse3, false); |
82 | | - unparse4 = removeWhitespace(unparse4, false); |
83 | | - |
84 | | - assertEquals(temp, unparse1); |
85 | | - assertEquals(temp, unparse2); |
86 | | - assertEquals(temp, unparse3); |
87 | | - assertEquals(temp, unparse4); |
| 66 | + public void testTreeUnparse(Path testCasePath) throws IOException, DiffParseException { |
| 67 | + String original = Files.readString(testCasePath); |
| 68 | + original = original.replaceAll("\\r\\n", "\n"); |
| 69 | + |
| 70 | + String unparsed1 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(false, false)); |
| 71 | + String unparsed2 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(false, true)); |
| 72 | + String unparsed3 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(true, false)); |
| 73 | + String unparsed4 = parseUnparseTree(testCasePath, new VariationDiffParseOptions(true, true)); |
| 74 | + |
| 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); |
| 80 | + |
| 81 | + assertEquals(original, unparsed1); |
| 82 | + assertEquals(original, unparsed2); |
| 83 | + assertEquals(original, unparsed3); |
| 84 | + assertEquals(original, unparsed4); |
88 | 85 | } |
89 | 86 |
|
90 | 87 | @ParameterizedTest |
91 | 88 | @MethodSource("testsDiff") |
92 | | - public void testCaseDiff(Path testCasePath) throws IOException, DiffParseException { |
93 | | - String temp = Files.readString(testCasePath); |
94 | | - temp = temp.replaceAll("\\r\\n", "\n"); |
95 | | - |
96 | | - String unparse1 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(false, false)); |
97 | | - String unparse2 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(false, true)); |
98 | | - String unparse3 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(true, false)); |
99 | | - String unparse4 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(true, true)); |
100 | | - |
101 | | - String temp1 = VariationUnparser.undiff(temp, Time.BEFORE); |
102 | | - String temp2 = VariationUnparser.undiff(temp, Time.AFTER); |
103 | | - String unparse11 = VariationUnparser.undiff(unparse1, Time.BEFORE); |
104 | | - String unparse12 = VariationUnparser.undiff(unparse1, Time.AFTER); |
105 | | - String unparse21 = VariationUnparser.undiff(unparse2, Time.BEFORE); |
106 | | - String unparse22 = VariationUnparser.undiff(unparse2, Time.AFTER); |
107 | | - String unparse31 = VariationUnparser.undiff(unparse3, Time.BEFORE); |
108 | | - String unparse32 = VariationUnparser.undiff(unparse3, Time.AFTER); |
109 | | - String unparse41 = VariationUnparser.undiff(unparse4, Time.BEFORE); |
110 | | - String unparse42 = VariationUnparser.undiff(unparse4, Time.AFTER); |
111 | | - |
112 | | - assertEquals(removeWhitespace(temp1, false), removeWhitespace(unparse11, false)); |
113 | | - assertEquals(removeWhitespace(temp2, false), removeWhitespace(unparse12, false)); |
114 | | - assertEquals(removeWhitespace(temp1, false), removeWhitespace(unparse21, false)); |
115 | | - assertEquals(removeWhitespace(temp2, false), removeWhitespace(unparse22, false)); |
116 | | - assertEquals(removeWhitespace(temp1, false), removeWhitespace(unparse31, false)); |
117 | | - assertEquals(removeWhitespace(temp2, false), removeWhitespace(unparse32, false)); |
118 | | - assertEquals(removeWhitespace(temp1, false), removeWhitespace(unparse41, false)); |
119 | | - assertEquals(removeWhitespace(temp2, false), removeWhitespace(unparse42, false)); |
| 89 | + public void testDiffUnparse(Path testCasePath) throws IOException, DiffParseException { |
| 90 | + String original = Files.readString(testCasePath); |
| 91 | + original = original.replaceAll("\\r\\n", "\n"); |
| 92 | + |
| 93 | + String unparsed1 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(false, false)); |
| 94 | + String unparsed2 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(false, true)); |
| 95 | + String unparsed3 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(true, false)); |
| 96 | + String unparsed4 = parseUnparseDiff(testCasePath, new VariationDiffParseOptions(true, true)); |
| 97 | + |
| 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)); |
120 | 117 | } |
121 | 118 |
|
122 | 119 | public static String parseUnparseTree(Path path, VariationDiffParseOptions option) throws IOException, DiffParseException { |
|
0 commit comments