diff --git a/dart/tests/DiffMatchPatchTest.dart b/dart/tests/DiffMatchPatchTest.dart index 9b2e680..f316615 100644 --- a/dart/tests/DiffMatchPatchTest.dart +++ b/dart/tests/DiffMatchPatchTest.dart @@ -462,6 +462,18 @@ void testDiffDelta() { // Convert delta string into a diff. Expect.listEquals(diffs, dmp.diff_fromDelta('', delta), 'diff_fromDelta: Unchanged characters.'); + + // 160 kb string. + var a = 'abcdefghij'; + for (var i = 0; i < 14; i++) { + a += a; + } + diffs = [new Diff(Operation.insert, a)]; + delta = dmp.diff_toDelta(diffs); + Expect.equals('+' + a, delta, 'diff_toDelta: 160kb string.'); + + // Convert delta string into a diff. + Expect.listEquals(diffs, dmp.diff_fromDelta('', delta), 'diff_fromDelta: 160kb string.'); } void testDiffXIndex() { diff --git a/java/tests/name/fraser/neil/plaintext/diff_match_patch_test.java b/java/tests/name/fraser/neil/plaintext/diff_match_patch_test.java index 677eec5..2f38793 100644 --- a/java/tests/name/fraser/neil/plaintext/diff_match_patch_test.java +++ b/java/tests/name/fraser/neil/plaintext/diff_match_patch_test.java @@ -434,6 +434,18 @@ public static void testDiffDelta() { // Convert delta string into a diff. assertEquals("diff_fromDelta: Unchanged characters.", diffs, dmp.diff_fromDelta("", delta)); + + // 160 kb string. + String a = "abcdefghij"; + for (int i = 0; i < 14; i++) { + a += a; + } + diffs = diffList(new Diff(INSERT, a)); + delta = dmp.diff_toDelta(diffs); + assertEquals("diff_toDelta: 160kb string.", "+" + a, delta); + + // Convert delta string into a diff. + assertEquals("diff_fromDelta: 160kb string.", diffs, dmp.diff_fromDelta("", delta)); } public static void testDiffXIndex() { diff --git a/javascript/tests/diff_match_patch_test.js b/javascript/tests/diff_match_patch_test.js index 765ade8..109e56a 100644 --- a/javascript/tests/diff_match_patch_test.js +++ b/javascript/tests/diff_match_patch_test.js @@ -502,6 +502,18 @@ function testDiffDelta() { // Convert delta string into a diff. assertEquivalent(diffs, dmp.diff_fromDelta('', delta)); + + // 160 kb string. + var a = 'abcdefghij'; + for (var i = 0; i < 14; i++) { + a += a; + } + diffs = [[DIFF_INSERT, a]]; + delta = dmp.diff_toDelta(diffs); + assertEquals('+' + a, delta); + + // Convert delta string into a diff. + assertEquivalent(diffs, dmp.diff_fromDelta('', delta)); } function testDiffXIndex() { diff --git a/lua/tests/diff_match_patch_test.lua b/lua/tests/diff_match_patch_test.lua index 9e57143..51e44d6 100644 --- a/lua/tests/diff_match_patch_test.lua +++ b/lua/tests/diff_match_patch_test.lua @@ -550,6 +550,15 @@ function testDiffDelta() -- Convert delta string into a diff. assertEquivalent(diffs, dmp.diff_fromDelta('', delta)) + + -- 160 kb string. + local a = string.rep('abcdefghij', 16384) + diffs = {{DIFF_INSERT, a}}; + delta = dmp.diff_toDelta(diffs); + assertEquals('+' .. a, delta); + + -- Convert delta string into a diff. + assertEquivalent(diffs, dmp.diff_fromDelta('', delta)); end function testDiffXIndex() diff --git a/objectivec/Tests/DiffMatchPatchTest.m b/objectivec/Tests/DiffMatchPatchTest.m index 00d6a3f..9697b04 100755 --- a/objectivec/Tests/DiffMatchPatchTest.m +++ b/objectivec/Tests/DiffMatchPatchTest.m @@ -765,6 +765,22 @@ - (void)test_diff_deltaTest { expectedResult = [dmp diff_fromDeltaWithText:@"" andDelta:delta error:NULL]; XCTAssertEqualObjects(diffs, expectedResult, @"diff_fromDelta: Unchanged characters. Convert delta string into a diff."); + // 160 kb string. + NSString *a = @"abcdefghij"; + NSMutableString *aMutable = [NSMutableString stringWithString:a]; + for (int i = 0; i < 14; i++) { + [aMutable appendString:aMutable]; + } + a = aMutable; + diffs = [NSMutableArray arrayWithObject: + [Diff diffWithOperation:DIFF_INSERT andText:a]]; + delta = [dmp diff_toDelta:diffs]; + XCTAssertEqualObjects([@"+" stringByAppendingString:a], delta, @"diff_toDelta: 160kb string."); + + // Convert delta string into a diff. + expectedResult = [dmp diff_fromDeltaWithText:@"" andDelta:delta error:NULL]; + XCTAssertEqualObjects(diffs, expectedResult, @"diff_fromDelta: 160kb string. Convert delta string into a diff."); + [dmp release]; } diff --git a/python2/tests/diff_match_patch_test.py b/python2/tests/diff_match_patch_test.py index 8ab6625..661a6b6 100644 --- a/python2/tests/diff_match_patch_test.py +++ b/python2/tests/diff_match_patch_test.py @@ -452,6 +452,17 @@ def testDiffDelta(self): # Convert delta string into a diff. self.assertEquals(diffs, self.dmp.diff_fromDelta("", delta)) + # 160 kb string. + a = "abcdefghij" + for i in range(14): + a += a + diffs = [(self.dmp.DIFF_INSERT, a)] + delta = self.dmp.diff_toDelta(diffs); + self.assertEquals('+' + a, delta); + + # Convert delta string into a diff. + self.assertEquals(diffs, self.dmp.diff_fromDelta("", delta)); + def testDiffXIndex(self): # Translate a location in text1 to text2. self.assertEquals(5, self.dmp.diff_xIndex([(self.dmp.DIFF_DELETE, "a"), (self.dmp.DIFF_INSERT, "1234"), (self.dmp.DIFF_EQUAL, "xyz")], 2)) diff --git a/python3/tests/diff_match_patch_test.py b/python3/tests/diff_match_patch_test.py index 71646c9..3659d3e 100644 --- a/python3/tests/diff_match_patch_test.py +++ b/python3/tests/diff_match_patch_test.py @@ -455,6 +455,17 @@ def testDiffDelta(self): # Convert delta string into a diff. self.assertEqual(diffs, self.dmp.diff_fromDelta("", delta)) + # 160 kb string. + a = "abcdefghij" + for i in range(14): + a += a + diffs = [(self.dmp.DIFF_INSERT, a)] + delta = self.dmp.diff_toDelta(diffs); + self.assertEqual('+' + a, delta); + + # Convert delta string into a diff. + self.assertEqual(diffs, self.dmp.diff_fromDelta("", delta)); + def testDiffXIndex(self): # Translate a location in text1 to text2. self.assertEqual(5, self.dmp.diff_xIndex([(self.dmp.DIFF_DELETE, "a"), (self.dmp.DIFF_INSERT, "1234"), (self.dmp.DIFF_EQUAL, "xyz")], 2))