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) }
|
||
|
}
|
||
|
|
||
|
}
|