Project

General

Profile

« Previous | Next » 

Revision dfabd5b6

Added by Andreas Müller almost 8 years ago

#5909 further improve referenced name parser

View differences:

cdmlib-model/src/test/java/eu/etaxonomy/cdm/strategy/parser/NonViralNameParserImplTest.java
1750 1750
        assertEquals("19(4)", nomRef.getVolume());
1751 1751
        assertEquals("901" + UTF8.EN_DASH + "911, f. 1" + UTF8.EN_DASH + "2", name.getNomenclaturalMicroReference());
1752 1752

  
1753
        //detail with figs
1754
        name = parser.parseReferencedName("Randia sonorensis Wiggins"
1755
                + " in Contr. Dudley Herb. 3: 75, figs 4-6. 1940");
1756
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1757
        combinationAuthor = name.getCombinationAuthorship();
1758
        assertEquals( "Wiggins", combinationAuthor.getNomenclaturalTitle());
1759
        nomRef = (Reference)name.getNomenclaturalReference();
1760
        assertEquals(ReferenceType.Article, nomRef.getType());
1761
        assertEquals("3", nomRef.getVolume());
1762
        assertEquals("75, figs 4-6", name.getNomenclaturalMicroReference());
1763

  
1764
        //detail with pl. and figs
1765
        name = parser.parseReferencedName("Randia sonorensis Wiggins"
1766
                + " in Contr. Dudley Herb. 3: 75, pl. 19, figs 4-6. 1940");
1767
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1768
        combinationAuthor = name.getCombinationAuthorship();
1769
        assertEquals( "Wiggins", combinationAuthor.getNomenclaturalTitle());
1770
        nomRef = (Reference)name.getNomenclaturalReference();
1771
        assertEquals(ReferenceType.Article, nomRef.getType());
1772
        assertEquals("3", nomRef.getVolume());
1773
        assertEquals("75, pl. 19, figs 4-6", name.getNomenclaturalMicroReference());
1774

  
1775

  
1753 1776
        //pl
1754 1777
        name = parser.parseReferencedName("Carapichea  Aubl."
1755 1778
                + " in Hist. Pl. Guiane 1: 167, pl. 64. 1775");
......
1772 1795
        assertEquals("4", nomRef.getVolume());
1773 1796
        assertEquals("121. fig. 2a, b", name.getNomenclaturalMicroReference());
1774 1797

  
1798
        //detail with , to number
1799
        name = parser.parseReferencedName("Deppea martinez-calderonii Lorence"
1800
                + " in Allertonia 4: 399. figs 1e, 2. 1988");
1801
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1802
        combinationAuthor = name.getCombinationAuthorship();
1803
        assertEquals( "Lorence", combinationAuthor.getNomenclaturalTitle());
1804
        nomRef = (Reference)name.getNomenclaturalReference();
1805
        assertEquals(ReferenceType.Article, nomRef.getType());
1806
        assertEquals("4", nomRef.getVolume());
1807
        assertEquals("399. figs 1e, 2", name.getNomenclaturalMicroReference());
1808

  
1775 1809
        //(Suppl.)
1776 1810
        name = parser.parseReferencedName("Manettia costaricensis  Wernham"
1777 1811
                + " in J. Bot. 57(Suppl.): 38. 1919");
......
1805 1839
        assertEquals("3", nomRef.getVolume());
1806 1840
        assertEquals("219", name.getNomenclaturalMicroReference());
1807 1841

  
1808
        //
1809
        //(Hannover) place published
1842
        // place published e.g. (Hannover)
1810 1843
        name = parser.parseReferencedName("Pittoniotis trichantha Griseb."
1811 1844
                  + " in Bonplandia (Hannover) 6 (1): 8. 1858");
1812 1845
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
......
1816 1849
        assertEquals(ReferenceType.Article, nomRef.getType());
1817 1850
        assertEquals("6 (1)", nomRef.getVolume());
1818 1851
        assertEquals("8", name.getNomenclaturalMicroReference());
1852

  
1853
        //komplex / incorrect year without quotation marks
1854
        name = parser.parseReferencedName("Javorkaea Borhidi & Jarai-Koml."
1855
                + " in Acta Bot. Hung. 29(1\u20134): 16, f. 1\u20132, t. 1-8. 1983 [1984]");
1856
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1857
        combinationAuthor = name.getCombinationAuthorship();
1858
        assertEquals( "Borhidi & Jarai-Koml.", combinationAuthor.getNomenclaturalTitle());
1859
        nomRef = (Reference)name.getNomenclaturalReference();
1860
        assertEquals(ReferenceType.Article, nomRef.getType());
1861
        assertEquals("29(1\u20134)", nomRef.getVolume());
1862
        assertEquals("16, f. 1\u20132, t. 1-8", name.getNomenclaturalMicroReference());
1863
        assertEquals("1983 [1984]", nomRef.getDatePublishedString());
1864
        assertEquals("1984", nomRef.getYear());
1865

  
1866
        //incorrect year with \u201e \u201f  (s. eu.etaxonomy.cdm.common.UTF8.ENGLISH_QUOT_START
1867
        name = parser.parseReferencedName("Javorkaea Borhidi & Jarai-Koml."
1868
                + " in Acta Bot. Hung. 29(1-4): 16, f. 1-2. \u201e1983\u201f [1984]");
1869
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1870
        combinationAuthor = name.getCombinationAuthorship();
