/** * */ 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 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 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 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 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 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 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); } }