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'