diff options
| author | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-01-12 19:31:40 +0100 |
|---|---|---|
| committer | Stefan Suhren <suhren.stefan@fh-swf.de> | 2015-01-12 19:31:40 +0100 |
| commit | b2a66673c2d7d67fbb967c17c038814c4cec166c (patch) | |
| tree | b549a511feb65c090a6da94131770c4783564e79 /src/de/fhswf/in/inf/java1/aufgabe13 | |
| parent | ad9ec8854341770a84700d3df18c3a044a14f673 (diff) | |
| download | Java1-b2a66673c2d7d67fbb967c17c038814c4cec166c.tar.gz Java1-b2a66673c2d7d67fbb967c17c038814c4cec166c.zip | |
Assignment No.13 first implementation.
Diffstat (limited to 'src/de/fhswf/in/inf/java1/aufgabe13')
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); + } + +} |
