diff options
author | Roozbeh Pournader <roozbeh@google.com> | 2015-01-07 21:30:22 -0800 |
---|---|---|
committer | James Godfrey-Kittle <jamesgk@google.com> | 2015-04-16 12:16:25 -0700 |
commit | 8fc812a720c5a6f1619a786f87ece6bebf2421bb (patch) | |
tree | 809100c24e69832dc35c1006554d7d07e6cbe2e3 /scripts | |
parent | a86c86786a6980296408bf22a625747ba9607c7d (diff) |
Move common and repeated tests to run_general_tests.py.
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/run_android_tests.py | 18 | ||||
-rwxr-xr-x | scripts/run_general_tests.py | 18 | ||||
-rwxr-xr-x | scripts/run_web_tests.py | 109 |
3 files changed, 20 insertions, 125 deletions
diff --git a/scripts/run_android_tests.py b/scripts/run_android_tests.py index 15a4b36..077ebcb 100755 --- a/scripts/run_android_tests.py +++ b/scripts/run_android_tests.py @@ -67,7 +67,6 @@ class TestCharacterCoverage(unittest.TestCase): def setUp(self): _, self.fonts = load_fonts() - self.LEGACY_PUA = frozenset({0xEE01, 0xEE02, 0xF6C3}) def test_lack_of_arrows_and_combining_keycap(self): """Tests that arrows and combining keycap are not in the fonts.""" @@ -77,22 +76,7 @@ class TestCharacterCoverage(unittest.TestCase): self.assertNotIn(0x2191, charset) # UPWARDS ARROW self.assertNotIn(0x2193, charset) # DOWNWARDS ARROW - def test_inclusion_of_legacy_pua(self): - """Tests that legacy PUA characters remain in the fonts.""" - for font in self.fonts: - charset = coverage.character_set(font) - for char in self.LEGACY_PUA: - self.assertIn(char, charset) - - def test_non_inclusion_of_other_pua(self): - """Tests that there are not other PUA characters except legacy ones.""" - for font in self.fonts: - charset = coverage.character_set(font) - pua_chars = { - char for char in charset - if 0xE000 <= char <= 0xF8FF or 0xF0000 <= char <= 0x10FFFF} - self.assertTrue(pua_chars <= self.LEGACY_PUA) - if __name__ == '__main__': unittest.main() + diff --git a/scripts/run_general_tests.py b/scripts/run_general_tests.py index bd62736..3c40d50 100755 --- a/scripts/run_general_tests.py +++ b/scripts/run_general_tests.py @@ -92,6 +92,23 @@ class TestCharacterCoverage(unittest.TestCase): def setUp(self): _, self.fonts = load_fonts() + self.LEGACY_PUA = frozenset({0xEE01, 0xEE02, 0xF6C3}) + + def test_inclusion_of_legacy_pua(self): + """Tests that legacy PUA characters remain in the fonts.""" + for font in self.fonts: + charset = coverage.character_set(font) + for char in self.LEGACY_PUA: + self.assertIn(char, charset) + + def test_non_inclusion_of_other_pua(self): + """Tests that there are not other PUA characters except legacy ones.""" + for font in self.fonts: + charset = coverage.character_set(font) + pua_chars = { + char for char in charset + if 0xE000 <= char <= 0xF8FF or 0xF0000 <= char <= 0x10FFFF} + self.assertTrue(pua_chars <= self.LEGACY_PUA) def test_lack_of_unassigned_chars(self): """Tests that unassigned characters are not in the fonts.""" @@ -127,3 +144,4 @@ class TestLigatures(unittest.TestCase): if __name__ == '__main__': unittest.main() + diff --git a/scripts/run_web_tests.py b/scripts/run_web_tests.py index de1004d..eb6375e 100755 --- a/scripts/run_web_tests.py +++ b/scripts/run_web_tests.py @@ -53,65 +53,6 @@ class TestCharacterCoverage(unittest.TestCase): def setUp(self): _, self.fonts = load_fonts() - self.LEGACY_PUA = frozenset({0xEE01, 0xEE02, 0xF6C3}) - - def test_inclusion_of_legacy_pua(self): - """Tests that legacy PUA characters remain in the fonts.""" - for font in self.fonts: - charset = coverage.character_set(font) - for char in self.LEGACY_PUA: - self.assertIn(char, charset) - - def test_non_inclusion_of_other_pua(self): - """Tests that there are not other PUA characters except legacy ones.""" - for font in self.fonts: - charset = coverage.character_set(font) - pua_chars = { - char for char in charset - if 0xE000 <= char <= 0xF8FF or 0xF0000 <= char <= 0x10FFFF} - self.assertTrue(pua_chars <= self.LEGACY_PUA) - - def test_lack_of_unassigned_chars(self): - """Tests that unassigned characters are not in the fonts.""" - for font in self.fonts: - charset = coverage.character_set(font) - self.assertNotIn(0x2072, charset) - self.assertNotIn(0x2073, charset) - self.assertNotIn(0x208F, charset) - - -class TestItalicAngle(unittest.TestCase): - """Test the italic angle of fonts.""" - - def setUp(self): - _, self.fonts = load_fonts() - - def test_italic_angle(self): - """Tests the italic angle of fonts to be correct.""" - for font in self.fonts: - post_table = font['post'] - if 'Italic' in font_data.font_name(font): - expected_angle = -12.0 - else: - expected_angle = 0.0 - self.assertEqual(post_table.italicAngle, expected_angle) - - -class TestDigitWidths(unittest.TestCase): - """Tests the width of digits.""" - - def setUp(self): - _, self.fonts = load_fonts() - self.digits = [ - 'zero', 'one', 'two', 'three', 'four', - 'five', 'six', 'seven', 'eight', 'nine'] - - def test_digit_widths(self): - """Tests all decimal digits to make sure they have the same width.""" - for font in self.fonts: - hmtx_table = font['hmtx'] - widths = [hmtx_table[digit][0] for digit in self.digits] - self.assertEqual(len(set(widths)), 1) class TestNames(unittest.TestCase): @@ -175,54 +116,6 @@ class TestHints(unittest.TestCase): self.assertTrue(missing_hints == []) -class TestSpacingMarks(unittest.TestCase): - """Tests that spacing marks are indeed spacing.""" - - def setUp(self): - self.font_files, _ = load_fonts() - charset = coverage.character_set(self.font_files[0]) - self.marks_to_test = [char for char in charset - if unicode_data.category(char) in ['Lm', 'Sk']] - self.advance_cache = {} - - def get_advances(self, text, font): - """Get a list of horizontal advances for text rendered in a font.""" - try: - return self.advance_cache[(text, font)] - except KeyError: - hb_output = render.run_harfbuzz_on_text(text, font, '') - hb_output = json.loads(hb_output) - advances = [glyph['ax'] for glyph in hb_output] - self.advance_cache[(text, font)] = advances - return advances - - 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 = self.get_advances(mark, font) - assert len(advances) == 1 - self.assertNotEqual(advances[0], 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: - mark = unichr(mark) - advances = self.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))) - - if __name__ == '__main__': unittest.main() + |