1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.orekit.propagation.conversion;
19
20 import org.hipparchus.geometry.euclidean.threed.Vector3D;
21 import org.junit.jupiter.api.Assertions;
22 import org.junit.jupiter.api.Test;
23 import org.mockito.Mockito;
24 import org.orekit.forces.maneuvers.ImpulseManeuver;
25 import org.orekit.frames.FramesFactory;
26 import org.orekit.orbits.CartesianOrbit;
27 import org.orekit.orbits.Orbit;
28 import org.orekit.orbits.PositionAngleType;
29 import org.orekit.propagation.Propagator;
30 import org.orekit.time.AbsoluteDate;
31 import org.orekit.utils.Constants;
32 import org.orekit.utils.PVCoordinates;
33
34 import static org.orekit.propagation.conversion.AbstractPropagatorBuilderTest.assertPropagatorBuilderIsACopy;
35
36 public class KeplerianPropagatorBuilderTest {
37
38 @Test
39 void testClone() {
40
41
42 final Orbit orbit = getOrbit();
43 final KeplerianPropagatorBuilder builder = new KeplerianPropagatorBuilder(orbit, PositionAngleType.MEAN, 1.0);
44
45
46 final KeplerianPropagatorBuilder copyBuilder = (KeplerianPropagatorBuilder) builder.clone();
47
48
49 assertPropagatorBuilderIsACopy(builder, copyBuilder);
50 Assertions.assertEquals(builder.getImpulseManeuvers().size(), copyBuilder.getImpulseManeuvers().size());
51
52 }
53
54 @Test
55 void testClearImpulseManeuvers() {
56
57 final Orbit orbit = getOrbit();
58 final KeplerianPropagatorBuilder builder = new KeplerianPropagatorBuilder(orbit, PositionAngleType.MEAN, 1.0);
59 final ImpulseManeuver mockedManeuver = Mockito.mock(ImpulseManeuver.class);
60 builder.addImpulseManeuver(mockedManeuver);
61
62
63 builder.clearImpulseManeuvers();
64
65
66 final Propagator propagator = builder.buildPropagator();
67 Assertions.assertTrue(propagator.getEventDetectors().isEmpty());
68 }
69
70 @Test
71 void testAddImpulseManeuver() {
72
73 final Orbit orbit = getOrbit();
74 final KeplerianPropagatorBuilder builder = new KeplerianPropagatorBuilder(orbit, PositionAngleType.MEAN, 1.0);
75 final ImpulseManeuver mockedManeuver = Mockito.mock(ImpulseManeuver.class);
76
77
78 builder.addImpulseManeuver(mockedManeuver);
79
80
81 final Propagator propagator = builder.buildPropagator();
82 Assertions.assertEquals(1, propagator.getEventDetectors().size());
83 Assertions.assertEquals(mockedManeuver, propagator.getEventDetectors().toArray()[0]);
84 }
85
86 private static Orbit getOrbit() {
87 return new CartesianOrbit(new PVCoordinates(
88 new Vector3D(Constants.EIGEN5C_EARTH_EQUATORIAL_RADIUS + 400000, 0, 0),
89 new Vector3D(0, 7668.6, 0)), FramesFactory.getGCRF(),
90 new AbsoluteDate(), Constants.EIGEN5C_EARTH_MU);
91 }
92 }