merger_test: test with masters' layer reuse off and on to confirm output is the same

This commit is contained in:
Cosimo Lupo 2022-07-06 09:14:17 +01:00
parent cdc7cc3cc4
commit fd397bac32

View File

@ -789,7 +789,14 @@ class COLRVariationMergerTest:
] ]
@pytest.mark.parametrize( @pytest.mark.parametrize(
"color_glyphs, reuse, expected_xml, expected_varIdxes", "master_layer_reuse",
[
pytest.param(False, id="no-reuse"),
pytest.param(True, id="with-reuse"),
],
)
@pytest.mark.parametrize(
"color_glyphs, output_layer_reuse, expected_xml, expected_varIdxes",
[ [
pytest.param( pytest.param(
[ [
@ -1500,19 +1507,25 @@ class COLRVariationMergerTest:
], ],
) )
def test_merge_full_table( def test_merge_full_table(
self, color_glyphs, ttFont, expected_xml, expected_varIdxes, reuse self,
color_glyphs,
ttFont,
expected_xml,
expected_varIdxes,
master_layer_reuse,
output_layer_reuse,
): ):
master_ttfs = [deepcopy(ttFont) for _ in range(len(color_glyphs))] master_ttfs = [deepcopy(ttFont) for _ in range(len(color_glyphs))]
for ttf, glyphs in zip(master_ttfs, color_glyphs): for ttf, glyphs in zip(master_ttfs, color_glyphs):
# merge algorithm is expected to work even if the master COLRs may differ as # merge algorithm is expected to work the same even if the master COLRs
# to the layer reuse, hence we force this is on while building them (even # may differ as to the layer reuse, hence we try both ways
# if it's on by default anyway, we want to make sure it works under more ttf["COLR"] = buildCOLR(glyphs, allowLayerReuse=master_layer_reuse)
# complex scenario).
ttf["COLR"] = buildCOLR(glyphs, allowLayerReuse=True)
vf = deepcopy(master_ttfs[0]) vf = deepcopy(master_ttfs[0])
model = VariationModel([{}, {"ZZZZ": 1.0}]) model = VariationModel([{}, {"ZZZZ": 1.0}])
merger = COLRVariationMerger(model, ["ZZZZ"], vf, allowLayerReuse=reuse) merger = COLRVariationMerger(
model, ["ZZZZ"], vf, allowLayerReuse=output_layer_reuse
)
merger.mergeTables(vf, master_ttfs) merger.mergeTables(vf, master_ttfs)