Salome HOME
Copyrights update 2015.
[modules/yacs.git] / src / pmml / Test / PMMLBasicsTest1.hxx
1 // Copyright (C) 2007-2015  CEA/DEN, EDF R&D
2 //
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
16 //
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18 //
19 // Author : InckA
20
21 #ifndef __PMMLBASICSTEST1_HXX__
22 #define __PMMLBASICSTEST1_HXX__
23
24 #include "PMMLBasicsTest.hxx"
25
26 #include <string>
27
28 //classe test de PMMLlib
29   
30 class PMMLBasicsTest1 : public PMMLBasicsTest
31 {
32     CPPUNIT_TEST_SUITE(PMMLBasicsTest1);
33     
34     // test des méthodes communes
35     CPPUNIT_TEST(testMakeLog);
36     
37     CPPUNIT_TEST(testConstructorFileDoesNotExist);     
38      
39     CPPUNIT_TEST(testSetCurrentModelWithNameAndTypekANNUnknownModel);
40     CPPUNIT_TEST(testSetCurrentModelWithNameAndTypekLRUnknownModel);  
41     CPPUNIT_TEST(testSetCurrentModelWithNameAndTypekUNDEFINEDUnknownModel);
42     CPPUNIT_TEST(testSetCurrentModelWithNameAndType);
43     CPPUNIT_TEST(testSetCurrentModelWithNameAndTypeTwoModelsWithSameNames);
44     CPPUNIT_TEST(testSetCurrentModelWithNameWrongName);
45     CPPUNIT_TEST(testSetCurrentModelWithNameTwoModelsWithSameNames);
46     CPPUNIT_TEST(testSetCurrentModelWithName);   
47     CPPUNIT_TEST(testSetCurrentModelNoModel);
48     CPPUNIT_TEST(testSetCurrentModelMoreThanOneModel);
49     CPPUNIT_TEST(testSetCurrentModel);      
50     
51     CPPUNIT_TEST(testGetModelsNbkANN);
52     CPPUNIT_TEST(testGetModelsNbkLR);
53
54     CPPUNIT_TEST( testWrite );  
55     CPPUNIT_TEST( testWriteNotExistingFile );
56     
57     CPPUNIT_TEST(testUnlinkNode );
58     CPPUNIT_TEST(testBackupNode );
59
60     // test des méthodes NeuralNetwork
61     CPPUNIT_TEST( testGetNbInputsForbiddenModelType ) ;
62     CPPUNIT_TEST( testGetNbInputs8 ) ;
63
64     CPPUNIT_TEST( testGetNbOutputsForbiddenModelType ) ;
65     CPPUNIT_TEST( testGetNbOutputs2 ) ;
66
67     CPPUNIT_TEST( testGetNameInputForbiddenModelType ) ;
68     CPPUNIT_TEST( testGetNameInputIndexOutOfRange ) ;    
69     CPPUNIT_TEST( testGetNameInput ) ;
70
71     CPPUNIT_TEST( testGetNameOutputForbiddenModelType ) ;
72     CPPUNIT_TEST( testGetNameOutputIndexOutOfRange ) ;    
73     CPPUNIT_TEST( testGetNameOutput ) ;
74
75     CPPUNIT_TEST( testGetNormalisationInputForbiddenType ) ;
76     CPPUNIT_TEST( testGetNormalisationInputIndexUnknown ) ;
77     CPPUNIT_TEST( testGetNormalisationInputkMinusOneOne ) ;
78     CPPUNIT_TEST( testGetNormalisationInputkCRkZeroOne ) ;
79
80     CPPUNIT_TEST( testGetNormalisationOutputForbiddenType ) ; 
81     CPPUNIT_TEST( testGetNormalisationOutputIndexUnknown ) ;
82     CPPUNIT_TEST( testGetNormalisationOutputkMinusOneOne ) ;
83     CPPUNIT_TEST( testGetNormalisationOutputkCRkZeroOne ) ;
84
85     CPPUNIT_TEST( testGetNbLayersForbiddenType ) ;
86     CPPUNIT_TEST( testGetNbLayers ) ;
87
88     CPPUNIT_TEST( testGetNbNeuronsAtLayerForbiddenType );
89     CPPUNIT_TEST( testGetNbNeuronsAtLayerFromIndexOutOfRange );
90     CPPUNIT_TEST( testGetNbNeuronsAtLayer );
91
92     CPPUNIT_TEST( testGetNeuronBiasForbiddenType );
93     CPPUNIT_TEST( testGetNeuronBiasFromLayerIndexOutOfRange );
94     CPPUNIT_TEST( testGetNeuronBiasFromNeuronIndexOutOfRange );
95     CPPUNIT_TEST( testGetNeuronBias );
96        
97     CPPUNIT_TEST( testGetPrecNeuronSynapseForbiddenType );
98     CPPUNIT_TEST( testGetPrecNeuronSynapseFromLayerIndexOutOfRange );
99     CPPUNIT_TEST( testGetPrecNeuronSynapseFromNeuronIndexOutOfRange );
100     CPPUNIT_TEST( testGetPrecNeuronSynapseFromPrecIndexOutOfRange );
101     CPPUNIT_TEST( testGetPrecNeuronSynapse );
102     
103     CPPUNIT_TEST( testReadNetworkStructure );    
104
105     CPPUNIT_TEST( testExportNeuralNetworkCpp );
106     CPPUNIT_TEST( testExportNeuralNetworkFortran );
107     CPPUNIT_TEST( testExportNeuralNetworkPython );
108     CPPUNIT_TEST( testCreatePmmlNeuralNetwork );
109
110     // test des méthodes RegressionModel    
111     CPPUNIT_TEST( testHasInterceptForbiddenType );
112     CPPUNIT_TEST( testHasIntercept );
113     CPPUNIT_TEST( testHasInterceptNo );
114     CPPUNIT_TEST( testGetRegressionTableInterceptForbiddenType );    
115     CPPUNIT_TEST( testGetRegressionTableIntercept );
116     
117     CPPUNIT_TEST( testReadRegressionStructure );
118    
119     CPPUNIT_TEST( testGetNumericPredictorNb );
120     CPPUNIT_TEST( testGetNumericPredictorNbForbiddenType );
121
122     CPPUNIT_TEST( testGetNumericPredictorName );
123     CPPUNIT_TEST( testGetNumericPredictorNameForbiddenType );
124     CPPUNIT_TEST( testGetNumericPredictorNamePredictorOutOfRange );
125
126     CPPUNIT_TEST( testGetPredictorTermName );
127     CPPUNIT_TEST( testGetPredictorTermNameForbiddenType ); 
128     CPPUNIT_TEST( testGetPredictorTermNamePredictorOutOfRange );
129     
130     CPPUNIT_TEST( testGetNumericPredictorCoefficient );
131     CPPUNIT_TEST( testGetNumericPredictorCoefficientForbiddenType );
132     CPPUNIT_TEST( testGetNumericPredictorCoefficientPredictorOutOfRange );
133
134     CPPUNIT_TEST( testGetPredictorTermCoefficient );
135     CPPUNIT_TEST( testGetPredictorTermCoefficientForbiddenType );
136     CPPUNIT_TEST( testGetPredictorTermCoefficientPredictorOutOfRange );
137
138     CPPUNIT_TEST( testGetPredictorTermFieldRefNb );
139     CPPUNIT_TEST( testGetPredictorTermFieldRefNbForbiddenType );    
140     CPPUNIT_TEST( testGetPredictorTermFieldRefNbPredictorOutOfRange );
141
142     CPPUNIT_TEST( testGetPredictorTermFieldRefName );
143     CPPUNIT_TEST( testGetPredictorTermFieldRefNameForbiddenType );
144     CPPUNIT_TEST( testGetPredictorTermFieldRefNamePredictorOutOfRange );
145     CPPUNIT_TEST( testGetPredictorTermFieldRefNameFieldOutOfRange );
146  
147     CPPUNIT_TEST( testExportLinearRegressionCpp );
148     CPPUNIT_TEST( testExportLinearRegressionFortran );
149     CPPUNIT_TEST( testExportLinearRegressionPython );
150     CPPUNIT_TEST( testCreatePmmlRegression );
151
152     CPPUNIT_TEST_SUITE_END();
153   
154 public:
155     
156     void setUp(); 
157     void tearDown();
158     
159     void testMakeLog();
160     
161     void testConstructorFileDoesNotExist();
162     
163     void testSetCurrentModelWithNameAndTypekANNUnknownModel();
164     void testSetCurrentModelWithNameAndTypekLRUnknownModel();  
165     void testSetCurrentModelWithNameAndTypekUNDEFINEDUnknownModel();
166     void testSetCurrentModelWithNameAndType();
167     void testSetCurrentModelWithNameAndTypeTwoModelsWithSameNames();
168     void testSetCurrentModelWithNameWrongName();
169     void testSetCurrentModelWithNameTwoModelsWithSameNames();
170     void testSetCurrentModelWithName();
171     void testSetCurrentModelNoModel();
172     void testSetCurrentModelMoreThanOneModel();
173     void testSetCurrentModel(); 
174     
175     void testGetModelsNbkANN();
176     void testGetModelsNbkLR();
177     
178     void testWrite(); 
179     void testWriteNotExistingFile();
180     
181     void testUnlinkNode();
182     void testBackupNode(); 
183     
184     void testGetNbInputsForbiddenModelType();
185     void testGetNbInputs8();  
186     
187     void testGetNbOutputsForbiddenModelType();
188     void testGetNbOutputs2();  
189     
190     void testGetNameInputForbiddenModelType();
191     void testGetNameInputIndexOutOfRange();
192     void testGetNameInput();
193     
194     void testGetNameOutputForbiddenModelType();
195     void testGetNameOutputIndexOutOfRange();
196     void testGetNameOutput();
197     
198     void testGetNormalisationInputForbiddenType();     
199     void testGetNormalisationInputIndexUnknown();
200     void testGetNormalisationInputkMinusOneOne();
201     void testGetNormalisationInputkCRkZeroOne();
202
203     void testGetNormalisationOutputForbiddenType();        
204     void testGetNormalisationOutputIndexUnknown();
205     void testGetNormalisationOutputkMinusOneOne();
206     void testGetNormalisationOutputkCRkZeroOne();
207  
208     void testGetNbLayersForbiddenType();
209     void testGetNbLayers() ;
210   
211     void testGetNbNeuronsAtLayerForbiddenType();
212     void testGetNbNeuronsAtLayerFromIndexOutOfRange(); 
213     void testGetNbNeuronsAtLayer(); 
214      
215     void testGetNeuronBiasForbiddenType();
216     void testGetNeuronBiasFromLayerIndexOutOfRange(); 
217     void testGetNeuronBiasFromNeuronIndexOutOfRange();
218     void testGetNeuronBias();    
219     
220     void testGetPrecNeuronSynapseForbiddenType(); 
221     void testGetPrecNeuronSynapseFromForbiddenTypeName();
222     void testGetPrecNeuronSynapseFromLayerIndexOutOfRange();
223     void testGetPrecNeuronSynapseFromNeuronIndexOutOfRange();
224     void testGetPrecNeuronSynapseFromPrecIndexOutOfRange();
225     void testGetPrecNeuronSynapse();
226     
227     void testReadNetworkStructure();
228     
229     void testExportNeuralNetworkCpp();
230     void testExportNeuralNetworkFortran();
231     void testExportNeuralNetworkPython();
232     void testCreatePmmlNeuralNetwork();
233     
234     void testHasInterceptForbiddenType();
235     void testHasIntercept();
236     void testHasInterceptNo();
237     void testGetRegressionTableInterceptForbiddenType(); 
238     void testGetRegressionTableIntercept();
239
240     void testReadRegressionStructure();
241     
242     void testGetNumericPredictorNb();
243     void testGetNumericPredictorNbForbiddenType();
244
245     void testGetPredictorTermNb();
246     void testGetPredictorTermNbForbiddenType();
247     
248     void testGetNumericPredictorName();
249     void testGetNumericPredictorNameForbiddenType();    
250     void testGetNumericPredictorNamePredictorOutOfRange();  
251     
252     void testGetPredictorTermName();
253     void testGetPredictorTermNameForbiddenType();    
254     void testGetPredictorTermNamePredictorOutOfRange();      
255     
256     void testGetNumericPredictorCoefficient();
257     void testGetNumericPredictorCoefficientForbiddenType();      
258     void testGetNumericPredictorCoefficientPredictorOutOfRange();      
259
260     void testGetPredictorTermCoefficient();
261     void testGetPredictorTermCoefficientForbiddenType();  
262     void testGetPredictorTermCoefficientPredictorOutOfRange();  
263     
264     void testGetPredictorTermFieldRefNb();
265     void testGetPredictorTermFieldRefNbForbiddenType();   
266     void testGetPredictorTermFieldRefNbPredictorOutOfRange();      
267
268     void testGetPredictorTermFieldRefName();
269     void testGetPredictorTermFieldRefNameForbiddenType();  
270     void testGetPredictorTermFieldRefNamePredictorOutOfRange();     
271     void testGetPredictorTermFieldRefNameFieldOutOfRange();    
272     
273     void testExportLinearRegressionCpp(); 
274     void testExportLinearRegressionFortran();
275     void testExportLinearRegressionPython();
276     void testCreatePmmlRegression();
277
278 private :
279     std::string resourcesDir;
280     std::string tmpDir;
281 };
282
283
284 #endif