def test_irregular(self): assert singularize('children', 'child')
def test_inflection(self): assert singularize('oxen') == 'ox' assert singularize('larvae') == 'larva' assert singularize('analyses') == 'analysis' assert singularize('wolves') == 'wolf'
def test_uncountable(self): assert singularize('advice') == 'advice'
def test_ie(self): assert singularize('alergies') == 'alergie' assert singularize('cookies') == 'cookie'
def test_uninflected(self): assert singularize('bison') == 'bison'
def test_compound(self): assert singularize('mothers-in-law') == 'mother-in-law' assert singularize('hour-clocks') == 'hour-clock'
def test_trailing_apostrophe(self): assert singularize("dogs'") == "dog's"
def test_basic(self): assert singularize('birds') == 'bird' assert singularize('women') == 'woman'
def test_custom(self): assert singularize('foobar', custom={'foobar': 'foo'}) == 'foo'