1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.commons.math4.legacy.ode.nonstiff;
19
20
21 import org.apache.commons.math4.legacy.core.Field;
22 import org.apache.commons.math4.legacy.core.RealFieldElement;
23 import org.apache.commons.math4.legacy.ode.FieldEquationsMapper;
24 import org.apache.commons.math4.legacy.ode.FieldODEStateAndDerivative;
25 import org.junit.Test;
26
27 public class DormandPrince853FieldStepInterpolatorTest extends RungeKuttaFieldStepInterpolatorAbstractTest {
28
29 @Override
30 protected <T extends RealFieldElement<T>> RungeKuttaFieldStepInterpolator<T>
31 createInterpolator(Field<T> field, boolean forward, T[][] yDotK,
32 FieldODEStateAndDerivative<T> globalPreviousState,
33 FieldODEStateAndDerivative<T> globalCurrentState,
34 FieldODEStateAndDerivative<T> softPreviousState,
35 FieldODEStateAndDerivative<T> softCurrentState,
36 FieldEquationsMapper<T> mapper) {
37 return new DormandPrince853FieldStepInterpolator<>(field, forward, yDotK,
38 globalPreviousState, globalCurrentState,
39 softPreviousState, softCurrentState,
40 mapper);
41 }
42
43 @Override
44 protected <T extends RealFieldElement<T>> FieldButcherArrayProvider<T>
45 createButcherArrayProvider(final Field<T> field) {
46 return new DormandPrince853FieldIntegrator<>(field, 0, 1, 1, 1);
47 }
48
49 @Override
50 @Test
51 public void interpolationAtBounds() {
52 doInterpolationAtBounds(Decimal64Field.getInstance(), 1.0e-50);
53 }
54
55 @Override
56 @Test
57 public void interpolationInside() {
58 doInterpolationInside(Decimal64Field.getInstance(), 3.1e-17, 3.4e-16);
59 }
60
61 @Override
62 @Test
63 public void nonFieldInterpolatorConsistency() {
64 doNonFieldInterpolatorConsistency(Decimal64Field.getInstance(), 3.4e-12, 5.7e-11, 1.9e-10, 3.1e-9);
65 }
66 }