1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.time;
18
19 import org.junit.jupiter.api.Assertions;
20 import org.junit.jupiter.api.BeforeEach;
21 import org.junit.jupiter.api.Test;
22 import org.orekit.Utils;
23 import org.orekit.frames.ITRFVersion;
24 import org.orekit.utils.Constants;
25 import org.orekit.utils.IERSConventions;
26
27
28 public class TTScaleTest {
29
30 @Test
31 public void testConstant() {
32 TimeScale scale = TimeScalesFactory.getTT();
33 Assertions.assertEquals("TT", scale.toString());
34 double reference = scale.offsetFromTAI(AbsoluteDate.J2000_EPOCH).toDouble();
35 for (double dt = -10000; dt < 10000; dt += 123.456789) {
36 AbsoluteDate date = AbsoluteDate.J2000_EPOCH.shiftedBy(dt * Constants.JULIAN_DAY);
37 Assertions.assertEquals(reference, scale.offsetFromTAI(date).toDouble(), 1.0e-15);
38 }
39 }
40
41 @Test
42 public void testSymmetry() {
43 TimeScale scale = TimeScalesFactory.getTT();
44 for (double dt = -10000; dt < 10000; dt += 123.456789) {
45 AbsoluteDate date = AbsoluteDate.J2000_EPOCH.shiftedBy(dt * Constants.JULIAN_DAY);
46 double dt1 = scale.offsetFromTAI(date).toDouble();
47 DateTimeComponents components = date.getComponents(scale);
48 double dt2 = scale.offsetToTAI(components.getDate(), components.getTime()).toDouble();
49 Assertions.assertEquals( 0.0, dt1 + dt2, 1.0e-10);
50 }
51 }
52
53 @Test
54 public void testAAS06134() {
55
56
57
58
59
60
61 Utils.setLoaders(IERSConventions.IERS_1996,
62 Utils.buildEOPList(IERSConventions.IERS_1996, ITRFVersion.ITRF_2008, new double[][] {
63 { 53098, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
64 { 53099, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
65 { 53100, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
66 { 53101, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
67 { 53102, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
68 { 53103, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
69 { 53104, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
70 { 53105, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN }
71 }));
72 AbsoluteDate date =
73 new AbsoluteDate(2004, 4, 6, 7, 51, 28.386009, TimeScalesFactory.getUTC());
74 DateTimeComponents components = date.getComponents(TimeScalesFactory.getTT());
75 Assertions.assertEquals(2004, components.getDate().getYear());
76 Assertions.assertEquals( 4, components.getDate().getMonth());
77 Assertions.assertEquals( 6, components.getDate().getDay());
78 Assertions.assertEquals( 7, components.getTime().getHour());
79 Assertions.assertEquals( 52, components.getTime().getMinute());
80 Assertions.assertEquals( 32.570009, components.getTime().getSecond(), 1.0e-10);
81
82 }
83
84 @Test
85 public void testDuringLeap() {
86 final TimeScale utc = TimeScalesFactory.getUTC();
87 final TimeScale scale = TimeScalesFactory.getTT();
88 final AbsoluteDate before = new AbsoluteDate(new DateComponents(1983, 6, 30),
89 new TimeComponents(23, 59, 59),
90 utc);
91 final AbsoluteDate during = before.shiftedBy(1.25);
92 Assertions.assertEquals(61, utc.minuteDuration(during));
93 Assertions.assertEquals(1.0, utc.getLeap(during).toDouble(), 1.0e-10);
94 Assertions.assertEquals(60, scale.minuteDuration(during));
95 Assertions.assertEquals(0.0, scale.getLeap(during).toDouble(), 1.0e-10);
96 }
97
98 @BeforeEach
99 public void setUp() {
100 Utils.setDataRoot("regular-data");
101 }
102
103 }