Fixed formatter

This commit is contained in:
Sad Ellie 2022-12-08 12:35:22 +04:00
parent 12cb52465e
commit d544a959f0
3 changed files with 11 additions and 16 deletions

View File

@ -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,
)

View File

@ -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<String> = 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
}
/**

View File

@ -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.812+"
private const val COMPLETE_EXPR = "50+123456÷8×0.812+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.812+", formatter.format(INCOMPLETE_EXPR))
assertEquals("50+123 456÷8×0.812+0", formatter.format(COMPLETE_EXPR))
assertEquals("50+123 456÷8×0.812+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.812+", formatter.format(INCOMPLETE_EXPR))
assertEquals("50+123,456÷8×0.812+0", formatter.format(COMPLETE_EXPR))
assertEquals("50+123,456÷8×0.812+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,812+", formatter.format(INCOMPLETE_EXPR))
assertEquals("50+123.456÷8×0,812+0", formatter.format(COMPLETE_EXPR))
assertEquals("50+123.456÷8×0,812+0-√9*4^9+2×(9+8×7)", formatter.format(COMPLETE_EXPR))
}
}