Merge pull request #142 from WddVictor/master

Resolve the bug of C and add a test case
This commit is contained in:
Tibor Kaputa 2020-02-15 23:34:02 +01:00 committed by GitHub
commit c530dd2056
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 9 deletions

View File

@ -42,6 +42,22 @@ public class MainActivityTest {
checkResult("5");
}
@Test
public void clearComplexTest(){
press(R.id.btn_1);
press(R.id.btn_plus);
press(R.id.btn_1);
press(R.id.btn_decimal);
press(R.id.btn_5);
press(R.id.btn_5);
press(R.id.btn_clear);
press(R.id.btn_1);
press(R.id.btn_equals);
checkResult("2.51");
checkFormula("1+1.51");
}
@Test
public void additionTest() {
press(R.id.btn_minus);

View File

@ -13,7 +13,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
private var mIsFirstOperation = false
private var mResetValue = false
private var mWasPercentLast = false
private var mBaseValue = 0.0
private var mSecondValue = 0.0
@ -62,9 +61,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
setFormula(first + sign)
} else if (!sign.isEmpty()) {
var formula = first + sign + second
if (mWasPercentLast) {
formula += "%"
}
setFormula(formula)
}
}
@ -111,9 +107,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
private fun calculateResult() {
updateFormula()
if (mWasPercentLast) {
mSecondValue *= mBaseValue / 100
}
val operation = OperationFactory.forId(mLastOperation!!, mBaseValue, mSecondValue)
if (operation != null) {
@ -124,7 +117,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
}
fun handleOperation(operation: String) {
mWasPercentLast = operation == PERCENT
if (lastKey == DIGIT && operation != ROOT && operation != FACTORIAL) {
handleResult()
}
@ -161,7 +153,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
newValue = newValue.replace("\\.$".toRegex(), "")
newValue = formatString(newValue)
setValue(newValue)
mBaseValue = Formatter.stringToDouble(newValue)
}
}