From ff5ae63ee60f392f381b430f956546f8facaf321 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Sun, 25 Dec 2022 11:20:02 +0000 Subject: [PATCH] 2022 Day 25 refactor to char map to remove toString() --- advents/src/main/kotlin/net/fish/y2022/Day25.kt | 9 ++------- advents/src/test/kotlin/net/fish/y2022/Day25Test.kt | 1 - 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/advents/src/main/kotlin/net/fish/y2022/Day25.kt b/advents/src/main/kotlin/net/fish/y2022/Day25.kt index 06d8faf..42102be 100644 --- a/advents/src/main/kotlin/net/fish/y2022/Day25.kt +++ b/advents/src/main/kotlin/net/fish/y2022/Day25.kt @@ -15,14 +15,10 @@ object Day25 : Day { fun doPart2(data: List): Int = data.size - 127 - private val toDigits = mapOf("0" to 0L, "1" to 1L, "2" to 2L, "-" to -1L, "=" to -2L) + private val toDigits = mapOf('0' to 0L, '1' to 1L, '2' to 2L, '-' to -1L, '=' to -2L) private val fromDigits = toDigits.entries.associate { it.value to it.key } - fun fromSnafu(s: String): Long { - return s.fold(0L) { ac, d -> - ac * 5L + toDigits[d.toString()]!! - } - } + fun fromSnafu(s: String): Long = s.fold(0L) { ac, d -> ac * 5L + toDigits[d]!! } fun toSnafu(n: Long): String { return if (n == 0L) "" @@ -31,7 +27,6 @@ object Day25 : Day { 3L, 4L -> toSnafu(n / 5L + 1L) + fromDigits[m - 5L] else -> throw Exception("modulus fail for $n") } - } @JvmStatic diff --git a/advents/src/test/kotlin/net/fish/y2022/Day25Test.kt b/advents/src/test/kotlin/net/fish/y2022/Day25Test.kt index 786ff72..b6aa7b8 100644 --- a/advents/src/test/kotlin/net/fish/y2022/Day25Test.kt +++ b/advents/src/test/kotlin/net/fish/y2022/Day25Test.kt @@ -1,7 +1,6 @@ package net.fish.y2022 import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Assertions.* import org.junit.jupiter.params.ParameterizedTest import org.junit.jupiter.params.provider.CsvSource