| try: |
| from fontTools.misc.symfont import AreaPen |
| except ImportError: |
| AreaPen = None |
| import unittest |
| import pytest |
| |
| precision = 6 |
| |
| |
| def draw1_(pen): |
| pen.moveTo((254, 360)) |
| pen.lineTo((771, 367)) |
| pen.curveTo((800, 393), (808, 399), (819, 412)) |
| pen.curveTo((818, 388), (774, 138), (489, 145)) |
| pen.curveTo((188, 145), (200, 398), (200, 421)) |
| pen.curveTo((209, 409), (220, 394), (254, 360)) |
| pen.closePath() |
| |
| |
| class AreaPenTest(unittest.TestCase): |
| @pytest.mark.skipif(AreaPen is None, reason="sympy not installed") |
| def test_PScontour_clockwise_line_first(self): |
| pen = AreaPen(glyphset=None) |
| draw1_(pen) |
| self.assertEqual(-104561.35, round(pen.value, precision)) |
| |
| @pytest.mark.skipif(AreaPen is None, reason="sympy not installed") |
| def test_openPaths(self): |
| pen = AreaPen() |
| pen.moveTo((0, 0)) |
| pen.endPath() |
| self.assertEqual(0, pen.value) |
| |
| pen.moveTo((0, 0)) |
| pen.lineTo((1, 0)) |
| with self.assertRaises(NotImplementedError): |
| pen.endPath() |
| |
| |
| if __name__ == "__main__": |
| import sys |
| |
| sys.exit(unittest.main()) |