You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.2 KiB
Kotlin
77 lines
2.2 KiB
Kotlin
package net.cijber.pubgrub.commonTest
|
|
|
|
import net.cijber.pubgrub.commonTest.impl.VersionImpl
|
|
import net.cijber.pubgrub.version.VersionBorder
|
|
import net.cijber.pubgrub.version.VersionRange
|
|
import net.cijber.pubgrub.version.VersionUnion
|
|
import kotlin.test.Asserter
|
|
import kotlin.test.DefaultAsserter
|
|
import kotlin.test.Test
|
|
|
|
|
|
class VersionConstraintTest : Asserter by DefaultAsserter {
|
|
@Test
|
|
fun difference() {
|
|
|
|
val a = VersionUnion(
|
|
listOf(
|
|
VersionRange(null, VersionBorder.top(VersionImpl(4))),
|
|
VersionRange(VersionBorder.bottom(VersionImpl(6)), null)
|
|
)
|
|
)
|
|
|
|
val b = VersionRange(
|
|
VersionBorder.top(VersionImpl(3)),
|
|
VersionBorder.top(VersionImpl(7))
|
|
)
|
|
|
|
val diff = a.difference(b)
|
|
assertTrue("diff is VersionUnion", diff is VersionUnion)
|
|
|
|
if (diff !is VersionUnion) {
|
|
error("")
|
|
}
|
|
|
|
val first = diff.constraints.first()
|
|
val last = diff.constraints.last()
|
|
|
|
assertEquals("First has no bottom", null, first.bottom)
|
|
assertEquals("First top at 3", VersionImpl(3), first.top?.version)
|
|
|
|
assertEquals("Last has no top", null, last.top)
|
|
assertEquals("Last bottom at 7", VersionImpl(7), last.bottom?.version)
|
|
}
|
|
|
|
@Test
|
|
fun intersection() {
|
|
|
|
val a = VersionUnion(
|
|
listOf(
|
|
VersionRange(null, VersionBorder.top(VersionImpl(4))),
|
|
VersionRange(VersionBorder.bottom(VersionImpl(6)), null)
|
|
)
|
|
)
|
|
|
|
val b = VersionRange(
|
|
VersionBorder.bottom(VersionImpl(3)),
|
|
VersionBorder.top(VersionImpl(7))
|
|
)
|
|
|
|
val diff = a.intersect(b)
|
|
|
|
assertTrue("diff is VersionUnion: $diff", diff is VersionUnion)
|
|
|
|
if (diff !is VersionUnion) {
|
|
error("")
|
|
}
|
|
|
|
val first = diff.constraints.first()
|
|
val last = diff.constraints.last()
|
|
|
|
assertEquals("First bottom at 3", VersionImpl(3), first.bottom?.version)
|
|
assertEquals("First top at 4", VersionImpl(4), first.top?.version)
|
|
|
|
assertEquals("Last bottom at 6", VersionImpl(6), last.bottom?.version)
|
|
assertEquals("Last top at 7", VersionImpl(7), last.top?.version)
|
|
}
|
|
} |