New architecture
This commit is contained in:
@@ -6,7 +6,6 @@
|
||||
|
||||
package org.solovyev.android.calculator;
|
||||
|
||||
import jscl.JsclMathEngine;
|
||||
import jscl.MathEngine;
|
||||
import jscl.NumeralBase;
|
||||
import junit.framework.Assert;
|
||||
@@ -26,7 +25,7 @@ public class TextHighlighterTest {
|
||||
|
||||
@Test
|
||||
public void testProcess() throws Exception {
|
||||
TextProcessor<?, String> textHighlighter = new TextHighlighter(0, false, JsclMathEngine.instance);
|
||||
TextProcessor<?, String> textHighlighter = new TextHighlighter(0, false);
|
||||
|
||||
final Random random = new Random(new Date().getTime());
|
||||
for (int i = 0; i < 1000; i++) {
|
||||
@@ -46,7 +45,7 @@ public class TextHighlighterTest {
|
||||
Assert.assertEquals(")", textHighlighter.process(")").toString());
|
||||
Assert.assertEquals(")()(", textHighlighter.process(")()(").toString());
|
||||
|
||||
textHighlighter = new TextHighlighter(0, true, JsclMathEngine.instance);
|
||||
textHighlighter = new TextHighlighter(0, true);
|
||||
Assert.assertEquals("1 000 000", textHighlighter.process("1000000").toString());
|
||||
Assert.assertEquals("1 000 000", textHighlighter.process("1000000").toString());
|
||||
Assert.assertEquals("0.1E3", textHighlighter.process("0.1E3").toString());
|
||||
@@ -65,7 +64,7 @@ public class TextHighlighterTest {
|
||||
Assert.assertEquals("-1 000 000E3", textHighlighter.process("-1000000E3").toString());
|
||||
Assert.assertEquals("-1 000 000E-3", textHighlighter.process("-1000000E-3").toString());
|
||||
Assert.assertEquals("-1 000 000E-30000", textHighlighter.process("-1000000E-30000").toString());
|
||||
textHighlighter = new TextHighlighter(0, false, JsclMathEngine.instance);
|
||||
textHighlighter = new TextHighlighter(0, false);
|
||||
|
||||
textHighlighter.process("cannot calculate 3^10^10 !!!\n" +
|
||||
" unable to enter 0. FIXED\n" +
|
||||
@@ -92,7 +91,7 @@ public class TextHighlighterTest {
|
||||
Assert.assertEquals("<b>0x:</b>FF33233FFE", textHighlighter.process("0x:FF33233FFE").toString());
|
||||
Assert.assertEquals("<b>0x:</b>FF33 233 FFE", textHighlighter.process("0x:FF33 233 FFE").toString());
|
||||
|
||||
final MathEngine me = CalculatorLocatorImpl.getInstance().getEngine().getEngine();
|
||||
final MathEngine me = CalculatorLocatorImpl.getInstance().getEngine().getMathEngine0();
|
||||
try {
|
||||
me.setNumeralBase(NumeralBase.hex);
|
||||
Assert.assertEquals("E", textHighlighter.process("E").toString());
|
||||
|
@@ -5,25 +5,8 @@
|
||||
|
||||
package org.solovyev.android.calculator.model;
|
||||
|
||||
import jscl.AngleUnit;
|
||||
import jscl.JsclMathEngine;
|
||||
import jscl.NumeralBase;
|
||||
import jscl.math.Expression;
|
||||
import jscl.math.Generic;
|
||||
import jscl.math.function.Constant;
|
||||
import jscl.math.function.CustomFunction;
|
||||
import org.junit.Assert;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
import org.solovyev.android.calculator.CalculatorEvalException;
|
||||
import org.solovyev.android.calculator.CalculatorLocatorImpl;
|
||||
import org.solovyev.android.calculator.CalculatorParseException;
|
||||
import org.solovyev.android.calculator.jscl.JsclOperation;
|
||||
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.util.Locale;
|
||||
|
||||
import static junit.framework.Assert.fail;
|
||||
|
||||
/**
|
||||
* User: serso
|
||||
@@ -37,9 +20,8 @@ public class AndroidCalculatorEngineTest {
|
||||
public static void setUp() throws Exception {
|
||||
CalculatorLocatorImpl.getInstance().getEngine().init();
|
||||
((AndroidCalculatorEngine) CalculatorLocatorImpl.getInstance().getEngine()).setPrecision(3);
|
||||
((AndroidCalculatorEngine) CalculatorLocatorImpl.getInstance().getEngine()).setThreadKiller(new AndroidCalculatorEngine.ThreadKillerImpl());
|
||||
}
|
||||
|
||||
/*
|
||||
@Test
|
||||
public void testDegrees() throws Exception {
|
||||
final AndroidCalculatorEngine cm = (AndroidCalculatorEngine) CalculatorLocatorImpl.getInstance().getEngine();
|
||||
@@ -95,7 +77,7 @@ public class AndroidCalculatorEngineTest {
|
||||
}
|
||||
}
|
||||
|
||||
/*final long start = System.currentTimeMillis();
|
||||
*//*final long start = System.currentTimeMillis();
|
||||
try {
|
||||
cm.evaluate(JsclOperation.numeric, "3^10^10^10");
|
||||
Assert.fail();
|
||||
@@ -106,7 +88,7 @@ public class AndroidCalculatorEngineTest {
|
||||
} else {
|
||||
Assert.fail();
|
||||
}
|
||||
}*/
|
||||
}*//*
|
||||
|
||||
}
|
||||
|
||||
@@ -157,7 +139,7 @@ public class AndroidCalculatorEngineTest {
|
||||
Assert.assertEquals("-2+2.5i", cm.evaluate(JsclOperation.numeric, "-2+2.5i").getStringResult());
|
||||
Assert.assertEquals("-2+2.1i", cm.evaluate(JsclOperation.numeric, "-2+2.1i").getStringResult());
|
||||
Assert.assertEquals("-0.1-0.2i", cm.evaluate(JsclOperation.numeric, "(1-i)/(2+6i)").getStringResult());
|
||||
|
||||
|
||||
junit.framework.Assert.assertEquals("24", cm.evaluate(JsclOperation.numeric, "4!").getStringResult());
|
||||
junit.framework.Assert.assertEquals("24", cm.evaluate(JsclOperation.numeric, "(2+2)!").getStringResult());
|
||||
junit.framework.Assert.assertEquals("120", cm.evaluate(JsclOperation.numeric, "(2+2+1)!").getStringResult());
|
||||
@@ -230,7 +212,7 @@ public class AndroidCalculatorEngineTest {
|
||||
Assert.assertEquals("0", cm.evaluate(JsclOperation.numeric, "((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))").getStringResult());
|
||||
|
||||
|
||||
/* Assert.assertEquals("0.524", cm.evaluate(JsclOperation.numeric, "30°").getResult());
|
||||
*//* Assert.assertEquals("0.524", cm.evaluate(JsclOperation.numeric, "30°").getResult());
|
||||
Assert.assertEquals("0.524", cm.evaluate(JsclOperation.numeric, "(10+20)°").getResult());
|
||||
Assert.assertEquals("1.047", cm.evaluate(JsclOperation.numeric, "(10+20)°*2").getResult());
|
||||
try {
|
||||
@@ -240,14 +222,14 @@ public class AndroidCalculatorEngineTest {
|
||||
if ( !e.getMessage().equals("Power operation after postfix function is currently unsupported!") ) {
|
||||
junit.framework.Assert.fail();
|
||||
}
|
||||
}*/
|
||||
}*//*
|
||||
|
||||
/* try {
|
||||
*//* try {
|
||||
cm.setTimeout(5000);
|
||||
Assert.assertEquals("2", cm.evaluate(JsclOperation.numeric, "2!").getResult());
|
||||
} finally {
|
||||
cm.setTimeout(3000);
|
||||
}*/
|
||||
}*//*
|
||||
|
||||
CalculatorLocatorImpl.getInstance().getEngine().getVarsRegistry().add(new Var.Builder("t", (String) null));
|
||||
Assert.assertEquals("2t", cm.evaluate(JsclOperation.simplify, "∂(t^2,t)").getStringResult());
|
||||
@@ -442,5 +424,5 @@ public class AndroidCalculatorEngineTest {
|
||||
Assert.assertEquals("1/(bln(a))", cm.evaluate(JsclOperation.simplify, "∂(log(a, b), b)").getStringResult());
|
||||
Assert.assertEquals("-ln(b)/(aln(a)^2)", cm.evaluate(JsclOperation.simplify, "∂(log(a, b), a)").getStringResult());
|
||||
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
@@ -30,7 +30,6 @@ public class NumeralBaseTest {
|
||||
public static void setUp() throws Exception {
|
||||
CalculatorLocatorImpl.getInstance().getEngine().init();
|
||||
((AndroidCalculatorEngine) CalculatorLocatorImpl.getInstance().getEngine()).setPrecision(3);
|
||||
((AndroidCalculatorEngine) CalculatorLocatorImpl.getInstance().getEngine()).setThreadKiller(new AndroidCalculatorEngine.ThreadKillerImpl());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -100,11 +99,11 @@ public class NumeralBaseTest {
|
||||
final String bin = "0b:" + line[2].toUpperCase();
|
||||
|
||||
final String decExpression = converter.convert(dec);
|
||||
final String decResult = CalculatorLocatorImpl.getInstance().getEngine().getEngine().evaluate(decExpression);
|
||||
final String decResult = CalculatorLocatorImpl.getInstance().getEngine().getMathEngine().evaluate(decExpression);
|
||||
final String hexExpression = converter.convert(hex);
|
||||
final String hexResult = CalculatorLocatorImpl.getInstance().getEngine().getEngine().evaluate(hexExpression);
|
||||
final String hexResult = CalculatorLocatorImpl.getInstance().getEngine().getMathEngine().evaluate(hexExpression);
|
||||
final String binExpression = converter.convert(bin);
|
||||
final String binResult = CalculatorLocatorImpl.getInstance().getEngine().getEngine().evaluate(binExpression);
|
||||
final String binResult = CalculatorLocatorImpl.getInstance().getEngine().getMathEngine().evaluate(binExpression);
|
||||
|
||||
Assert.assertEquals("dec-hex: " + decExpression + " : " + hexExpression, decResult, hexResult);
|
||||
Assert.assertEquals("dec-bin: " + decExpression + " : " + binExpression, decResult, binResult);
|
||||
|
@@ -68,10 +68,10 @@ public class ToJsclTextProcessorTest {
|
||||
Assert.assertEquals( "EE", preprocessor.process("EE").toString());
|
||||
|
||||
try {
|
||||
CalculatorLocatorImpl.getInstance().getEngine().getEngine().setNumeralBase(NumeralBase.hex);
|
||||
CalculatorLocatorImpl.getInstance().getEngine().setNumeralBase(NumeralBase.hex);
|
||||
Assert.assertEquals( "22F*exp(F)", preprocessor.process("22Fexp(F)").toString());
|
||||
} finally {
|
||||
CalculatorLocatorImpl.getInstance().getEngine().getEngine().setNumeralBase(NumeralBase.dec);
|
||||
CalculatorLocatorImpl.getInstance().getEngine().setNumeralBase(NumeralBase.dec);
|
||||
}
|
||||
Assert.assertEquals( "0x:ABCDEF", preprocessor.process("0x:ABCDEF").toString());
|
||||
Assert.assertEquals( "0x:ABCDEF", preprocessor.process("0x:A BC DEF").toString());
|
||||
|
Reference in New Issue
Block a user