aboutsummaryrefslogtreecommitdiff
path: root/calculator-java/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'calculator-java/src/test')
-rw-r--r--calculator-java/src/test/java/ExpressionParserTest.java115
-rw-r--r--calculator-java/src/test/java/StatementParserTest.java36
2 files changed, 35 insertions, 116 deletions
diff --git a/calculator-java/src/test/java/ExpressionParserTest.java b/calculator-java/src/test/java/ExpressionParserTest.java
deleted file mode 100644
index b15e844..0000000
--- a/calculator-java/src/test/java/ExpressionParserTest.java
+++ /dev/null
@@ -1,115 +0,0 @@
-import ch.bfh.CalculatorLexer;
-import ch.bfh.parser.ExpressionParser;
-import org.junit.Test;
-import static org.junit.Assert.assertEquals;
-
-public class ExpressionParserTest {
-
- // Only testing correct expressions first
- @Test
- public void emptyExpression() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(0.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void oneFactor() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("10");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(10.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void oneParenthesisedFactor() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("(10)");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(10.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void oneNegativeFactor() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("-10");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(-10.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void oneNegativeParenthesisedFactor() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("-(10)");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(-10.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void oneNegativeParenthesisedNegativeFactor() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("-(-10)");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(10.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void twoFactorSum() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("2+3");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(5.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void twoFactorSub() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("2-3");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(-1.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void twoFactorSumWithSub() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("2--3");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(5.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void twoFactorSumWithSubParenthesised() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("2-(-3)");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(5.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void twoFactorMul() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("2*3");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(6.0, ep.getValue(), 0.0);
- }
-
- @Test
- public void twoFactorDiv() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("11/4");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(2.75, ep.getValue(), 0.0);
- }
-
- @Test
- public void completeArithmeticOperationWithPriorities() {
- CalculatorLexer cl = new CalculatorLexer();
- cl.initLexer("(4+5)*3/4");
- ExpressionParser ep = new ExpressionParser(cl);
- assertEquals(6.75, ep.getValue(), 0.0);
- }
-
- //TODO - test error detection
-
-}
diff --git a/calculator-java/src/test/java/StatementParserTest.java b/calculator-java/src/test/java/StatementParserTest.java
index 4b2e635..8c2db59 100644
--- a/calculator-java/src/test/java/StatementParserTest.java
+++ b/calculator-java/src/test/java/StatementParserTest.java
@@ -1,4 +1,3 @@
-import ch.bfh.CalculatorLexer;
import ch.bfh.parser.StatementParser;
import org.junit.Test;
@@ -86,6 +85,41 @@ public class StatementParserTest {
assertEquals(6.75, sp.getValue(), 0.0);
}
+ @Test
+ public void variableTest() {
+ sp.parseStatement("let a = 5");
+ assertEquals(5.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("a");
+ assertEquals(5.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("(a)");
+ assertEquals(5.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("-a");
+ assertEquals(-5.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("-(a)");
+ assertEquals(-5.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("-(-a)");
+ assertEquals(5.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("let b=5*50");
+ assertEquals(250.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("b/a");
+ assertEquals(50.0, sp.getValue(), 0.0);
+
+ sp.parseStatement("b+a/2");
+ assertEquals(252.5, sp.getValue(), 0.0);
+
+ sp.parseStatement("let z = b+a/2");
+ assertEquals(252.5, sp.getValue(), 0.0);
+
+ sp.parseStatement("let a = b+a");
+ assertEquals(255.0, sp.getValue(), 0.0);
+ }
//TODO - test error detection
}