diff --git a/app/src/main/java/com/sadellie/unitto/data/KeypadSymbols.kt b/app/src/main/java/com/sadellie/unitto/data/KeypadSymbols.kt index 5e920963..266fb644 100644 --- a/app/src/main/java/com/sadellie/unitto/data/KeypadSymbols.kt +++ b/app/src/main/java/com/sadellie/unitto/data/KeypadSymbols.kt @@ -55,8 +55,11 @@ const val KEY_SQRT = "√" val OPERATORS = listOf( KEY_PLUS, KEY_MINUS, + KEY_MINUS_DISPLAY, KEY_MULTIPLY, + KEY_MULTIPLY_DISPLAY, KEY_DIVIDE, + KEY_DIVIDE_DISPLAY, KEY_SQRT, KEY_EXPONENT, ) diff --git a/app/src/main/java/com/sadellie/unitto/screens/Utils.kt b/app/src/main/java/com/sadellie/unitto/screens/Utils.kt index d33784e7..e3782559 100644 --- a/app/src/main/java/com/sadellie/unitto/screens/Utils.kt +++ b/app/src/main/java/com/sadellie/unitto/screens/Utils.kt @@ -22,15 +22,9 @@ import android.content.Context import android.content.Intent import android.net.Uri import com.sadellie.unitto.data.KEY_COMMA -import com.sadellie.unitto.data.KEY_DIVIDE -import com.sadellie.unitto.data.KEY_DIVIDE_DISPLAY import com.sadellie.unitto.data.KEY_DOT import com.sadellie.unitto.data.KEY_E -import com.sadellie.unitto.data.KEY_MINUS -import com.sadellie.unitto.data.KEY_MINUS_DISPLAY -import com.sadellie.unitto.data.KEY_MULTIPLY -import com.sadellie.unitto.data.KEY_MULTIPLY_DISPLAY -import com.sadellie.unitto.data.KEY_PLUS +import com.sadellie.unitto.data.OPERATORS import com.sadellie.unitto.data.preferences.OutputFormat import com.sadellie.unitto.data.preferences.Separator import com.sadellie.unitto.data.units.AbstractUnit @@ -89,16 +83,14 @@ object Formatter { // We may receive expressions // Find all numbers in that expression val allNumbers: List = input.split( - KEY_MINUS, KEY_DIVIDE, KEY_PLUS, KEY_MULTIPLY + *OPERATORS.toTypedArray() ) allNumbers.forEach { output = output.replace(it, formatNumber(it)) } - return output.replace(KEY_MINUS, KEY_MINUS_DISPLAY) - .replace(KEY_DIVIDE, KEY_DIVIDE_DISPLAY) - .replace(KEY_MULTIPLY, KEY_MULTIPLY_DISPLAY) + return output } /** diff --git a/app/src/test/java/com/sadellie/unitto/screens/FormatterTest.kt b/app/src/test/java/com/sadellie/unitto/screens/FormatterTest.kt index 8be8c902..3b06da30 100644 --- a/app/src/test/java/com/sadellie/unitto/screens/FormatterTest.kt +++ b/app/src/test/java/com/sadellie/unitto/screens/FormatterTest.kt @@ -29,8 +29,8 @@ private const val ENG_VALUE_FRACTIONAL = "123.3E+21" private const val COMPLETE_VALUE = "123456.789" private const val INCOMPLETE_VALUE = "123456." private const val NO_FRACTIONAL_VALUE = "123456" -private const val INCOMPLETE_EXPR = "50+123456/8*0.8-12+" -private const val COMPLETE_EXPR = "50+123456/8*0.8-12+0" +private const val INCOMPLETE_EXPR = "50+123456÷8×0.8–12+" +private const val COMPLETE_EXPR = "50+123456÷8×0.8–12+0-√9*4^9+2×(9+8×7)" class FormatterTest { @@ -44,7 +44,7 @@ class FormatterTest { assertEquals("123 456.", formatter.format(INCOMPLETE_VALUE)) assertEquals("123 456", formatter.format(NO_FRACTIONAL_VALUE)) assertEquals("50+123 456÷8×0.8–12+", formatter.format(INCOMPLETE_EXPR)) - assertEquals("50+123 456÷8×0.8–12+0", formatter.format(COMPLETE_EXPR)) + assertEquals("50+123 456÷8×0.8–12+0-√9*4^9+2×(9+8×7)", formatter.format(COMPLETE_EXPR)) } @Test @@ -57,7 +57,7 @@ class FormatterTest { assertEquals("123,456.", formatter.format(INCOMPLETE_VALUE)) assertEquals("123,456", formatter.format(NO_FRACTIONAL_VALUE)) assertEquals("50+123,456÷8×0.8–12+", formatter.format(INCOMPLETE_EXPR)) - assertEquals("50+123,456÷8×0.8–12+0", formatter.format(COMPLETE_EXPR)) + assertEquals("50+123,456÷8×0.8–12+0-√9*4^9+2×(9+8×7)", formatter.format(COMPLETE_EXPR)) } @Test @@ -70,7 +70,7 @@ class FormatterTest { assertEquals("123.456,", formatter.format(INCOMPLETE_VALUE)) assertEquals("123.456", formatter.format(NO_FRACTIONAL_VALUE)) assertEquals("50+123.456÷8×0,8–12+", formatter.format(INCOMPLETE_EXPR)) - assertEquals("50+123.456÷8×0,8–12+0", formatter.format(COMPLETE_EXPR)) + assertEquals("50+123.456÷8×0,8–12+0-√9*4^9+2×(9+8×7)", formatter.format(COMPLETE_EXPR)) } } \ No newline at end of file