1 16 17 package org.apache.commons.math.complex; 18 19 import org.apache.commons.math.TestUtils; 20 21 import junit.framework.TestCase; 22 23 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 } 199 | Popular Tags |