diff options
Diffstat (limited to 'Tests/misc')
-rw-r--r-- | Tests/misc/bezierTools_test.py | 20 | ||||
-rw-r--r-- | Tests/misc/plistlib_test.py | 2 | ||||
-rw-r--r-- | Tests/misc/transform_test.py | 8 | ||||
-rw-r--r-- | Tests/misc/xmlReader_test.py | 2 | ||||
-rw-r--r-- | Tests/misc/xmlWriter_test.py | 19 |
5 files changed, 37 insertions, 14 deletions
diff --git a/Tests/misc/bezierTools_test.py b/Tests/misc/bezierTools_test.py index c5cd1b73..da73375d 100644 --- a/Tests/misc/bezierTools_test.py +++ b/Tests/misc/bezierTools_test.py @@ -1,6 +1,8 @@ +import fontTools.misc.bezierTools as bezierTools from fontTools.misc.bezierTools import ( - calcQuadraticBounds, calcCubicBounds, segmentPointAtT, splitLine, splitQuadratic, - splitCubic, splitQuadraticAtT, splitCubicAtT, solveCubic) + calcQuadraticBounds, calcCubicBounds, curveLineIntersections, + segmentPointAtT, splitLine, splitQuadratic, splitCubic, splitQuadraticAtT, + splitCubicAtT, solveCubic) import pytest @@ -148,3 +150,17 @@ _segmentPointAtT_testData = [ def test_segmentPointAtT(segment, t, expectedPoint): point = segmentPointAtT(segment, t) assert expectedPoint == point + + +def test_intersections_straight_line(): + curve = ((548, 183), (548, 289), (450, 366), (315, 366)) + line1 = ((330, 376), (330, 286)) + pt = curveLineIntersections(curve, line1)[0][0] + assert pt[0] == 330 + line = (pt, (330, 286)) + pt2 = (330.0001018806911, 295.5635754579425) + assert bezierTools._line_t_of_pt(*line, pt2) > 0 + s = (19, 0) + e = (110, 0) + pt = (109.05194805194802, 0.0) + assert bezierTools._line_t_of_pt(s, e, pt) == pytest.approx(0.98958184) diff --git a/Tests/misc/plistlib_test.py b/Tests/misc/plistlib_test.py index b2ce408d..5659d690 100644 --- a/Tests/misc/plistlib_test.py +++ b/Tests/misc/plistlib_test.py @@ -5,9 +5,9 @@ import codecs import collections from io import BytesIO from numbers import Integral -from fontTools.misc.py23 import tostr from fontTools.misc import etree from fontTools.misc import plistlib +from fontTools.misc.textTools import tostr from fontTools.ufoLib.plistlib import ( readPlist, readPlistFromString, writePlist, writePlistToString, ) diff --git a/Tests/misc/transform_test.py b/Tests/misc/transform_test.py index 4efab81f..53d4a202 100644 --- a/Tests/misc/transform_test.py +++ b/Tests/misc/transform_test.py @@ -23,6 +23,14 @@ class TransformTest(object): [(0, 0), (0, 100), (100, 100), (100, 0)] ) == [(0, 0), (0, 300), (200, 300), (200, 0)] + def test_transformVector(self): + t = Transform(2, 0, 0, 3, -10, 30) + assert t.transformVector((-4, 5)) == (-8, 15) + + def test_transformVectors(self): + t = Transform(2, 0, 0, 3, -10, 30) + assert t.transformVectors([(-4, 5), (-6, 7)]) == [(-8, 15), (-12, 21)] + def test_translate(self): t = Transform() assert t.translate(20, 30) == Transform(1, 0, 0, 1, 20, 30) diff --git a/Tests/misc/xmlReader_test.py b/Tests/misc/xmlReader_test.py index f6775cbc..ec4aff57 100644 --- a/Tests/misc/xmlReader_test.py +++ b/Tests/misc/xmlReader_test.py @@ -1,8 +1,8 @@ -from fontTools.misc.py23 import strjoin from io import BytesIO import os import unittest from fontTools.ttLib import TTFont +from fontTools.misc.textTools import strjoin from fontTools.misc.xmlReader import XMLReader, ProgressPrinter, BUFSIZE import tempfile diff --git a/Tests/misc/xmlWriter_test.py b/Tests/misc/xmlWriter_test.py index fd4f2408..69471543 100644 --- a/Tests/misc/xmlWriter_test.py +++ b/Tests/misc/xmlWriter_test.py @@ -1,11 +1,10 @@ -from fontTools.misc.py23 import bytesjoin, tobytes from io import BytesIO import os import unittest +from fontTools.misc.textTools import bytesjoin, tobytes from fontTools.misc.xmlWriter import XMLWriter -linesep = tobytes(os.linesep) -HEADER = b'<?xml version="1.0" encoding="UTF-8"?>' + linesep +HEADER = b'<?xml version="1.0" encoding="UTF-8"?>\n' class TestXMLWriter(unittest.TestCase): @@ -17,30 +16,30 @@ class TestXMLWriter(unittest.TestCase): def test_comment_multiline(self): writer = XMLWriter(BytesIO()) writer.comment("Hello world\nHow are you?") - self.assertEqual(HEADER + b"<!-- Hello world" + linesep + b" How are you? -->", + self.assertEqual(HEADER + b"<!-- Hello world\n How are you? -->", writer.file.getvalue()) def test_encoding_default(self): writer = XMLWriter(BytesIO()) - self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>' + linesep, + self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>\n', writer.file.getvalue()) def test_encoding_utf8(self): # https://github.com/fonttools/fonttools/issues/246 writer = XMLWriter(BytesIO(), encoding="utf8") - self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>' + linesep, + self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>\n', writer.file.getvalue()) def test_encoding_UTF_8(self): # https://github.com/fonttools/fonttools/issues/246 writer = XMLWriter(BytesIO(), encoding="UTF-8") - self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>' + linesep, + self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>\n', writer.file.getvalue()) def test_encoding_UTF8(self): # https://github.com/fonttools/fonttools/issues/246 writer = XMLWriter(BytesIO(), encoding="UTF8") - self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>' + linesep, + self.assertEqual(b'<?xml version="1.0" encoding="UTF-8"?>\n', writer.file.getvalue()) def test_encoding_other(self): @@ -61,7 +60,7 @@ class TestXMLWriter(unittest.TestCase): writer.newline() writer.dedent() writer.write("baz") - self.assertEqual(HEADER + bytesjoin(["foo", " bar", "baz"], linesep), + self.assertEqual(HEADER + bytesjoin(["foo", " bar", "baz"], "\n"), writer.file.getvalue()) def test_writecdata(self): @@ -89,7 +88,7 @@ class TestXMLWriter(unittest.TestCase): "66756c20 67726f75 70206f66 206c6574", "74657273 2c206e6f 74206120 67726f75", "70206f66 20626561 75746966 756c206c", - "65747465 72732e ", ""], joiner=linesep), writer.file.getvalue()) + "65747465 72732e ", ""], joiner="\n"), writer.file.getvalue()) def test_stringifyattrs(self): writer = XMLWriter(BytesIO()) |