You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.2 KiB

import technology.zim.data.Directions
import technology.zim.data.Directions.*
import technology.zim.data.TileProperties
import kotlin.test.Test
class TilePropertiesTest {
@Test
fun addConnectionsTest() {
val tileProperties = TileProperties(0)
var result = tileProperties + UP
assert(result.connections and(UP.dir) == UP.dir)
assert(result.connections and(DOWN.dir) == 0)
result += LEFT
assert(result.connections and(UP.dir) == UP.dir)
assert(result.connections and(LEFT.dir) == LEFT.dir)
assert(result.connections and(RIGHT.dir) == 0)
assert(result.connections and(DOWN.dir) == 0)
val after = result + UP
assert(result == after)
}
@Test
fun removeConnectionsTest() {
val props = TileProperties(UP.dir + LEFT.dir + RIGHT.dir + DOWN.dir)
var result = props - UP
assert(result.connections and (UP.dir) == 0)
assert(result.connections and (LEFT.dir) == LEFT.dir)
assert(result.connections and (RIGHT.dir) == RIGHT.dir)
assert(result.connections and (DOWN.dir) == DOWN.dir)
val after = result - UP
assert(result == after)
}
}