1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.orekit.control.indirect.adjoint;
18
19 import org.hipparchus.util.Binary64;
20 import org.hipparchus.util.Binary64Field;
21 import org.hipparchus.util.MathArrays;
22 import org.junit.jupiter.api.Assertions;
23 import org.junit.jupiter.api.Test;
24 import org.mockito.Mockito;
25
26 class AbstractCartesianAdjointNewtonianTermTest {
27
28 @Test
29 void testGetVelocityAdjointContributionField() {
30
31 final AbstractCartesianAdjointNewtonianTerm adjointNewtonianTerm = Mockito.mock(AbstractCartesianAdjointNewtonianTerm.class);
32 final Binary64Field field = Binary64Field.getInstance();
33 final Binary64[] fieldAdjoint = MathArrays.buildArray(field, 6);
34 final Binary64[] fieldState = MathArrays.buildArray(field, 6);
35 for (int i = 0; i < fieldAdjoint.length; i++) {
36 fieldState[i] = field.getZero().newInstance(-i+1);
37 fieldAdjoint[i] = field.getZero().newInstance(i);
38 }
39 final double mu = 2.;
40 Mockito.when(adjointNewtonianTerm.getFieldNewtonianVelocityAdjointContribution(fieldState, fieldAdjoint)).thenCallRealMethod();
41
42 final Binary64[] fieldContribution = adjointNewtonianTerm.getFieldNewtonianVelocityAdjointContribution(fieldState, fieldAdjoint);
43
44 final double[] state = new double[fieldState.length];
45 for (int i = 0; i < fieldState.length; i++) {
46 state[i] = fieldState[i].getReal();
47 }
48 final double[] adjoint = new double[fieldAdjoint.length];
49 for (int i = 0; i < fieldAdjoint.length; i++) {
50 adjoint[i] = fieldAdjoint[i].getReal();
51 }
52 Mockito.when(adjointNewtonianTerm.getNewtonianVelocityAdjointContribution(state, adjoint)).thenCallRealMethod();
53 final double[] contribution = adjointNewtonianTerm.getNewtonianVelocityAdjointContribution(state, adjoint);
54 for (int i = 0; i < contribution.length; i++) {
55 Assertions.assertEquals(fieldContribution[i].getReal(), contribution[i]);
56 }
57 }
58 }