1 package org.orekit.propagation.conversion.averaging;
2
3 import org.junit.jupiter.api.Assertions;
4 import org.junit.jupiter.api.BeforeEach;
5 import org.junit.jupiter.api.Test;
6 import org.orekit.Utils;
7 import org.orekit.data.DataContext;
8 import org.orekit.forces.gravity.potential.UnnormalizedSphericalHarmonicsProvider;
9 import org.orekit.frames.FramesFactory;
10 import org.orekit.orbits.EquinoctialOrbit;
11 import org.orekit.orbits.Orbit;
12 import org.orekit.orbits.PositionAngleType;
13 import org.orekit.propagation.conversion.averaging.elements.AveragedEquinoctialWithMeanAngle;
14 import org.orekit.time.AbsoluteDate;
15
16 class DSST6X0OrbitalStateTest {
17
18 @BeforeEach
19 public void setUp() {
20 Utils.setDataRoot("regular-data:potential");
21 }
22
23 @Test
24 void testToOsculating() {
25
26 final UnnormalizedSphericalHarmonicsProvider provider = getProvider();
27 final DSST6X0OrbitalState averagedState = new DSST6X0OrbitalState(AbsoluteDate.ARBITRARY_EPOCH,
28 new AveragedEquinoctialWithMeanAngle(1e7, 0.1, 0., 0.2, -0.3,
29 -1.), FramesFactory.getGCRF(), provider);
30
31 final Orbit orbit = averagedState.toOsculatingOrbit();
32 final EquinoctialOrbit equinoctialOrbit = (EquinoctialOrbit) averagedState.getOrbitType().convertType(orbit);
33
34 Assertions.assertEquals(averagedState.getDate(), equinoctialOrbit.getDate());
35 compareOrbitalElements(averagedState.getAveragedElements(), equinoctialOrbit,
36 averagedState.getPositionAngleType());
37 }
38
39 private void compareOrbitalElements(final AveragedEquinoctialWithMeanAngle elements,
40 final EquinoctialOrbit equinoctialOrbit,
41 final PositionAngleType positionAngleType) {
42 Assertions.assertEquals(elements.getAveragedSemiMajorAxis(), equinoctialOrbit.getA(), 1.6e4);
43 Assertions.assertEquals(elements.getAveragedEquinoctialEx(),
44 equinoctialOrbit.getEquinoctialEx(), 1.e-3);
45 Assertions.assertEquals(elements.getAveragedEquinoctialEy(),
46 equinoctialOrbit.getEquinoctialEy(), 2.5e-3);
47 Assertions.assertEquals(elements.getAveragedHx(),
48 equinoctialOrbit.getHx(), 4.e-3);
49 Assertions.assertEquals(elements.getAveragedHy(),
50 equinoctialOrbit.getHy(), 1.e-3);
51 Assertions.assertEquals(elements.getAveragedMeanLongitudeArgument(),
52 equinoctialOrbit.getL(positionAngleType), 1.e-3);
53 }
54
55 private UnnormalizedSphericalHarmonicsProvider getProvider() {
56 return DataContext.getDefault().getGravityFields().getUnnormalizedProvider(6, 0);
57 }
58
59 }