42 lines
1.1 KiB
Kotlin
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) }
|
|
}
|
|
|
|
}
|