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

5 years ago
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)
}
}