1   package org.orekit.rugged.adjustment.util;
2   
3   import org.orekit.rugged.api.Rugged;
4   import org.orekit.utils.ParameterDriver;
5   
6   
7   /** Apply disruptions or select/unselect parameter to adjust for Refining JUnit tests.
8    * @author Guylaine Prat
9    */
10  public class RefiningParametersDriver {
11      
12      // Part of the name of parameter drivers
13      static final String rollSuffix = "_roll";
14      static final String pitchSuffix = "_pitch";
15      static final String factorName = "factor";
16  
17      /** Apply disruptions on acquisition for roll angle
18       * @param rugged Rugged instance
19       * @param sensorName line sensor name
20       * @param rollValue rotation on roll value
21       */
22      public static void applyDisruptionsRoll(final Rugged rugged, final String sensorName, final double rollValue) {
23  
24          rugged.
25          getLineSensor(sensorName).
26          getParametersDrivers().
27          filter(driver -> driver.getName().equals(sensorName + rollSuffix)).
28          findFirst().get().setValue(rollValue);
29      }
30      
31      /** Apply disruptions on acquisition for pitch angle
32       * @param rugged Rugged instance
33       * @param sensorName line sensor name
34       * @param pitchValue rotation on pitch value
35       */
36      public static void applyDisruptionsPitch(final Rugged rugged, final String sensorName, final double pitchValue) {
37  
38          rugged.
39          getLineSensor(sensorName).
40          getParametersDrivers().
41          filter(driver -> driver.getName().equals(sensorName + pitchSuffix)).
42          findFirst().get().setValue(pitchValue);
43      }
44      
45      /** Apply disruptions on acquisition for scale factor
46       * @param rugged Rugged instance
47       * @param sensorName line sensor name
48       * @param factorValue scale factor
49       */
50      public static void applyDisruptionsFactor(final Rugged rugged, final String sensorName, final double factorValue) {
51  
52          rugged.
53          getLineSensor(sensorName).
54          getParametersDrivers().
55          filter(driver -> driver.getName().equals(factorName)).
56          findFirst().get().setValue(factorValue);
57      }
58      
59      /** Select roll angle to adjust
60       * @param rugged Rugged instance
61       * @param sensorName line sensor name
62       */
63      public static void setSelectedRoll(final Rugged rugged, final String sensorName) {
64  
65          ParameterDriver rollDriver =
66                  rugged.getLineSensor(sensorName).getParametersDrivers().
67                  filter(driver -> driver.getName().equals(sensorName + rollSuffix)).findFirst().get();
68          rollDriver.setSelected(true);
69      }
70      
71      /** Select pitch angle to adjust
72       * @param rugged Rugged instance
73       * @param sensorName line sensor name
74       */
75      public static void setSelectedPitch(final Rugged rugged, final String sensorName) {
76          
77          ParameterDriver pitchDriver =
78                  rugged.getLineSensor(sensorName).getParametersDrivers().
79                  filter(driver -> driver.getName().equals(sensorName + pitchSuffix)).findFirst().get();
80          pitchDriver.setSelected(true);
81      }
82  
83      /** Select scale factor to adjust
84       * @param rugged Rugged instance
85       * @param sensorName line sensor name
86       */
87      public static void setSelectedFactor(final Rugged rugged, final String sensorName) {
88  
89          ParameterDriver factorDriver =
90                  rugged.getLineSensor(sensorName).getParametersDrivers().
91                  filter(driver -> driver.getName().equals(factorName)).findFirst().get();
92          factorDriver.setSelected(true);
93      }  
94      
95      /** Unselect roll angle to adjust (for test coverage purpose)
96       * @param rugged Rugged instance
97       * @param sensorName line sensor name
98       */
99      public static void unselectRoll(final Rugged rugged, final String sensorName) {
100 
101         ParameterDriver rollDriver =
102                 rugged.getLineSensor(sensorName).getParametersDrivers().
103                 filter(driver -> driver.getName().equals(sensorName + rollSuffix)).findFirst().get();
104         rollDriver.setSelected(false);
105     }
106     
107     /** Unselect pitch angle to adjust (for test coverage purpose)
108      * @param rugged Rugged instance
109      * @param sensorName line sensor name
110      */
111     public static void unselectPitch(final Rugged rugged, final String sensorName) {
112         
113         ParameterDriver pitchDriver =
114                 rugged.getLineSensor(sensorName).getParametersDrivers().
115                 filter(driver -> driver.getName().equals(sensorName + pitchSuffix)).findFirst().get();
116         pitchDriver.setSelected(false);
117     }
118 
119     /** Unselect factor angle to adjust (for test coverage purpose)
120      * @param rugged Rugged instance
121      * @param sensorName line sensor name
122      */
123     public static void unselectFactor(final Rugged rugged, final String sensorName) {
124 
125         ParameterDriver factorDriver =
126                 rugged.getLineSensor(sensorName).getParametersDrivers().
127                 filter(driver -> driver.getName().equals(factorName)).findFirst().get();
128         factorDriver.setSelected(false);
129     }  
130 
131 }