예제 #1
0
 def test_superscript_digits(self):
     """Tests that 'numr' features maps digits to Unicode superscripts."""
     ascii_digits = '0123456789'
     superscript_digits = u'⁰¹²³⁴⁵⁶⁷⁸⁹'
     for font_file in self.font_files:
         numr_glyphs = layout.get_advances(ascii_digits, font_file,
                                           '--features=numr')
         superscript_glyphs = layout.get_advances(superscript_digits,
                                                  font_file)
         self.assertEqual(superscript_glyphs, numr_glyphs)
예제 #2
0
 def test_superscript_digits(self):
     """Tests that 'numr' features maps digits to Unicode superscripts."""
     ascii_digits = '0123456789'
     superscript_digits = u'⁰¹²³⁴⁵⁶⁷⁸⁹'
     for font_file in self.font_files:
         numr_glyphs = layout.get_advances(
             ascii_digits, font_file, '--features=numr')
         superscript_glyphs = layout.get_advances(
             superscript_digits, font_file)
         self.assertEqual(superscript_glyphs, numr_glyphs)
예제 #3
0
def com_roboto_fonts_check_numr_mapped_to_supr(ttFont):
    """Check that 'numr' features maps digits to Unicode superscripts."""
    ascii_digits = '0123456789'
    superscript_digits = u'⁰¹²³⁴⁵⁶⁷⁸⁹'

    numr_glyphs = layout.get_advances(
        ascii_digits, ttFont.reader.file.name, '--features=numr')
    superscript_glyphs = layout.get_advances(
        superscript_digits, ttFont.reader.file.name)
    if superscript_glyphs == numr_glyphs:
        yield PASS, "'numr' feature mapped to unicode superscript glyphs"
    else:
        yield FAIL, "'numr' feature is not mapped to unicode superscript glyphs"
예제 #4
0
 def test_individual_spacing_marks(self):
     """Tests that spacing marks are spacing by themselves."""
     for font in self.font_files:
         print('Testing %s for stand-alone spacing marks...' % font)
         for mark in self.marks_to_test:
             mark = unichr(mark)
             advances = layout.get_advances(mark, font)
             assert len(advances) == 1
             self.assertNotEqual(advances[0], 0)
예제 #5
0
 def test_individual_spacing_marks(self):
     """Tests that spacing marks are spacing by themselves."""
     for font in self.font_files:
         print 'Testing %s for stand-alone spacing marks...' % font
         for mark in self.marks_to_test:
             mark = unichr(mark)
             advances = layout.get_advances(mark, font)
             assert len(advances) == 1
             self.assertNotEqual(advances[0], 0)
예제 #6
0
 def test_spacing_marks_in_combination(self):
     """Tests that spacing marks do not combine with base letters."""
     for font in self.font_files:
         print 'Testing %s for spacing marks in combination...' % font
         for base_letter in (u'A\u00C6BCDEFGHIJKLMNO\u00D8\u01A0PRST'
                             u'U\u01AFVWXYZ'
                             u'a\u00E6bcdefghi\u0131j\u0237klmn'
                             u'o\u00F8\u01A1prs\u017Ftu\u01B0vwxyz'
                             u'\u03D2'):
             print 'Testing %s combinations' % base_letter
             for mark in self.marks_to_test:
                 if mark == 0x02DE:
                     # Skip rhotic hook, as it's perhaps OK for it to form
                     # ligatures
                     continue
                 mark = unichr(mark)
                 advances = layout.get_advances(base_letter + mark, font)
                 self.assertEqual(len(advances), 2,
                     'The sequence <%04X, %04X> combines, '
                     'but it should not' % (ord(base_letter), ord(mark)))
예제 #7
0
 def test_spacing_marks_in_combination(self):
     """Tests that spacing marks do not combine with base letters."""
     for font in self.font_files:
         print 'Testing %s for spacing marks in combination...' % font
         for base_letter in (u'A\u00C6BCDEFGHIJKLMNO\u00D8\u01A0PRST'
                             u'U\u01AFVWXYZ'
                             u'a\u00E6bcdefghi\u0131j\u0237klmn'
                             u'o\u00F8\u01A1prs\u017Ftu\u01B0vwxyz'
                             u'\u03D2'):
             print 'Testing %s combinations' % base_letter
             for mark in self.marks_to_test:
                 if mark == 0x02DE:
                     # Skip rhotic hook, as it's perhaps OK for it to form
                     # ligatures
                     continue
                 mark = unichr(mark)
                 advances = layout.get_advances(base_letter + mark, font)
                 self.assertEqual(len(advances), 2,
                     'The sequence <%04X, %04X> combines, '
                     'but it should not' % (ord(base_letter), ord(mark)))
예제 #8
0
 def test_lack_of_ff_ligature(self):
     """Tests that the ff ligature is not formed by default."""
     for fontfile in self.fontfiles:
         advances = layout.get_advances('ff', fontfile)
         self.assertEqual(len(advances), 2)
예제 #9
0
 def test_lack_of_ff_ligature(self):
     """Tests that the ff ligature is not formed by default."""
     for fontfile in self.fontfiles:
         advances = layout.get_advances('ff', fontfile)
         self.assertEqual(len(advances), 2)