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.Test;
20
21 import static org.junit.jupiter.api.Assertions.assertEquals;
22 import static org.junit.jupiter.api.Assertions.assertTrue;
23 import static org.junit.jupiter.api.Assertions.assertFalse;
24
25 class TimeIntervalTest {
26
27 @Test
28 void testOf() {
29
30 final AbsoluteDate minDate = AbsoluteDate.ARBITRARY_EPOCH;
31 final AbsoluteDate maxDate = minDate.shiftedBy(1);
32
33 final TimeInterval timeInterval = TimeInterval.of(maxDate, minDate);
34
35 assertEquals(minDate, timeInterval.getStartDate());
36 assertEquals(maxDate, timeInterval.getEndDate());
37 }
38
39 @Test
40 void testContainsDate() {
41
42 final AbsoluteDate minDate = AbsoluteDate.ARBITRARY_EPOCH;
43 final AbsoluteDate maxDate = minDate.shiftedBy(1);
44 final TimeInterval timeInterval = TimeInterval.of(maxDate, minDate);
45
46 assertFalse(timeInterval.contains(minDate.shiftedBy(-1)));
47 assertTrue(timeInterval.contains(minDate));
48 assertTrue(timeInterval.contains(minDate.shiftedBy(timeInterval.duration() / 2)));
49 assertTrue(timeInterval.contains(maxDate));
50 assertFalse(timeInterval.contains(maxDate.shiftedBy(2)));
51 }
52
53 @Test
54 void testContainsInterval() {
55
56 final AbsoluteDate minDate = AbsoluteDate.ARBITRARY_EPOCH;
57 final AbsoluteDate maxDate = minDate.shiftedBy(1);
58 final TimeInterval timeInterval = TimeInterval.of(maxDate, minDate);
59 final TimeInterval allTimes = TimeInterval.of(AbsoluteDate.PAST_INFINITY, AbsoluteDate.FUTURE_INFINITY);
60
61 assertFalse(timeInterval.contains(TimeInterval.of(maxDate.shiftedBy(1), maxDate.shiftedBy(10))));
62 assertFalse(timeInterval.contains(allTimes));
63 assertFalse(timeInterval.contains(TimeInterval.of(AbsoluteDate.PAST_INFINITY, maxDate)));
64 assertFalse(timeInterval.contains(TimeInterval.of(minDate, AbsoluteDate.FUTURE_INFINITY)));
65 assertTrue(TimeInterval.of(AbsoluteDate.PAST_INFINITY, maxDate).contains(timeInterval));
66 assertTrue(TimeInterval.of(minDate, AbsoluteDate.FUTURE_INFINITY).contains(timeInterval));
67 assertTrue(allTimes.contains(timeInterval));
68 assertTrue(timeInterval.contains(TimeInterval.of(minDate, minDate)));
69 assertTrue(timeInterval.contains(TimeInterval.of(maxDate, maxDate)));
70 assertTrue(timeInterval.contains(timeInterval));
71 assertTrue(timeInterval.contains(TimeInterval.of(minDate.shiftedBy(0.5), maxDate.shiftedBy(-0.1))));
72 }
73
74 @Test
75 void testIntersects() {
76
77 final AbsoluteDate minDate = AbsoluteDate.ARBITRARY_EPOCH;
78 final AbsoluteDate maxDate = minDate.shiftedBy(1);
79 final TimeInterval timeInterval = TimeInterval.of(maxDate, minDate);
80 final TimeInterval allTimes = TimeInterval.of(AbsoluteDate.PAST_INFINITY, AbsoluteDate.FUTURE_INFINITY);
81
82 assertFalse(timeInterval.intersects(TimeInterval.of(minDate.shiftedBy(-10), minDate.shiftedBy(-1))));
83 assertFalse(timeInterval.intersects(TimeInterval.of(maxDate.shiftedBy(1), maxDate.shiftedBy(10))));
84 assertTrue(timeInterval.intersects(allTimes));
85 assertTrue(allTimes.intersects(timeInterval));
86 assertTrue(timeInterval.intersects(timeInterval));
87 assertTrue(timeInterval.intersects(TimeInterval.of(minDate, minDate)));
88 assertTrue(timeInterval.intersects(TimeInterval.of(maxDate, maxDate)));
89 assertTrue(timeInterval.intersects(TimeInterval.of(minDate.shiftedBy(0.1), maxDate.shiftedBy(-0.5))));
90 }
91
92 @Test
93 void testDuration() {
94
95 final AbsoluteDate minDate = AbsoluteDate.ARBITRARY_EPOCH;
96 final double expectedDuration = 42;
97 final AbsoluteDate maxDate = minDate.shiftedBy(expectedDuration);
98 final TimeInterval timeInterval = TimeInterval.of(minDate, maxDate);
99
100 final double actualDuration = timeInterval.duration();
101
102 assertEquals(expectedDuration, actualDuration);
103 }
104 }