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