-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDay15KtTest.kt
41 lines (34 loc) · 1.5 KB
/
Day15KtTest.kt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package aoc2022.day15
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
import util.Coord
internal class Day15KtTest {
private val testInput0 = readInputToSensorList("src/main/kotlin/aoc2022/day15/assets/input0")
private val testInput = readInputToSensorList("src/main/kotlin/aoc2022/day15/assets/input")
@Test
fun testPart1() {
assertEquals(26, part1(testInput0, 10))
assertEquals(5508234, part1(testInput, 2000000))
}
@Test
fun testPart2() {
assertEquals(56000011, solve(testInput0, 20))
assertEquals(10457634860779, solve(testInput, 4000000))
}
@Test
fun testManhattanDistance() {
assertEquals(0, Coord(0, 0).manhattanDistance(Coord(0, 0)))
assertEquals(1, Coord(0, 0).manhattanDistance(Coord(0, 1)))
assertEquals(2, Coord(0, 0).manhattanDistance(Coord(-2, 0)))
assertEquals(6, Coord(1, 2).manhattanDistance(Coord(-3, 4)))
}
@Test
fun testGetCellsCoveredBySensor() {
assertEquals(setOf(Coord(1, 2)), getCellsCoveredBySensor(Coord(1, 2), Coord(1 ,2)))
assertEquals(setOf(Coord(-1, 0), Coord(1, 0), Coord(0, 0), Coord(0, 1), Coord(0, -1)),
getCellsCoveredBySensor(Coord(0, 0), Coord(1 ,0)))
assertEquals(13, getCellsCoveredBySensor(Coord(0, 0), Coord(-2 ,0)).size)
assertEquals(25, getCellsCoveredBySensor(Coord(0, 0), Coord(0 ,3)).size)
assertEquals(181, getCellsCoveredBySensor(Coord(8, 7), Coord(2 ,10)).size)
}
}