1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.commons.numbers.gamma;
18
19 import org.junit.jupiter.api.Assertions;
20 import org.junit.jupiter.api.Test;
21
22
23
24
25 class InverseErfcTest {
26 @Test
27 void testErfcInvNaN() {
28 Assertions.assertTrue(Double.isNaN(InverseErfc.value(-0.001)));
29 Assertions.assertTrue(Double.isNaN(InverseErfc.value(+2.001)));
30 }
31
32 @Test
33 void testErfcInvInfinite() {
34 Assertions.assertTrue(Double.isInfinite(InverseErfc.value(-0)));
35 Assertions.assertTrue(InverseErfc.value(0) > 0);
36 Assertions.assertTrue(Double.isInfinite(InverseErfc.value(+2)));
37 Assertions.assertTrue(InverseErfc.value(+2) < 0);
38 }
39
40 @Test
41 void testErfcInv() {
42 for (double x = -5.85; x < 5.9; x += 0.01) {
43 final double y = Erfc.value(x);
44 final double dydxAbs = 2 * Math.exp(-x * x) / Math.sqrt(Math.PI);
45 Assertions.assertEquals(x, InverseErfc.value(y), 1.0e-15 / dydxAbs);
46 }
47 }
48 }