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.junit.jupiter.api.Assertions;
21 import org.junit.jupiter.api.Test;
22 import org.orekit.Utils;
23 import org.orekit.data.DataContext;
24 import org.orekit.orbits.CartesianOrbit;
25 import org.orekit.orbits.Orbit;
26 import org.orekit.orbits.PositionAngleType;
27 import org.orekit.propagation.analytical.tle.TLE;
28 import org.orekit.propagation.analytical.tle.generation.FixedPointTleGenerationAlgorithm;
29 import org.orekit.utils.PVCoordinates;
30 import org.orekit.utils.TimeStampedPVCoordinates;
31
32 import static org.orekit.propagation.conversion.AbstractPropagatorBuilderTest.assertPropagatorBuilderIsACopy;
33
34 public class TLEPropagatorBuilderTest {
35
36 @Test
37 void testClone() {
38
39
40 final DataContext dataContext = Utils.setDataRoot("regular-data");
41 final TLE tle = new TLE("1 27421U 02021A 02124.48976499 -.00021470 00000-0 -89879-2 0 20",
42 "2 27421 98.7490 199.5121 0001333 133.9522 226.1918 14.26113993 62");
43 final TLEPropagatorBuilder builder = new TLEPropagatorBuilder(tle, PositionAngleType.MEAN, 1.0, dataContext,
44 new FixedPointTleGenerationAlgorithm());
45
46
47 final TLEPropagatorBuilder copyBuilder = builder.clone();
48
49
50 assertPropagatorBuilderIsACopy(builder, copyBuilder);
51 Assertions.assertEquals(builder.getTemplateTLE(), copyBuilder.getTemplateTLE());
52
53 }
54
55
56
57
58
59 @Test
60 void testIssue1741() {
61
62
63 final DataContext dataContext = Utils.setDataRoot("regular-data");
64 final TLE tle = new TLE("1 27421U 02021A 02124.48976499 -.00021470 00000-0 -89879-2 0 20",
65 "2 27421 98.7490 199.5121 0001333 133.9522 226.1918 14.26113993 62");
66 final TLEPropagatorBuilder builder = new TLEPropagatorBuilder(tle, PositionAngleType.MEAN, 1.0, dataContext,
67 new FixedPointTleGenerationAlgorithm());
68 final Orbit orbit = builder.createInitialOrbit();
69
70
71 final TLEPropagatorBuilder copyBuilder = builder.clone();
72
73
74
75 final TimeStampedPVCoordinates modifiedPv = orbit.shiftedBy(3600.).getPVCoordinates();
76 copyBuilder.resetOrbit(new CartesianOrbit(modifiedPv, orbit.getFrame(), orbit.getDate(), orbit.getMu()));
77
78
79
80 final PVCoordinates originalPv = orbit.getPVCoordinates();
81 final PVCoordinates initialPv = builder.createInitialOrbit().getPVCoordinates();
82 final double dP = originalPv.getPosition().distance(initialPv.getPosition());
83 final double dV = originalPv.getVelocity().distance(initialPv.getVelocity());
84 final double dA = originalPv.getAcceleration().distance(initialPv.getAcceleration());
85 Assertions.assertEquals(0., dP, 0.);
86 Assertions.assertEquals(0., dV, 0.);
87 Assertions.assertEquals(0., dA, 0.);
88 }
89 }