Skip to content

Commit dc5ecb8

Browse files
committed
fixes #159
1 parent 4cad0ea commit dc5ecb8

11 files changed

+41
-40
lines changed

CHANGELOG.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
66
This project uses a custom versioning scheme (and not [Semantic Versioning](https://semver.org/spec/v2.0.0.html)).
77

8-
## [unreleased]
8+
## [4.13]
9+
10+
* API change: due to Issue #159: the author of the algorithm is Eugene Myers, therefore classes and methods were renamed accordingly
911

1012
### Changed
1113

java-diff-utils/src/main/java/com/github/difflib/DiffUtils.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.github.difflib.algorithm.DiffAlgorithmFactory;
1919
import com.github.difflib.algorithm.DiffAlgorithmI;
2020
import com.github.difflib.algorithm.DiffAlgorithmListener;
21-
import com.github.difflib.algorithm.myers.MeyersDiff;
21+
import com.github.difflib.algorithm.myers.MyersDiff;
2222
import com.github.difflib.patch.AbstractDelta;
2323
import com.github.difflib.patch.Patch;
2424
import com.github.difflib.patch.PatchFailedException;
@@ -37,7 +37,7 @@ public final class DiffUtils {
3737
/**
3838
* This factory generates the DEFAULT_DIFF algorithm for all these routines.
3939
*/
40-
static DiffAlgorithmFactory DEFAULT_DIFF = MeyersDiff.factory();
40+
static DiffAlgorithmFactory DEFAULT_DIFF = MyersDiff.factory();
4141

4242
public static void withDefaultDiffAlgorithmFactory(DiffAlgorithmFactory factory) {
4343
DEFAULT_DIFF = factory;
@@ -95,7 +95,7 @@ public static <T> Patch<T> diff(List<T> source, List<T> target,
9595
return DiffUtils.diff(source, target,
9696
DEFAULT_DIFF.create(equalizer));
9797
}
98-
return DiffUtils.diff(source, target, new MeyersDiff<>());
98+
return DiffUtils.diff(source, target, new MyersDiff<>());
9999
}
100100

101101
public static <T> Patch<T> diff(List<T> original, List<T> revised,

java-diff-utils/src/main/java/com/github/difflib/algorithm/myers/MeyersDiff.java renamed to java-diff-utils/src/main/java/com/github/difflib/algorithm/myers/MyersDiff.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@
2727
import java.util.function.BiPredicate;
2828

2929
/**
30-
* A clean-room implementation of Eugene Meyers greedy differencing algorithm.
30+
* A clean-room implementation of Eugene Myers greedy differencing algorithm.
3131
*/
32-
public final class MeyersDiff<T> implements DiffAlgorithmI<T> {
32+
public final class MyersDiff<T> implements DiffAlgorithmI<T> {
3333

3434
private final BiPredicate<T, T> equalizer;
3535

36-
public MeyersDiff() {
36+
public MyersDiff() {
3737
equalizer = Object::equals;
3838
}
3939

40-
public MeyersDiff(final BiPredicate<T, T> equalizer) {
40+
public MyersDiff(final BiPredicate<T, T> equalizer) {
4141
Objects.requireNonNull(equalizer, "equalizer must not be null");
4242
this.equalizer = equalizer;
4343
}
@@ -187,13 +187,13 @@ public static DiffAlgorithmFactory factory() {
187187
@Override
188188
public <T> DiffAlgorithmI<T>
189189
create() {
190-
return new MeyersDiff<T>();
190+
return new MyersDiff<T>();
191191
}
192192

193193
@Override
194194
public <T> DiffAlgorithmI<T>
195195
create(BiPredicate < T, T > equalizer) {
196-
return new MeyersDiff<T>(equalizer);
196+
return new MyersDiff<T>(equalizer);
197197
}
198198
};
199199
}

java-diff-utils/src/main/java/com/github/difflib/algorithm/myers/MeyersDiffWithLinearSpace.java renamed to java-diff-utils/src/main/java/com/github/difflib/algorithm/myers/MyersDiffWithLinearSpace.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,15 +30,15 @@
3030
*
3131
* @author tw
3232
*/
33-
public class MeyersDiffWithLinearSpace<T> implements DiffAlgorithmI<T> {
33+
public class MyersDiffWithLinearSpace<T> implements DiffAlgorithmI<T> {
3434

3535
private final BiPredicate<T, T> equalizer;
3636

37-
public MeyersDiffWithLinearSpace() {
37+
public MyersDiffWithLinearSpace() {
3838
equalizer = Object::equals;
3939
}
4040

41-
public MeyersDiffWithLinearSpace(final BiPredicate<T, T> equalizer) {
41+
public MyersDiffWithLinearSpace(final BiPredicate<T, T> equalizer) {
4242
Objects.requireNonNull(equalizer, "equalizer must not be null");
4343
this.equalizer = equalizer;
4444
}
@@ -231,13 +231,13 @@ public static DiffAlgorithmFactory factory() {
231231
@Override
232232
public <T> DiffAlgorithmI<T>
233233
create() {
234-
return new MeyersDiffWithLinearSpace<T>();
234+
return new MyersDiffWithLinearSpace<T>();
235235
}
236236

237237
@Override
238238
public <T> DiffAlgorithmI<T>
239239
create(BiPredicate < T, T > equalizer) {
240-
return new MeyersDiffWithLinearSpace<T>(equalizer);
240+
return new MyersDiffWithLinearSpace<T>(equalizer);
241241
}
242242
};
243243
}

java-diff-utils/src/test/java/com/github/difflib/DiffUtilsTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ public void testDiffMissesChangeForkDnaumenkoIssue31() {
132132
}
133133

134134
/**
135-
* To test this, the greedy meyer algorithm is not suitable.
135+
* To test this, the greedy Myer algorithm is not suitable.
136136
*/
137137
@Test
138138
@Disabled

java-diff-utils/src/test/java/com/github/difflib/algorithm/myers/MyersDiffTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ public class MyersDiffTest {
3434
public void testDiffMyersExample1Forward() {
3535
List<String> original = Arrays.asList("A", "B", "C", "A", "B", "B", "A");
3636
List<String> revised = Arrays.asList("C", "B", "A", "B", "A", "C");
37-
final Patch<String> patch = Patch.generate(original, revised, new MeyersDiff<String>().computeDiff(original, revised, null));
37+
final Patch<String> patch = Patch.generate(original, revised, new MyersDiff<String>().computeDiff(original, revised, null));
3838
assertNotNull(patch);
3939
assertEquals(4, patch.getDeltas().size());
4040
assertEquals("Patch{deltas=[[DeleteDelta, position: 0, lines: [A, B]], [InsertDelta, position: 3, lines: [B]], [DeleteDelta, position: 5, lines: [B]], [InsertDelta, position: 7, lines: [C]]]}", patch.toString());
@@ -47,7 +47,7 @@ public void testDiffMyersExample1ForwardWithListener() {
4747

4848
List<String> logdata = new ArrayList<>();
4949
final Patch<String> patch = Patch.generate(original, revised,
50-
new MeyersDiff<String>().computeDiff(original, revised, new DiffAlgorithmListener() {
50+
new MyersDiff<String>().computeDiff(original, revised, new DiffAlgorithmListener() {
5151
@Override
5252
public void diffStart() {
5353
logdata.add("start");
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@
3030
*
3131
* @author tw
3232
*/
33-
public class MeyersDiffWithLinearSpaceTest {
33+
public class MyersDiffWithLinearSpaceTest {
3434

3535
@Test
3636
public void testDiffMyersExample1Forward() {
3737
List<String> original = Arrays.asList("A", "B", "C", "A", "B", "B", "A");
3838
List<String> revised = Arrays.asList("C", "B", "A", "B", "A", "C");
39-
final Patch<String> patch = Patch.generate(original, revised, new MeyersDiffWithLinearSpace<String>().computeDiff(original, revised, null));
39+
final Patch<String> patch = Patch.generate(original, revised, new MyersDiffWithLinearSpace<String>().computeDiff(original, revised, null));
4040
assertNotNull(patch);
4141
System.out.println(patch);
4242
assertEquals(5, patch.getDeltas().size());
@@ -50,7 +50,7 @@ public void testDiffMyersExample1ForwardWithListener() {
5050

5151
List<String> logdata = new ArrayList<>();
5252
final Patch<String> patch = Patch.generate(original, revised,
53-
new MeyersDiffWithLinearSpace<String>().computeDiff(original, revised, new DiffAlgorithmListener() {
53+
new MyersDiffWithLinearSpace<String>().computeDiff(original, revised, new DiffAlgorithmListener() {
5454
@Override
5555
public void diffStart() {
5656
logdata.add("start");
@@ -84,7 +84,7 @@ public void testPerformanceProblemsIssue124() {
8484
.collect(toList());
8585

8686
long start = System.currentTimeMillis();
87-
Patch<String> diff = DiffUtils.diff(old, newl, new MeyersDiffWithLinearSpace<String>());
87+
Patch<String> diff = DiffUtils.diff(old, newl, new MyersDiffWithLinearSpace<String>());
8888
long end = System.currentTimeMillis();
8989
System.out.println("Finished in " + (end - start) + "ms and resulted " + diff.getDeltas().size() + " deltas");
9090
}
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,14 @@
2222

2323
import com.github.difflib.DiffUtils;
2424

25-
public class WithMeyersDiffWithLinearSpacePatchTest {
25+
public class WithMyersDiffWithLinearSpacePatchTest {
2626

2727
@Test
2828
public void testPatch_Insert() {
2929
final List<String> insertTest_from = Arrays.asList("hhh");
3030
final List<String> insertTest_to = Arrays.asList("hhh", "jjj", "kkk", "lll");
3131

32-
final Patch<String> patch = DiffUtils.diff(insertTest_from, insertTest_to, new MeyersDiffWithLinearSpace<String>());
32+
final Patch<String> patch = DiffUtils.diff(insertTest_from, insertTest_to, new MyersDiffWithLinearSpace<String>());
3333
try {
3434
assertEquals(insertTest_to, DiffUtils.patch(insertTest_from, patch));
3535
} catch (PatchFailedException e) {
@@ -42,7 +42,7 @@ public void testPatch_Delete() {
4242
final List<String> deleteTest_from = Arrays.asList("ddd", "fff", "ggg", "hhh");
4343
final List<String> deleteTest_to = Arrays.asList("ggg");
4444

45-
final Patch<String> patch = DiffUtils.diff(deleteTest_from, deleteTest_to, new MeyersDiffWithLinearSpace<String>());
45+
final Patch<String> patch = DiffUtils.diff(deleteTest_from, deleteTest_to, new MyersDiffWithLinearSpace<String>());
4646
try {
4747
assertEquals(deleteTest_to, DiffUtils.patch(deleteTest_from, patch));
4848
} catch (PatchFailedException e) {
@@ -55,7 +55,7 @@ public void testPatch_Change() {
5555
final List<String> changeTest_from = Arrays.asList("aaa", "bbb", "ccc", "ddd");
5656
final List<String> changeTest_to = Arrays.asList("aaa", "bxb", "cxc", "ddd");
5757

58-
final Patch<String> patch = DiffUtils.diff(changeTest_from, changeTest_to, new MeyersDiffWithLinearSpace<String>());
58+
final Patch<String> patch = DiffUtils.diff(changeTest_from, changeTest_to, new MyersDiffWithLinearSpace<String>());
5959
try {
6060
assertEquals(changeTest_to, DiffUtils.patch(changeTest_from, patch));
6161
} catch (PatchFailedException e) {
@@ -166,7 +166,7 @@ public void testPatch_Serializable() throws IOException, ClassNotFoundException
166166
final List<String> changeTest_from = Arrays.asList("aaa", "bbb", "ccc", "ddd");
167167
final List<String> changeTest_to = Arrays.asList("aaa", "bxb", "cxc", "ddd");
168168

169-
final Patch<String> patch = DiffUtils.diff(changeTest_from, changeTest_to, new MeyersDiffWithLinearSpace<String>());
169+
final Patch<String> patch = DiffUtils.diff(changeTest_from, changeTest_to, new MyersDiffWithLinearSpace<String>());
170170
ByteArrayOutputStream baos = new ByteArrayOutputStream();
171171
ObjectOutputStream out = new ObjectOutputStream(baos);
172172
out.writeObject(patch);
@@ -189,7 +189,7 @@ public void testPatch_Change_withExceptionProcessor() {
189189
final List<String> changeTest_from = Arrays.asList("aaa", "bbb", "ccc", "ddd");
190190
final List<String> changeTest_to = Arrays.asList("aaa", "bxb", "cxc", "ddd");
191191

192-
final Patch<String> patch = DiffUtils.diff(changeTest_from, changeTest_to, new MeyersDiffWithLinearSpace<String>());
192+
final Patch<String> patch = DiffUtils.diff(changeTest_from, changeTest_to, new MyersDiffWithLinearSpace<String>());
193193

194194
changeTest_from.set(2, "CDC");
195195

java-diff-utils/src/test/java/com/github/difflib/patch/PatchWithAllDiffAlgorithmsTest.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414

1515
import com.github.difflib.DiffUtils;
1616
import com.github.difflib.algorithm.DiffAlgorithmFactory;
17-
import com.github.difflib.algorithm.myers.MeyersDiff;
18-
import com.github.difflib.algorithm.myers.MeyersDiffWithLinearSpace;
17+
import com.github.difflib.algorithm.myers.MyersDiff;
18+
import com.github.difflib.algorithm.myers.MyersDiffWithLinearSpace;
1919
import java.util.stream.Stream;
2020
import org.junit.jupiter.api.AfterAll;
2121
import org.junit.jupiter.params.ParameterizedTest;
@@ -25,14 +25,13 @@
2525
public class PatchWithAllDiffAlgorithmsTest {
2626

2727
private static Stream<Arguments> provideAlgorithms() {
28-
return Stream.of(
29-
Arguments.of(MeyersDiff.factory()),
30-
Arguments.of(MeyersDiffWithLinearSpace.factory()));
28+
return Stream.of(Arguments.of(MyersDiff.factory()),
29+
Arguments.of(MyersDiffWithLinearSpace.factory()));
3130
}
3231

3332
@AfterAll
3433
public static void afterAll() {
35-
DiffUtils.withDefaultDiffAlgorithmFactory(MeyersDiff.factory());
34+
DiffUtils.withDefaultDiffAlgorithmFactory(MyersDiff.factory());
3635
}
3736

3837
@ParameterizedTest

java-diff-utils/src/test/java/com/github/difflib/patch/PatchWithMeyerDiffTest.java renamed to java-diff-utils/src/test/java/com/github/difflib/patch/PatchWithMyerDiffTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
*
2929
* @author tw
3030
*/
31-
public class PatchWithMeyerDiffTest {
31+
public class PatchWithMyerDiffTest {
3232

3333
@Test
3434
public void testPatch_Change_withExceptionProcessor() {

java-diff-utils/src/test/java/com/github/difflib/patch/PatchWithMeyerDiffWithLinearSpaceTest.java renamed to java-diff-utils/src/test/java/com/github/difflib/patch/PatchWithMyerDiffWithLinearSpaceTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
package com.github.difflib.patch;
1717

1818
import com.github.difflib.DiffUtils;
19-
import com.github.difflib.algorithm.myers.MeyersDiff;
20-
import com.github.difflib.algorithm.myers.MeyersDiffWithLinearSpace;
19+
import com.github.difflib.algorithm.myers.MyersDiff;
20+
import com.github.difflib.algorithm.myers.MyersDiffWithLinearSpace;
2121
import java.util.Arrays;
2222
import java.util.List;
2323
import org.junit.jupiter.api.AfterAll;
@@ -30,16 +30,16 @@
3030
*
3131
* @author tw
3232
*/
33-
public class PatchWithMeyerDiffWithLinearSpaceTest {
33+
public class PatchWithMyerDiffWithLinearSpaceTest {
3434

3535
@BeforeAll
3636
public static void setupClass() {
37-
DiffUtils.withDefaultDiffAlgorithmFactory(MeyersDiffWithLinearSpace.factory());
37+
DiffUtils.withDefaultDiffAlgorithmFactory(MyersDiffWithLinearSpace.factory());
3838
}
3939

4040
@AfterAll
4141
public static void resetClass() {
42-
DiffUtils.withDefaultDiffAlgorithmFactory(MeyersDiff.factory());
42+
DiffUtils.withDefaultDiffAlgorithmFactory(MyersDiff.factory());
4343
}
4444

4545
@Test

0 commit comments

Comments
 (0)