From b0ede1a3c6ac3264fa3f733f5092cacf587e65cb Mon Sep 17 00:00:00 2001 From: Cosimo Lupo Date: Thu, 30 May 2019 14:10:26 +0100 Subject: [PATCH] instancer_test: add tests for normalizeAxisLimits function coverage is now 97%, good enough --- Tests/varLib/instancer_test.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/Tests/varLib/instancer_test.py b/Tests/varLib/instancer_test.py index b95b12de9..e15773cef 100644 --- a/Tests/varLib/instancer_test.py +++ b/Tests/varLib/instancer_test.py @@ -1358,6 +1358,35 @@ def test_parseLimits_invalid(limits): instancer.parseLimits(limits) +def test_normalizeAxisLimits_tuple(varfont): + normalized = instancer.normalizeAxisLimits(varfont, {"wght": (100, 400)}) + assert normalized == {"wght": (-1.0, 0)} + + +def test_normalizeAxisLimits_no_avar(varfont): + del varfont["avar"] + + normalized = instancer.normalizeAxisLimits(varfont, {"wght": (500, 600)}) + + assert normalized["wght"] == pytest.approx((0.2, 0.4), 1e-4) + + +def test_normalizeAxisLimits_missing_from_fvar(varfont): + with pytest.raises(ValueError, match="not present in fvar"): + instancer.normalizeAxisLimits(varfont, {"ZZZZ": 1000}) + + +def test_sanityCheckVariableTables(varfont): + font = ttLib.TTFont() + with pytest.raises(ValueError, match="Missing required table fvar"): + instancer.sanityCheckVariableTables(font) + + del varfont["glyf"] + + with pytest.raises(ValueError, match="Can't have gvar without glyf"): + instancer.sanityCheckVariableTables(varfont) + + def test_main(varfont, tmpdir): fontfile = str(tmpdir / "PartialInstancerTest-VF.ttf") varfont.save(fontfile)