1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.math.complex;
18
19 import org.apache.commons.math.TestUtils;
20
21 import junit.framework.TestCase;
22
23 /***
24 * @version $Revision: 1.1 $ $Date: 2004/07/12 00:27:09 $
25 */
26 public class ComplexUtilsTest extends TestCase {
27
28 public void testAcos() {
29 Complex z = new Complex(3, 4);
30 Complex expected = new Complex(0.936812, -2.30551);
31 TestUtils.assertEquals(expected, ComplexUtils.acos(z), 1.0e-5);
32 }
33
34 public void testAcosNaN() {
35 assertTrue(ComplexUtils.acos(Complex.NaN).isNaN());
36 }
37
38 public void testAsin() {
39 Complex z = new Complex(3, 4);
40 Complex expected = new Complex(0.633984, 2.30551);
41 TestUtils.assertEquals(expected, ComplexUtils.asin(z), 1.0e-5);
42 }
43
44 public void testAsinNaN() {
45 assertTrue(ComplexUtils.asin(Complex.NaN).isNaN());
46 }
47
48 public void testAtan() {
49 Complex z = new Complex(3, 4);
50 Complex expected = new Complex(1.44831, 0.158997);
51 TestUtils.assertEquals(expected, ComplexUtils.atan(z), 1.0e-5);
52 }
53
54 public void testAtanNaN() {
55 assertTrue(ComplexUtils.atan(Complex.NaN).isNaN());
56 }
57
58 public void testCos() {
59 Complex z = new Complex(3, 4);
60 Complex expected = new Complex(-27.03495, -3.851153);
61 TestUtils.assertEquals(expected, ComplexUtils.cos(z), 1.0e-5);
62 }
63
64 public void testCosh() {
65 Complex z = new Complex(3, 4);
66 Complex expected = new Complex(-6.58066, -7.58155);
67 TestUtils.assertEquals(expected, ComplexUtils.cosh(z), 1.0e-5);
68 }
69
70 public void testCoshNaN() {
71 assertTrue(ComplexUtils.cosh(Complex.NaN).isNaN());
72 }
73
74 public void testCosNaN() {
75 assertTrue(ComplexUtils.cos(Complex.NaN).isNaN());
76 }
77
78 public void testExp() {
79 Complex z = new Complex(3, 4);
80 Complex expected = new Complex(-13.12878, -15.20078);
81 TestUtils.assertEquals(expected, ComplexUtils.exp(z), 1.0e-5);
82 }
83
84 public void testExpNaN() {
85 assertTrue(ComplexUtils.exp(Complex.NaN).isNaN());
86 }
87
88 public void testLog() {
89 Complex z = new Complex(3, 4);
90 Complex expected = new Complex(1.60944, 0.927295);
91 TestUtils.assertEquals(expected, ComplexUtils.log(z), 1.0e-5);
92 }
93
94 public void testLogNaN() {
95 assertTrue(ComplexUtils.log(Complex.NaN).isNaN());
96 }
97
98 public void testPow() {
99 Complex x = new Complex(3, 4);
100 Complex y = new Complex(5, 6);
101 Complex expected = new Complex(-1.860893, 11.83677);
102 TestUtils.assertEquals(expected, ComplexUtils.pow(x, y), 1.0e-5);
103 }
104
105 public void testPowNaNBase() {
106 Complex x = new Complex(3, 4);
107 assertTrue(ComplexUtils.pow(Complex.NaN, x).isNaN());
108 }
109
110 public void testPowNaNExponent() {
111 Complex x = new Complex(3, 4);
112 assertTrue(ComplexUtils.pow(x, Complex.NaN).isNaN());
113 }
114
115 public void testSin() {
116 Complex z = new Complex(3, 4);
117 Complex expected = new Complex(3.853738, -27.01681);
118 TestUtils.assertEquals(expected, ComplexUtils.sin(z), 1.0e-5);
119 }
120
121 public void testSinh() {
122 Complex z = new Complex(3, 4);
123 Complex expected = new Complex(-6.54812, -7.61923);
124 TestUtils.assertEquals(expected, ComplexUtils.sinh(z), 1.0e-5);
125 }
126
127 public void testSinhNaN() {
128 assertTrue(ComplexUtils.sinh(Complex.NaN).isNaN());
129 }
130
131 public void testSinNaN() {
132 assertTrue(ComplexUtils.sin(Complex.NaN).isNaN());
133 }
134
135 public void testSqrtRealPositive() {
136 Complex z = new Complex(3, 4);
137 Complex expected = new Complex(2, 1);
138 TestUtils.assertEquals(expected, ComplexUtils.sqrt(z), 1.0e-5);
139 }
140
141 public void testSqrtRealZero() {
142 Complex z = new Complex(0.0, 4);
143 Complex expected = new Complex(1.41421, 1.41421);
144 TestUtils.assertEquals(expected, ComplexUtils.sqrt(z), 1.0e-5);
145 }
146
147 public void testSqrtRealNegative() {
148 Complex z = new Complex(-3.0, 4);
149 Complex expected = new Complex(1, 2);
150 TestUtils.assertEquals(expected, ComplexUtils.sqrt(z), 1.0e-5);
151 }
152
153 public void testSqrtImaginaryZero() {
154 Complex z = new Complex(-3.0, 0.0);
155 Complex expected = new Complex(0.0, 1.73205);
156 TestUtils.assertEquals(expected, ComplexUtils.sqrt(z), 1.0e-5);
157 }
158
159 public void testSqrtImaginaryNegative() {
160 Complex z = new Complex(-3.0, -4.0);
161 Complex expected = new Complex(1.0, -2.0);
162 TestUtils.assertEquals(expected, ComplexUtils.sqrt(z), 1.0e-5);
163 }
164
165 public void testSqrt1z() {
166 Complex z = new Complex(3, 4);
167 Complex expected = new Complex(4.08033, -2.94094);
168 TestUtils.assertEquals(expected, ComplexUtils.sqrt1z(z), 1.0e-5);
169 }
170
171 public void testSqrt1zNaN() {
172 assertTrue(ComplexUtils.sqrt1z(Complex.NaN).isNaN());
173 }
174
175 public void testSqrtNaN() {
176 assertTrue(ComplexUtils.sqrt(Complex.NaN).isNaN());
177 }
178
179 public void testTan() {
180 Complex z = new Complex(3, 4);
181 Complex expected = new Complex(-0.000187346, 0.999356);
182 TestUtils.assertEquals(expected, ComplexUtils.tan(z), 1.0e-5);
183 }
184
185 public void testTanh() {
186 Complex z = new Complex(3, 4);
187 Complex expected = new Complex(1.00071, 0.00490826);
188 TestUtils.assertEquals(expected, ComplexUtils.tanh(z), 1.0e-5);
189 }
190
191 public void testTanhNaN() {
192 assertTrue(ComplexUtils.tanh(Complex.NaN).isNaN());
193 }
194
195 public void testTanNaN() {
196 assertTrue(ComplexUtils.tan(Complex.NaN).isNaN());
197 }
198 }