Project

General

Profile

Download (14.5 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.cdm.strategy.generate;
2

    
3
import static org.junit.Assert.assertNotNull;
4

    
5
import java.util.ArrayList;
6
import java.util.HashSet;
7
import java.util.List;
8
import java.util.Set;
9

    
10
import org.apache.log4j.Logger;
11
import org.junit.Before;
12
import org.junit.Test;
13

    
14
import eu.etaxonomy.cdm.model.description.CategoricalData;
15
import eu.etaxonomy.cdm.model.description.Feature;
16
import eu.etaxonomy.cdm.model.description.QuantitativeData;
17
import eu.etaxonomy.cdm.model.description.State;
18
import eu.etaxonomy.cdm.model.description.StateData;
19
import eu.etaxonomy.cdm.model.description.StatisticalMeasure;
20
import eu.etaxonomy.cdm.model.description.StatisticalMeasurementValue;
21
import eu.etaxonomy.cdm.model.description.TaxonDescription;
22
import eu.etaxonomy.cdm.model.name.NonViralName;
23
import eu.etaxonomy.cdm.model.taxon.Taxon;
24

    
25
/**
26
 * @author m.venin
27
 * @created 16.12.2010
28
 * @version 1.0
29
 */
30

    
31
public class IdentificationKeyGeneratorTest {
32
	private static final Logger logger = Logger.getLogger(IdentificationKeyGeneratorTest.class);
33
	
34
	private Feature feature1;
35
	private Feature feature2;
36
	private Feature feature3;
37
	private Feature feature4;
38
	
39
	private Taxon taxon1;
40
	private Taxon taxon2;
41
	private Taxon taxon3;
42
	private Taxon taxon4;
43
	private Taxon taxon5;
44
	private Taxon taxon6;
45
	private Taxon taxon7;
46
	private Taxon taxon8;
47
	
48
	private TaxonDescription taxond1;
49
	private TaxonDescription taxond2;
50
	private TaxonDescription taxond3;
51
	private TaxonDescription taxond4;
52
	private TaxonDescription taxond5;
53
	private TaxonDescription taxond6;
54
	private TaxonDescription taxond7;
55
	private TaxonDescription taxond8;
56
	
57
	private Set<TaxonDescription> taxa;
58
	private List<Feature> features;
59
	
60
	private PolytomousKeyGenerator generator;
61
	
62
	@Before
63
	public void setUp() throws Exception {
64
		feature1 = Feature.NewInstance("","Shape of the head","");
65
		feature2 = Feature.NewInstance("","Presence of wings","");
66
		feature3 = Feature.NewInstance("","Length of wings","");
67
		feature4 = Feature.NewInstance("","Colour","");
68
		
69
		NonViralName tn1 = NonViralName.NewInstance(null);
70
		NonViralName tn2 = NonViralName.NewInstance(null);
71
		NonViralName tn3 = NonViralName.NewInstance(null);
72
		NonViralName tn4 = NonViralName.NewInstance(null);
73
		NonViralName tn5 = NonViralName.NewInstance(null);
74
		NonViralName tn6 = NonViralName.NewInstance(null);
75
		NonViralName tn7 = NonViralName.NewInstance(null);
76
		NonViralName tn8 = NonViralName.NewInstance(null);
77
		
78
		taxon1 = Taxon.NewInstance(tn1, null);
79
		taxon2 = Taxon.NewInstance(tn2, null);
80
		taxon3 = Taxon.NewInstance(tn3, null);
81
		taxon4 = Taxon.NewInstance(tn4, null);
82
		taxon5 = Taxon.NewInstance(tn5, null);
83
		taxon6 = Taxon.NewInstance(tn6, null);
84
		taxon7 = Taxon.NewInstance(tn7, null);
85
		taxon8 = Taxon.NewInstance(tn8, null);
86
		
87
		taxond1 = TaxonDescription.NewInstance(taxon1);
88
		taxond2 = TaxonDescription.NewInstance(taxon2);
89
		taxond3 = TaxonDescription.NewInstance(taxon3);
90
		taxond4 = TaxonDescription.NewInstance(taxon4);
91
		taxond5 = TaxonDescription.NewInstance(taxon5);
92
		taxond6 = TaxonDescription.NewInstance(taxon6);
93
		taxond7 = TaxonDescription.NewInstance(taxon7);
94
		taxond8 = TaxonDescription.NewInstance(taxon8);
95
		
96
		CategoricalData catd11 = CategoricalData.NewInstance();
97
		catd11.setFeature(feature1);
98
		StateData sd11 = StateData.NewInstance();
99
		State s11 = State.NewInstance("","Triangular","");
100
		State s12 = State.NewInstance("","Circular","");
101
		sd11.setState(s11);
102
		catd11.addState(sd11);
103
		
104
		CategoricalData catd12 = CategoricalData.NewInstance();
105
		catd12.setFeature(feature1);
106
		StateData sd12 = StateData.NewInstance();
107
		sd12.setState(s11);
108
		catd12.addState(sd12);
109
		
110
		CategoricalData catd13 = CategoricalData.NewInstance();
111
		catd13.setFeature(feature1);
112
		StateData sd13 = StateData.NewInstance();
113
		sd13.setState(s11);
114
		catd13.addState(sd13);
115
		
116
		CategoricalData catd14 = CategoricalData.NewInstance();
117
		catd14.setFeature(feature1);
118
		StateData sd14 = StateData.NewInstance();
119
		sd14.setState(s11);
120
		catd14.addState(sd14);
121
		
122
		CategoricalData catd15 = CategoricalData.NewInstance();
123
		catd15.setFeature(feature1);
124
		StateData sd15 = StateData.NewInstance();
125
		sd15.setState(s12);
126
		catd15.addState(sd15);
127
		
128
		CategoricalData catd16 = CategoricalData.NewInstance();
129
		catd16.setFeature(feature1);
130
		StateData sd16 = StateData.NewInstance();
131
		sd16.setState(s12);
132
		catd16.addState(sd16);
133
		
134
		CategoricalData catd17 = CategoricalData.NewInstance();
135
		catd17.setFeature(feature1);
136
		StateData sd17 = StateData.NewInstance();
137
		sd17.setState(s12);
138
		catd17.addState(sd17);
139
		
140
		CategoricalData catd18 = CategoricalData.NewInstance();
141
		catd18.setFeature(feature1);
142
		StateData sd18 = StateData.NewInstance();
143
		sd18.setState(s12);
144
		catd18.addState(sd18);
145
		
146
		/*************************/
147
		
148
		CategoricalData catd21 = CategoricalData.NewInstance();
149
		catd21.setFeature(feature2);
150
		StateData sd21 = StateData.NewInstance();
151
		State s21 = State.NewInstance("","Yes","");
152
		State s22 = State.NewInstance("","No","");
153
		sd21.setState(s21);
154
		catd21.addState(sd21);
155
		
156
		CategoricalData catd22 = CategoricalData.NewInstance();
157
		catd22.setFeature(feature2);
158
		StateData sd22 = StateData.NewInstance();
159
		sd22.setState(s21);
160
		catd22.addState(sd22);
161
		
162
		CategoricalData catd23 = CategoricalData.NewInstance();
163
		catd23.setFeature(feature2);
164
		StateData sd23 = StateData.NewInstance();
165
		sd23.setState(s21);
166
		catd23.addState(sd23);
167
		
168
		CategoricalData catd24 = CategoricalData.NewInstance();
169
		catd24.setFeature(feature2);
170
		StateData sd24 = StateData.NewInstance();
171
		sd24.setState(s21);
172
		catd24.addState(sd24);
173
		
174
		CategoricalData catd25 = CategoricalData.NewInstance();
175
		catd25.setFeature(feature2);
176
		StateData sd25 = StateData.NewInstance();
177
		sd25.setState(s21);
178
		catd25.addState(sd25);
179
		
180
		CategoricalData catd26 = CategoricalData.NewInstance();
181
		catd26.setFeature(feature2);
182
		StateData sd26 = StateData.NewInstance();
183
		sd26.setState(s21);
184
		catd26.addState(sd26);
185
		
186
		CategoricalData catd27 = CategoricalData.NewInstance();
187
		catd27.setFeature(feature2);
188
		StateData sd27 = StateData.NewInstance();
189
		sd27.setState(s21);
190
		catd27.addState(sd27);
191
		
192
		CategoricalData catd28 = CategoricalData.NewInstance();
193
		catd28.setFeature(feature2);
194
		StateData sd28 = StateData.NewInstance();
195
		sd28.setState(s22);
196
		catd28.addState(sd28);
197
		
198
		/*************************/
199
		
200
		QuantitativeData qtd31 = QuantitativeData.NewInstance();
201
		StatisticalMeasurementValue smv311 = StatisticalMeasurementValue.NewInstance();
202
		smv311.setValue(0);
203
		StatisticalMeasure sm311 = StatisticalMeasure.MIN();
204
		smv311.setType(sm311);
205
		StatisticalMeasurementValue smv312 = StatisticalMeasurementValue.NewInstance();
206
		smv312.setValue(3);
207
		StatisticalMeasure sm312 = StatisticalMeasure.MAX();
208
		smv312.setType(sm312);
209
		qtd31.addStatisticalValue(smv311);
210
		qtd31.addStatisticalValue(smv312);
211
		
212
		QuantitativeData qtd32 = QuantitativeData.NewInstance();
213
		StatisticalMeasurementValue smv321 = StatisticalMeasurementValue.NewInstance();
214
		smv321.setValue(0);
215
		StatisticalMeasure sm321 = StatisticalMeasure.MIN();
216
		smv321.setType(sm321);
217
		StatisticalMeasurementValue smv322 = StatisticalMeasurementValue.NewInstance();
218
		smv322.setValue(3);
219
		StatisticalMeasure sm322 = StatisticalMeasure.MAX();
220
		smv322.setType(sm322);
221
		qtd32.addStatisticalValue(smv321);
222
		qtd32.addStatisticalValue(smv322);
223
		
224
		QuantitativeData qtd33 = QuantitativeData.NewInstance();
225
		StatisticalMeasurementValue smv331 = StatisticalMeasurementValue.NewInstance();
226
		smv331.setValue(6);
227
		StatisticalMeasure sm331 = StatisticalMeasure.MIN();
228
		smv331.setType(sm331);
229
		StatisticalMeasurementValue smv332 = StatisticalMeasurementValue.NewInstance();
230
		smv332.setValue(9);
231
		StatisticalMeasure sm332 = StatisticalMeasure.MAX();
232
		smv332.setType(sm332);
233
		qtd33.addStatisticalValue(smv331);
234
		qtd33.addStatisticalValue(smv332);
235
		
236
		QuantitativeData qtd34 = QuantitativeData.NewInstance();
237
		StatisticalMeasurementValue smv341 = StatisticalMeasurementValue.NewInstance();
238
		smv341.setValue(6);
239
		StatisticalMeasure sm341 = StatisticalMeasure.MIN();
240
		smv341.setType(sm341);
241
		StatisticalMeasurementValue smv342 = StatisticalMeasurementValue.NewInstance();
242
		smv342.setValue(9);
243
		StatisticalMeasure sm342 = StatisticalMeasure.MAX();
244
		smv342.setType(sm342);
245
		qtd34.addStatisticalValue(smv341);
246
		qtd34.addStatisticalValue(smv342);
247
		
248
		QuantitativeData qtd35 = QuantitativeData.NewInstance();
249
		StatisticalMeasurementValue smv351 = StatisticalMeasurementValue.NewInstance();
250
		smv351.setValue(0);
251
		StatisticalMeasure sm351 = StatisticalMeasure.MIN();
252
		smv351.setType(sm351);
253
		StatisticalMeasurementValue smv352 = StatisticalMeasurementValue.NewInstance();
254
		smv352.setValue(3);
255
		StatisticalMeasure sm352 = StatisticalMeasure.MAX();
256
		smv352.setType(sm352);
257
		qtd35.addStatisticalValue(smv351);
258
		qtd35.addStatisticalValue(smv352);
259
		
260
		QuantitativeData qtd36 = QuantitativeData.NewInstance();
261
		StatisticalMeasurementValue smv361 = StatisticalMeasurementValue.NewInstance();
262
		smv361.setValue(0);
263
		StatisticalMeasure sm361 = StatisticalMeasure.MIN();
264
		smv361.setType(sm361);
265
		StatisticalMeasurementValue smv362 = StatisticalMeasurementValue.NewInstance();
266
		smv362.setValue(3);
267
		StatisticalMeasure sm362 = StatisticalMeasure.MAX();
268
		smv362.setType(sm362);
269
		qtd36.addStatisticalValue(smv361);
270
		qtd36.addStatisticalValue(smv362);
271
		
272
		QuantitativeData qtd37 = QuantitativeData.NewInstance();
273
		StatisticalMeasurementValue smv371 = StatisticalMeasurementValue.NewInstance();
274
		smv371.setValue(6);
275
		StatisticalMeasure sm371 = StatisticalMeasure.MIN();
276
		smv371.setType(sm371);
277
		StatisticalMeasurementValue smv372 = StatisticalMeasurementValue.NewInstance();
278
		smv372.setValue(9);
279
		StatisticalMeasure sm372 = StatisticalMeasure.MAX();
280
		smv372.setType(sm372);
281
		qtd37.addStatisticalValue(smv371);
282
		qtd37.addStatisticalValue(smv372);
283
		
284
//		QuantitativeData qtd38 = QuantitativeData.NewInstance();
285
//		StatisticalMeasurementValue smv381 = StatisticalMeasurementValue.NewInstance();
286
//		smv381.setValue(6);
287
//		StatisticalMeasure sm381 = StatisticalMeasure.MIN();
288
//		smv381.setType(sm381);
289
//		StatisticalMeasurementValue smv382 = StatisticalMeasurementValue.NewInstance();
290
//		smv382.setValue(9);
291
//		StatisticalMeasure sm382 = StatisticalMeasure.MAX();
292
//		smv382.setType(sm382);
293
//		qtd38.addStatisticalValue(smv381);
294
//		qtd38.addStatisticalValue(smv382);
295
		
296
		/*************************/
297
		
298
		CategoricalData catd41 = CategoricalData.NewInstance();
299
		catd41.setFeature(feature4);
300
		StateData sd41 = StateData.NewInstance();
301
		State s41 = State.NewInstance("","Blue","");
302
		State s42 = State.NewInstance("","Yellow","");
303
		sd41.setState(s41);
304
		catd41.addState(sd41);
305
		
306
		CategoricalData catd42 = CategoricalData.NewInstance();
307
		catd42.setFeature(feature4);
308
		StateData sd42 = StateData.NewInstance();
309
		sd42.setState(s42);
310
		catd42.addState(sd42);
311
		
312
		CategoricalData catd43 = CategoricalData.NewInstance();
313
		catd43.setFeature(feature4);
314
		StateData sd43 = StateData.NewInstance();
315
		sd43.setState(s41);
316
		catd43.addState(sd43);
317
		
318
		CategoricalData catd44 = CategoricalData.NewInstance();
319
		catd44.setFeature(feature4);
320
		StateData sd44 = StateData.NewInstance();
321
		sd44.setState(s42);
322
		catd44.addState(sd44);
323
		
324
		CategoricalData catd45 = CategoricalData.NewInstance();
325
		catd45.setFeature(feature4);
326
		StateData sd45 = StateData.NewInstance();
327
		sd45.setState(s41);
328
		catd45.addState(sd45);
329
		
330
		CategoricalData catd46 = CategoricalData.NewInstance();
331
		catd46.setFeature(feature4);
332
		StateData sd46 = StateData.NewInstance();
333
		sd46.setState(s41);
334
		catd46.addState(sd46);
335
		
336
		CategoricalData catd47 = CategoricalData.NewInstance();
337
		catd47.setFeature(feature4);
338
		StateData sd47 = StateData.NewInstance();
339
		sd47.setState(s41);
340
		catd47.addState(sd47);
341
		
342
		CategoricalData catd48 = CategoricalData.NewInstance();
343
		catd48.setFeature(feature4);
344
		StateData sd48 = StateData.NewInstance();
345
		sd48.setState(s41);
346
		catd48.addState(sd48);
347
		
348
		/*************************/
349
		
350
		taxond1.addElement(catd11);
351
		taxond1.addElement(catd21);
352
		taxond1.addElement(qtd31);
353
		taxond1.addElement(catd41);
354
		
355
		taxond2.addElement(catd12);
356
		taxond2.addElement(catd22);
357
		taxond2.addElement(qtd32);
358
		taxond2.addElement(catd42);
359
		
360
		taxond3.addElement(catd13);
361
		taxond3.addElement(catd23);
362
		taxond3.addElement(qtd33);
363
		taxond3.addElement(catd43);
364
		
365
		taxond4.addElement(catd14);
366
		taxond4.addElement(catd24);
367
		taxond4.addElement(qtd34);
368
		taxond4.addElement(catd44);
369
		
370
		taxond5.addElement(catd15);
371
		taxond5.addElement(catd25);
372
		taxond5.addElement(qtd35);
373
		taxond5.addElement(catd45);
374
		
375
		taxond6.addElement(catd16);
376
		taxond6.addElement(catd26);
377
		taxond6.addElement(qtd36);
378
		taxond6.addElement(catd46);
379
		
380
		taxond7.addElement(catd17);
381
		taxond7.addElement(catd27);
382
		taxond7.addElement(qtd37);
383
		taxond7.addElement(catd47);
384
		
385
		taxond8.addElement(catd18);
386
		taxond8.addElement(catd28);
387
//		taxond8.addElement(qtd38); // This taxon has no wings
388
		taxond8.addElement(catd48);
389
		
390
		/*************************/
391
		
392
		features = new ArrayList<Feature>();
393
		features.add(feature1);
394
		features.add(feature2);
395
		features.add(feature3);
396
		features.add(feature4);
397
		
398
		taxa = new HashSet<TaxonDescription>();
399
		taxa.add(taxond1);
400
		taxa.add(taxond2);
401
		taxa.add(taxond3);
402
		taxa.add(taxond4);
403
		taxa.add(taxond5);
404
		taxa.add(taxond6);
405
		taxa.add(taxond7);
406
		taxa.add(taxond8);
407
		
408
	}
409
	
410
//*************************** TESTS *********************** /
411
	
412

    
413
	@Test
414
	public void testInvoke() {
415
		generator = new PolytomousKeyGenerator();
416
		generator.setFeatures(features);
417
		generator.setTaxa(taxa);
418
		assertNotNull("Key should exist.",generator.invoke());
419
	}
420

    
421
	@Test
422
	public void testInvokeMergeModeON() {
423
//		generator = new IdentificationKeyGenerator();
424
//		generator.setFeatures(features);
425
//		generator.setTaxa(taxa);
426
//		generator.mergeModeON();
427
//		generator.invoke();
428
//		assertNotNull("Key should exist (merge mode ON).",generator.invoke());;
429
	}
430
	
431
	@Test
432
	public void testInvokeWithDependencies() {
433
//		generator = new IdentificationKeyGenerator();
434
//		generator.setFeatures(features);
435
//		generator.setTaxa(taxa);
436
////		generator.setDependencies(tree);// TODO create a tree with dependencies to test this function
437
//		generator.invoke();
438
//		assertNotNull("Key should exist (dependencies are present).",generator.invoke());;
439
	}
440
	
441
}
    (1-1/1)