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