aboutsummaryrefslogtreecommitdiff
path: root/Tests/misc
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/misc')
-rw-r--r--Tests/misc/bezierTools_test.py20
-rw-r--r--Tests/misc/plistlib_test.py2
-rw-r--r--Tests/misc/transform_test.py8
-rw-r--r--Tests/misc/xmlReader_test.py2
-rw-r--r--Tests/misc/xmlWriter_test.py19
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())