Skip to content

Commit 2a5c30c

Browse files
committed
Initial commit
1 parent f64494d commit 2a5c30c

File tree

6 files changed

+47
-9
lines changed

6 files changed

+47
-9
lines changed

src/main/kotlin/Binary.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ internal class Binary(
1818
bits[index]
1919

2020
operator fun not() =
21-
Binary(bits.map { !it }.toTypedArray())
21+
Binary(bits.mapToArray { !it })
2222

2323
override fun iterator() =
2424
bits.iterator()
@@ -28,7 +28,7 @@ internal fun Collection<Bit>.toBinary() =
2828
Binary(toTypedArray())
2929

3030
internal fun String.toBinary() =
31-
Binary(map { it.toBit() }.toTypedArray())
31+
Binary(mapToArray { it.toBit() })
3232

3333
internal fun Path.readBinaries() =
3434
readLines().map { it.toBinary() }

src/main/kotlin/Day00.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Day00: Day {
2+
override fun partOne(filename: String, verbose: Boolean): Any {
3+
TODO("Not yet implemented")
4+
}
5+
6+
override fun partTwo(filename: String, verbose: Boolean): Any {
7+
TODO("Not yet implemented")
8+
}
9+
10+
companion object : Day.Main("Day00.txt") {
11+
@JvmStatic
12+
fun main(args: Array<String>) = main()
13+
}
14+
}

src/main/kotlin/Matrix.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,10 @@ val <T> Matrix<T>.width
2626
* Interpret [this] as a filename and parse its contents to a matrix
2727
*/
2828
internal inline fun <reified T> Path.parseMatrix(charTransformer: (Char) -> T): Matrix<T> =
29-
readLines()
30-
.map { it.map(charTransformer).toTypedArray() }
31-
.toTypedArray()
29+
readLines().mapToArray { it.mapToArray(charTransformer) }
3230

3331
internal inline fun <reified T> String.parseMatrix(charTransformer: (Char) -> T): Matrix<T> =
34-
lines()
35-
.map { it.map(charTransformer).toTypedArray() }
36-
.toTypedArray()
32+
lines().mapToArray { it.mapToArray(charTransformer) }
3733

3834
fun Path.parseMatrix() =
3935
parseMatrix { it }

src/main/kotlin/Utils.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,15 @@ fun <T> Set<T>.filter(predicate: (T) -> Boolean): Set<T> =
4343
fun <K, V> Iterable<Pair<K, V>>.toMutableMap() =
4444
toMap(mutableMapOf())
4545

46+
inline fun <T, reified R> List<T>.mapToArray(transform: (T) -> R) =
47+
Array(size) { transform(get(it)) }
48+
49+
inline fun <reified R> CharSequence.mapToArray(transform: (Char) -> R) =
50+
Array(length) { transform(get(it)) }
51+
52+
inline fun <T, reified R> Array<T>.mapToArray(transform: (T) -> R) =
53+
Array(size) { transform(get(it)) }
54+
4655
fun <T> List<T>.allPairs(): List<Pair<T, T>> =
4756
dropLast(1).flatMapIndexed { index, element -> drop(index + 1).map { element to it } }
4857

src/main/kotlin/dijkstra/Dijkstra.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ fun <T> calculateShortestPathFromSource(source: Node<T>) {
55
val settledNodes = mutableSetOf<Node<T>>()
66
val unsettledNodes = mutableSetOf(source)
77

8-
while (unsettledNodes.size != 0) {
8+
while (unsettledNodes.isNotEmpty()) {
99
val currentNode = getLowestDistanceNode(unsettledNodes)
1010
unsettledNodes -= currentNode
1111
for ((adjacentNode, edgeWeigh) in currentNode.adjacentNodes) {

src/test/kotlin/Day00Test.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import org.junit.jupiter.api.assertThrows
2+
import kotlin.test.Test
3+
4+
class Day00Test : DayTest<Day00>() {
5+
6+
@Test
7+
override fun `Part One`() {
8+
assertThrows<NotImplementedError> {
9+
target.partOne("", true)
10+
}
11+
}
12+
13+
@Test
14+
override fun `Part Two`() {
15+
assertThrows<NotImplementedError> {
16+
target.partTwo("", true)
17+
}
18+
}
19+
}

0 commit comments

Comments
 (0)