CalculatorAndroidEngine and CalculatorEngineImple merged into one Engine

This commit is contained in:
serso
2016-01-19 23:22:05 +01:00
parent 67a386f573
commit 1d366123b3
33 changed files with 257 additions and 647 deletions

View File

@@ -23,22 +23,19 @@
package org.solovyev.android.calculator;
import android.content.Context;
import com.squareup.otto.Bus;
import jscl.JsclMathEngine;
import org.junit.Assert;
import org.mockito.Mockito;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.fakes.RoboSharedPreferences;
import org.solovyev.android.calculator.jscl.JsclOperation;
import org.solovyev.android.calculator.language.Languages;
import org.solovyev.android.calculator.plot.CalculatorPlotter;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.*;
import java.text.DecimalFormatSymbols;
import java.util.HashMap;
import java.util.Map;
@@ -46,11 +43,6 @@ import java.util.concurrent.CountDownLatch;
import java.util.concurrent.Executor;
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import jscl.JsclMathEngine;
/**
* User: serso
* Date: 10/7/12
@@ -87,17 +79,17 @@ public class CalculatorTestUtils {
}
@Nonnull
static CalculatorEngineImpl newCalculatorEngine() {
static Engine newCalculatorEngine() {
final MathEntityDao mathEntityDao = Mockito.mock(MathEntityDao.class);
final JsclMathEngine jsclEngine = JsclMathEngine.getInstance();
final CalculatorVarsRegistry varsRegistry = new CalculatorVarsRegistry(jsclEngine.getConstantsRegistry(), mathEntityDao);
final VarsRegistry varsRegistry = new VarsRegistry(jsclEngine.getConstantsRegistry(), mathEntityDao);
final FunctionsRegistry functionsRegistry = new FunctionsRegistry(jsclEngine.getFunctionsRegistry(), mathEntityDao);
final CalculatorOperatorsMathRegistry operatorsRegistry = new CalculatorOperatorsMathRegistry(jsclEngine.getOperatorsRegistry(), mathEntityDao);
final CalculatorPostfixFunctionsRegistry postfixFunctionsRegistry = new CalculatorPostfixFunctionsRegistry(jsclEngine.getPostfixFunctionsRegistry(), mathEntityDao);
final OperatorsRegistry operatorsRegistry = new OperatorsRegistry(jsclEngine.getOperatorsRegistry(), mathEntityDao);
final PostfixFunctionsRegistry postfixFunctionsRegistry = new PostfixFunctionsRegistry(jsclEngine.getPostfixFunctionsRegistry(), mathEntityDao);
return new CalculatorEngineImpl(jsclEngine, varsRegistry, functionsRegistry, operatorsRegistry, postfixFunctionsRegistry, null);
return new Engine(RuntimeEnvironment.application, jsclEngine, varsRegistry, functionsRegistry, operatorsRegistry, postfixFunctionsRegistry);
}
public static void assertEval(@Nonnull String expected, @Nonnull String expression) {

View File

@@ -23,7 +23,8 @@
package org.solovyev.android.calculator;
import android.graphics.Color;
import jscl.MathEngine;
import jscl.NumeralBase;
import org.junit.Before;
import org.junit.Test;
import org.solovyev.android.calculator.text.TextProcessor;
@@ -32,12 +33,7 @@ import org.solovyev.android.calculator.view.TextHighlighter;
import java.util.Date;
import java.util.Random;
import jscl.MathEngine;
import jscl.NumeralBase;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.*;
/**
* User: serso
@@ -119,7 +115,7 @@ public class TextHighlighterTest {
assertEquals("<b>0x:</b>FF33233FFE", textHighlighter.process("0x:FF33233FFE").toString());
assertEquals("<b>0x:</b>FF33 233 FFE", textHighlighter.process("0x:FF33 233 FFE").toString());
final MathEngine me = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine me = Locator.getInstance().getEngine().getMathEngine();
try {
me.setNumeralBase(NumeralBase.hex);
assertEquals("E", textHighlighter.process("E").toString());

View File

@@ -24,9 +24,7 @@ package org.solovyev.android.calculator.history;
import android.content.SharedPreferences;
import android.os.Handler;
import com.squareup.otto.Bus;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,27 +32,17 @@ import org.robolectric.RobolectricGradleTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import org.solovyev.android.CalculatorTestRunner;
import org.solovyev.android.calculator.BuildConfig;
import org.solovyev.android.calculator.Display;
import org.solovyev.android.calculator.DisplayState;
import org.solovyev.android.calculator.Editor;
import org.solovyev.android.calculator.EditorState;
import org.solovyev.android.calculator.*;
import org.solovyev.android.calculator.jscl.JsclOperation;
import javax.annotation.Nonnull;
import java.io.File;
import java.util.List;
import javax.annotation.Nonnull;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.*;
import static org.mockito.Matchers.eq;
import static org.mockito.Mockito.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import static org.solovyev.android.calculator.model.AndroidCalculatorEngine.Preferences.groupingSeparator;
import static org.mockito.Mockito.*;
import static org.solovyev.android.calculator.Engine.Preferences.groupingSeparator;
@Config(constants = BuildConfig.class, sdk = CalculatorTestRunner.SUPPORTED_SDK)
@RunWith(RobolectricGradleTestRunner.class)

View File

@@ -53,7 +53,7 @@ import static org.junit.Assert.fail;
*/
@SuppressWarnings("deprecation")
public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
public class AndroidEngineTest extends AbstractCalculatorTest {
@BeforeClass
public static void staticSetUp() throws Exception {
@@ -64,7 +64,7 @@ public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
@Test
public void testDegrees() throws Exception {
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine();
final AngleUnit defaultAngleUnit = cm.getAngleUnits();
try {
@@ -85,7 +85,7 @@ public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
@Test
public void testFormatting() throws Exception {
final MathEngine ce = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine ce = Locator.getInstance().getEngine().getMathEngine();
CalculatorTestUtils.assertEval("12 345", ce.simplify("12345"));
@@ -93,7 +93,7 @@ public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
@Test
public void testI() throws ParseException, CalculatorEvalException {
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine();
CalculatorTestUtils.assertEval("-i", cm.evaluate("i^3"));
for (int i = 0; i < 1000; i++) {
@@ -118,7 +118,7 @@ public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
@Test
public void testEmptyFunction() throws Exception {
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine();
try {
cm.evaluate("cos(cos(cos(cos(acos(acos(acos(acos(acos(acos(acos(acos(cos(cos(cos(cos(cosh(acos(cos(cos(cos(cos(cos(acos(acos(acos(acos(acos(acos(acos(acos(cos(cos(cos(cos(cosh(acos(cos())))))))))))))))))))))))))))))))))))))");
Assert.fail();
@@ -147,7 +147,7 @@ public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
@Test
public void testRounding() throws Exception {
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine();
try {
DecimalFormatSymbols decimalGroupSymbols = new DecimalFormatSymbols(Locale.getDefault());
@@ -171,7 +171,7 @@ public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
@Test
public void testNumeralSystems() throws Exception {
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine();
CalculatorTestUtils.assertEval("11 259 375", "0x:ABCDEF");
CalculatorTestUtils.assertEval("30 606 154.462", "0x:ABCDEF*e");
@@ -200,7 +200,7 @@ public class AndroidCalculatorEngineTest extends AbstractCalculatorTest {
@Test
public void testLog() throws Exception {
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine();
CalculatorTestUtils.assertEval("", Expression.valueOf("1/0").numeric().toString());
CalculatorTestUtils.assertEval("", Expression.valueOf("ln(10)/ln(1)").numeric().toString());

View File

@@ -54,7 +54,7 @@ public class EvaluateTest extends AbstractCalculatorTest {
@Test
public void testEvaluate() throws Exception {
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine0();
final MathEngine cm = Locator.getInstance().getEngine().getMathEngine();
final AngleUnit defaultAngleUnit = cm.getAngleUnits();

View File

@@ -58,11 +58,11 @@ public class NumeralBaseTest extends AbstractCalculatorTest {
final String bin = "0b:" + line[2].toUpperCase();
final String decExpression = converter.convert(dec);
final String decResult = Locator.getInstance().getEngine().getEngine().evaluate(decExpression);
final String decResult = Locator.getInstance().getEngine().getMathEngine().evaluate(decExpression);
final String hexExpression = converter.convert(hex);
final String hexResult = Locator.getInstance().getEngine().getEngine().evaluate(hexExpression);
final String hexResult = Locator.getInstance().getEngine().getMathEngine().evaluate(hexExpression);
final String binExpression = converter.convert(bin);
final String binResult = Locator.getInstance().getEngine().getEngine().evaluate(binExpression);
final String binResult = Locator.getInstance().getEngine().getMathEngine().evaluate(binExpression);
Assert.assertEquals("dec-hex: " + decExpression + " : " + hexExpression, decResult, hexResult);
Assert.assertEquals("dec-bin: " + decExpression + " : " + binExpression, decResult, binResult);