[varLib/avar2] Add compile test

This commit is contained in:
Behdad Esfahbod 2023-05-30 13:03:40 -06:00
parent aabb26ed69
commit ff7f49a94c
4 changed files with 121 additions and 2 deletions

View File

@ -257,8 +257,8 @@ def _add_avar(font, axes, mappings, axisTags):
varIdxes = {axis: optimized[value] for axis, value in varIdxes.items()}
varIdxMap = ot.DeltaSetIndexMap()
varIdxMap.Format = 1
varIdxMap.mapping = [varIdxes[t] for t in axisTags]
varIdxMap.Format = 1 if len(varIdxMap.mapping) > 0xFFFF else 0
avar.majorVersion = 2
avar.table = ot.avar()

View File

@ -0,0 +1,62 @@
<?xml version='1.0' encoding='utf-8'?>
<designspace format="3">
<axes>
<axis default="400.0" maximum="900.0" minimum="100.0" name="weight" tag="wght">
<map input="100.0" output="26" />
<map input="200.0" output="39" />
<map input="300.0" output="58" />
<map input="400.0" output="90" />
<map input="500.0" output="108" />
<map input="600.0" output="128" />
<map input="700.0" output="151" />
<map input="800.0" output="169" />
<map input="900.0" output="190" />
<labelname xml:lang="en">Weight</labelname>
</axis>
<mappings>
<mapping>
<input>
<dimension name="weight" xvalue="90"/>
</input>
<output>
</output>
</mapping>
<mapping>
<input>
<dimension name="weight" xvalue="128"/>
</input>
<output>
<dimension name="weight" xvalue="138"/>
</output>
</mapping>
</mappings>
</axes>
<sources>
<source familyname="Test Family 3" filename="master_ufo/TestFamily3-Light.ufo" name="Test Family 3 Light" stylename="Light">
<location>
<dimension name="weight" xvalue="26.000000" />
</location>
</source>
<source familyname="Test Family 3" filename="master_ufo/TestFamily3-Regular.ufo" name="Test Family 3 Regular" stylename="Regular">
<lib copy="1" />
<groups copy="1" />
<features copy="1" />
<info copy="1" />
<location>
<dimension name="weight" xvalue="90.000000" />
</location>
</source>
<source familyname="Test Family 3" filename="master_ufo/TestFamily3-SemiBold.ufo" name="Test Family 3 SemiBold" stylename="SemiBold">
<location>
<dimension name="weight" xvalue="151.000000" />
</location>
</source>
<source familyname="Test Family 3" filename="master_ufo/TestFamily3-Bold.ufo" name="Test Family 3 Bold" stylename="Bold">
<location>
<dimension name="weight" xvalue="190.000000" />
</location>
</source>
</sources>
<instances>
</instances>
</designspace>

View File

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.14">
<avar>
<version major="2" minor="0"/>
<segment axis="wght">
<mapping from="-1.0" to="-1.0"/>
<mapping from="-0.6667" to="-0.7969"/>
<mapping from="-0.3333" to="-0.5"/>
<mapping from="0.0" to="0.0"/>
<mapping from="0.2" to="0.18"/>
<mapping from="0.4" to="0.38"/>
<mapping from="0.6" to="0.61"/>
<mapping from="0.8" to="0.79"/>
<mapping from="1.0" to="1.0"/>
</segment>
<VarIdxMap Format="0">
<!-- Omitted values default to 0xFFFF/0xFFFF (no variations) -->
<Map index="0" outer="0" inner="0"/>
</VarIdxMap>
<VarStore Format="1">
<Format value="1"/>
<VarRegionList>
<!-- RegionAxisCount=1 -->
<!-- RegionCount=1 -->
<Region index="0">
<VarRegionAxis index="0">
<StartCoord value="0.0"/>
<PeakCoord value="0.38"/>
<EndCoord value="0.38"/>
</VarRegionAxis>
</Region>
</VarRegionList>
<!-- VarDataCount=1 -->
<VarData index="0">
<!-- ItemCount=1 -->
<NumShorts value="1"/>
<!-- VarRegionCount=1 -->
<VarRegionIndex index="0" value="0"/>
<Item index="0" value="[1638]"/>
</VarData>
</VarStore>
</avar>
</ttFont>

View File

@ -227,6 +227,19 @@ class BuildTest(unittest.TestCase):
expected_ttx_name=test_name,
)
def test_varlib_avar2(self):
"""Designspace file contains a 'weight' axis with <map> elements
modifying the normalization mapping as well as <mappings> element
modifying it post-normalization. An 'avar' table is generated.
"""
test_name = "BuildAvar2"
self._run_varlib_build_test(
designspace_name=test_name,
font_name="TestFamily3",
tables=["avar"],
expected_ttx_name=test_name,
)
def test_varlib_build_feature_variations(self):
"""Designspace file contains <rules> element, used to build
GSUB FeatureVariations table.
@ -912,7 +925,6 @@ Expected: kern, mark.
Got: kern.
""",
):
self._run_varlib_build_test(
designspace_name="IncompatibleFeatures",
font_name="IncompatibleFeatures",