Variables refactor

This commit is contained in:
serso
2016-01-27 17:33:01 +01:00
parent f767f10795
commit 2448f1b387
23 changed files with 324 additions and 383 deletions

View File

@@ -103,7 +103,7 @@ public class CalculatorTestUtils {
final JsclMathEngine jsclEngine = JsclMathEngine.getInstance();
final VariablesRegistry variablesRegistry = new VariablesRegistry(jsclEngine.getConstantsRegistry(), entityDao);
final VariablesRegistry variablesRegistry = new VariablesRegistry(jsclEngine);
final FunctionsRegistry functionsRegistry = new FunctionsRegistry(jsclEngine);
final OperatorsRegistry operatorsRegistry = new OperatorsRegistry(jsclEngine.getOperatorsRegistry());
final PostfixFunctionsRegistry postfixFunctionsRegistry = new PostfixFunctionsRegistry(jsclEngine.getPostfixFunctionsRegistry());

View File

@@ -25,7 +25,7 @@ package org.solovyev.android.calculator;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.solovyev.android.calculator.model.Var;
import org.solovyev.android.calculator.model.OldVar;
import org.solovyev.android.calculator.text.FromJsclSimplifyTextProcessor;
import java.text.DecimalFormatSymbols;
@@ -57,15 +57,15 @@ public class FromJsclSimplifyTextProcessorTest extends AbstractCalculatorTest {
//Assert.assertEquals("e", tp.process("2.718281828459045"));
//Assert.assertEquals("tee", tp.process("t2.718281828459045*2.718281828459045"));
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("t2.718281828459045", "2"));
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("t", (String) null));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("t2.718281828459045", "2"));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("t", (String) null));
//Assert.assertEquals("t2.718281828459045e", tp.process("t2.718281828459045*2.718281828459045"));
//Assert.assertEquals("ee", tp.process("2.718281828459045*2.718281828459045"));
Assert.assertEquals("t×", tp.process("t*"));
Assert.assertEquals("×t", tp.process("*t"));
Assert.assertEquals("t2", tp.process("t*2"));
Assert.assertEquals("2t", tp.process("2*t"));
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("t", (String) null));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("t", (String) null));
Assert.assertEquals("t×", tp.process("t*"));
Assert.assertEquals("×t", tp.process("*t"));
@@ -78,7 +78,7 @@ public class FromJsclSimplifyTextProcessorTest extends AbstractCalculatorTest {
Assert.assertEquals("t^[2×2t]", tp.process("t^[2*2*t]"));
Assert.assertEquals("2t^2[2t]", tp.process("2*t^2[2*t]"));
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("k", (String) null));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("k", (String) null));
Assert.assertEquals("(t+2k)[k+2t]", tp.process("(t+2*k)*[k+2*t]"));
Assert.assertEquals("(te+2k)e[k+2te]", tp.process("(t*e+2*k)*e*[k+2*t*e]"));

View File

@@ -139,7 +139,7 @@ public class AndroidEngineTest extends AbstractCalculatorTest {
cm.setAngleUnits(defaultAngleUnit);
}
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("si", 5d));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("si", 5d));
CalculatorTestUtils.assertEval("5", cm.evaluate("si"));
CalculatorTestUtils.assertError("sin");

View File

@@ -116,7 +116,7 @@ public class EvaluateTest extends AbstractCalculatorTest {
CalculatorTestUtils.assertError("(-1)i!");
CalculatorTestUtils.assertEval("24i", "4!i");
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("si", 5d));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("si", 5d));
try {
cm.setAngleUnits(AngleUnit.rad);
@@ -130,14 +130,14 @@ public class EvaluateTest extends AbstractCalculatorTest {
cm.setAngleUnits(defaultAngleUnit);
}
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("s", 1d));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("s", 1d));
CalculatorTestUtils.assertEval("5", cm.evaluate("si"));
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("k", 3.5d));
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("k1", 4d));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("k", 3.5d));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("k1", 4d));
CalculatorTestUtils.assertEval("4", "k11");
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("t", (String) null));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("t", (String) null));
CalculatorTestUtils.assertEval("11t", "t11");
CalculatorTestUtils.assertEval("11et", "t11e");
CalculatorTestUtils.assertEval("", "");
@@ -183,10 +183,10 @@ public class EvaluateTest extends AbstractCalculatorTest {
cm.setTimeout(3000);
}*/
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("t", (String) null));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("t", (String) null));
CalculatorTestUtils.assertEval("2t", "∂(t^2,t)", JsclOperation.simplify);
CalculatorTestUtils.assertEval("2t", "∂(t^2,t)");
Locator.getInstance().getEngine().getVariablesRegistry().add(new Var.Builder("t", "2"));
Locator.getInstance().getEngine().getVariablesRegistry().add(new OldVar.Builder("t", "2"));
CalculatorTestUtils.assertEval("2t", "∂(t^2,t)", JsclOperation.simplify);
CalculatorTestUtils.assertEval("4", "∂(t^2,t)");

