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.Constant;
26 import org.hipparchus.util.Pair;
27 import org.junit.jupiter.api.Test;
28
29 import static org.junit.jupiter.api.Assertions.assertEquals;
30
31
32
33
34
35 class GaussIntegratorTest {
36 @Test
37 void testGetWeights() {
38 final double[] points = { 0, 1.2, 3.4 };
39 final double[] weights = { 9.8, 7.6, 5.4 };
40
41 final GaussIntegrator integrator
42 = new GaussIntegrator(new Pair<double[], double[]>(points, weights));
43
44 assertEquals(weights.length, integrator.getNumberOfPoints());
45
46 for (int i = 0; i < integrator.getNumberOfPoints(); i++) {
47 assertEquals(weights[i], integrator.getWeight(i), 0d);
48 }
49 }
50
51 @Test
52 void testGetPoints() {
53 final double[] points = { 0, 1.2, 3.4 };
54 final double[] weights = { 9.8, 7.6, 5.4 };
55
56 final GaussIntegrator integrator
57 = new GaussIntegrator(new Pair<double[], double[]>(points, weights));
58
59 assertEquals(points.length, integrator.getNumberOfPoints());
60
61 for (int i = 0; i < integrator.getNumberOfPoints(); i++) {
62 assertEquals(points[i], integrator.getPoint(i), 0d);
63 }
64 }
65
66 @Test
67 void testIntegrate() {
68 final double[] points = { 0, 1, 2, 3, 4, 5 };
69 final double[] weights = { 1, 1, 1, 1, 1, 1 };
70
71 final GaussIntegrator integrator
72 = new GaussIntegrator(new Pair<double[], double[]>(points, weights));
73
74 final double val = 123.456;
75 final UnivariateFunction c = new Constant(val);
76
77 final double s = integrator.integrate(c);
78 assertEquals(points.length * val, s, 0d);
79 }
80 }