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 TAIScaleTest {
29
30 @Test
31 public void testZero() {
32 TimeScale scale = TimeScalesFactory.getTAI();
33 Assertions.assertEquals("TAI", scale.toString());
34 for (double dt = -10000; dt < 10000; dt += 123.456789) {
35 AbsoluteDate date = AbsoluteDate.J2000_EPOCH.shiftedBy(dt * Constants.JULIAN_DAY);
36 Assertions.assertEquals(0, scale.offsetFromTAI(date).toDouble(), 0);
37 DateTimeComponents components = date.getComponents(scale);
38 Assertions.assertEquals(0, scale.offsetToTAI(components.getDate(), components.getTime()).toDouble(), 0);
39 }
40 }
41
42 @Test
43 public void testAAS06134() {
44
45
46
47
48
49
50 Utils.setLoaders(IERSConventions.IERS_1996,
51 Utils.buildEOPList(IERSConventions.IERS_1996, ITRFVersion.ITRF_2008, new double[][] {
52 { 53098, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
53 { 53099, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
54 { 53100, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
55 { 53101, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
56 { 53102, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
57 { 53103, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
58 { 53104, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN },
59 { 53105, -0.439962, 0.0015563, -0.140682, 0.333309, -0.052195, -0.003875, Double.NaN, Double.NaN }
60 }));
61 AbsoluteDate date =
62 new AbsoluteDate(2004, 4, 6, 7, 51, 28.386009, TimeScalesFactory.getUTC());
63 DateTimeComponents components = date.getComponents(TimeScalesFactory.getTAI());
64 Assertions.assertEquals(2004, components.getDate().getYear());
65 Assertions.assertEquals( 4, components.getDate().getMonth());
66 Assertions.assertEquals( 6, components.getDate().getDay());
67 Assertions.assertEquals( 7, components.getTime().getHour());
68 Assertions.assertEquals( 52, components.getTime().getMinute());
69 Assertions.assertEquals( 0.386009, components.getTime().getSecond(), 1.0e-10);
70 }
71
72 @Test
73 public void testDuringLeap() {
74 final TimeScale utc = TimeScalesFactory.getUTC();
75 final TimeScale scale = TimeScalesFactory.getTAI();
76 final AbsoluteDate before = new AbsoluteDate(new DateComponents(1983, 6, 30),
77 new TimeComponents(23, 59, 59),
78 utc);
79 final AbsoluteDate during = before.shiftedBy(1.25);
80 Assertions.assertEquals(61, utc.minuteDuration(during));
81 Assertions.assertEquals(1.0, utc.getLeap(during).toDouble(), 1.0e-10);
82 Assertions.assertEquals(60, scale.minuteDuration(during));
83 Assertions.assertEquals(0.0, scale.getLeap(during).toDouble(), 1.0e-10);
84 }
85
86 @BeforeEach
87 public void setUp() {
88 Utils.setDataRoot("regular-data");
89 }
90
91 }