1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.estimation.measurements.modifiers;
18
19 import org.junit.jupiter.api.Test;
20 import org.orekit.TestUtils;
21 import org.orekit.estimation.measurements.AngularAzEl;
22 import org.orekit.estimation.measurements.EstimatedMeasurementBase;
23 import org.orekit.estimation.measurements.GroundStation;
24 import org.orekit.estimation.measurements.ObservableSatellite;
25 import org.orekit.models.AtmosphericRefractionModel;
26 import org.orekit.propagation.SpacecraftState;
27 import org.orekit.time.AbsoluteDate;
28 import org.orekit.utils.TimeStampedPVCoordinates;
29 import static org.junit.jupiter.api.Assertions.assertEquals;
30 import static org.mockito.ArgumentMatchers.any;
31 import static org.mockito.Mockito.mock;
32 import static org.mockito.Mockito.when;
33
34 class AngularRadioRefractionModifierTest {
35
36 @Test
37 void testModifyWithoutDerivatives() {
38
39 final SpacecraftState state = new SpacecraftState(TestUtils.getDefaultOrbit(AbsoluteDate.ARBITRARY_EPOCH));
40 final GroundStation station = mock();
41 final AngularAzEl angularAzEl = new AngularAzEl(station, AbsoluteDate.ARBITRARY_EPOCH, new double[2], new double[2], new double[2], new ObservableSatellite(0));
42 final EstimatedMeasurementBase<AngularAzEl> estimated = new EstimatedMeasurementBase<>(angularAzEl, 0, 0,
43 new SpacecraftState[] {state}, new TimeStampedPVCoordinates[]{state.getPVCoordinates()});
44 final double elevation = 1.;
45 estimated.setEstimatedValue(2.0, elevation);
46 final AtmosphericRefractionModel refractionModel = mock();
47 final AngularRadioRefractionModifier modifier = new AngularRadioRefractionModifier(refractionModel);
48 final double expectedRefraction = 0.1;
49 when(refractionModel.getRefraction(any(Double.class))).thenReturn(expectedRefraction);
50
51 modifier.modifyWithoutDerivatives(estimated);
52
53 assertEquals(expectedRefraction, estimated.getEstimatedValue()[1] - elevation, 1e-15);
54 }
55 }