def test_basic_functionality(self): """ build_unicode_decompositions should run without crashing. """ res = glyph_combining.build_unicode_decompositions() # It should return a dict. self.failUnlessEqual(type(res), dict) # It should return a non-empty dict. self.failIfEqual(res, {}) # It should have a decompositions for simple accented letters. self.failUnless(u"\N{LATIN CAPITAL LETTER A WITH GRAVE}" in res) # It should not have decompositions for complicated things like # superscripts. self.failIf(u"\N{SUPERSCRIPT TWO}" in res) # Decompositions should be iterables of (unicode char, int) tuples. for decomposable in res: for char, combining_class in res[decomposable]: self.failUnlessEqual(type(char), unicode) self.failUnlessEqual(len(char), 1) self.failUnlessEqual(type(combining_class), int)
def test_base_dotless_i_and_j(self): """ Accented "i" should be based on a dotless i. """ res = glyph_combining.build_unicode_decompositions() # If there's an accent above the 'i', the base glyph should be # a dotless 'i'. components = res[u"\N{LATIN SMALL LETTER I WITH DIAERESIS}"] self.failUnlessEqual(components[0], (u"\N{LATIN SMALL LETTER DOTLESS I}",0)) # If the accent is elsewhere, the base glyph should be a dotted 'i'. components = res[u"\N{LATIN SMALL LETTER I WITH OGONEK}"] self.failUnlessEqual(components[0], (u"i",0)) # Likewise, a 'j' with an accent above should be based on dotless 'j' components = res[u"\N{LATIN SMALL LETTER J WITH CIRCUMFLEX}"] self.failUnlessEqual(components[0], (u"\N{LATIN SMALL LETTER DOTLESS J}",0))