*/\r
public class NonViralNameParserImplTest {\r
private static final NomenclaturalCode ICBN = NomenclaturalCode.ICBN;\r
+ private static final NomenclaturalCode ICZN = NomenclaturalCode.ICZN;\r
\r
private static final Logger logger = Logger.getLogger(NonViralNameParserImplTest.class);\r
\r
@Test\r
public final void testParseFullNameUnicode() {\r
\r
- NonViralName nameAuthor = parser.parseFullName(strNameAbiesAuthor1Unicode, null, Rank.SPECIES());\r
+ NonViralName<?> nameAuthor = parser.parseFullName(strNameAbiesAuthor1Unicode, null, Rank.SPECIES());\r
assertEquals("Abies", nameAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameAuthor.getSpecificEpithet());\r
assertEquals("M\u00FCller", nameAuthor.getCombinationAuthorTeam().getNomenclaturalTitle());\r
\r
- NonViralName nameBasionymAuthor = parser.parseFullName(strNameAbiesBasionymAuthor1Unicode, null, Rank.SPECIES());\r
+ NonViralName<?> nameBasionymAuthor = parser.parseFullName(strNameAbiesBasionymAuthor1Unicode, null, Rank.SPECIES());\r
assertEquals("Abies", nameBasionymAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameBasionymAuthor.getSpecificEpithet());\r
assertEquals("D'M\u00FCller", nameBasionymAuthor.getCombinationAuthorTeam().getNomenclaturalTitle());\r
INomenclaturalAuthor basionymTeam = nameBasionymAuthor.getBasionymAuthorTeam();\r
assertEquals("Ciardelli", basionymTeam.getNomenclaturalTitle());\r
\r
- NonViralName nameBasionymExAuthor = parser.parseFullName(strNameAbiesBasionymExAuthor1Unicode, null, Rank.SPECIES());\r
+ NonViralName<?> nameBasionymExAuthor = parser.parseFullName(strNameAbiesBasionymExAuthor1Unicode, null, Rank.SPECIES());\r
assertEquals("Abies", nameBasionymExAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameBasionymExAuthor.getSpecificEpithet());\r
assertEquals("D'M\u00FCller", nameBasionymExAuthor.getExCombinationAuthorTeam().getNomenclaturalTitle());\r
}\r
\r
//Team\r
- NonViralName nameTeam1 = parser.parseFullName(strNameTeam1);\r
+ NonViralName<?> nameTeam1 = parser.parseFullName(strNameTeam1);\r
assertEquals( "Abies", nameTeam1.getGenusOrUninomial());\r
assertEquals( "alba", nameTeam1.getSpecificEpithet());\r
assertEquals("Mueller & L.", nameTeam1.getCombinationAuthorTeam().getNomenclaturalTitle());\r
\r
\r
//empty\r
- NonViralName nameEmpty = parser.parseFullName(strNameEmpty);\r
+ NonViralName<?> nameEmpty = parser.parseFullName(strNameEmpty);\r
assertNotNull(nameEmpty);\r
assertEquals("", nameEmpty.getTitleCache());\r
\r
//null\r
- NonViralName nameNull = parser.parseFullName(strNameNull);\r
+ NonViralName<?> nameNull = parser.parseFullName(strNameNull);\r
assertNull(nameNull);\r
\r
//some authors\r
String fullNameString = "Abies alba (Greuther & L'Hiver & al. ex M\u00FCller & Schmidt)Clark ex Ciardelli"; \r
- BotanicalName authorname = (BotanicalName)parser.parseFullName(fullNameString);\r
+ NonViralName<?> authorname = (BotanicalName)parser.parseFullName(fullNameString);\r
assertFalse(authorname.hasProblem());\r
assertEquals("Basionym author should have 3 authors", 3, ((Team)authorname.getExBasionymAuthorTeam()).getTeamMembers().size());\r
+\r
}\r
\r
/**\r
\r
//Species hybrid\r
// NonViralName nameTeam1 = parser.parseFullName("Aegilops \u00D7insulae-cypri H. Scholz");\r
- NonViralName name1 = parser.parseFullName("Aegilops \u00D7insulae Scholz", botanicCode, null);\r
+ NonViralName<?> name1 = parser.parseFullName("Aegilops \u00D7insulae Scholz", botanicCode, null);\r
assertTrue("Name must have binom hybrid bit set", name1.isBinomHybrid());\r
assertFalse("Name must not have monom hybrid bit set", name1.isMonomHybrid());\r
assertFalse("Name must not have trinom hybrid bit set", name1.isTrinomHybrid());\r
\r
private void testName_StringNomcodeRank(Method parseMethod) \r
throws InvocationTargetException, IllegalAccessException {\r
- NonViralName<?> name1 = (NonViralName)parseMethod.invoke(parser, strNameAbies1, null, Rank.SPECIES());\r
+ NonViralName<?> name1 = (NonViralName<?>)parseMethod.invoke(parser, strNameAbies1, null, Rank.SPECIES());\r
//parser.parseFullName(strNameAbies1, null, Rank.SPECIES());\r
assertEquals("Abies", name1.getGenusOrUninomial());\r
assertEquals("alba", name1.getSpecificEpithet());\r
\r
- NonViralName nameAuthor = (NonViralName)parseMethod.invoke(parser, strNameAbiesAuthor1, null, Rank.SPECIES());\r
+ NonViralName<?> nameAuthor = (NonViralName<?>)parseMethod.invoke(parser, strNameAbiesAuthor1, null, Rank.SPECIES());\r
assertEquals("Abies", nameAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameAuthor.getSpecificEpithet());\r
assertEquals("Mueller", nameAuthor.getCombinationAuthorTeam().getNomenclaturalTitle());\r
\r
- NonViralName<?> nameBasionymAuthor = (NonViralName)parseMethod.invoke(parser, strNameAbiesBasionymAuthor1, null, Rank.SPECIES());\r
+ NonViralName<?> nameBasionymAuthor = (NonViralName<?>)parseMethod.invoke(parser, strNameAbiesBasionymAuthor1, null, Rank.SPECIES());\r
assertEquals("Abies", nameBasionymAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameBasionymAuthor.getSpecificEpithet());\r
assertEquals("D'Mueller", nameBasionymAuthor.getCombinationAuthorTeam().getNomenclaturalTitle());\r
assertEquals("Ciardelli", nameBasionymAuthor.getBasionymAuthorTeam().getNomenclaturalTitle());\r
\r
- NonViralName<?> nameBasionymExAuthor = (NonViralName)parseMethod.invoke(parser, strNameAbiesBasionymExAuthor1, null, Rank.SPECIES());\r
+ NonViralName<?> nameBasionymExAuthor = (NonViralName<?>)parseMethod.invoke(parser, strNameAbiesBasionymExAuthor1, null, Rank.SPECIES());\r
assertEquals("Abies", nameBasionymExAuthor.getGenusOrUninomial());\r
assertEquals("alba", nameBasionymExAuthor.getSpecificEpithet());\r
assertEquals("D'Mueller", nameBasionymExAuthor.getExCombinationAuthorTeam().getNomenclaturalTitle());\r
assertEquals("Ciardelli", nameBasionymExAuthor.getExBasionymAuthorTeam().getNomenclaturalTitle());\r
assertEquals("Doering", nameBasionymExAuthor.getBasionymAuthorTeam().getNomenclaturalTitle());\r
\r
- NonViralName<?> name2 = (NonViralName)parseMethod.invoke(parser, strNameAbiesSub1, null, Rank.SPECIES());\r
+ NonViralName<?> name2 = (NonViralName<?>)parseMethod.invoke(parser, strNameAbiesSub1, null, Rank.SPECIES());\r
assertEquals("Abies", name2.getGenusOrUninomial());\r
assertEquals("alba", name2.getSpecificEpithet());\r
assertEquals("beta", name2.getInfraSpecificEpithet());\r
String strFullWhiteSpcaceAndDot = "Abies alba Mill., Sp. Pl. 4: 455 . 1987 .";\r
NonViralName<?> namefullWhiteSpcaceAndDot = parser.parseReferencedName(strFullWhiteSpcaceAndDot, null, rankSpecies);\r
assertFullRefStandard(namefullWhiteSpcaceAndDot);\r
- assertTrue(((Reference)namefullWhiteSpcaceAndDot.getNomenclaturalReference()).getType().equals(eu.etaxonomy.cdm.model.reference.ReferenceType.Book));\r
+ assertTrue(((Reference<?>)namefullWhiteSpcaceAndDot.getNomenclaturalReference()).getType().equals(eu.etaxonomy.cdm.model.reference.ReferenceType.Book));\r
assertEquals( "Abies alba Mill., Sp. Pl. 4: 455. 1987", namefullWhiteSpcaceAndDot.getFullTitleCache());\r
\r
//Book\r
String fullReference = "Abies alba Mill., Sp. Pl. 4: 455. 1987";\r
NonViralName<?> name1 = parser.parseReferencedName(fullReference, null, rankSpecies);\r
assertFullRefStandard(name1);\r
- assertTrue(((Reference)name1.getNomenclaturalReference()).getType().equals(eu.etaxonomy.cdm.model.reference.ReferenceType.Book));\r
+ assertTrue(((Reference<?>)name1.getNomenclaturalReference()).getType().equals(eu.etaxonomy.cdm.model.reference.ReferenceType.Book));\r
assertEquals(fullReference, name1.getFullTitleCache());\r
- assertTrue("Name author and reference author should be the same", name1.getCombinationAuthorTeam() == ((Reference)name1.getNomenclaturalReference()).getAuthorTeam());\r
+ assertTrue("Name author and reference author should be the same", name1.getCombinationAuthorTeam() == ((Reference<?>)name1.getNomenclaturalReference()).getAuthorTeam());\r
\r
//Book Section\r
fullReference = "Abies alba Mill. in Otto, Sp. Pl. 4(6): 455. 1987";\r
assertEquals(fullReference, name2.getFullTitleCache());\r
assertFalse(name2.hasProblem());\r
INomenclaturalReference ref = name2.getNomenclaturalReference();\r
- assertEquals(eu.etaxonomy.cdm.model.reference.ReferenceType.BookSection, ((Reference)ref).getType());\r
+ assertEquals(eu.etaxonomy.cdm.model.reference.ReferenceType.BookSection, ((Reference<?>)ref).getType());\r
IBookSection bookSection = (IBookSection) ref;\r
IBook inBook = bookSection.getInBook();\r
assertNotNull(inBook);\r
assertEquals("Otto, Sp. Pl. 4(6)", inBook.getTitleCache());\r
assertEquals("Sp. Pl.", inBook.getTitle());\r
assertEquals("4(6)", inBook.getVolume());\r
- assertTrue("Name author and reference author should be the same", name2.getCombinationAuthorTeam() == ((Reference)name2.getNomenclaturalReference()).getAuthorTeam());\r
+ assertTrue("Name author and reference author should be the same", name2.getCombinationAuthorTeam() == ((Reference<?>)name2.getNomenclaturalReference()).getAuthorTeam());\r
\r
//Article\r
fullReference = "Abies alba Mill. in Sp. Pl. 4(6): 455. 1987";\r
IJournal journal = ((IArticle)ref).getInJournal();\r
assertNotNull(journal);\r
//assertEquals("Sp. Pl. 4(6)", inBook.getTitleCache());\r
- assertEquals("Sp. Pl.",((Reference) journal).getTitleCache());\r
+ assertEquals("Sp. Pl.",((Reference<?>) journal).getTitleCache());\r
assertEquals("Sp. Pl.", journal.getTitle());\r
assertEquals("4(6)",((IArticle)ref).getVolume());\r
assertTrue("Name author and reference author should be the same", name3.getCombinationAuthorTeam() == name3.getNomenclaturalReference().getAuthorTeam());\r
assertEquals(parsedYear, ref.getYear());\r
journal = ((IArticle)ref).getInJournal();\r
assertNotNull(journal);\r
- assertEquals(journalTitle, ((Reference) journal).getTitleCache());\r
+ assertEquals(journalTitle, ((Reference<?>) journal).getTitleCache());\r
assertEquals(journalTitle, journal.getTitle());\r
assertEquals("4(6)", ((IArticle)ref).getVolume());\r
\r
\r
testParsable = "Cichorium intybus subsp. glaucum (Hoffmanns. & Link) Tzvelev in Komarov, Fl. SSSR 29: 17. 1964";\r
assertTrue("Reference containing a word in uppercase is not parsable", isParsable(testParsable, ICBN));\r
+\r
+ \r
}\r
\r
\r
+ /**\r
+ * Test author with name parts van, von, de, de la, d', da, del.\r
+ * See also http://dev.e-taxonomy.eu/trac/ticket/3373\r
+ */\r
+ @Test\r
+ public final void testComposedAuthorNames(){\r
+ \r
+ //van author (see https://dev.e-taxonomy.eu/trac/ticket/3373)\r
+ String testParsable = "Aphelocoma unicolor subsp. griscomi van Rossem, 1928"; \r
+ assertTrue("Author with 'van' should be parsable", isParsable(testParsable, ICZN));\r
+\r
+ //von author (see https://dev.e-taxonomy.eu/trac/ticket/3373)\r
+ testParsable = "Aphelocoma unicolor subsp. griscomi von Rossem, 1928"; \r
+ assertTrue("Author with 'von' should be parsable", isParsable(testParsable, ICZN));\r
+\r
+ //de author (see https://dev.e-taxonomy.eu/trac/ticket/3373)\r
+ testParsable = "Aphelocoma unicolor subsp. griscomi de Rossem, 1928"; \r
+ assertTrue("Author with 'de' should be parsable", isParsable(testParsable, ICZN));\r
+\r
+ //de la author (see https://dev.e-taxonomy.eu/trac/ticket/3373)\r
+ testParsable = "Aphelocoma unicolor subsp. griscomi de la Rossem, 1928"; \r
+ assertTrue("Author with 'de la' should be parsable", isParsable(testParsable, ICZN));\r
+\r
+ //d' author (see https://dev.e-taxonomy.eu/trac/ticket/3373)\r
+ testParsable = "Aphelocoma unicolor subsp. griscomi d'Rossem, 1928"; \r
+ assertTrue("Author with \"'d'\" should be parsable", isParsable(testParsable, ICZN));\r
+\r
+ //da author (see https://dev.e-taxonomy.eu/trac/ticket/3373)\r
+ testParsable = "Aphelocoma unicolor subsp. griscomi da Rossem, 1928"; \r
+ assertTrue("Author with 'da' should be parsable", isParsable(testParsable, ICZN));\r
+\r
+ //del author (see https://dev.e-taxonomy.eu/trac/ticket/3373)\r
+ testParsable = "Aphelocoma unicolor subsp. griscomi del Rossem, 1928"; \r
+ assertTrue("Author with 'del' should be parsable", isParsable(testParsable, ICZN));\r
+\r
+ } \r
\r
\r
\r
assertNotNull(name.getNomenclaturalReference());\r
INomenclaturalReference ref = (INomenclaturalReference)name.getNomenclaturalReference();\r
assertEquals("1987", ref.getYear());\r
- Reference refBase = (Reference)ref;\r
- assertEquals("Sp. Pl.", refBase.getTitle());\r
+ assertEquals("Sp. Pl.", ref.getTitle());\r
}\r
\r
\r
Assert.assertEquals("If this line reached everything should be ok", "Scorzonera", nvn.getGenusOrUninomial());\r
\r
String unparsable = "Taraxacum nevskii L., Trudy Bot. Inst. Nauk S.S.S.R., Ser. 1, Fl. Sist. Vyssh. Rast. 4: 293. 1937.";\r
- String unparsableA = "Taraxacum nevskii L. in Trudy Bot. Inst. Nauk: 293. 1937.";\r
+// String unparsableA = "Taraxacum nevskii L. in Trudy Bot. Inst. Nauk: 293. 1937.";\r
nvn = this.parser.parseReferencedName(unparsable, ICBN, null);\r
Assert.assertEquals("Titlecache", "Taraxacum nevskii L.", nvn.getTitleCache());\r
Assert.assertEquals("If this line reached everything should be ok", "Taraxacum", nvn.getGenusOrUninomial());\r
Assert.assertEquals("Name should no warnings or errors", 0, parsingProblem);\r
\r
String unparsable2 = "Hieracium pxxx Dahlst., Kongl. Svenska Vetensk. Acad. Handl. ser. 2, 26(3): 255. 1894";\r
- String unparsable2A = "Hieracium pxxx Dahlst., Kongl Svenska Vetensk Acad Handl, 26: 255. 1894.";\r
+// String unparsable2A = "Hieracium pxxx Dahlst., Kongl Svenska Vetensk Acad Handl, 26: 255. 1894.";\r
nvn = this.parser.parseReferencedName(unparsable2, ICBN, null);\r
Assert.assertEquals("Titlecache", "Hieracium pxxx Dahlst.", nvn.getTitleCache());\r
Assert.assertEquals("If this line reached everything should be ok", "Hieracium", nvn.getGenusOrUninomial());\r