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  
24  public class EulerFieldIntegratorTest extends RungeKuttaFieldIntegratorAbstractTest {
25  
26      @Override
27      protected <T extends RealFieldElement<T>> RungeKuttaFieldIntegrator<T>
28      createIntegrator(Field<T> field, T step) {
29          return new EulerFieldIntegrator<>(field, step);
30      }
31  
32      @Override
33      public void testNonFieldIntegratorConsistency() {
34          doTestNonFieldIntegratorConsistency(Decimal64Field.getInstance());
35      }
36  
37      @Override
38      public void testMissedEndEvent() {
39          doTestMissedEndEvent(Decimal64Field.getInstance(), 1.0e-15, 6.0e-5);
40      }
41  
42      @Override
43      public void testSanityChecks() {
44          doTestSanityChecks(Decimal64Field.getInstance());
45      }
46  
47      @Override
48      public void testDecreasingSteps() {
49          doTestDecreasingSteps(Decimal64Field.getInstance(), 1.0, 1.5, 1.0e-10);
50      }
51  
52      @Override
53      public void testSmallStep() {
54          doTestSmallStep(Decimal64Field.getInstance(), 2.0e-4, 1.0e-3, 1.0e-12, "Euler");
55      }
56  
57      @Override
58      public void testBigStep() {
59          doTestBigStep(Decimal64Field.getInstance(), 0.01, 0.2, 1.0e-12, "Euler");
60      }
61  
62      @Override
63      public void testBackward() {
64          doTestBackward(Decimal64Field.getInstance(),0.45, 0.45, 1.0e-12, "Euler");
65      }
66  
67      @Override
68      public void testKepler() {
69          
70          doTestKepler(Decimal64Field.getInstance(), 881.176, 0.001);
71      }
72  
73      @Override
74      public void testStepSize() {
75          doTestStepSize(Decimal64Field.getInstance(), 1.0e-12);
76      }
77  
78      @Override
79      public void testSingleStep() {
80          doTestSingleStep(Decimal64Field.getInstance(), 0.21);
81      }
82  
83      @Override
84      public void testTooLargeFirstStep() {
85          doTestTooLargeFirstStep(Decimal64Field.getInstance());
86      }
87  
88      @Override
89      public void testUnstableDerivative() {
90          doTestUnstableDerivative(Decimal64Field.getInstance(), 1.0e-12);
91      }
92  
93      @Override
94      public void testDerivativesConsistency() {
95          doTestDerivativesConsistency(Decimal64Field.getInstance(), 1.0e-10);
96      }
97  
98      @Override
99      public void testPartialDerivatives() {
100         doTestPartialDerivatives(0.085, new double[] { 0.47, 0.13, 0.019, 0.019, 0.13 });
101     }
102 }