From 26ae03f58f959df8cbe4c0b9c787261af161babc Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Sun, 14 Aug 2022 12:48:30 -0600 Subject: [PATCH] [ttGlyphSet] Add tests --- Tests/ttLib/data/I.ttf | Bin 0 -> 14192 bytes Tests/ttLib/ttGlyphSet_test.py | 80 +++++++++++++++++++++++++++++++++ 2 files changed, 80 insertions(+) create mode 100644 Tests/ttLib/data/I.ttf create mode 100644 Tests/ttLib/ttGlyphSet_test.py diff --git a/Tests/ttLib/data/I.ttf b/Tests/ttLib/data/I.ttf new file mode 100644 index 0000000000000000000000000000000000000000..186af688c6a930c723ec4666955314c621dd2664 GIT binary patch literal 14192 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 literal 0 HcmV?d00001 diff --git a/Tests/ttLib/ttGlyphSet_test.py b/Tests/ttLib/ttGlyphSet_test.py new file mode 100644 index 000000000..e76fa39e1 --- /dev/null +++ b/Tests/ttLib/ttGlyphSet_test.py @@ -0,0 +1,80 @@ +from fontTools.ttLib import TTFont +from fontTools.pens.recordingPen import RecordingPen +import os +import pytest + + +class TTGlyphSetTest(object): + + @staticmethod + def getpath(testfile): + path, _ = os.path.split(__file__) + return os.path.join(path, "data", testfile) + + @pytest.mark.parametrize( + "location, expected", + [ + ( + {}, + [ + ('moveTo', ((175, 0),)), + ('lineTo', ((367, 0),)), + ('lineTo', ((367, 1456),)), + ('lineTo', ((175, 1456),)), + ('closePath', ()) + ] + ), + ( + {'wght': 100}, + [ + ('moveTo', ((175, 0),)), + ('lineTo', ((271, 0),)), + ('lineTo', ((271, 1456),)), + ('lineTo', ((175, 1456),)), + ('closePath', ()) + ] + ), + ( + {'wght': 1000}, + [ + ('moveTo', ((128, 0),)), + ('lineTo', ((550, 0),)), + ('lineTo', ((550, 1456),)), + ('lineTo', ((128, 1456),)), + ('closePath', ()) + ] + ), + ( + {'wght': 1000, 'wdth': 25}, + [ + ('moveTo', ((140, 0),)), + ('lineTo', ((553, 0),)), + ('lineTo', ((553, 1456),)), + ('lineTo', ((140, 1456),)), + ('closePath', ()) + ] + ), + ( + {'wght': 1000, 'wdth': 50}, + [ + ('moveTo', ((136, 0),)), + ('lineTo', ((552, 0),)), + ('lineTo', ((552, 1456),)), + ('lineTo', ((136, 1456),)), + ('closePath', ()) + ] + ), + ] + ) + def test_glyphset( + self, location, expected + ): + + font = TTFont(self.getpath("I.ttf")) + glyphset = font.getGlyphSet(location=location) + pen = RecordingPen() + glyph = glyphset['I'] + glyph.draw(pen) + actual = pen.value + + assert actual == expected, (location, actual, expected)