1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.time;
18
19
20
21 import org.junit.Assert;
22 import org.junit.Before;
23 import org.junit.Test;
24 import org.orekit.Utils;
25 import org.orekit.utils.Constants;
26
27 public class BDSScaleTest {
28
29 @Test
30 public void testT0() {
31 TimeScale scale = TimeScalesFactory.getBDT();
32 Assert.assertEquals("BDT", scale.toString());
33 AbsoluteDate t0 =
34 new AbsoluteDate(new DateComponents(2006, 1, 1), new TimeComponents(0, 0, 13), scale);
35 Assert.assertEquals(new AbsoluteDate(new DateComponents(2006, 1, 1), new TimeComponents(0, 0, 13),
36 TimeScalesFactory.getUTC()),
37 t0);
38 }
39
40 @Test
41 public void test2010() {
42 AbsoluteDate tBDT =
43 new AbsoluteDate(new DateComponents(2010, 1, 2), TimeComponents.H00, TimeScalesFactory.getBDT());
44 AbsoluteDate tUTC =
45 new AbsoluteDate(new DateComponents(2010, 1, 1), new TimeComponents(23, 59, 59.0),
46 TimeScalesFactory.getUTC());
47 Assert.assertEquals(tUTC, tBDT);
48 }
49
50 @Test
51 public void testDuringLeap() {
52 final TimeScale utc = TimeScalesFactory.getUTC();
53 final TimeScale scale = TimeScalesFactory.getBDT();
54 final AbsoluteDate before = new AbsoluteDate(new DateComponents(1983, 06, 30),
55 new TimeComponents(23, 59, 59),
56 utc);
57 final AbsoluteDate during = before.shiftedBy(1.25);
58 Assert.assertEquals(61, utc.minuteDuration(during));
59 Assert.assertEquals(1.0, utc.getLeap(during), 1.0e-10);
60 Assert.assertEquals(60, scale.minuteDuration(during));
61 Assert.assertEquals(0.0, scale.getLeap(during), 1.0e-10);
62 }
63
64 @Test
65 public void testConstant() {
66 TimeScale scale = TimeScalesFactory.getBDT();
67 double reference = scale.offsetFromTAI(AbsoluteDate.J2000_EPOCH);
68 for (double dt = -10000; dt < 10000; dt += 123.456789) {
69 AbsoluteDate date = AbsoluteDate.J2000_EPOCH.shiftedBy(dt * Constants.JULIAN_DAY);
70 Assert.assertEquals(reference, scale.offsetFromTAI(date), 1.0e-15);
71 }
72 }
73
74 @Test
75 public void testAwayFromGPS() {
76 TimeScale bdt = TimeScalesFactory.getBDT();
77 TimeScale gps = TimeScalesFactory.getGPS();
78 for (double dt = -10000; dt < 10000; dt += 123.456789) {
79 AbsoluteDate date = AbsoluteDate.J2000_EPOCH.shiftedBy(7 * Constants.JULIAN_YEAR + dt * Constants.JULIAN_DAY);
80 Assert.assertEquals(gps.offsetFromTAI(date) - 14, bdt.offsetFromTAI(date), 1.0e-15);
81 }
82 }
83
84 @Test
85 public void testSymmetry() {
86 TimeScale scale = TimeScalesFactory.getBDT();
87 for (double dt = -10000; dt < 10000; dt += 123.456789) {
88 AbsoluteDate date = AbsoluteDate.J2000_EPOCH.shiftedBy(dt * Constants.JULIAN_DAY);
89 double dt1 = scale.offsetFromTAI(date);
90 DateTimeComponents components = date.getComponents(scale);
91 double dt2 = scale.offsetToTAI(components.getDate(), components.getTime());
92 Assert.assertEquals( 0.0, dt1 + dt2, 1.0e-10);
93 }
94 }
95
96 @Before
97 public void setUp() {
98 Utils.setDataRoot("regular-data");
99 }
100
101 }