Merge pull request #142 from WddVictor/master
Resolve the bug of C and add a test case
This commit is contained in:
commit
c530dd2056
|
@ -42,6 +42,22 @@ public class MainActivityTest {
|
||||||
checkResult("5");
|
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
|
@Test
|
||||||
public void additionTest() {
|
public void additionTest() {
|
||||||
press(R.id.btn_minus);
|
press(R.id.btn_minus);
|
||||||
|
|
|
@ -13,7 +13,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
|
||||||
|
|
||||||
private var mIsFirstOperation = false
|
private var mIsFirstOperation = false
|
||||||
private var mResetValue = false
|
private var mResetValue = false
|
||||||
private var mWasPercentLast = false
|
|
||||||
private var mBaseValue = 0.0
|
private var mBaseValue = 0.0
|
||||||
private var mSecondValue = 0.0
|
private var mSecondValue = 0.0
|
||||||
|
|
||||||
|
@ -62,9 +61,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
|
||||||
setFormula(first + sign)
|
setFormula(first + sign)
|
||||||
} else if (!sign.isEmpty()) {
|
} else if (!sign.isEmpty()) {
|
||||||
var formula = first + sign + second
|
var formula = first + sign + second
|
||||||
if (mWasPercentLast) {
|
|
||||||
formula += "%"
|
|
||||||
}
|
|
||||||
setFormula(formula)
|
setFormula(formula)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -111,9 +107,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
|
||||||
|
|
||||||
private fun calculateResult() {
|
private fun calculateResult() {
|
||||||
updateFormula()
|
updateFormula()
|
||||||
if (mWasPercentLast) {
|
|
||||||
mSecondValue *= mBaseValue / 100
|
|
||||||
}
|
|
||||||
|
|
||||||
val operation = OperationFactory.forId(mLastOperation!!, mBaseValue, mSecondValue)
|
val operation = OperationFactory.forId(mLastOperation!!, mBaseValue, mSecondValue)
|
||||||
if (operation != null) {
|
if (operation != null) {
|
||||||
|
@ -124,7 +117,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
|
||||||
}
|
}
|
||||||
|
|
||||||
fun handleOperation(operation: String) {
|
fun handleOperation(operation: String) {
|
||||||
mWasPercentLast = operation == PERCENT
|
|
||||||
if (lastKey == DIGIT && operation != ROOT && operation != FACTORIAL) {
|
if (lastKey == DIGIT && operation != ROOT && operation != FACTORIAL) {
|
||||||
handleResult()
|
handleResult()
|
||||||
}
|
}
|
||||||
|
@ -161,7 +153,6 @@ class CalculatorImpl(calculator: Calculator, val context: Context) {
|
||||||
newValue = newValue.replace("\\.$".toRegex(), "")
|
newValue = newValue.replace("\\.$".toRegex(), "")
|
||||||
newValue = formatString(newValue)
|
newValue = formatString(newValue)
|
||||||
setValue(newValue)
|
setValue(newValue)
|
||||||
mBaseValue = Formatter.stringToDouble(newValue)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue