1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 package fr.ifremer.isisfish.simulator.sensitivity;
27
28 import java.io.File;
29 import java.util.List;
30
31 import org.apache.commons.logging.Log;
32 import org.apache.commons.logging.LogFactory;
33
34 import fr.ifremer.isisfish.datastore.SimulationStorage;
35 import fr.ifremer.isisfish.simulator.launcher.SimulationServiceTest;
36 import fr.ifremer.isisfish.simulator.sensitivity.domain.ContinuousDomain;
37 import fr.ifremer.isisfish.simulator.sensitivity.domain.DiscreteDomain;
38
39
40
41
42
43
44
45
46
47
48 public class SensitivityAnalysisRandomMock extends AbstractSensitivityAnalysis {
49
50 private static final Log log = LogFactory.getLog(SimulationServiceTest.class);
51
52 public String getDescription() {
53 return "Implementation of random sensibility analysis";
54 }
55
56
57
58
59
60
61
62 public boolean canManageCardinality() {
63 return false;
64 }
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82 public SensitivityScenarios compute(DesignPlan plan, File outputdirectory)
83 throws SensitivityException {
84
85 if (log.isDebugEnabled()) {
86 log.info("Call random mock compute()");
87 }
88
89
90 SensitivityScenarios sensitivityScenarios = new SensitivityScenarios();
91
92 List<Factor> factors = plan.getFactors();
93 for (int i = 0; i < factors.size() * 2; ++i) {
94
95 Scenario scenario = new Scenario();
96
97 int pickedFactor = (int) (Math.random() * factors.size());
98 Factor factor = factors.get(pickedFactor);
99
100 Domain domain = factor.getDomain();
101 if (domain instanceof ContinuousDomain) {
102 ContinuousDomain cDomain = (ContinuousDomain) domain;
103 Object minValue = 10.5;
104 Object maxValue = 15.5;
105
106 factor.setValueForIdentifier(minValue);
107 scenario.addFactor(factor);
108 factor.setValueForIdentifier(maxValue);
109 scenario.addFactor(factor);
110 } else {
111 DiscreteDomain dDomain = (DiscreteDomain) domain;
112 for (Object sValue : dDomain.getValues().keySet()) {
113 factor.setValueForIdentifier(sValue);
114 scenario.addFactor(factor);
115 }
116 }
117
118 sensitivityScenarios.getScenarios().add(scenario);
119 }
120
121 return sensitivityScenarios;
122
123 }
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139 public void analyzeResult(List<SimulationStorage> simulationStorages,
140 File outputdirectory) throws SensitivityException {
141
142 }
143
144 }