refactor + russian language support

This commit is contained in:
serso
2011-10-06 23:25:49 +04:00
parent e368819de7
commit 96e6d4619f
28 changed files with 569 additions and 417 deletions

View File

@@ -1,45 +0,0 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.math;
import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.solovyev.android.calculator.CalculatorModel;
/**
* User: serso
* Date: 10/5/11
* Time: 1:25 AM
*/
public class MathEntityTypeTest {
@BeforeClass
public static void setUp() throws Exception {
CalculatorModel.init(null);
}
@Test
public void testGetType() throws Exception {
Assert.assertEquals(MathEntityType.function, MathEntityType.getType("sin", 0).getMathEntityType());
Assert.assertEquals(MathEntityType.text, MathEntityType.getType("sn", 0).getMathEntityType());
Assert.assertEquals(MathEntityType.text, MathEntityType.getType("s", 0).getMathEntityType());
Assert.assertEquals(MathEntityType.text, MathEntityType.getType("", 0).getMathEntityType());
try {
Assert.assertEquals(MathEntityType.text, MathEntityType.getType("22", -1).getMathEntityType());
Assert.fail();
} catch (IllegalArgumentException e) {
}
try {
Assert.assertEquals(MathEntityType.text, MathEntityType.getType("22", 2).getMathEntityType());
Assert.fail();
} catch (IllegalArgumentException e) {
}
}
}

View File

@@ -0,0 +1,45 @@
/*
* Copyright (c) 2009-2011. Created by serso aka se.solovyev.
* For more information, please, contact se.solovyev@gmail.com
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator.math;
import junit.framework.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.solovyev.android.calculator.model.CalculatorModel;
/**
* User: serso
* Date: 10/5/11
* Time: 1:25 AM
*/
public class MathTypeTest {
@BeforeClass
public static void setUp() throws Exception {
CalculatorModel.instance.init(null);
}
@Test
public void testGetType() throws Exception {
Assert.assertEquals(MathType.function, MathType.getType("sin", 0).getMathType());
Assert.assertEquals(MathType.text, MathType.getType("sn", 0).getMathType());
Assert.assertEquals(MathType.text, MathType.getType("s", 0).getMathType());
Assert.assertEquals(MathType.text, MathType.getType("", 0).getMathType());
try {
Assert.assertEquals(MathType.text, MathType.getType("22", -1).getMathType());
Assert.fail();
} catch (IllegalArgumentException e) {
}
try {
Assert.assertEquals(MathType.text, MathType.getType("22", 2).getMathType());
Assert.fail();
} catch (IllegalArgumentException e) {
}
}
}

View File

@@ -3,12 +3,13 @@
* For more information, please, contact se.solovyev@gmail.com
*/
package org.solovyev.android.calculator;
package org.solovyev.android.calculator.model;
import bsh.EvalError;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;
import org.solovyev.android.calculator.JsclOperation;
/**
* User: serso
@@ -19,12 +20,12 @@ public class CalculatorModelTest {
@BeforeClass
public static void setUp() throws Exception {
CalculatorModel.init(null);
CalculatorModel.instance.init(null);
}
@Test
public void testEvaluate() throws Exception {
final CalculatorModel cm = CalculatorModel.getInstance();
final CalculatorModel cm = CalculatorModel.instance;
Assert.assertEquals("4.0", cm.evaluate(JsclOperation.numeric, "2+2"));
Assert.assertEquals("-0.7568", cm.evaluate(JsclOperation.numeric, "sin(4)"));
@@ -47,7 +48,7 @@ public class CalculatorModelTest {
Assert.assertEquals("-3.41007+3.41007i", cm.evaluate(JsclOperation.numeric, "(5tan(2i)+2i)/(1-i)"));
Assert.assertEquals("-0.1-0.2i", cm.evaluate(JsclOperation.numeric, "(1-i)/(2+6i)"));
CalculatorModel.getInstance().getVarsRegister().addVar(null, new Var.Builder("si", 5d));
CalculatorModel.instance.getVarsRegister().addVar(null, new Var.Builder("si", 5d));
Assert.assertEquals("5.0", cm.evaluate(JsclOperation.numeric, "si"));
try {
cm.evaluate(JsclOperation.numeric, "sin");
@@ -60,17 +61,17 @@ public class CalculatorModelTest {
Assert.assertEquals("-23.97311", cm.evaluate(JsclOperation.numeric, "si*sin(5)si"));
Assert.assertEquals("-3.30879", cm.evaluate(JsclOperation.numeric, "sisin(5si)si"));
CalculatorModel.getInstance().getVarsRegister().addVar(null, new Var.Builder("s", 1d));
CalculatorModel.instance.getVarsRegister().addVar(null, new Var.Builder("s", 1d));
Assert.assertEquals("5.0", cm.evaluate(JsclOperation.numeric, "si"));
CalculatorModel.getInstance().getVarsRegister().addVar(null, new Var.Builder("k", 3.5d));
CalculatorModel.getInstance().getVarsRegister().addVar(null, new Var.Builder("k1", 4d));
CalculatorModel.instance.getVarsRegister().addVar(null, new Var.Builder("k", 3.5d));
CalculatorModel.instance.getVarsRegister().addVar(null, new Var.Builder("k1", 4d));
Assert.assertEquals("4.0", cm.evaluate(JsclOperation.numeric, "k11"));
}
@Test
public void testComplexNumbers() throws Exception {
final CalculatorModel cm = CalculatorModel.getInstance();
final FromJsclTextProcessor cm = new FromJsclTextProcessor();
Assert.assertEquals("1.22133+23123.0i", cm.createResultForComplexNumber("1.22133232+23123*i"));
Assert.assertEquals("1.22133+1.2i", cm.createResultForComplexNumber("1.22133232+1.2*i"));

View File

@@ -4,7 +4,7 @@
* or visit http://se.solovyev.org
*/
package org.solovyev.android.calculator;
package org.solovyev.android.calculator.model;
import org.junit.Assert;
import org.junit.Test;
@@ -18,7 +18,7 @@ public class ToJsclPreprocessorTest {
@Test
public void testProcess() throws Exception {
final ToJsclPreprocessor preprocessor = new ToJsclPreprocessor();
final ToJsclTextProcessor preprocessor = new ToJsclTextProcessor();
Assert.assertEquals( "sin(4)*cos(5)", preprocessor.process("sin(4)cos(5)"));
Assert.assertEquals( "pi*sin(4)*pi*cos(sqrt(5))", preprocessor.process("πsin(4)πcos(√(5))"));
@@ -30,7 +30,7 @@ public class ToJsclPreprocessorTest {
@Test
public void testPostfixFunctionsProcessing() throws Exception {
final ToJsclPreprocessor preprocessor = new ToJsclPreprocessor();
final ToJsclTextProcessor preprocessor = new ToJsclTextProcessor();
Assert.assertEquals(-1, preprocessor.getPostfixFunctionStart("5!", 0));
Assert.assertEquals(0, preprocessor.getPostfixFunctionStart("!", 0));