summaryrefslogtreecommitdiffstats
path: root/tests/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java')
-rw-r--r--tests/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java148
1 files changed, 148 insertions, 0 deletions
diff --git a/tests/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java b/tests/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java
new file mode 100644
index 0000000..238c865
--- /dev/null
+++ b/tests/de/fhswf/in/inf/java1/aufgabe13/BinaryOperatorTests.java
@@ -0,0 +1,148 @@
+/**
+ *
+ */
+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<>();
+
+ final double firstOperator = 3.0;
+ test.add(firstOperator);
+ 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);
+ }
+
+}