From c3d3de886d315fd0d8680d502eb9746e04060614 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 15 Mar 2017 13:41:35 +0300 Subject: [PATCH] diff: update test data --- .../tests/com/intellij/diff/DiffTestCase.kt | 14 ++++- .../comparison/ComparisonMergeUtilTestBase.kt | 8 +-- .../diff/comparison/ComparisonUtilAutoTest.kt | 6 +- .../diff/comparison/ComparisonUtilTestBase.kt | 14 ++--- .../comparison/IgnoreComparisonUtilTest.kt | 21 ++----- .../comparison/SplitComparisonUtilTest.kt | 17 ++++++ .../diff/comparison/WordComparisonUtilTest.kt | 59 +++++++++++++++++++ 7 files changed, 108 insertions(+), 31 deletions(-) diff --git a/platform/diff-impl/tests/com/intellij/diff/DiffTestCase.kt b/platform/diff-impl/tests/com/intellij/diff/DiffTestCase.kt index 6bcb79123e0c..bb501a53faa3 100644 --- a/platform/diff-impl/tests/com/intellij/diff/DiffTestCase.kt +++ b/platform/diff-impl/tests/com/intellij/diff/DiffTestCase.kt @@ -115,6 +115,18 @@ abstract class DiffTestCase : TestCase() { } } + fun assertSetsEquals(expected: BitSet, actual: BitSet, message: String = "") { + val sb = StringBuilder(message) + sb.append(": \"") + for (i in 0..actual.length()) { + sb.append(if (actual[i]) '-' else ' ') + } + sb.append('"') + val fullMessage = sb.toString() + + assertEquals(expected, actual, fullMessage) + } + // // Parsing // @@ -210,7 +222,7 @@ abstract class DiffTestCase : TestCase() { } } - class DebugData() { + class DebugData { private val data: MutableList> = ArrayList() fun put(key: String, value: Any) { diff --git a/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonMergeUtilTestBase.kt b/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonMergeUtilTestBase.kt index c116de58652e..249bf8674e48 100644 --- a/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonMergeUtilTestBase.kt +++ b/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonMergeUtilTestBase.kt @@ -73,12 +73,12 @@ abstract class ComparisonMergeUtilTestBase : DiffTestCase() { val sets = Trio(BitSet(), BitSet(), BitSet()) for (change in changes) { - sets.forEach({ set: BitSet, side: ThreeSide -> set.set(change.start(side), change.end(side)) }) + sets.forEach { set: BitSet, side: ThreeSide -> set.set(change.start(side), change.end(side)) } } - assertEquals(matchings.data1, sets.data1) - assertEquals(matchings.data2, sets.data2) - assertEquals(matchings.data3, sets.data3) + assertSetsEquals(matchings.data1, sets.data1, "Left") + assertSetsEquals(matchings.data2, sets.data2, "Base") + assertSetsEquals(matchings.data3, sets.data3, "Right") } private fun convertDiffFragments(fragments: List): List { diff --git a/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilAutoTest.kt b/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilAutoTest.kt index c415aa47ae47..b117f7261577 100644 --- a/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilAutoTest.kt +++ b/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilAutoTest.kt @@ -198,8 +198,8 @@ class ComparisonUtilAutoTest : DiffTestCase() { for (fragment in fragments) { if (fragment.innerFragments != null) { - val sequence1 = text1.subsequence(fragment.startOffset1, fragment.endOffset1) - val sequence2 = text2.subsequence(fragment.startOffset2, fragment.endOffset2) + val sequence1 = text1.subSequence(fragment.startOffset1, fragment.endOffset1) + val sequence2 = text2.subSequence(fragment.startOffset2, fragment.endOffset2) checkResultWord(sequence1, sequence2, fragment.innerFragments!!, policy) } @@ -538,7 +538,7 @@ class ComparisonUtilAutoTest : DiffTestCase() { return Couple.of(firstLine, lastLine) } - private fun Document.subsequence(start: Int, end: Int): CharSequence { + private fun Document.subSequence(start: Int, end: Int): CharSequence { return this.charsSequence.subSequence(start, end) } diff --git a/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilTestBase.kt b/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilTestBase.kt index 9d9bf6796202..f8750fc000dc 100644 --- a/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilTestBase.kt +++ b/platform/diff-impl/tests/com/intellij/diff/comparison/ComparisonUtilTestBase.kt @@ -173,8 +173,8 @@ abstract class ComparisonUtilTestBase : DiffTestCase() { set2.set(fragment.startLine2, fragment.endLine2) } - assertEquals(matchings.first, set1, "Before") - assertEquals(matchings.second, set2, "After") + assertSetsEquals(matchings.first, set1, "Before") + assertSetsEquals(matchings.second, set2, "After") } private fun checkDiffMatching(fragments: List, matchings: Couple) { @@ -185,8 +185,8 @@ abstract class ComparisonUtilTestBase : DiffTestCase() { set2.set(fragment.startOffset2, fragment.endOffset2) } - assertEquals(matchings.first, set1, "Before") - assertEquals(matchings.second, set2, "After") + assertSetsEquals(matchings.first, set1, "Before") + assertSetsEquals(matchings.second, set2, "After") } private fun checkMergeMatching(fragments: List, matchings: Trio) { @@ -199,9 +199,9 @@ abstract class ComparisonUtilTestBase : DiffTestCase() { set3.set(fragment.getStartOffset(ThreeSide.RIGHT), fragment.getEndOffset(ThreeSide.RIGHT)) } - assertEquals(matchings.data1, set1, "Before") - assertEquals(matchings.data2, set2, "Base") - assertEquals(matchings.data3, set3, "After") + assertSetsEquals(matchings.data1, set1, "Left") + assertSetsEquals(matchings.data2, set2, "Base") + assertSetsEquals(matchings.data3, set3, "Right") } private fun convertDiffFragments(fragments: List): List> { diff --git a/platform/diff-impl/tests/com/intellij/diff/comparison/IgnoreComparisonUtilTest.kt b/platform/diff-impl/tests/com/intellij/diff/comparison/IgnoreComparisonUtilTest.kt index fce98b3c2574..825437f5cd43 100644 --- a/platform/diff-impl/tests/com/intellij/diff/comparison/IgnoreComparisonUtilTest.kt +++ b/platform/diff-impl/tests/com/intellij/diff/comparison/IgnoreComparisonUtilTest.kt @@ -401,28 +401,17 @@ class IgnoreComparisonUtilTest : DiffTestCase() { .run() } - private inner class Test(input1: String, input2: String, + private inner class Test(val input1: String, val input2: String, ignored1: String, ignored2: String, result1: String, result2: String) { - private val input1: String - private val input2: String - private val ignored1: String - private val ignored2: String - private val result1: String - private val result2: String + val ignored1: String = ignored1.filterNot { it == '.' } + val ignored2: String = ignored2.filterNot { it == '.' } + val result1: String = result1.filterNot { it == '.' } + val result2: String = result2.filterNot { it == '.' } private var inner = true private var changedLines: IntPair? = null - init { - this.input1 = input1 - this.input2 = input2 - this.ignored1 = ignored1.filterNot { it == '.' } - this.ignored2 = ignored2.filterNot { it == '.' } - this.result1 = result1.filterNot { it == '.' } - this.result2 = result2.filterNot { it == '.' } - } - fun noInnerChanges(): Test { inner = false return this diff --git a/platform/diff-impl/tests/com/intellij/diff/comparison/SplitComparisonUtilTest.kt b/platform/diff-impl/tests/com/intellij/diff/comparison/SplitComparisonUtilTest.kt index 0e52c2c09115..e25ec85c1243 100644 --- a/platform/diff-impl/tests/com/intellij/diff/comparison/SplitComparisonUtilTest.kt +++ b/platform/diff-impl/tests/com/intellij/diff/comparison/SplitComparisonUtilTest.kt @@ -74,6 +74,23 @@ class SplitComparisonUtilTest : ComparisonUtilTestBase() { default(del(0, 0, 1), mod(1, 0, 1, 1), del(2, 1, 1)) testAll() } + + splitter(trim = false) { + ("< i" - "" - "x'y'>") + (" " - " -- ").default() + testAll() + } + + lines_inner { + ("x'y'>" - "x'>") + (" -- " - " ").default() + testAll() + } } fun testWhitespaceOnlyChanges() { @@ -219,6 +252,12 @@ class WordComparisonUtilTest : ComparisonUtilTestBase() { ("- -" - "- -").ignore() testIgnore() } + + words { + ("A_B_" - "X_") + ("--- " - "- ").default() + testAll() + } } fun testFixedBugs() { @@ -336,6 +375,26 @@ class WordComparisonUtilTest : ComparisonUtilTestBase() { (" ---" - "--- ").default() testDefault() } + + lines_inner { + ("A B_C D" - "A_B C_D") + (" -- - " - " -- - ").default() + (" -- - " - " -- ").trim() + (" - " - " - ").ignore() + testAll() + } + + lines_inner { + ("B_C_D_" - "X_Y_Z_") + ("- - - " - "- - - ").default() + testAll() + } + + words { + ("!x_!_z" - "!_!_y z") + (" - " - " -- ").default() + testDefault() + } } fun `test trailing punctuation`() {