def test_st_ligatures(self): """Tests that st ligatures are formed by dlig.""" for fontfile in self.fontfiles: for combination in [u'st', u'ſt']: normal = layout.get_glyphs(combination, fontfile) ligated = layout.get_glyphs( combination, fontfile, '--features=dlig') self.assertTrue(len(normal) == 2 and len(ligated) == 1)
def test_st_ligatures(self): """Tests that st ligatures are formed by dlig.""" for fontfile in self.fontfiles: for combination in [u'st', u'ſt']: normal = layout.get_glyphs(combination, fontfile) ligated = layout.get_glyphs(combination, fontfile, '--features=dlig') self.assertTrue(len(normal) == 2 and len(ligated) == 1)
def test_smcp_coverage(self): """Tests that smcp is supported for our required set.""" with open('res/smcp_requirements.txt') as smcp_reqs_file: smcp_reqs_list = [] for line in smcp_reqs_file.readlines(): line = line[:line.index(' #')] smcp_reqs_list.append(unichr(int(line, 16))) for fontfile in self.fontfiles: chars_with_no_smcp = [] for char in smcp_reqs_list: normal = layout.get_glyphs(char, fontfile) smcp = layout.get_glyphs(char, fontfile, '--features=smcp') if normal == smcp: chars_with_no_smcp.append(char) self.assertEqual(chars_with_no_smcp, [], ("smcp feature is not applied to '%s'" % u''.join(chars_with_no_smcp).encode('UTF-8')))
def test_smcp_coverage(self): """Tests that smcp is supported for our required set.""" with open('res/smcp_requirements.txt') as smcp_reqs_file: smcp_reqs_list = [] for line in smcp_reqs_file.readlines(): line = line[:line.index(' #')] smcp_reqs_list.append(unichr(int(line, 16))) for fontfile in self.fontfiles: chars_with_no_smcp = [] for char in smcp_reqs_list: normal = layout.get_glyphs(char, fontfile) smcp = layout.get_glyphs(char, fontfile, '--features=smcp') if normal == smcp: chars_with_no_smcp.append(char) self.assertEqual( chars_with_no_smcp, [], ("smcp feature is not applied to '%s'" % u''.join(chars_with_no_smcp).encode('UTF-8')))
def test_combinations(self): """Tests that soft-dotted characters lose their dots when combined.""" for font in self.font_files: print 'Testing %s for soft-dotted combinations...' % font # TODO: replace the following list with actual derivation based on # Unicode's soft-dotted property for base_letter in (u'ij\u012F\u0249\u0268\u029D\u02B2\u03F3\u0456' u'\u0458\u1D62\u1D96\u1DA4\u1DA8\u1E2D\u1ECB' u'\u2071\u2C7C'): print 'Testing %s combinations' % base_letter.encode('UTF-8') for mark in self.marks_to_test: mark = unichr(mark) letter_only = layout.get_glyphs(base_letter, font) combination = layout.get_glyphs(base_letter + mark, font) self.assertNotEqual(combination[0], letter_only[0], "The sequence <%04X, %04X> doesn't lose its dot, " "but it should" % (ord(base_letter), ord(mark)))
def test_combinations(self): """Tests that soft-dotted characters lose their dots when combined.""" for font in self.font_files: print 'Testing %s for soft-dotted combinations...' % font # TODO: replace the following list with actual derivation based on # Unicode's soft-dotted property for base_letter in (u'ij\u012F\u0249\u0268\u029D\u02B2\u03F3\u0456' u'\u0458\u1D62\u1D96\u1DA4\u1DA8\u1E2D\u1ECB' u'\u2071\u2C7C'): print 'Testing %s combinations' % base_letter.encode('UTF-8') for mark in self.marks_to_test: mark = unichr(mark) letter_only = layout.get_glyphs(base_letter, font) combination = layout.get_glyphs(base_letter + mark, font) self.assertNotEqual( combination[0], letter_only[0], "The sequence <%04X, %04X> doesn't lose its dot, " "but it should" % (ord(base_letter), ord(mark)))