Revision 17e7adf7
Added by Andreas Müller almost 16 years ago
cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/NonViralNameParserImplTest.java | ||
---|---|---|
263 | 263 |
} |
264 | 264 |
|
265 | 265 |
/** |
266 |
* Test method for {@link eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl#parseFullReference(NonViralName, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, boolean)(, )}.
|
|
266 |
* Test method for {@link eu.etaxonomy.cdm.strategy.parser.NonViralNameParserImpl#parseReferencedName(NonViralName, java.lang.String, eu.etaxonomy.cdm.model.name.Rank, boolean)(, )}.
|
|
267 | 267 |
*/ |
268 | 268 |
@Test |
269 |
public final void testParseFullReference() {
|
|
269 |
public final void testParseReferencedName() {
|
|
270 | 270 |
try { |
271 |
Method parseMethod = parser.getClass().getDeclaredMethod("parseFullReference", String.class, NomenclaturalCode.class, Rank.class);
|
|
271 |
Method parseMethod = parser.getClass().getDeclaredMethod("parseReferencedName", String.class, NomenclaturalCode.class, Rank.class);
|
|
272 | 272 |
testName_StringNomcodeRank(parseMethod); |
273 | 273 |
} catch (Exception e) { |
274 | 274 |
e.printStackTrace(); |
... | ... | |
279 | 279 |
|
280 | 280 |
//Book |
281 | 281 |
String fullReference = "Abies alba Mill., Sp. Pl. 4: 455. 1987."; |
282 |
NonViralName<?> name1 = parser.parseFullReference(fullReference, null, Rank.SPECIES());
|
|
282 |
NonViralName<?> name1 = parser.parseReferencedName(fullReference, null, Rank.SPECIES());
|
|
283 | 283 |
assertFullRefStandard(name1); |
284 | 284 |
assertTrue(name1.getNomenclaturalReference() instanceof Book); |
285 | 285 |
|
286 | 286 |
//Book Section |
287 | 287 |
fullReference = "Abies alba Mill. in Otto, Sp. Pl. 4(6): 455. 1987"; |
288 |
NonViralName<?> name2 = parser.parseFullReference(fullReference + ".", null, Rank.SPECIES());
|
|
288 |
NonViralName<?> name2 = parser.parseReferencedName(fullReference + ".", null, Rank.SPECIES());
|
|
289 | 289 |
assertFullRefNameStandard(name2); |
290 | 290 |
//assertEquals(fullReference, name2.getFullTitleCache()); |
291 | 291 |
assertFalse(name2.hasProblem()); |
... | ... | |
302 | 302 |
|
303 | 303 |
//Article |
304 | 304 |
fullReference = "Abies alba Mill. in Sp. Pl. 4(6): 455. 1987"; |
305 |
NonViralName<?> name3 = parser.parseFullReference(fullReference, null, Rank.SPECIES());
|
|
305 |
NonViralName<?> name3 = parser.parseReferencedName(fullReference, null, Rank.SPECIES());
|
|
306 | 306 |
assertFullRefNameStandard(name3); |
307 | 307 |
assertEquals(fullReference, name3.getFullTitleCache()); |
308 | 308 |
assertFalse(name3.hasProblem()); |
... | ... | |
323 | 323 |
String fullReferenceWithoutYear = "Abies alba Mill. in " + journalTitle + " 4(6): 455."; |
324 | 324 |
fullReference = fullReferenceWithoutYear + yearPart; |
325 | 325 |
String fullReferenceWithEnd = fullReference + "."; |
326 |
NonViralName<?> name4 = parser.parseFullReference(fullReferenceWithEnd, null, Rank.SPECIES());
|
|
326 |
NonViralName<?> name4 = parser.parseReferencedName(fullReferenceWithEnd, null, Rank.SPECIES());
|
|
327 | 327 |
assertFalse(name4.hasProblem()); |
328 | 328 |
assertFullRefNameStandard(name4); |
329 | 329 |
assertEquals(fullReferenceWithoutYear + " " + parsedYear, name4.getFullTitleCache()); |
... | ... | |
339 | 339 |
|
340 | 340 |
//Zoo name |
341 | 341 |
String strNotParsableZoo = "Abies alba M., 1923, Sp. P. xxwer4352, nom. inval."; |
342 |
ZoologicalName nameZooRefNotParsabel = (ZoologicalName)parser.parseFullReference(strNotParsableZoo, null, null);
|
|
342 |
ZoologicalName nameZooRefNotParsabel = (ZoologicalName)parser.parseReferencedName(strNotParsableZoo, null, null);
|
|
343 | 343 |
assertTrue(nameZooRefNotParsabel.hasProblem()); |
344 | 344 |
assertEquals(21, nameZooRefNotParsabel.getProblemStarts()); |
345 | 345 |
assertEquals(37, nameZooRefNotParsabel.getProblemEnds()); |
... | ... | |
350 | 350 |
|
351 | 351 |
//Special MicroRefs |
352 | 352 |
String strSpecDetail1 = "Abies alba Mill. in Sp. Pl. 4(6): [455]. 1987"; |
353 |
NonViralName<?> nameSpecDet1 = parser.parseFullReference(strSpecDetail1 + ".", null, Rank.SPECIES());
|
|
353 |
NonViralName<?> nameSpecDet1 = parser.parseReferencedName(strSpecDetail1 + ".", null, Rank.SPECIES());
|
|
354 | 354 |
assertFalse(nameSpecDet1.hasProblem()); |
355 | 355 |
assertEquals(strSpecDetail1, nameSpecDet1.getFullTitleCache()); |
356 | 356 |
assertEquals("[455]", nameSpecDet1.getNomenclaturalMicroReference()); |
357 | 357 |
|
358 | 358 |
//Special MicroRefs |
359 | 359 |
String strSpecDetail2 = "Abies alba Mill. in Sp. Pl. 4(6): couv. 2. 1987"; |
360 |
NonViralName<?> nameSpecDet2 = parser.parseFullReference(strSpecDetail2 + ".", null, Rank.SPECIES());
|
|
360 |
NonViralName<?> nameSpecDet2 = parser.parseReferencedName(strSpecDetail2 + ".", null, Rank.SPECIES());
|
|
361 | 361 |
assertFalse(nameSpecDet2.hasProblem()); |
362 | 362 |
assertEquals(strSpecDetail2, nameSpecDet2.getFullTitleCache()); |
363 | 363 |
assertEquals("couv. 2", nameSpecDet2.getNomenclaturalMicroReference()); |
364 | 364 |
|
365 | 365 |
//Special MicroRefs |
366 | 366 |
String strSpecDetail3 = "Abies alba Mill. in Sp. Pl. 4(6): fig. 455. 1987"; |
367 |
NonViralName<?> nameSpecDet3 = parser.parseFullReference(strSpecDetail3 + ".", null, Rank.SPECIES());
|
|
367 |
NonViralName<?> nameSpecDet3 = parser.parseReferencedName(strSpecDetail3 + ".", null, Rank.SPECIES());
|
|
368 | 368 |
assertFalse(nameSpecDet3.hasProblem()); |
369 | 369 |
assertEquals(strSpecDetail3, nameSpecDet3.getFullTitleCache()); |
370 | 370 |
assertEquals("fig. 455", nameSpecDet3.getNomenclaturalMicroReference()); |
... | ... | |
372 | 372 |
//Special MicroRefs |
373 | 373 |
String strSpecDetail4 = "Abies alba Mill. in Sp. Pl. 4(6): fig. 455-567. 1987"; |
374 | 374 |
fullReference = strSpecDetail4 + "."; |
375 |
NonViralName<?> nameSpecDet4 = parser.parseFullReference(fullReference, null, Rank.SPECIES());
|
|
375 |
NonViralName<?> nameSpecDet4 = parser.parseReferencedName(fullReference, null, Rank.SPECIES());
|
|
376 | 376 |
assertFalse(nameSpecDet4.hasProblem()); |
377 | 377 |
assertEquals(strSpecDetail4, nameSpecDet4.getFullTitleCache()); |
378 | 378 |
assertEquals("fig. 455-567", nameSpecDet4.getNomenclaturalMicroReference()); |
... | ... | |
381 | 381 |
//Special MicroRefs |
382 | 382 |
String strSpecDetail5 = "Abies alba Mill. in Sp. Pl. 4(6): Gard n? 4. 1987"; |
383 | 383 |
fullReference = strSpecDetail5 + "."; |
384 |
NonViralName<?> nameSpecDet5 = parser.parseFullReference(fullReference, null, Rank.SPECIES());
|
|
384 |
NonViralName<?> nameSpecDet5 = parser.parseReferencedName(fullReference, null, Rank.SPECIES());
|
|
385 | 385 |
assertFalse(nameSpecDet5.hasProblem()); |
386 | 386 |
assertEquals(strSpecDetail5, nameSpecDet5.getFullTitleCache()); |
387 | 387 |
assertEquals("Gard n? 4", nameSpecDet5.getNomenclaturalMicroReference()); |
... | ... | |
389 | 389 |
//Special MicroRefs |
390 | 390 |
String strSpecDetail6 = "Abies alba Mill. in Sp. Pl. 4(6): 455a. 1987"; |
391 | 391 |
fullReference = strSpecDetail6 + "."; |
392 |
NonViralName<?> nameSpecDet6 = parser.parseFullReference(fullReference, null, Rank.SPECIES());
|
|
392 |
NonViralName<?> nameSpecDet6 = parser.parseReferencedName(fullReference, null, Rank.SPECIES());
|
|
393 | 393 |
assertFalse(nameSpecDet6.hasProblem()); |
394 | 394 |
assertEquals(strSpecDetail6, nameSpecDet6.getFullTitleCache()); |
395 | 395 |
assertEquals("455a", nameSpecDet6.getNomenclaturalMicroReference()); |
... | ... | |
397 | 397 |
//Special MicroRefs |
398 | 398 |
String strSpecDetail7 = "Abies alba Mill. in Sp. Pl. 4(6): pp.455-457. 1987"; |
399 | 399 |
fullReference = strSpecDetail7 + "."; |
400 |
NonViralName<?> nameSpecDet7 = parser.parseFullReference(fullReference, null, Rank.SPECIES());
|
|
400 |
NonViralName<?> nameSpecDet7 = parser.parseReferencedName(fullReference, null, Rank.SPECIES());
|
|
401 | 401 |
assertFalse(nameSpecDet7.hasProblem()); |
402 | 402 |
assertEquals(strSpecDetail7, nameSpecDet7.getFullTitleCache()); |
403 | 403 |
assertEquals("pp.455-457", nameSpecDet7.getNomenclaturalMicroReference()); |
404 | 404 |
|
405 | 405 |
//Special MicroRefs |
406 | 406 |
String strSpecDetail8 = "Abies alba Mill. in Sp. Pl. 4(6): ppp.455-457. 1987"; |
407 |
NonViralName<?> nameSpecDet8 = parser.parseFullReference(strSpecDetail8, null, Rank.SPECIES());
|
|
407 |
NonViralName<?> nameSpecDet8 = parser.parseReferencedName(strSpecDetail8, null, Rank.SPECIES());
|
|
408 | 408 |
assertTrue(nameSpecDet8.hasProblem()); |
409 | 409 |
assertEquals(20, nameSpecDet8.getProblemStarts()); //TODO better start behind : |
410 | 410 |
assertEquals(51, nameSpecDet8.getProblemEnds()); //TODO better stop after -457 |
... | ... | |
412 | 412 |
|
413 | 413 |
//Special MicroRefs |
414 | 414 |
String strSpecDetail9 = "Abies alba Mill. in Sp. Pl. 4(6): pp. 455 - 457. 1987"; |
415 |
NonViralName<?> nameSpecDet9 = parser.parseFullReference(strSpecDetail9, null, Rank.SPECIES());
|
|
415 |
NonViralName<?> nameSpecDet9 = parser.parseReferencedName(strSpecDetail9, null, Rank.SPECIES());
|
|
416 | 416 |
assertFalse(nameSpecDet9.hasProblem()); |
417 | 417 |
assertEquals(strSpecDetail9, nameSpecDet9.getFullTitleCache()); |
418 | 418 |
assertEquals("pp. 455 - 457", nameSpecDet9.getNomenclaturalMicroReference()); |
419 | 419 |
|
420 | 420 |
//Special MicroRefs |
421 | 421 |
String strSpecDetail10 = "Abies alba Mill. in Sp. Pl. 4(6): p 455. 1987"; |
422 |
NonViralName<?> nameSpecDet10 = parser.parseFullReference(strSpecDetail10, null, Rank.SPECIES());
|
|
422 |
NonViralName<?> nameSpecDet10 = parser.parseReferencedName(strSpecDetail10, null, Rank.SPECIES());
|
|
423 | 423 |
assertFalse(nameSpecDet10.hasProblem()); |
424 | 424 |
assertEquals(strSpecDetail10, nameSpecDet10.getFullTitleCache()); |
425 | 425 |
assertEquals("p 455", nameSpecDet10.getNomenclaturalMicroReference()); |
426 | 426 |
|
427 | 427 |
//Special MicroRefs |
428 | 428 |
String strSpecDetail11 = "Abies alba Mill. in Sp. Pl. 4(6): p. 455 - 457. 1987"; |
429 |
NonViralName<?> nameSpecDet11 = parser.parseFullReference(strSpecDetail11, null, Rank.SPECIES());
|
|
429 |
NonViralName<?> nameSpecDet11 = parser.parseReferencedName(strSpecDetail11, null, Rank.SPECIES());
|
|
430 | 430 |
assertTrue(nameSpecDet11.hasProblem()); |
431 | 431 |
assertEquals(20, nameSpecDet8.getProblemStarts()); //TODO better start behind : |
432 | 432 |
assertEquals(51, nameSpecDet8.getProblemEnds()); //TODO better stop after - 457 |
... | ... | |
434 | 434 |
|
435 | 435 |
//no volume, no edition |
436 | 436 |
String strNoVolume = "Abies alba Mill., Sp. Pl.: 455. 1987"; |
437 |
NonViralName<?> nameNoVolume = parser.parseFullReference(strNoVolume, null, Rank.SPECIES());
|
|
437 |
NonViralName<?> nameNoVolume = parser.parseReferencedName(strNoVolume, null, Rank.SPECIES());
|
|
438 | 438 |
assertFalse(nameNoVolume.hasProblem()); |
439 | 439 |
assertEquals(strNoVolume, nameNoVolume.getFullTitleCache()); |
440 | 440 |
assertEquals(null, ((Book)nameNoVolume.getNomenclaturalReference()).getVolume()); |
... | ... | |
442 | 442 |
|
443 | 443 |
//volume, no edition |
444 | 444 |
strNoVolume = "Abies alba Mill., Sp. Pl. 2: 455. 1987"; |
445 |
nameNoVolume = parser.parseFullReference(strNoVolume, null, Rank.SPECIES());
|
|
445 |
nameNoVolume = parser.parseReferencedName(strNoVolume, null, Rank.SPECIES());
|
|
446 | 446 |
assertFalse(nameNoVolume.hasProblem()); |
447 | 447 |
assertEquals(strNoVolume, nameNoVolume.getFullTitleCache()); |
448 | 448 |
assertEquals("2", ((Book)nameNoVolume.getNomenclaturalReference()).getVolume()); |
... | ... | |
450 | 450 |
|
451 | 451 |
//no volume, edition |
452 | 452 |
strNoVolume = "Abies alba Mill., Sp. Pl. ed. 3: 455. 1987"; |
453 |
nameNoVolume = parser.parseFullReference(strNoVolume, null, Rank.SPECIES());
|
|
453 |
nameNoVolume = parser.parseReferencedName(strNoVolume, null, Rank.SPECIES());
|
|
454 | 454 |
assertFalse(nameNoVolume.hasProblem()); |
455 | 455 |
assertEquals(strNoVolume, nameNoVolume.getFullTitleCache()); |
456 | 456 |
assertEquals(null, ((Book)nameNoVolume.getNomenclaturalReference()).getVolume()); |
... | ... | |
458 | 458 |
|
459 | 459 |
//volume, edition |
460 | 460 |
strNoVolume = "Abies alba Mill., Sp. Pl. ed. 3, 4(5): 455. 1987"; |
461 |
nameNoVolume = parser.parseFullReference(strNoVolume, null, Rank.SPECIES());
|
|
461 |
nameNoVolume = parser.parseReferencedName(strNoVolume, null, Rank.SPECIES());
|
|
462 | 462 |
assertFalse(nameNoVolume.hasProblem()); |
463 | 463 |
assertEquals(strNoVolume, nameNoVolume.getFullTitleCache()); |
464 | 464 |
assertEquals("4(5)", ((Book)nameNoVolume.getNomenclaturalReference()).getVolume()); |
465 | 465 |
assertEquals("3", ((Book)nameNoVolume.getNomenclaturalReference()).getEdition()); |
466 | 466 |
|
467 | 467 |
String strUnparsableInRef = "Abies alba Mill. in -er46: 455. 1987"; |
468 |
NonViralName<?> nameUnparsableInRef = parser.parseFullReference(strUnparsableInRef, null, Rank.SPECIES());
|
|
468 |
NonViralName<?> nameUnparsableInRef = parser.parseReferencedName(strUnparsableInRef, null, Rank.SPECIES());
|
|
469 | 469 |
assertTrue(nameUnparsableInRef.hasProblem()); |
470 | 470 |
assertEquals(strUnparsableInRef, nameUnparsableInRef.getFullTitleCache()); |
471 | 471 |
assertEquals(20, nameUnparsableInRef.getProblemStarts()); |
... | ... | |
474 | 474 |
|
475 | 475 |
//volume, edition |
476 | 476 |
String strNoSeparator = "Abies alba Mill. Sp. Pl. ed. 3, 4(5): 455. 1987"; |
477 |
NonViralName<?> nameNoSeparator = parser.parseFullReference(strNoSeparator, NomenclaturalCode.ICBN(), Rank.SPECIES());
|
|
477 |
NonViralName<?> nameNoSeparator = parser.parseReferencedName(strNoSeparator, NomenclaturalCode.ICBN(), Rank.SPECIES());
|
|
478 | 478 |
assertTrue(nameNoSeparator.hasProblem()); |
479 | 479 |
assertEquals(strNoSeparator, nameNoSeparator.getFullTitleCache()); |
480 | 480 |
assertEquals(10, nameNoSeparator.getProblemStarts()); //TODO better start behind Mill. (?) |
481 | 481 |
assertEquals(47, nameNoSeparator.getProblemEnds()); //TODO better stop before : |
482 | 482 |
|
483 |
String strUnparsableInRef2 = "Hieracium pepsicum L., My Bookkkk 1. 1903"; |
|
484 |
NonViralName<?> nameUnparsableInRef2 = parser.parseReferencedName(strUnparsableInRef2, null, Rank.SPECIES()); |
|
485 |
assertTrue(nameUnparsableInRef2.hasProblem()); |
|
486 |
assertEquals(strUnparsableInRef2, nameUnparsableInRef2.getFullTitleCache()); |
|
487 |
assertEquals(23, nameUnparsableInRef2.getProblemStarts()); |
|
488 |
assertEquals(41, nameUnparsableInRef2.getProblemEnds()); |
|
489 |
|
|
490 |
|
|
483 | 491 |
|
484 | 492 |
} |
485 | 493 |
|
Also available in: Unified diff