This repository was archived by the owner on Apr 4, 2024. It is now read-only.
forked from diffplug/selfie
-
Notifications
You must be signed in to change notification settings - Fork 1
This repository was archived by the owner on Apr 4, 2024. It is now read-only.
LiteralInt #39
Copy link
Copy link
Closed
Description
Epic: inline snapshot #8
implementation:
selfie-python-wip/jvm/selfie-lib/src/commonMain/kotlin/com/diffplug/selfie/guts/Literals.kt
Lines 81 to 92 in eb4560c
| internal object LiteralInt : LiteralFormat<Int>() { | |
| override fun encode( | |
| value: Int, | |
| language: Language, | |
| encodingPolicy: EscapeLeadingWhitespace | |
| ): String { | |
| return encodeUnderscores(StringBuilder(), value.toLong(), language).toString() | |
| } | |
| override fun parse(str: String, language: Language): Int { | |
| return str.replace("_", "").toInt() | |
| } | |
| } |
tests:
selfie-python-wip/jvm/selfie-lib/src/commonTest/kotlin/com/diffplug/selfie/guts/LiteralIntTest.kt
Lines 21 to 61 in eb4560c
| class LiteralIntTest { | |
| @Test | |
| fun encode() { | |
| encode(0, "0") | |
| encode(1, "1") | |
| encode(-1, "-1") | |
| encode(999, "999") | |
| encode(-999, "-999") | |
| encode(1_000, "1_000") | |
| encode(-1_000, "-1_000") | |
| encode(1_000_000, "1_000_000") | |
| encode(-1_000_000, "-1_000_000") | |
| encode(2400500, "2_400_500") | |
| encode(2400501, "2_400_501") | |
| encode(200, "200") | |
| encode(1001, "1_001") | |
| encode(1010, "1_010") | |
| encode(10010, "10_010") | |
| } | |
| private fun encode(value: Int, expected: String) { | |
| val actual = LiteralInt.encode(value, Language.JAVA, EscapeLeadingWhitespace.ALWAYS) | |
| actual shouldBe expected | |
| } | |
| @Test | |
| fun decode() { | |
| decode("0", 0) | |
| decode("1", 1) | |
| decode("-1", -1) | |
| decode("999", 999) | |
| decode("9_99", 999) | |
| decode("9_9_9", 999) | |
| decode("-999", -999) | |
| decode("-9_99", -999) | |
| decode("-9_9_9", -999) | |
| } | |
| private fun decode(value: String, expected: Int) { | |
| val actual = LiteralInt.parse(value, Language.JAVA) | |
| actual shouldBe expected | |
| } | |
| } |
nedtwigg
Metadata
Metadata
Assignees
Labels
No labels