summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Suhren <suhren.stefan@fh-swf.de>2015-01-12 19:31:40 +0100
committerStefan Suhren <suhren.stefan@fh-swf.de>2015-01-12 19:31:40 +0100
commitb2a66673c2d7d67fbb967c17c038814c4cec166c (patch)
treeb549a511feb65c090a6da94131770c4783564e79 /src
parentad9ec8854341770a84700d3df18c3a044a14f673 (diff)
downloadJava1-b2a66673c2d7d67fbb967c17c038814c4cec166c.tar.gz
Java1-b2a66673c2d7d67fbb967c17c038814c4cec166c.zip
Assignment No.13 first implementation.
Diffstat (limited to 'src')
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java147
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe13/GeneralTests.java75
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe13/UPNTestSuite.java22
-rw-r--r--src/de/fhswf/in/inf/java1/aufgabe13/UnaryOperatorTests.java60
4 files changed, 304 insertions, 0 deletions
diff --git a/src/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java b/src/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java
new file mode 100644
index 0000000..14c0b90
--- /dev/null
+++ b/src/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java
@@ -0,0 +1,147 @@
+/**
+ *
+ */
+package de.fhswf.in.inf.java1.aufgabe13;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Stack;
+
+import org.junit.Test;
+
+import de.fhswf.in.inf.java1.aufgabe12.Addition;
+import de.fhswf.in.inf.java1.aufgabe12.BinaryOperator;
+import de.fhswf.in.inf.java1.aufgabe12.BinaryTemplate;
+import de.fhswf.in.inf.java1.aufgabe12.Division;
+import de.fhswf.in.inf.java1.aufgabe12.Modulo;
+import de.fhswf.in.inf.java1.aufgabe12.Multiplication;
+import de.fhswf.in.inf.java1.aufgabe12.Subtraction;
+
+/**
+ * Tests the BinaryOperators.
+ *
+ * @author $Author: $
+ * @version $Revision: $, $Date: $ UTC
+ */
+public class BinaryOperatorTests
+{
+
+ /**
+ * Test for the Addition class.
+ */
+ @Test
+ public final void testOperatorAddition()
+ {
+ // Sin is tested
+ BinaryOperator tester = new Addition();
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ test.add(1.0);
+ test.add(1.0);
+ tester.eval(test);
+
+ assertEquals(2.0, (double) test.pop(), 0);
+ }
+
+ /**
+ * Test for the Division class.
+ */
+ @Test
+ public final void testOperatorDivision()
+ {
+ // Sin is tested
+ BinaryOperator tester = new Division();
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ test.add(2.0);
+ test.add(2.0);
+ tester.eval(test);
+
+ assertEquals(1.0, (double) test.pop(), 0);
+ }
+
+ /**
+ * Test for the Modulo class.
+ */
+ @Test
+ public final void testOperatorModulo()
+ {
+ // Sin is tested
+ BinaryOperator tester = new Modulo();
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ test.add(3.0);
+ test.add(2.0);
+ tester.eval(test);
+
+ assertEquals(1.0, (double) test.pop(), 0);
+ }
+
+ /**
+ * Test for the Multiplication class.
+ */
+ @Test
+ public final void testOperatorMultiplication()
+ {
+ // Sin is tested
+ BinaryOperator tester = new Multiplication();
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ test.add(2.0);
+ test.add(2.0);
+ tester.eval(test);
+
+ final double expected = 4.0;
+ assertEquals(expected, (double) test.pop(), 0);
+ }
+
+ /**
+ * Test for the Subtraction class.
+ */
+ @Test
+ public final void testOperatorSubtraction()
+ {
+ // Sin is tested
+ BinaryOperator tester = new Subtraction();
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ test.add(2.0);
+ test.add(2.0);
+ tester.eval(test);
+
+ assertEquals(0.0, (double) test.pop(), 0);
+ }
+
+ /**
+ * Test for the BinaryTemplate class initialized with pow.
+ */
+ @Test
+ public final void testOperatorPow()
+ {
+ // Sin is tested
+ BinaryOperator tester = new BinaryTemplate("pow");
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ final double exponent = 3.0;
+
+ test.add(2.0);
+ test.add(exponent);
+ tester.eval(test);
+
+ final double expected = 8.0;
+ assertEquals(expected, (double) test.pop(), 0);
+ }
+
+}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe13/GeneralTests.java b/src/de/fhswf/in/inf/java1/aufgabe13/GeneralTests.java
new file mode 100644
index 0000000..4cbdf76
--- /dev/null
+++ b/src/de/fhswf/in/inf/java1/aufgabe13/GeneralTests.java
@@ -0,0 +1,75 @@
+/**
+ *
+ */
+package de.fhswf.in.inf.java1.aufgabe13;
+
+import org.junit.Test;
+
+import de.fhswf.in.inf.java1.aufgabe12.UPN;
+
+/**
+ * Test the UPN class.
+ *
+ * @author $Author: $
+ * @version $Revision: $, $Date: $ UTC
+ */
+public class GeneralTests
+{
+
+ /**
+ * Test method for
+ * {@link de.fhswf.in.inf.java1.aufgabe12.UPN#calculate(java.lang.String)}.
+ */
+ @Test(expected = IllegalArgumentException.class)
+ public final void testInvalidNumbers()
+ {
+ // UPN is tested
+ UPN tester = new UPN();
+
+ // Test
+ tester.calculate("1g 3 +");
+ }
+
+ /**
+ * Test method for
+ * {@link de.fhswf.in.inf.java1.aufgabe12.UPN#calculate(java.lang.String)}.
+ */
+ @Test(expected = IllegalArgumentException.class)
+ public final void testInvalidOperator()
+ {
+ // UPN is tested
+ UPN tester = new UPN();
+
+ // Test
+ tester.calculate("1 cinus");
+ }
+
+ /**
+ * Test method for
+ * {@link de.fhswf.in.inf.java1.aufgabe12.UPN#calculate(java.lang.String)}.
+ */
+ @Test(expected = IllegalArgumentException.class)
+ public final void testMissingOperands()
+ {
+ // UPN is tested
+ UPN tester = new UPN();
+
+ // Test
+ tester.calculate("1 +");
+ }
+
+ /**
+ * Test method for
+ * {@link de.fhswf.in.inf.java1.aufgabe12.UPN#calculate(java.lang.String)}.
+ */
+ @Test(expected = IllegalArgumentException.class)
+ public final void testDevisionByZero()
+ {
+ // UPN is tested
+ UPN tester = new UPN();
+
+ // Test
+ tester.calculate("1 0 /");
+ }
+
+}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe13/UPNTestSuite.java b/src/de/fhswf/in/inf/java1/aufgabe13/UPNTestSuite.java
new file mode 100644
index 0000000..545e0be
--- /dev/null
+++ b/src/de/fhswf/in/inf/java1/aufgabe13/UPNTestSuite.java
@@ -0,0 +1,22 @@
+/**
+ *
+ */
+package de.fhswf.in.inf.java1.aufgabe13;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+import org.junit.runners.Suite.SuiteClasses;
+
+/**
+ * Test the assignments from paper 11 and 12.
+ *
+ * @author $Author: $
+ * @version $Revision: $, $Date: $ UTC
+ */
+@RunWith(Suite.class)
+@SuiteClasses({ BinaryOperatorTests.class, GeneralTests.class,
+ UnaryOperatorTests.class })
+public class UPNTestSuite
+{
+
+}
diff --git a/src/de/fhswf/in/inf/java1/aufgabe13/UnaryOperatorTests.java b/src/de/fhswf/in/inf/java1/aufgabe13/UnaryOperatorTests.java
new file mode 100644
index 0000000..997f71e
--- /dev/null
+++ b/src/de/fhswf/in/inf/java1/aufgabe13/UnaryOperatorTests.java
@@ -0,0 +1,60 @@
+/**
+ *
+ */
+package de.fhswf.in.inf.java1.aufgabe13;
+
+import static org.junit.Assert.assertEquals;
+
+import java.util.Stack;
+
+import org.junit.Test;
+
+import de.fhswf.in.inf.java1.aufgabe12.UnaryOperator;
+import de.fhswf.in.inf.java1.aufgabe12.UnaryTemplate;
+
+/**
+ * Tests the BinaryOperators.
+ *
+ * @author $Author: $
+ * @version $Revision: $, $Date: $ UTC
+ */
+public class UnaryOperatorTests
+{
+
+ /**
+ * Test for the UnaryTemplate class initialized with sin.
+ */
+ @Test
+ public final void testOperatorSin()
+ {
+ // Sin is tested
+ UnaryOperator tester = new UnaryTemplate("sin");
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ test.add(0.0);
+ tester.eval(test);
+
+ assertEquals(0.0, (double) test.pop(), 0);
+ }
+
+ /**
+ * Test for the UnaryTemplate class initialized with cos.
+ */
+ @Test
+ public final void testOperatorCos()
+ {
+ // Cos is tested
+ UnaryOperator tester = new UnaryTemplate("cos");
+
+ // Test
+ Stack<Double> test = new Stack<>();
+
+ test.add(0.0);
+ tester.eval(test);
+
+ assertEquals(1.0, (double) test.pop(), 0);
+ }
+
+}