varLib/merger_test: test merging ClipBoxes
This commit is contained in:
parent
d85aa2d119
commit
c2887caf95
@ -1,6 +1,6 @@
|
|||||||
from copy import deepcopy
|
from copy import deepcopy
|
||||||
import string
|
import string
|
||||||
from fontTools.colorLib.builder import LayerListBuilder
|
from fontTools.colorLib.builder import LayerListBuilder, buildClipList
|
||||||
from fontTools.misc.testTools import getXML
|
from fontTools.misc.testTools import getXML
|
||||||
from fontTools.varLib.merger import COLRVariationMerger
|
from fontTools.varLib.merger import COLRVariationMerger
|
||||||
from fontTools.varLib.models import VariationModel
|
from fontTools.varLib.models import VariationModel
|
||||||
@ -712,3 +712,76 @@ class COLRVariationMergerTest:
|
|||||||
assert compile_decompile(out, ttFont) == out
|
assert compile_decompile(out, ttFont) == out
|
||||||
assert dump_xml(out, ttFont) == expected_xml
|
assert dump_xml(out, ttFont) == expected_xml
|
||||||
assert merger.varIdxes == expected_varIdxes
|
assert merger.varIdxes == expected_varIdxes
|
||||||
|
|
||||||
|
def test_merge_ClipList(self, ttFont):
|
||||||
|
clipLists = [
|
||||||
|
buildClipList(clips)
|
||||||
|
for clips in [
|
||||||
|
{
|
||||||
|
"A": (0, 0, 1000, 1000),
|
||||||
|
"B": (0, 0, 1000, 1000),
|
||||||
|
"C": (0, 0, 1000, 1000),
|
||||||
|
"D": (0, 0, 1000, 1000),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
# non-default masters' clip boxes can be 'sparse'
|
||||||
|
# (i.e. can omit explicit clip box for some glyphs)
|
||||||
|
# "A": (0, 0, 1000, 1000),
|
||||||
|
"B": (10, 0, 1000, 1000),
|
||||||
|
"C": (20, 20, 1020, 1020),
|
||||||
|
"D": (20, 20, 1020, 1020),
|
||||||
|
},
|
||||||
|
]
|
||||||
|
]
|
||||||
|
out = deepcopy(clipLists[0])
|
||||||
|
|
||||||
|
model = VariationModel([{}, {"ZZZZ": 1.0}])
|
||||||
|
merger = COLRVariationMerger(model, ["ZZZZ"], ttFont)
|
||||||
|
|
||||||
|
merger.mergeThings(out, clipLists)
|
||||||
|
|
||||||
|
assert compile_decompile(out, ttFont) == out
|
||||||
|
assert dump_xml(out, ttFont) == [
|
||||||
|
'<ClipList Format="1">',
|
||||||
|
" <Clip>",
|
||||||
|
' <Glyph value="A"/>',
|
||||||
|
' <ClipBox Format="1">',
|
||||||
|
' <xMin value="0"/>',
|
||||||
|
' <yMin value="0"/>',
|
||||||
|
' <xMax value="1000"/>',
|
||||||
|
' <yMax value="1000"/>',
|
||||||
|
" </ClipBox>",
|
||||||
|
" </Clip>",
|
||||||
|
" <Clip>",
|
||||||
|
' <Glyph value="B"/>',
|
||||||
|
' <ClipBox Format="2">',
|
||||||
|
' <xMin value="0"/>',
|
||||||
|
' <yMin value="0"/>',
|
||||||
|
' <xMax value="1000"/>',
|
||||||
|
' <yMax value="1000"/>',
|
||||||
|
' <VarIndexBase value="0"/>',
|
||||||
|
" </ClipBox>",
|
||||||
|
" </Clip>",
|
||||||
|
" <Clip>",
|
||||||
|
' <Glyph value="C"/>',
|
||||||
|
' <Glyph value="D"/>',
|
||||||
|
' <ClipBox Format="2">',
|
||||||
|
' <xMin value="0"/>',
|
||||||
|
' <yMin value="0"/>',
|
||||||
|
' <xMax value="1000"/>',
|
||||||
|
' <yMax value="1000"/>',
|
||||||
|
' <VarIndexBase value="4"/>',
|
||||||
|
" </ClipBox>",
|
||||||
|
" </Clip>",
|
||||||
|
"</ClipList>",
|
||||||
|
]
|
||||||
|
assert merger.varIdxes == [
|
||||||
|
0,
|
||||||
|
NO_VARIATION_INDEX,
|
||||||
|
NO_VARIATION_INDEX,
|
||||||
|
NO_VARIATION_INDEX,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
1,
|
||||||
|
]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user