[instancer] Make some tests pass
The rest of the test suite needs drastic updates :(.
This commit is contained in:
parent
ac05ed19bb
commit
89dffd51ca
@ -102,6 +102,13 @@ import re
|
|||||||
|
|
||||||
log = logging.getLogger("fontTools.varLib.instancer")
|
log = logging.getLogger("fontTools.varLib.instancer")
|
||||||
|
|
||||||
|
def _expand(v):
|
||||||
|
if not isinstance(v, tuple):
|
||||||
|
return (v, v, v)
|
||||||
|
else:
|
||||||
|
if len(v) == 2:
|
||||||
|
return (v[0], None, v[1])
|
||||||
|
return v
|
||||||
|
|
||||||
class AxisRange(collections.namedtuple("AxisRange", "minimum maximum")):
|
class AxisRange(collections.namedtuple("AxisRange", "minimum maximum")):
|
||||||
def __new__(cls, *args, **kwargs):
|
def __new__(cls, *args, **kwargs):
|
||||||
@ -1030,7 +1037,7 @@ def normalizeAxisLimits(varfont, axisLimits, usingAvar=True):
|
|||||||
|
|
||||||
value = axisLimits[axis_tag]
|
value = axisLimits[axis_tag]
|
||||||
|
|
||||||
minV, defaultV, maxV = value
|
minV, defaultV, maxV = _expand(value)
|
||||||
if defaultV is None:
|
if defaultV is None:
|
||||||
defaultV = default
|
defaultV = default
|
||||||
if (minV != maxV or minV != defaultV) and defaultV != default:
|
if (minV != maxV or minV != defaultV) and defaultV != default:
|
||||||
@ -1180,9 +1187,9 @@ def instantiateVariableFont(
|
|||||||
varLib.set_default_weight_width_slant(
|
varLib.set_default_weight_width_slant(
|
||||||
varfont,
|
varfont,
|
||||||
location={
|
location={
|
||||||
axisTag: limit[0]
|
axisTag: _expand(limit)[1]
|
||||||
for axisTag, limit in axisLimits.items()
|
for axisTag, limit in axisLimits.items()
|
||||||
if limit[0] == limit[2]
|
if _expand(limit)[0] == _expand(limit)[2]
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1233,7 +1240,8 @@ def setRibbiBits(font):
|
|||||||
|
|
||||||
def splitAxisLocationAndRanges(axisLimits, rangeType=AxisRange):
|
def splitAxisLocationAndRanges(axisLimits, rangeType=AxisRange):
|
||||||
location, axisRanges = {}, {}
|
location, axisRanges = {}, {}
|
||||||
for axisTag, (minimum, default, maximum) in axisLimits.items():
|
for axisTag, value in axisLimits.items():
|
||||||
|
(minimum, default, maximum) = _expand(value)
|
||||||
if minimum == default == maximum:
|
if minimum == default == maximum:
|
||||||
location[axisTag] = default
|
location[axisTag] = default
|
||||||
else:
|
else:
|
||||||
|
@ -1698,7 +1698,7 @@ class InstantiateFeatureVariationsTest(object):
|
|||||||
|
|
||||||
class LimitTupleVariationAxisRangesTest:
|
class LimitTupleVariationAxisRangesTest:
|
||||||
def check_limit_single_var_axis_range(self, var, axisTag, axisRange, expected):
|
def check_limit_single_var_axis_range(self, var, axisTag, axisRange, expected):
|
||||||
result = instancer.limitTupleVariationAxisRange(var, axisTag, axisRange)
|
result = instancer.changeTupleVariationAxisLimit(var, axisTag, axisRange)
|
||||||
print(result)
|
print(result)
|
||||||
|
|
||||||
assert len(result) == len(expected)
|
assert len(result) == len(expected)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user