computer-vision-project/src/test/kotlin/network/rs485/ben/computervision/LineTest.kt

42 lines
1.1 KiB
Kotlin

package network.rs485.ben.computervision
import kotlin.test.Test
import kotlin.test.assertFalse
import kotlin.test.assertTrue
internal class LineTest {
@Test
fun `line intersect fails for lines on different y`() {
val a = Pixel(0, 0) to Pixel(1, 0)
val b = Pixel(0, 1) to Pixel(1, 1)
assertFalse { a.intersects(b) }
assertFalse { b.intersects(a) }
}
@Test
fun `line intersect fails for unconnected lines`() {
val a = Pixel(0, 0) to Pixel(1, 0)
val b = Pixel(2, 0) to Pixel(3, 0)
assertFalse { a.intersects(b) }
assertFalse { b.intersects(a) }
}
@Test
fun `line intersect succeeds for connected lines`() {
val a = Pixel(0, 0) to Pixel(2, 0)
val b = Pixel(1, 0) to Pixel(3, 0)
assertTrue { a.intersects(b) }
assertTrue { b.intersects(a) }
}
@Test
fun `line intersect succeeds for stacked lines`() {
val a = Pixel(0, 0) to Pixel(3, 0)
val b = Pixel(1, 0) to Pixel(2, 0)
assertTrue { a.intersects(b) }
assertTrue { b.intersects(a) }
}
}