Project

General

Profile

« Previous | Next » 

Revision 1c7946d9

Added by Andreas Müller about 8 years ago

Include nom. illeg. in homotypic group ordering #3338

View differences:

cdmlib-model/src/test/java/eu/etaxonomy/cdm/model/taxon/HomotypicGroupTaxonComparatorTest.java
25 25
import eu.etaxonomy.cdm.model.common.TimePeriod;
26 26
import eu.etaxonomy.cdm.model.name.BotanicalName;
27 27
import eu.etaxonomy.cdm.model.name.HomotypicalGroup;
28
import eu.etaxonomy.cdm.model.name.NomenclaturalStatus;
29
import eu.etaxonomy.cdm.model.name.NomenclaturalStatusType;
28 30
import eu.etaxonomy.cdm.model.name.NonViralName;
29 31
import eu.etaxonomy.cdm.model.name.Rank;
30 32
//import eu.etaxonomy.cdm.model.reference.Book;
......
106 108

  
107 109
    }
108 110

  
109

  
110
    /**
111
     *
112
     */
113 111
    private void setNameParts(NonViralName<?> name, String genus, String speciesEpi) {
114 112
        name.setGenusOrUninomial(genus);
115 113
        name.setSpecificEpithet(speciesEpi);
......
234 232
        Assert.assertEquals(botName4, list.get(2).getName());
235 233
        Assert.assertEquals(botName2, list.get(3).getName());
236 234

  
235
        //even with nom. illeg. the name with date should come first
236
        NomenclaturalStatus illegStatus = NomenclaturalStatus.NewInstance(NomenclaturalStatusType.ILLEGITIMATE());
237
        botName5.addStatus(illegStatus);
238

  
239
        Assert.assertEquals("basionym with date should comes first", botName5, list.get(0).getName());
240
        Assert.assertEquals(botName3, list.get(1).getName());
241
        Assert.assertEquals(botName4, list.get(2).getName());
242
        Assert.assertEquals(botName2, list.get(3).getName());
243

  
244

  
237 245
        //add replaced synonym relation between basionyms
238 246
        botName5.addReplacedSynonym(botName4, null, null, null);
239 247
        Collections.sort(list, new HomotypicGroupTaxonComparator(null));
......
325 333

  
326 334
    }
327 335

  
336
    @Test
337
    public void testCompare_BasionymGroupsWithNomIlleg() {
338
        NomenclaturalStatus illegStatus = NomenclaturalStatus.NewInstance(NomenclaturalStatusType.ILLEGITIMATE());
339
        botName4.addStatus(illegStatus);
340

  
341
        //2 basionym groups
342

  
343
        HomotypicalGroup homotypicalGroup = botName2.getHomotypicalGroup();
344
        taxon1.addHeterotypicSynonymName(botName3);
345
        taxon1.addHeterotypicSynonymName(botName5, homotypicalGroup, null, null);
346
        botName3.addBasionym(botName5);
347

  
348
        synonym2 = taxon1.addHeterotypicSynonymName(botName2).getSynonym();
349
        taxon1.addHeterotypicSynonymName(botName4, homotypicalGroup, null, null);
350
//        botName2.addBasionym(botName4);
351

  
352

  
353
        list.addAll(taxon1.getSynonyms());
354
        Collections.sort(list, new HomotypicGroupTaxonComparator(null));
355

  
356
        Assert.assertEquals("basionym for non nom. illeg. group should come first", botName2, list.get(0).getName());
357
        Assert.assertEquals(botName5, list.get(1).getName());
358
        Assert.assertEquals(botName3, list.get(2).getName());
359
        Assert.assertEquals("Nom illeg should come last", botName4, list.get(3).getName());
360

  
361
        //name having a nom. illeg. as basionym should stay in its basionym group
362
        //NOTE: this is dirty data as nom. illeg. is not allowed as basionym by the code
363
        botName2.addBasionym(botName4);
364
        Collections.sort(list, new HomotypicGroupTaxonComparator(null));
365

  
366
        Assert.assertEquals("basionym for non nom. illeg. group should come first", botName5, list.get(0).getName());
367
        Assert.assertEquals(botName3, list.get(1).getName());
368
        Assert.assertEquals("Nom illeg basionym group should come last", botName4, list.get(2).getName());
369
        Assert.assertEquals("Names with nom. illeg. as basionym should stay in basionym group", botName2, list.get(3).getName());
370

  
371
        //non basionym nom. illeg. should not change the order
372
        botName4.removeStatus(illegStatus);
373
        botName2.addStatus(illegStatus);
374
        Collections.sort(list, new HomotypicGroupTaxonComparator(null));
375

  
376
        Assert.assertEquals("basionym for non nom. illeg. group should come first", botName4, list.get(0).getName());
377
        Assert.assertEquals(botName2, list.get(1).getName());
378
        Assert.assertEquals("Nom illeg basionym group should come last", botName5, list.get(2).getName());
379
        Assert.assertEquals("Names with nom. illeg. as basionym should stay in basionym group", botName3, list.get(3).getName());
380

  
381
    }
382

  
328 383
    @Test
329 384
    public void testCompare_NoCircularProblemsWithBasionyms() {
330 385

  

Also available in: Unified diff