models_test: parametrize VariationModel tests

I noticed there were two functions called 'test_VariationModel', the second one
shadowing the first.
This commit is contained in:
Cosimo Lupo 2019-03-04 11:00:11 -08:00
parent 389cf7c56a
commit 7e85782900

View File

@ -2,6 +2,7 @@ from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import *
from fontTools.varLib.models import (
normalizeLocation, supportScalar, VariationModel)
import pytest
def test_normalizeLocation():
@ -35,65 +36,103 @@ def test_supportScalar():
assert supportScalar({'wght':2.5}, {'wght':(0,2,4)}) == 0.75
def test_VariationModel():
locations = [
{'wght':100},
{'wght':-100},
{'wght':-180},
{'wdth':+.3},
{'wght':+120,'wdth':.3},
{'wght':+120,'wdth':.2},
{},
{'wght':+180,'wdth':.3},
{'wght':+180},
@pytest.mark.parametrize(
"locations, axisOrder, sortedLocs, supports, deltaWeights",
[
(
[
{'wght':100},
{'wght':-100},
{'wght':-180},
{'wdth':+.3},
{'wght':+120,'wdth':.3},
{'wght':+120,'wdth':.2},
{},
{'wght':+180,'wdth':.3},
{'wght':+180},
],
["wght"],
[
{},
{'wght': -100},
{'wght': -180},
{'wght': 100},
{'wght': 180},
{'wdth': 0.3},
{'wdth': 0.3, 'wght': 180},
{'wdth': 0.3, 'wght': 120},
{'wdth': 0.2, 'wght': 120}
],
[
{},
{'wght': (-180, -100, 0)},
{'wght': (-180, -180, -100)},
{'wght': (0, 100, 180)},
{'wght': (100, 180, 180)},
{'wdth': (0, 0.3, 0.3)},
{'wdth': (0, 0.3, 0.3), 'wght': (0, 180, 180)},
{'wdth': (0, 0.3, 0.3), 'wght': (0, 120, 180)},
{'wdth': (0, 0.2, 0.3), 'wght': (0, 120, 180)}
],
[
{},
{0: 1.0},
{0: 1.0},
{0: 1.0},
{0: 1.0},
{0: 1.0},
{0: 1.0, 4: 1.0, 5: 1.0},
{0: 1.0, 3: 0.75, 4: 0.25, 5: 1.0, 6: 0.6666666666666666},
{0: 1.0,
3: 0.75,
4: 0.25,
5: 0.6666666666666667,
6: 0.4444444444444445,
7: 0.6666666666666667}
]
),
(
[
{},
{'bar': 0.5},
{'bar': 1.0},
{'foo': 1.0},
{'bar': 0.5, 'foo': 1.0},
{'bar': 1.0, 'foo': 1.0},
],
None,
[
{},
{'bar': 0.5},
{'bar': 1.0},
{'foo': 1.0},
{'bar': 0.5, 'foo': 1.0},
{'bar': 1.0, 'foo': 1.0},
],
[
{},
{'bar': (0, 0.5, 1.0)},
{'bar': (0.5, 1.0, 1.0)},
{'foo': (0, 1.0, 1.0)},
{'bar': (0, 0.5, 1.0), 'foo': (0, 1.0, 1.0)},
{'bar': (0.5, 1.0, 1.0), 'foo': (0, 1.0, 1.0)},
],
[
{},
{0: 1.0},
{0: 1.0},
{0: 1.0},
{0: 1.0, 1: 1.0, 3: 1.0},
{0: 1.0, 2: 1.0, 3: 1.0},
],
)
]
model = VariationModel(locations, axisOrder=['wght'])
)
def test_VariationModel(
locations, axisOrder, sortedLocs, supports, deltaWeights
):
model = VariationModel(locations, axisOrder=axisOrder)
assert model.locations == [
{},
{'wght': -100},
{'wght': -180},
{'wght': 100},
{'wght': 180},
{'wdth': 0.3},
{'wdth': 0.3, 'wght': 180},
{'wdth': 0.3, 'wght': 120},
{'wdth': 0.2, 'wght': 120}]
assert model.deltaWeights == [
{},
{0: 1.0},
{0: 1.0},
{0: 1.0},
{0: 1.0},
{0: 1.0},
{0: 1.0, 4: 1.0, 5: 1.0},
{0: 1.0, 3: 0.75, 4: 0.25, 5: 1.0, 6: 0.6666666666666666},
{0: 1.0,
3: 0.75,
4: 0.25,
5: 0.6666666666666667,
6: 0.4444444444444445,
7: 0.6666666666666667}]
def test_VariationModel():
locations = [
{},
{'bar': 0.5},
{'bar': 1.0},
{'foo': 1.0},
{'bar': 0.5, 'foo': 1.0},
{'bar': 1.0, 'foo': 1.0},
]
model = VariationModel(locations)
assert model.locations == locations
assert model.supports == [
{},
{'bar': (0, 0.5, 1.0)},
{'bar': (0.5, 1.0, 1.0)},
{'foo': (0, 1.0, 1.0)},
{'bar': (0, 0.5, 1.0), 'foo': (0, 1.0, 1.0)},
{'bar': (0.5, 1.0, 1.0), 'foo': (0, 1.0, 1.0)},
]
assert model.locations == sortedLocs
assert model.supports == supports
assert model.deltaWeights == deltaWeights