From 5dee5b8d56ed5cd3a96b657a34bd58e7206c1f08 Mon Sep 17 00:00:00 2001 From: Laurent Date: Mon, 26 Aug 2019 16:13:06 +0200 Subject: [PATCH] Adds helper for parsing numbers, providing an optional --- .../pokeranalytics/android/model/TableSize.kt | 6 +++++ .../net/pokeranalytics/android/util/Parser.kt | 23 +++++++++++++++++++ .../pokeranalytics/android/BasicUnitTest.kt | 14 +++++++++++ 3 files changed, 43 insertions(+) create mode 100644 app/src/main/java/net/pokeranalytics/android/util/Parser.kt diff --git a/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt b/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt index 2b3c69b4..144396f3 100644 --- a/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt +++ b/app/src/main/java/net/pokeranalytics/android/model/TableSize.kt @@ -4,6 +4,7 @@ import android.content.Context import net.pokeranalytics.android.R import net.pokeranalytics.android.ui.view.RowRepresentable import net.pokeranalytics.android.ui.view.RowViewType +import net.pokeranalytics.android.util.Parser class TableSize(var numberOfPlayer: Int, var rowViewType: Int = RowViewType.TITLE_GRID.ordinal) : RowRepresentable { @@ -16,6 +17,11 @@ class TableSize(var numberOfPlayer: Int, var rowViewType: Int = RowViewType.TITL } fun valueForLabel(label: String) : Int? { + + Parser.parseNumber(label)?.let { + return it.toInt() + } + return when (label) { "Full Ring", "Full-Ring" -> 10 "Short-Handed", "Short Handed" -> 6 diff --git a/app/src/main/java/net/pokeranalytics/android/util/Parser.kt b/app/src/main/java/net/pokeranalytics/android/util/Parser.kt new file mode 100644 index 00000000..6df3436d --- /dev/null +++ b/app/src/main/java/net/pokeranalytics/android/util/Parser.kt @@ -0,0 +1,23 @@ +package net.pokeranalytics.android.util + +import java.text.NumberFormat +import java.text.ParseException + +class Parser { + + companion object { + + fun parseNumber(string: String) : Number? { + try { + val n = NumberFormat.getInstance().parse(string) + return n + } catch (e: ParseException) { + return null + } + } + + } + +} + + diff --git a/app/src/test/java/net/pokeranalytics/android/BasicUnitTest.kt b/app/src/test/java/net/pokeranalytics/android/BasicUnitTest.kt index 3ab9079b..ffc85579 100644 --- a/app/src/test/java/net/pokeranalytics/android/BasicUnitTest.kt +++ b/app/src/test/java/net/pokeranalytics/android/BasicUnitTest.kt @@ -1,8 +1,10 @@ package net.pokeranalytics.android +import net.pokeranalytics.android.util.Parser import net.pokeranalytics.android.util.extensions.kmbFormatted import org.junit.Assert import org.junit.Test +import java.text.NumberFormat class BasicUnitTest : RealmUnitTest() { @@ -33,4 +35,16 @@ class BasicUnitTest : RealmUnitTest() { } + @Test + fun testParser() { + + val r1 = Parser.parseNumber("2") + Assert.assertNotNull(r1) + Assert.assertEquals(2, r1!!.toInt()) + + val r2 = Parser.parseNumber("gr") + Assert.assertNull(r2) + + } + }