-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDay14KtTest.kt
38 lines (30 loc) · 1.46 KB
/
Day14KtTest.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
package aoc2021.day14
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.Assertions.*
internal class Day14KtTest {
private val input0 = readInputToInsertionRules("src/main/kotlin/aoc2021/day14/assets/input0")
private val input0V2 = readInputToInsertionRules2("src/main/kotlin/aoc2021/day14/assets/input0")
private val polymer0 = "NNCB"
private val input = readInputToInsertionRules("src/main/kotlin/aoc2021/day14/assets/input")
private val inputV2 = readInputToInsertionRules2("src/main/kotlin/aoc2021/day14/assets/input")
private val polymer = "OFSVVSFOCBNONHKFHNPK"
@Test
fun computePolimerisation() {
assertEquals("NCNBCHB", computePolymerisation(input0, polymer0, 1))
assertEquals("NBCCNBBBCBHCB", computePolymerisation(input0, polymer0, 2))
assertEquals("NBBBCNCCNBBNBNBBCHBHHBCHB", computePolymerisation(input0, polymer0, 3))
assertEquals("NBBNBNBBCCNBCNCCNBBNBBNBBBNBBNBBCBHCBHHNHCBBCBHCB", computePolymerisation(input0, polymer0, 4))
}
@Test
fun computeChecksum() {
assertEquals(1588, computeChecksum(input0, polymer0))
assertEquals(3284, computeChecksum(input, polymer))
}
@Test
fun testComputeChecksumPart2() {
assertEquals(18, computeChecksumPart2(input0V2, polymer0, 4) + 1)
assertEquals(1588, computeChecksumPart2(input0V2, polymer0, 10) + 1)
assertEquals(2188189693529, computeChecksumPart2(input0V2, polymer0, 40) + 1)
assertEquals(4302675529690, computeChecksumPart2(inputV2, polymer, 40))
}
}