1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.orekit.propagation.events;
19
20 import org.hipparchus.util.Decimal64;
21 import org.hipparchus.util.Decimal64Field;
22 import org.junit.Assert;
23 import org.junit.Test;
24 import org.orekit.propagation.FieldPropagator;
25 import org.orekit.propagation.analytical.FieldKeplerianPropagator;
26 import org.orekit.propagation.analytical.KeplerianPropagator;
27 import org.orekit.propagation.events.handlers.FieldRecordAndContinue;
28
29
30
31
32
33
34
35 public class FieldCloseEventsAnalyticalKeplerianTest extends FieldCloseEventsAbstractTest<Decimal64> {
36
37 public FieldCloseEventsAnalyticalKeplerianTest(){
38 super(Decimal64Field.getInstance());
39 }
40
41 @Override
42 public FieldPropagator<Decimal64> getPropagator(double stepSize) {
43 return new FieldKeplerianPropagator<>(initialOrbit);
44 }
45
46
47
48
49 @Test
50 public void testBigStep() {
51
52 FieldPropagator<Decimal64> propagator = getPropagator(1e100);
53 propagator.setStepHandler(interpolator -> {});
54 double period = 2 * initialOrbit.getKeplerianPeriod().getReal();
55
56 FieldRecordAndContinue<TimeDetector, Decimal64> handler =
57 new FieldRecordAndContinue<>();
58 TimeDetector detector = new TimeDetector(1, period - 1)
59 .withHandler(handler)
60 .withMaxCheck(v(1e100))
61 .withThreshold(v(1));
62 propagator.addEventDetector(detector);
63
64
65 propagator.propagate(epoch.shiftedBy(period));
66
67
68 Assert.assertEquals(0, handler.getEvents().size());
69 }
70
71
72 @Test
73 public void testBigStepReverse() {
74
75 FieldPropagator<Decimal64> propagator = getPropagator(1e100);
76 propagator.setStepHandler(interpolator -> {});
77 double period = -2 * initialOrbit.getKeplerianPeriod().getReal();
78
79 FieldRecordAndContinue<TimeDetector, Decimal64> handler =
80 new FieldRecordAndContinue<>();
81 TimeDetector detector = new TimeDetector(-1, period + 1)
82 .withHandler(handler)
83 .withMaxCheck(v(1e100))
84 .withThreshold(v(1));
85 propagator.addEventDetector(detector);
86
87
88 propagator.propagate(epoch.shiftedBy(period));
89
90
91 Assert.assertEquals(0, handler.getEvents().size());
92 }
93
94 }