instancer_test: add test for composite glyph without variations
We assert that the composite glyph's sidebearings and bbox are updated when its parent glyph has changed. The tests will fail, but a fix will follow shortly.
This commit is contained in:
parent
1722f99182
commit
9d895be4d5
@ -143,6 +143,59 @@ class InstantiateGvarTest(object):
|
|||||||
|
|
||||||
assert "gvar" not in varfont
|
assert "gvar" not in varfont
|
||||||
|
|
||||||
|
def test_composite_glyph_not_in_gvar(self, varfont):
|
||||||
|
""" The 'minus' glyph is a composite glyph, which references 'hyphen' as a
|
||||||
|
component, but has no tuple variations in gvar table, so the component offset
|
||||||
|
and the phantom points do not change; however the sidebearings and bounding box
|
||||||
|
do change as a result of the parent glyph 'hyphen' changing.
|
||||||
|
"""
|
||||||
|
hmtx = varfont["hmtx"]
|
||||||
|
vmtx = varfont["vmtx"]
|
||||||
|
|
||||||
|
hyphenCoords = _get_coordinates(varfont, "hyphen")
|
||||||
|
assert hyphenCoords == [
|
||||||
|
(40, 229),
|
||||||
|
(40, 307),
|
||||||
|
(282, 307),
|
||||||
|
(282, 229),
|
||||||
|
(0, 0),
|
||||||
|
(322, 0),
|
||||||
|
(0, 536),
|
||||||
|
(0, 0),
|
||||||
|
]
|
||||||
|
assert hmtx["hyphen"] == (322, 40)
|
||||||
|
assert vmtx["hyphen"] == (536, 229)
|
||||||
|
|
||||||
|
minusCoords = _get_coordinates(varfont, "minus")
|
||||||
|
assert minusCoords == [(0, 0), (0, 0), (422, 0), (0, 536), (0, 0)]
|
||||||
|
assert hmtx["minus"] == (422, 40)
|
||||||
|
assert vmtx["minus"] == (536, 229)
|
||||||
|
|
||||||
|
location = {"wght": -1.0, "wdth": -1.0}
|
||||||
|
|
||||||
|
instancer.instantiateGvar(varfont, location)
|
||||||
|
|
||||||
|
# check 'hyphen' coordinates changed
|
||||||
|
assert _get_coordinates(varfont, "hyphen") == [
|
||||||
|
(26, 259),
|
||||||
|
(26, 286),
|
||||||
|
(237, 286),
|
||||||
|
(237, 259),
|
||||||
|
(0, 0),
|
||||||
|
(263, 0),
|
||||||
|
(0, 536),
|
||||||
|
(0, 0),
|
||||||
|
]
|
||||||
|
# check 'minus' coordinates (i.e. component offset and phantom points)
|
||||||
|
# did _not_ change
|
||||||
|
assert _get_coordinates(varfont, "minus") == minusCoords
|
||||||
|
|
||||||
|
assert hmtx["hyphen"] == (263, 26)
|
||||||
|
assert vmtx["hyphen"] == (536, 250)
|
||||||
|
|
||||||
|
assert hmtx["minus"] == (422, 26) # 'minus' left sidebearing changed
|
||||||
|
assert vmtx["minus"] == (536, 250) # 'minus' top sidebearing too
|
||||||
|
|
||||||
|
|
||||||
class InstantiateCvarTest(object):
|
class InstantiateCvarTest(object):
|
||||||
@pytest.mark.parametrize(
|
@pytest.mark.parametrize(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user