1871
        assertEquals( "Borhidi & Jarai-Koml.", combinationAuthor.getNomenclaturalTitle());
1872
        nomRef = (Reference)name.getNomenclaturalReference();
1873
        assertEquals(ReferenceType.Article, nomRef.getType());
1874
        assertEquals("29(1-4)", nomRef.getVolume());
1875
        assertEquals("16, f. 1-2", name.getNomenclaturalMicroReference());
1876
        assertEquals("\u201e1983\u201f [1984]", nomRef.getDatePublishedString());
1877
        assertEquals("1984", nomRef.getYear());
1878

  
1879
        //incorrect year with "
1880
        name = parser.parseReferencedName("Javorkaea Borhidi & Jarai-Koml."
1881
                + " in Acta Bot. Hung. 29(1-4): 16, f. 1-2. \"1983\" [1984]");
1882
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1883
        combinationAuthor = name.getCombinationAuthorship();
1884
        assertEquals( "Borhidi & Jarai-Koml.", combinationAuthor.getNomenclaturalTitle());
1885
        nomRef = (Reference)name.getNomenclaturalReference();
1886
        assertEquals(ReferenceType.Article, nomRef.getType());
1887
        assertEquals("29(1-4)", nomRef.getVolume());
1888
        assertEquals("16, f. 1-2", name.getNomenclaturalMicroReference());
1889
        assertEquals("\"1983\" [1984]", nomRef.getDatePublishedString());
1890
        assertEquals("1984", nomRef.getYear());
1891

  
1892
        //fig. a
1893
        name = parser.parseReferencedName("Psychotria capitata  Ruiz & Pav."
1894
                + " in Fl. Peruv. 2: 59, pl. 206, fig. a. 1799");
1895
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1896
        combinationAuthor = name.getCombinationAuthorship();
1897
        assertEquals( "Ruiz & Pav.", combinationAuthor.getNomenclaturalTitle());
1898
        nomRef = (Reference)name.getNomenclaturalReference();
1899
        assertEquals(ReferenceType.Article, nomRef.getType());
1900
        assertEquals("2", nomRef.getVolume());
1901
        assertEquals("59, pl. 206, fig. a", name.getNomenclaturalMicroReference());
1902

  
1903
        //442A.
1904
        name = parser.parseReferencedName("Rogiera elegans Planch."
1905
                + " in Fl. Serres Jard. Eur. 5: 442A. 1849");
1906
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1907
        combinationAuthor = name.getCombinationAuthorship();
1908
        assertEquals( "Planch.", combinationAuthor.getNomenclaturalTitle());
1909
        nomRef = (Reference)name.getNomenclaturalReference();
1910
        assertEquals(ReferenceType.Article, nomRef.getType());
1911
        assertEquals("5", nomRef.getVolume());
1912
        assertEquals("442A", name.getNomenclaturalMicroReference());
1913

  
1914
        //f
1915
        name = parser.parseReferencedName("Coussarea imitans L.O. Williams"
1916
                + " in Phytologia 26 (6): 488–489, f. 1973");
1917
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1918
        combinationAuthor = name.getCombinationAuthorship();
1919
        assertEquals( "L.O. Williams", combinationAuthor.getNomenclaturalTitle());
1920
        nomRef = (Reference)name.getNomenclaturalReference();
1921
        assertEquals(ReferenceType.Article, nomRef.getType());
1922
        assertEquals("26 (6)", nomRef.getVolume());
1923
        assertEquals("488–489, f", name.getNomenclaturalMicroReference());
1924

  
1925
        //Phys.-Med.
1926
        name = parser.parseReferencedName("Coccocypselum cordifolium Nees & Mart."
1927
                + " in Nova Acta Phys.-Med. Acad. Caes.\u2013Leop. Nat. Cur. 12: 14. 1824");
1928
        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1929
        combinationAuthor = name.getCombinationAuthorship();
1930
        assertEquals( "Nees & Mart.", combinationAuthor.getNomenclaturalTitle());
1931
        nomRef = (Reference)name.getNomenclaturalReference();
1932
        assertEquals(ReferenceType.Article, nomRef.getType());
1933
        assertEquals("Nova Acta Phys.-Med. Acad. Caes.\u2013Leop. Nat. Cur.", nomRef.getInReference().getTitle());
1934
        assertEquals("12", nomRef.getVolume());
1935
        assertEquals("14", name.getNomenclaturalMicroReference());
1936
        assertEquals("1824", nomRef.getYear());
1937

  
1938
        //(ed. 10)  wanted?
1939
//        Syst. Nat. (ed. 10) 2: 930. 1759
1940
//        name = parser.parseReferencedName("Erithalis fruticosa L."
1941
//                + ", Syst. Nat. ed. 10, 2: 930. 1759");
1942
//        Assert.assertFalse("Name should be parsable", name.isProtectedTitleCache());
1943
//        combinationAuthor = name.getCombinationAuthorship();
1944
//        assertEquals( "L.", combinationAuthor.getNomenclaturalTitle());
1945
//        nomRef = (Reference)name.getNomenclaturalReference();
1946
//        assertEquals(ReferenceType.Book, nomRef.getType());
1947
//        assertEquals("2", nomRef.getVolume());
1948
//        assertEquals("10", nomRef.getEdition());
1949
//        assertEquals("930", name.getNomenclaturalMicroReference());
1950
//        assertEquals("1759", nomRef.getYear());
1951

  
1819 1952
 }
1820 1953

  
1821 1954
}

Also available in: Unified diff