1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.files.sp3;
18
19 import org.hipparchus.geometry.euclidean.threed.Vector3D;
20 import org.junit.jupiter.api.Assertions;
21
22 public class SP3TestUtils {
23
24 public static void checkEquals(final SP3 original, final SP3 rebuilt) {
25 checkEquals(original.getHeader(), rebuilt.getHeader());
26 Assertions.assertEquals(original.getSatelliteCount(), rebuilt.getSatelliteCount());
27 for (int i = 0; i < original.getSatelliteCount(); ++i) {
28 checkEquals(original.getEphemeris(i), rebuilt.getEphemeris(i));
29 }
30 }
31
32 public static void checkEquals(final SP3Header original, final SP3Header rebuilt) {
33 Assertions.assertEquals(original.getVersion(), rebuilt.getVersion());
34 Assertions.assertEquals(original.getFilter(), rebuilt.getFilter());
35 Assertions.assertEquals(original.getType(), rebuilt.getType());
36 Assertions.assertEquals(original.getTimeSystem(), rebuilt.getTimeSystem());
37 Assertions.assertEquals(original.getDataUsed().size(), rebuilt.getDataUsed().size());
38 for (int i = 0 ; i < original.getDataUsed().size(); ++i) {
39 Assertions.assertEquals(original.getDataUsed().get(i), rebuilt.getDataUsed().get(i));
40 }
41 Assertions.assertEquals(original.getEpoch(), rebuilt.getEpoch());
42 Assertions.assertEquals(original.getGpsWeek(), rebuilt.getGpsWeek());
43 Assertions.assertEquals(original.getSecondsOfWeek(), rebuilt.getSecondsOfWeek(), 1.0e-15);
44 Assertions.assertEquals(original.getModifiedJulianDay(), rebuilt.getModifiedJulianDay());
45 Assertions.assertEquals(original.getDayFraction(), rebuilt.getDayFraction(), 1.0e-15);
46 Assertions.assertEquals(original.getEpochInterval(), rebuilt.getEpochInterval(), 1.0e-15);
47 Assertions.assertEquals(original.getNumberOfEpochs(), rebuilt.getNumberOfEpochs());
48 Assertions.assertEquals(original.getCoordinateSystem(), rebuilt.getCoordinateSystem());
49 Assertions.assertEquals(original.getOrbitType(), rebuilt.getOrbitType());
50 Assertions.assertEquals(original.getOrbitTypeKey(), rebuilt.getOrbitTypeKey());
51 Assertions.assertEquals(original.getAgency(), rebuilt.getAgency());
52 Assertions.assertEquals(original.getPosVelBase(), rebuilt.getPosVelBase(), 1.0e-15);
53 Assertions.assertEquals(original.getClockBase(), rebuilt.getClockBase(), 1.0e-15);
54 Assertions.assertEquals(original.getSatIds().size(), rebuilt.getSatIds().size());
55 for (int i = 0; i < original.getSatIds().size(); ++i) {
56 Assertions.assertEquals(original.getSatIds().get(i), rebuilt.getSatIds().get(i));
57 Assertions.assertEquals(original.getAccuracy(original.getSatIds().get(i)), rebuilt.getAccuracy(rebuilt.getSatIds().get(i)), 1.0e-15);
58 }
59 Assertions.assertEquals(original.getComments().size(), rebuilt.getComments().size());
60 for (int i = 0; i < original.getComments().size(); ++i) {
61 Assertions.assertEquals(original.getComments().get(i), rebuilt.getComments().get(i));
62 }
63 }
64
65 public static void checkEquals(final SP3Ephemeris original, final SP3Ephemeris rebuilt) {
66 Assertions.assertEquals(original.getId(), rebuilt.getId());
67 Assertions.assertEquals(original.getMu(), rebuilt.getMu(), 0.001);
68 Assertions.assertEquals(original.getSegments().size(), rebuilt.getSegments().size());
69 for (int i = 0; i < original.getSegments().size(); ++i) {
70 checkEquals(original.getSegments().get(i), rebuilt.getSegments().get(i));
71 }
72 Assertions.assertEquals(original.getStart(), rebuilt.getStart());
73 Assertions.assertEquals(original.getStop(), rebuilt.getStop());
74 Assertions.assertEquals(original.getFrame().getName(), rebuilt.getFrame().getName());
75 Assertions.assertEquals(original.getInterpolationSamples(), rebuilt.getInterpolationSamples());
76 Assertions.assertEquals(original.getAvailableDerivatives(), rebuilt.getAvailableDerivatives());
77 }
78
79 public static void checkEquals(final SP3Segment original, final SP3Segment rebuilt) {
80 Assertions.assertEquals(original.getMu(), rebuilt.getMu(), 0.001);
81 Assertions.assertEquals(original.getStart(), rebuilt.getStart());
82 Assertions.assertEquals(original.getStop(), rebuilt.getStop());
83 Assertions.assertEquals(original.getFrame().getName(), rebuilt.getFrame().getName());
84 Assertions.assertEquals(original.getInterpolationSamples(), rebuilt.getInterpolationSamples());
85 Assertions.assertEquals(original.getAvailableDerivatives(), rebuilt.getAvailableDerivatives());
86 Assertions.assertEquals(original.getCoordinates().size(), rebuilt.getCoordinates().size());
87 for (int i = 0; i < original.getCoordinates().size(); ++i) {
88 checkEquals(original.getCoordinates().get(i), rebuilt.getCoordinates().get(i));
89 }
90 }
91
92 public static void checkEquals(final SP3Coordinate original, final SP3Coordinate rebuilt) {
93 Assertions.assertEquals(original.getDate(), rebuilt.getDate());
94 Assertions.assertEquals(0.0, Vector3D.distance(original.getPosition(), rebuilt.getPosition()), 1.0e-10);
95 Assertions.assertEquals(0.0, Vector3D.distance(original.getVelocity(), rebuilt.getVelocity()), 1.0e-10);
96 Assertions.assertEquals(original.getClockCorrection(), rebuilt.getClockCorrection(), 1.0e-15);
97 Assertions.assertEquals(original.getClockRateChange(), rebuilt.getClockRateChange(), 1.0e-15);
98 if (original.getPositionAccuracy() == null) {
99 Assertions.assertNull(rebuilt.getPositionAccuracy());
100 } else {
101 Assertions.assertEquals(0.0, Vector3D.distance(original.getPositionAccuracy(), rebuilt.getPositionAccuracy()), 1.0e-10);
102 }
103 if (original.getVelocityAccuracy() == null) {
104 Assertions.assertNull(rebuilt.getVelocityAccuracy());
105 } else {
106 Assertions.assertEquals(0.0, Vector3D.distance(original.getVelocityAccuracy(), rebuilt.getVelocityAccuracy()), 1.0e-10);
107 }
108 if (Double.isNaN(original.getClockAccuracy())) {
109 Assertions.assertTrue(Double.isNaN(rebuilt.getClockAccuracy()));
110 } else {
111 Assertions.assertEquals(original.getClockAccuracy(), rebuilt.getClockAccuracy(), 1.0e-15);
112 }
113 if (Double.isNaN(original.getClockRateAccuracy())) {
114 Assertions.assertTrue(Double.isNaN(rebuilt.getClockRateAccuracy()));
115 } else {
116 Assertions.assertEquals(original.getClockRateAccuracy(), rebuilt.getClockRateAccuracy(), 1.0e-15);
117 }
118 Assertions.assertEquals(original.hasClockEvent(), rebuilt.hasClockEvent());
119 Assertions.assertEquals(original.hasClockPrediction(), rebuilt.hasClockPrediction());
120 Assertions.assertEquals(original.hasOrbitManeuverEvent(), rebuilt.hasOrbitManeuverEvent());
121 Assertions.assertEquals(original.hasOrbitPrediction(), rebuilt.hasOrbitPrediction());
122 }
123
124 }