aboutsummaryrefslogtreecommitdiff
path: root/Tests/varLib/instancer/instancer_test.py
diff options
context:
space:
mode:
authorRod S <rsheeter@google.com>2022-03-25 22:07:18 +0000
committerAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>2022-03-25 22:07:18 +0000
commit29956f91d34a6e7e114e9e04c4c22296e20b80c8 (patch)
tree98d81cb66669c50af608fd8a844e22039a00f5ae /Tests/varLib/instancer/instancer_test.py
parentec30550b149d3ba5c81fc88f2f90dd171b3f4013 (diff)
parent3886b0a80e36b841df5bf1b790cfd2bb92764f15 (diff)
downloadfonttools-android13-qpr3-s3-release.tar.gz
Update FontTools to 4.31.2 to gain access to iterSubTables. am: 0b59a54a78 am: 3e24ea754b am: 3886b0a80et_frc_odp_330442040t_frc_odp_330442000t_frc_ase_330444010android-13.0.0_r83android-13.0.0_r82android-13.0.0_r81android-13.0.0_r80android-13.0.0_r79android-13.0.0_r78android-13.0.0_r77android-13.0.0_r76android-13.0.0_r75android-13.0.0_r74android-13.0.0_r73android-13.0.0_r72android-13.0.0_r71android-13.0.0_r70android-13.0.0_r69android-13.0.0_r68android-13.0.0_r67android-13.0.0_r66android-13.0.0_r65android-13.0.0_r64android-13.0.0_r63android-13.0.0_r62android-13.0.0_r61android-13.0.0_r60android-13.0.0_r59android-13.0.0_r58android-13.0.0_r57android-13.0.0_r56android-13.0.0_r54android-13.0.0_r53android-13.0.0_r52android-13.0.0_r51android-13.0.0_r50android-13.0.0_r49android-13.0.0_r48android-13.0.0_r47android-13.0.0_r46android-13.0.0_r45android-13.0.0_r44android-13.0.0_r43android-13.0.0_r42android-13.0.0_r41android-13.0.0_r40android-13.0.0_r39android-13.0.0_r38android-13.0.0_r37android-13.0.0_r36android-13.0.0_r35android-13.0.0_r34android-13.0.0_r33android-13.0.0_r32android13-qpr3-s9-releaseandroid13-qpr3-s8-releaseandroid13-qpr3-s7-releaseandroid13-qpr3-s6-releaseandroid13-qpr3-s5-releaseandroid13-qpr3-s4-releaseandroid13-qpr3-s3-releaseandroid13-qpr3-s2-releaseandroid13-qpr3-s14-releaseandroid13-qpr3-s13-releaseandroid13-qpr3-s12-releaseandroid13-qpr3-s11-releaseandroid13-qpr3-s10-releaseandroid13-qpr3-s1-releaseandroid13-qpr3-releaseandroid13-qpr3-c-s8-releaseandroid13-qpr3-c-s7-releaseandroid13-qpr3-c-s6-releaseandroid13-qpr3-c-s5-releaseandroid13-qpr3-c-s4-releaseandroid13-qpr3-c-s3-releaseandroid13-qpr3-c-s2-releaseandroid13-qpr3-c-s12-releaseandroid13-qpr3-c-s11-releaseandroid13-qpr3-c-s10-releaseandroid13-qpr3-c-s1-releaseandroid13-qpr2-s9-releaseandroid13-qpr2-s8-releaseandroid13-qpr2-s7-releaseandroid13-qpr2-s6-releaseandroid13-qpr2-s5-releaseandroid13-qpr2-s3-releaseandroid13-qpr2-s2-releaseandroid13-qpr2-s12-releaseandroid13-qpr2-s11-releaseandroid13-qpr2-s10-releaseandroid13-qpr2-s1-releaseandroid13-qpr2-releaseandroid13-qpr2-b-s1-releaseandroid13-frc-odp-releaseandroid13-devandroid13-d4-s2-releaseandroid13-d4-s1-releaseandroid13-d4-releaseandroid13-d3-s1-release
Original change: https://android-review.googlesource.com/c/platform/external/fonttools/+/2043270 Change-Id: Ie02c14d6e2550eb53669c28030dcf2c938419d6e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
Diffstat (limited to 'Tests/varLib/instancer/instancer_test.py')
-rw-r--r--Tests/varLib/instancer/instancer_test.py45
1 files changed, 43 insertions, 2 deletions
diff --git a/Tests/varLib/instancer/instancer_test.py b/Tests/varLib/instancer/instancer_test.py
index cb7e8547..bb2d1758 100644
--- a/Tests/varLib/instancer/instancer_test.py
+++ b/Tests/varLib/instancer/instancer_test.py
@@ -1,5 +1,5 @@
-from fontTools.misc.py23 import Tag
from fontTools.misc.fixedTools import floatToFixedToFloat
+from fontTools.misc.textTools import Tag
from fontTools import ttLib
from fontTools import designspaceLib
from fontTools.feaLib.builder import addOpenTypeFeaturesFromString
@@ -936,6 +936,30 @@ class InstantiateOTLTest(object):
assert not hasattr(valueRec1, "XAdvDevice")
assert valueRec1.XAdvance == v2
+ def test_GPOS_ValueRecord_XAdvDevice_wtihout_XAdvance(self):
+ # Test VF contains a PairPos adjustment in which the default instance
+ # has no XAdvance but there are deltas in XAdvDevice (VariationIndex).
+ vf = ttLib.TTFont()
+ vf.importXML(os.path.join(TESTDATA, "PartialInstancerTest4-VF.ttx"))
+ pairPos = vf["GPOS"].table.LookupList.Lookup[0].SubTable[0]
+ assert pairPos.ValueFormat1 == 0x40
+ valueRec1 = pairPos.PairSet[0].PairValueRecord[0].Value1
+ assert not hasattr(valueRec1, "XAdvance")
+ assert valueRec1.XAdvDevice.DeltaFormat == 0x8000
+ outer = valueRec1.XAdvDevice.StartSize
+ inner = valueRec1.XAdvDevice.EndSize
+ assert vf["GDEF"].table.VarStore.VarData[outer].Item[inner] == [-50]
+
+ # check that MutatorMerger for ValueRecord doesn't raise AttributeError
+ # when XAdvDevice is present but there's no corresponding XAdvance.
+ instancer.instantiateOTL(vf, {"wght": 0.5})
+
+ pairPos = vf["GPOS"].table.LookupList.Lookup[0].SubTable[0]
+ assert pairPos.ValueFormat1 == 0x4
+ valueRec1 = pairPos.PairSet[0].PairValueRecord[0].Value1
+ assert not hasattr(valueRec1, "XAdvDevice")
+ assert valueRec1.XAdvance == -25
+
class InstantiateAvarTest(object):
@pytest.mark.parametrize("location", [{"wght": 0.0}, {"wdth": 0.0}])
@@ -1387,7 +1411,7 @@ def _dump_ttx(ttFont):
tmp.seek(0)
ttFont2 = ttLib.TTFont(tmp, recalcBBoxes=False, recalcTimestamp=False)
s = StringIO()
- ttFont2.saveXML(s, newlinestr="\n")
+ ttFont2.saveXML(s)
return _strip_ttLibVersion(s.getvalue())
@@ -1452,6 +1476,23 @@ class InstantiateVariableFontTest(object):
assert _dump_ttx(instance) == expected
+ def test_singlepos(self):
+ varfont = ttLib.TTFont(recalcTimestamp=False)
+ varfont.importXML(os.path.join(TESTDATA, "SinglePos.ttx"))
+
+ location = {"wght": 280, "opsz": 18}
+
+ instance = instancer.instantiateVariableFont(
+ varfont, location,
+ )
+
+ expected = _get_expected_instance_ttx(
+ "SinglePos", *location.values()
+ )
+
+ assert _dump_ttx(instance) == expected
+
+
def _conditionSetAsDict(conditionSet, axisOrder):
result = {}