add 32-bit master value tests
This commit is contained in:
parent
22dda54616
commit
267ab2baba
@ -20,7 +20,23 @@ from fontTools.ttLib.tables._f_v_a_r import Axis
|
|||||||
[
|
[
|
||||||
[10, 20, 40, 60],
|
[10, 20, 40, 60],
|
||||||
[100, 2000, 400, 6000],
|
[100, 2000, 400, 6000],
|
||||||
[100, 22000, 4000, 30000],
|
[177100, 22000, 4000, 30000],
|
||||||
|
],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
[{}, {"a": 1}],
|
||||||
|
[
|
||||||
|
[10, 20],
|
||||||
|
[42000, 100],
|
||||||
|
[100, 52000],
|
||||||
|
],
|
||||||
|
),
|
||||||
|
(
|
||||||
|
[{}, {"a": 1}, {"b": 1}, {"a": 1, "b": 1}],
|
||||||
|
[
|
||||||
|
[10, 20, 40, 60],
|
||||||
|
[40000, 42000, 400, 6000],
|
||||||
|
[100, 22000, 4000, 173000],
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
@ -30,26 +46,18 @@ def test_onlineVarStoreBuilder(locations, masterValues):
|
|||||||
model = VariationModel(locations)
|
model = VariationModel(locations)
|
||||||
builder = OnlineVarStoreBuilder(axisTags)
|
builder = OnlineVarStoreBuilder(axisTags)
|
||||||
builder.setModel(model)
|
builder.setModel(model)
|
||||||
expectedDeltasAndVarIdxs = []
|
varIdxs = []
|
||||||
for masters in masterValues:
|
for masters in masterValues:
|
||||||
base, *deltas = model.getDeltas(masters)
|
_, varIdx = builder.storeMasters(masters)
|
||||||
varIdx = builder.storeDeltas(deltas)
|
varIdxs.append(varIdx)
|
||||||
expectedDeltasAndVarIdxs.append((deltas, varIdx))
|
|
||||||
|
|
||||||
varStore = builder.finish()
|
varStore = builder.finish()
|
||||||
mapping = varStore.optimize()
|
mapping = varStore.optimize()
|
||||||
expectedDeltasAndVarIdxs = [
|
varIdxs = [mapping[varIdx] for varIdx in varIdxs]
|
||||||
(deltas, mapping[varIdx]) for deltas, varIdx in expectedDeltasAndVarIdxs
|
|
||||||
]
|
|
||||||
|
|
||||||
for deltas, varIdx in expectedDeltasAndVarIdxs:
|
|
||||||
major, minor = varIdx >> 16, varIdx & 0xFFFF
|
|
||||||
storedDeltas = varStore.VarData[major].Item[minor]
|
|
||||||
assert deltas == storedDeltas
|
|
||||||
|
|
||||||
fvarAxes = [buildAxis(axisTag) for axisTag in axisTags]
|
fvarAxes = [buildAxis(axisTag) for axisTag in axisTags]
|
||||||
instancer = VarStoreInstancer(varStore, fvarAxes)
|
instancer = VarStoreInstancer(varStore, fvarAxes)
|
||||||
for masters, (deltas, varIdx) in zip(masterValues, expectedDeltasAndVarIdxs):
|
for masters, varIdx in zip(masterValues, varIdxs):
|
||||||
base, *rest = masters
|
base, *rest = masters
|
||||||
for expectedValue, loc in zip(masters, locations):
|
for expectedValue, loc in zip(masters, locations):
|
||||||
instancer.setLocation(loc)
|
instancer.setLocation(loc)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user