1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.propagation.conversion;
18
19 import org.hipparchus.linear.ArrayRealVector;
20 import org.junit.jupiter.api.BeforeAll;
21 import org.junit.jupiter.api.Test;
22 import org.mockito.Mockito;
23 import org.orekit.Utils;
24 import org.orekit.frames.Frame;
25 import org.orekit.frames.FramesFactory;
26 import org.orekit.orbits.KeplerianOrbit;
27 import org.orekit.orbits.PositionAngleType;
28 import org.orekit.propagation.Propagator;
29 import org.orekit.propagation.analytical.KeplerianPropagator;
30 import org.orekit.time.AbsoluteDate;
31 import org.orekit.utils.Constants;
32 import org.orekit.utils.ParameterDriver;
33 import org.orekit.utils.ParameterDriversList;
34
35
36
37
38
39
40 public class FiniteDifferencePropagatorConverterTest {
41
42
43 @BeforeAll
44 public static void setUp() {
45 Utils.setDataRoot("regular-data");
46 }
47
48
49
50
51 @Test
52 public void testGetObjectiveFunctionParametersOnlyScaledOnce() {
53
54
55 Frame eci = FramesFactory.getGCRF();
56 double gm = Constants.EIGEN5C_EARTH_MU;
57 AbsoluteDate date = AbsoluteDate.J2000_EPOCH;
58 Propagator source = new KeplerianPropagator(new KeplerianOrbit(
59 6878137, 0, 0, 0, 0, 0, PositionAngleType.TRUE, eci, date, gm));
60
61 PropagatorBuilder builder = Mockito.mock(PropagatorBuilder.class);
62 ParameterDriversList list = new ParameterDriversList();
63 list.add(new ParameterDriver("p1", 0, 1e-3, Double.NEGATIVE_INFINITY,
64 Double.POSITIVE_INFINITY));
65 Mockito.when(builder.getOrbitalParametersDrivers()).thenReturn(list);
66 Mockito.when(builder.getPropagationParametersDrivers())
67 .thenReturn(new ParameterDriversList());
68 Mockito.when(builder.getFrame()).thenReturn(eci);
69 Mockito.when(builder.getSelectedNormalizedParameters()).thenReturn(new double[1]);
70 Mockito.when(builder.buildPropagator(Mockito.any(double[].class)))
71 .thenReturn(source);
72
73 FiniteDifferencePropagatorConverter converter =
74 new FiniteDifferencePropagatorConverter(builder, 1, 100);
75
76
77 converter.convert(source, 1, 2);
78
79 Mockito.clearInvocations(builder);
80
81
82 converter.getModel().value(new ArrayRealVector(1));
83
84
85 Mockito.verify(builder).buildPropagator(new double[]{0});
86 Mockito.verify(builder).buildPropagator(new double[]{1});
87 }
88
89 }