diff --git a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmRangeTest.kt b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmRangeTest.kt index da00a1d2db8..a4616239264 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmRangeTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/test/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/NpmRangeTest.kt @@ -10,6 +10,31 @@ import kotlin.test.assertTrue class NpmRangeTest { + @Test + fun rangeInvertTest() { + fun assertInvert(invertible: NpmRange, expected: List) { + val invert = invertible.invert() + assertTrue("Inverted $invertible should be $expected but found $invert") { + invert == expected + } + } + + assertInvert(npmRange(), emptyList()) + + assertInvert(npmRange(endMajor = 1), listOf(npmRange(startMajor = 1, startInclusive = true))) + assertInvert(npmRange(startMajor = 1), listOf(npmRange(endMajor = 1, endInclusive = true))) + assertInvert(npmRange(endMajor = 1, endInclusive = true), listOf(npmRange(startMajor = 1))) + assertInvert(npmRange(startMajor = 1, startInclusive = true), listOf(npmRange(endMajor = 1))) + + assertInvert( + npmRange(startMajor = 1, endMajor = 2), + listOf( + npmRange(endMajor = 1, endInclusive = true), + npmRange(startMajor = 2, startInclusive = true) + ) + ) + } + @Test fun hasIntersectionTest() { fun assertHasIntersection(range1: NpmRange, range2: NpmRange) =