View File

@@ -22,7 +22,6 @@
package org.solovyev.android.calculator.model;
import jscl.util.ExpressionGenerator;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.junit.Assert;
@@ -33,12 +32,16 @@ import org.simpleframework.xml.core.Persister;
import org.solovyev.android.calculator.CalculatorTestUtils;
import org.solovyev.common.Objects;
import org.solovyev.common.equals.CollectionEqualizer;
import org.solovyev.common.text.Strings;
import java.io.StringWriter;
import java.util.Date;
import java.util.List;
import java.util.Random;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.io.StringWriter;
import java.util.*;
import jscl.util.ExpressionGenerator;
/**
* User: serso
@@ -87,31 +90,6 @@ public class OldFunctionsTest {
CalculatorTestUtils.staticSetUp();
}
@Test
public void testXml() throws Exception {
final OldFunctions in = new OldFunctions();
OldFunction first = new OldFunction.Builder("test", "x+y", Arrays.asList("x", "y")).setDescription("description").setSystem(false).create();
in.getEntities().add(first);
OldFunction second = new OldFunction.Builder("z_2", "e^(z_1^2+z_2^2)", Arrays.asList("z_1", "z_2")).setSystem(true).create();
in.getEntities().add(second);
OldFunction third = new OldFunction.Builder("z_2", "e^(z_1^2+z_2^2)", Arrays.asList("z_1", "z_2")).setSystem(true).setDescription("").create();
in.getEntities().add(third);
final OldFunctions out = testXml(in, xml);
Assert.assertTrue(!out.getEntities().isEmpty());
final OldFunction firstOut = out.getEntities().get(0);
final OldFunction secondOut = out.getEntities().get(1);
assertEquals(first, firstOut);
assertEquals(second, secondOut);
}
@Nonnull
private OldFunctions testXml(@Nonnull OldFunctions in, @Nullable String expectedXml) throws Exception {
final String actualXml = toXml(in);
@@ -142,7 +120,7 @@ public class OldFunctionsTest {
ExpressionGenerator generator = new ExpressionGenerator(10);
for (int i = 0; i < 1000; i++) {
final String content = generator.generate();
/* final String content = generator.generate();
final String paramsString = Strings.generateRandomString(random.nextInt(10));
final List<String> parameterNames = new ArrayList<String>();
@@ -158,7 +136,7 @@ public class OldFunctionsTest {
builder.setSystem(random.nextBoolean());
in.getEntities().add(builder.create());
in.getEntities().add(builder.create());*/
}
testXml(in, null);

View File

@@ -37,7 +37,7 @@ import static org.junit.Assert.assertEquals;
* Date: 11/7/11
* Time: 7:52 PM
*/
public class VarTest {
public class OldVarTest {
private static final String xml = "<vars>\n" +
" <vars class=\"java.util.ArrayList\">\n" +
@@ -57,10 +57,10 @@ public class VarTest {
@Test
public void testXml() throws Exception {
final Vars vars = new Vars();
Var first = new Var.Builder("e", Math.E).setDescription("description").setSystem(true).create();
final OldVars vars = new OldVars();
OldVar first = new OldVar.Builder("e", Math.E).setDescription("description").setSystem(true).create();
vars.getEntities().add(first);
Var second = new Var.Builder(";", 3d).setSystem(true).create();
OldVar second = new OldVar.Builder(";", 3d).setSystem(true).create();
vars.getEntities().add(second);
final StringWriter sw = new StringWriter();
@@ -69,7 +69,7 @@ public class VarTest {
assertEquals(xml, sw.toString());
final Vars result = serializer.read(Vars.class, xml);
final OldVars result = serializer.read(OldVars.class, xml);
final IConstant actualFirst = result.getEntities().get(0);
final IConstant actualSecond = result.getEntities().get(1);