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.junit.Assert;
20 import org.junit.Test;
21 import org.orekit.estimation.Context;
22 import org.orekit.estimation.EstimationTestUtils;
23 import org.orekit.orbits.CartesianOrbit;
24 import org.orekit.orbits.Orbit;
25 import org.orekit.orbits.PositionAngle;
26 import org.orekit.propagation.Propagator;
27 import org.orekit.propagation.analytical.KeplerianPropagator;
28 import org.orekit.utils.ParameterDriversList.DelegatingDriver;
29
30 public class AbstractPropagatorBuilderTest {
31
32
33 @Test
34 public void testResetOrbit() {
35
36 Context context = EstimationTestUtils.eccentricContext("regular-data:potential:tides");
37
38
39 final Orbit initialOrbit = new CartesianOrbit(context.initialOrbit);
40
41 final AbstractPropagatorBuilder propagatorBuilder = new AbstractPropagatorBuilder(initialOrbit, PositionAngle.TRUE, 10., true) {
42
43 @Override
44 public Propagator buildPropagator(double[] normalizedParameters) {
45
46 setParameters(normalizedParameters);
47 return new KeplerianPropagator(createInitialOrbit());
48 }
49 };
50
51
52
53 final Orbit newOrbit = initialOrbit.shiftedBy(60.);
54 propagatorBuilder.resetOrbit(newOrbit);
55
56
57 Assert.assertEquals(0., propagatorBuilder.getInitialOrbitDate().durationFrom(newOrbit.getDate()), 0.);
58 final double[] stateVector = new double[6];
59 propagatorBuilder.getOrbitType().mapOrbitToArray(newOrbit, PositionAngle.TRUE, stateVector, null);
60 int i = 0;
61 for (DelegatingDriver driver : propagatorBuilder.getOrbitalParametersDrivers().getDrivers()) {
62 final double expectedValue = stateVector[i++];
63 Assert.assertEquals(expectedValue, driver.getValue(), 0.);
64 Assert.assertEquals(expectedValue, driver.getReferenceValue(), 0.);
65 }
66 }
67 }
68