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 InverseErfTest {
26 @Test
27 void testErfInvNaN() {
28 Assertions.assertTrue(Double.isNaN(InverseErf.value(-1.001)));
29 Assertions.assertTrue(Double.isNaN(InverseErf.value(+1.001)));
30 Assertions.assertTrue(Double.isNaN(InverseErf.value(Double.NaN)));
31 }
32
33 @Test
34 void testErfInvInfinite() {
35 Assertions.assertTrue(Double.isInfinite(InverseErf.value(-1)));
36 Assertions.assertTrue(InverseErf.value(-1) < 0);
37 Assertions.assertTrue(Double.isInfinite(InverseErf.value(+1)));
38 Assertions.assertTrue(InverseErf.value(+1) > 0);
39 }
40
41 @Test
42 void testErfInv() {
43 for (double x = -5.9; x < 5.9; x += 0.01) {
44 final double y = Erf.value(x);
45 final double dydx = 2 * Math.exp(-x * x) / Math.sqrt(Math.PI);
46 Assertions.assertEquals(x, InverseErf.value(y), 1.0e-15 / dydx);
47 }
48 }
49 }