1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.orekit.forces;
19
20 import org.hipparchus.CalculusFieldElement;
21 import org.hipparchus.geometry.euclidean.threed.FieldVector3D;
22 import org.hipparchus.geometry.euclidean.threed.Vector3D;
23 import org.hipparchus.util.Binary64;
24 import org.junit.jupiter.api.Test;
25 import org.orekit.propagation.FieldSpacecraftState;
26 import org.orekit.propagation.SpacecraftState;
27 import org.orekit.utils.ParameterDriver;
28
29 import java.util.Collections;
30 import java.util.List;
31
32 import static org.junit.jupiter.api.Assertions.assertEquals;
33 import static org.mockito.Mockito.mock;
34 import static org.mockito.Mockito.when;
35
36 class ForceModelTest {
37
38 @Test
39 void testGetMassDerivative() {
40
41 final SpacecraftState mockedState = mock();
42 final TestForce force = new TestForce();
43
44 final double massDerivative = force.getMassDerivative(mockedState, new double[0]);
45
46 @SuppressWarnings("unchecked")
47 final FieldSpacecraftState<Binary64> mockedFieldState = mock();
48 when(mockedFieldState.getMass()).thenReturn(Binary64.ZERO);
49 final Binary64 fieldMassDerivative = force.getMassDerivative(mockedFieldState, null);
50 assertEquals(fieldMassDerivative.getReal(), massDerivative);
51 }
52
53 private static class TestForce implements ForceModel {
54
55 @Override
56 public boolean dependsOnPositionOnly() {
57 return false;
58 }
59
60 @Override
61 public Vector3D acceleration(SpacecraftState s, double[] parameters) {
62 return null;
63 }
64
65 @Override
66 public <T extends CalculusFieldElement<T>> FieldVector3D<T> acceleration(FieldSpacecraftState<T> s, T[] parameters) {
67 return null;
68 }
69
70 @Override
71 public List<ParameterDriver> getParametersDrivers() {
72 return Collections.emptyList();
73 }
74 }
75 }