33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from __future__ import print_function, division, absolute_import
|
|
from fontTools.cffLib import PrivateDict
|
|
from fontTools.cffLib.specializer import stringToProgram
|
|
from fontTools.misc.psCharStrings import T2CharString
|
|
import unittest
|
|
|
|
|
|
class T2CharStringTest(unittest.TestCase):
|
|
|
|
@classmethod
|
|
def stringToT2CharString(cls, string):
|
|
return T2CharString(program=stringToProgram(string), private=PrivateDict())
|
|
|
|
def test_recalcBounds_empty(self):
|
|
cs = self.stringToT2CharString("endchar")
|
|
cs.recalcBounds()
|
|
self.assertEqual(cs.bounds, None)
|
|
|
|
def test_recalcBounds_line(self):
|
|
cs = self.stringToT2CharString("100 100 rmoveto 40 10 rlineto -20 50 rlineto endchar")
|
|
cs.recalcBounds()
|
|
self.assertEqual(cs.bounds, (100, 100, 140, 160))
|
|
|
|
def test_recalcBounds_curve(self):
|
|
cs = self.stringToT2CharString("100 100 rmoveto -50 -150 200 0 -50 150 rrcurveto endchar")
|
|
cs.recalcBounds()
|
|
self.assertEqual(cs.bounds, (91.90524980688875, -12.5, 208.09475019311125, 100))
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import sys
|
|
sys.exit(unittest.main())
|