1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package org.hipparchus.analysis.integration.gauss;
23
24 import org.hipparchus.analysis.UnivariateFunction;
25 import org.hipparchus.analysis.function.Cos;
26 import org.hipparchus.analysis.function.Inverse;
27 import org.hipparchus.analysis.function.Log;
28 import org.junit.jupiter.api.Test;
29
30 import static org.junit.jupiter.api.Assertions.assertEquals;
31
32
33
34
35
36 class LegendreHighPrecisionTest {
37 private static GaussIntegratorFactory factory = new GaussIntegratorFactory();
38
39 @Test
40 void testCos() {
41 final UnivariateFunction cos = new Cos();
42
43 final GaussIntegrator integrator = factory.legendreHighPrecision(7, 0, Math.PI / 2);
44 final double s = integrator.integrate(cos);
45
46 assertEquals(1, s, Math.ulp(1d));
47 }
48
49
50 @Test
51 void testInverse() {
52 final UnivariateFunction inv = new Inverse();
53 final UnivariateFunction log = new Log();
54
55 final double lo = 12.34;
56 final double hi = 456.78;
57
58 final GaussIntegrator integrator = factory.legendreHighPrecision(60, lo, hi);
59 final double s = integrator.integrate(inv);
60 final double expected = log.value(hi) - log.value(lo);
61
62 assertEquals(expected, s, 1e-15);
63 }
64 }