1 package org.orekit.utils;
2
3 import org.hipparchus.geometry.euclidean.threed.Vector3D;
4 import org.junit.jupiter.api.Test;
5 import org.orekit.frames.Frame;
6 import org.orekit.frames.FramesFactory;
7 import org.orekit.time.AbsoluteDate;
8 import org.orekit.time.TimeInterval;
9
10 import static org.junit.jupiter.api.Assertions.assertEquals;
11
12 class BoundedPVCoordinatesProviderTest {
13
14 @Test
15 void testOf() {
16
17 final TestProvider provider = new TestProvider();
18 final AbsoluteDate minDate = AbsoluteDate.J2000_EPOCH;
19 final AbsoluteDate maxDate = minDate.shiftedBy(1);
20 final TimeInterval interval = TimeInterval.of(minDate, maxDate);
21
22 final BoundedPVCoordinatesProvider boundedProvider = BoundedPVCoordinatesProvider.of(provider, interval);
23
24 assertEquals(maxDate, boundedProvider.getMaxDate());
25 assertEquals(minDate, boundedProvider.getMinDate());
26 final Frame frame = FramesFactory.getGCRF();
27 assertEquals(provider.getPosition(minDate, frame), boundedProvider.getPosition(minDate, frame));
28 assertEquals(provider.getPVCoordinates(minDate, frame).getVelocity(),
29 boundedProvider.getPVCoordinates(minDate, frame).getVelocity());
30 }
31
32 private static class TestProvider implements PVCoordinatesProvider {
33 @Override
34 public TimeStampedPVCoordinates getPVCoordinates(AbsoluteDate date, Frame frame) {
35 return new TimeStampedPVCoordinates(date, new PVCoordinates(Vector3D.MINUS_I, Vector3D.MINUS_K));
36 }
37 }
38 }