[Tests] convert GlyphCoordinates doctests into _g_l_y_f_test.py

This commit is contained in:
Cosimo Lupo 2017-01-17 12:31:46 +00:00
parent a2066c9fbe
commit 4ef3f1dd42
No known key found for this signature in database
GPG Key ID: B61AAAD0B53A6419

View File

@ -0,0 +1,137 @@
from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import *
from fontTools.ttLib.tables._g_l_y_f import GlyphCoordinates
import sys
import pytest
class GlyphCoordinatesTest(object):
def test_translate(self):
g = GlyphCoordinates([(1,2)])
g.translate((.5,0))
assert g == GlyphCoordinates([(1.5,2.0)])
def test_scale(self):
g = GlyphCoordinates([(1,2)])
g.scale((.5,0))
assert g == GlyphCoordinates([(0.5,0.0)])
def test_transform(self):
g = GlyphCoordinates([(1,2)])
g.transform(((.5,0),(.2,.5)))
assert g[0] == GlyphCoordinates([(0.9,1.0)])[0]
def test__eq__(self):
g = GlyphCoordinates([(1,2)])
g2 = GlyphCoordinates([(1.0,2)])
g3 = GlyphCoordinates([(1.5,2)])
assert g == g2
assert not g == g3
assert not g2 == g3
assert not g == object()
def test__ne__(self):
g = GlyphCoordinates([(1,2)])
g2 = GlyphCoordinates([(1.0,2)])
g3 = GlyphCoordinates([(1.5,2)])
assert not (g != g2)
assert g != g3
assert g2 != g3
assert g != object()
def test__pos__(self):
g = GlyphCoordinates([(1,2)])
g2 = +g
assert g == g2
def test__neg__(self):
g = GlyphCoordinates([(1,2)])
g2 = -g
assert g2 == GlyphCoordinates([(-1, -2)])
def test__abs__(self):
g = GlyphCoordinates([(-1.5,2)])
g2 = abs(g)
assert g2 == GlyphCoordinates([(1.5,2)])
@pytest.mark.skipif(sys.version_info[0] < 3,
reason="__round___ requires Python 3")
def test__round__(self):
g = GlyphCoordinates([(-1.5,2)])
g2 = round(g)
assert g2 == GlyphCoordinates([(-2,2)])
def test__add__(self):
g1 = GlyphCoordinates([(1,2)])
g2 = GlyphCoordinates([(3,4)])
g3 = GlyphCoordinates([(4,6)])
assert g1 + g2 == g3
assert g1 + (1, 1) == GlyphCoordinates([(2,3)])
with pytest.raises(TypeError) as excinfo:
assert g1 + object()
assert 'unsupported operand' in str(excinfo.value)
def test__sub__(self):
g1 = GlyphCoordinates([(1,2)])
g2 = GlyphCoordinates([(3,4)])
g3 = GlyphCoordinates([(-2,-2)])
assert g1 - g2 == g3
assert g1 - (1, 1) == GlyphCoordinates([(0,1)])
with pytest.raises(TypeError) as excinfo:
assert g1 - object()
assert 'unsupported operand' in str(excinfo.value)
def test__rsub__(self):
g = GlyphCoordinates([(1,2)])
# other + (-self)
assert (1, 1) - g == GlyphCoordinates([(0,-1)])
def test__mul__(self):
g = GlyphCoordinates([(1,2)])
assert g * 3 == GlyphCoordinates([(3,6)])
assert g * (3,2) == GlyphCoordinates([(3,4)])
assert g * (1,1) == g
with pytest.raises(TypeError) as excinfo:
assert g * object()
assert 'unsupported operand' in str(excinfo.value)
def test__truediv__(self):
g = GlyphCoordinates([(1,2)])
assert g / 2 == GlyphCoordinates([(.5,1)])
assert g / (1, 2) == GlyphCoordinates([(1,1)])
assert g / (1, 1) == g
with pytest.raises(TypeError) as excinfo:
assert g / object()
assert 'unsupported operand' in str(excinfo.value)
def test__iadd__(self):
g = GlyphCoordinates([(1,2)])
g += (.5,0)
assert g == GlyphCoordinates([(1.5, 2.0)])
g2 = GlyphCoordinates([(3,4)])
g += g2
assert g == GlyphCoordinates([(4.5, 6.0)])
def test__isub__(self):
g = GlyphCoordinates([(1,2)])
g -= (.5, 0)
assert g == GlyphCoordinates([(0.5, 2.0)])
g2 = GlyphCoordinates([(3,4)])
g -= g2
assert g == GlyphCoordinates([(-2.5, -2.0)])
def __test__imul__(self):
g = GlyphCoordinates([(1,2)])
g *= (2,.5)
g *= 2
assert g == GlyphCoordinates([(4.0, 2.0)])
g = GlyphCoordinates([(1,2)])
g *= 2
assert g == GlyphCoordinates([(2, 4)])
def test__itruediv__(self):
g = GlyphCoordinates([(1,3)])
g /= (.5,1.5)
g /= 2
assert g == GlyphCoordinates([(1.0, 1.0)])