1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
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);
}
}
|