1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.hipparchus.ode.nonstiff.interpolators;
19
20
21 import org.hipparchus.ode.EquationsMapper;
22 import org.hipparchus.ode.ODEStateAndDerivative;
23 import org.hipparchus.ode.nonstiff.ButcherArrayProvider;
24 import org.hipparchus.ode.nonstiff.ClassicalRungeKuttaIntegrator;
25 import org.junit.jupiter.api.Test;
26
27 class ClassicalRungeKuttaStateInterpolatorTest extends RungeKuttaStateInterpolatorAbstractTest {
28
29 @Override
30 protected RungeKuttaStateInterpolator
31 createInterpolator(boolean forward, double[][] yDotK,
32 ODEStateAndDerivative globalPreviousState,
33 ODEStateAndDerivative globalCurrentState,
34 ODEStateAndDerivative softPreviousState,
35 ODEStateAndDerivative softCurrentState,
36 EquationsMapper mapper) {
37 return new ClassicalRungeKuttaStateInterpolator(forward, yDotK,
38 globalPreviousState, globalCurrentState,
39 softPreviousState, softCurrentState,
40 mapper);
41 }
42
43 @Override
44 protected ButcherArrayProvider createButcherArrayProvider() {
45 return new ClassicalRungeKuttaIntegrator(1.0);
46 }
47
48 @Test
49 public void interpolationAtBounds() {
50 doInterpolationAtBounds(1.0e-15);
51 }
52
53 @Test
54 public void interpolationInside() {
55 doInterpolationInside(2.6e-7, 3.6e-6);
56 }
57
58 @Override
59 @Test
60 public void restrictPrevious() {
61 doRestrictPrevious(1.0e-15, 1.0e-15);
62 }
63
64 @Override
65 @Test
66 public void restrictCurrent() {
67 doRestrictCurrent(1.0e-15, 1.0e-15);
68 }
69
70 @Override
71 @Test
72 public void restrictBothEnds() {
73 doRestrictBothEnds(1.0e-15, 1.0e-15);
74 }
75
76 @Override
77 @Test
78 public void degenerateInterpolation() {
79 doDegenerateInterpolation();
80 }
81
82 }