[varLib tests] More tests

This commit is contained in:
Miguel Sousa 2017-03-06 00:59:21 -08:00
parent 8444c92b9b
commit bbecfe38c4
10 changed files with 4053 additions and 14 deletions

View File

@ -0,0 +1,294 @@
<?xml version='1.0' encoding='utf-8'?>
<designspace format="3">
<sources>
<source familyname="Test Family" filename="master_ufo/TestFamily-Master0.ufo" name="master_0" stylename="Master0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</source>
<source familyname="Test Family" filename="master_ufo/TestFamily-Master1.ufo" name="master_1" stylename="Master1">
<lib copy="1" />
<groups copy="1" />
<info copy="1" />
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</source>
<source familyname="Test Family" filename="master_ufo/TestFamily-Master2.ufo" name="master_2" stylename="Master2">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</source>
<source familyname="Test Family" filename="master_ufo/TestFamily-Master3.ufo" name="master_3" stylename="Master3">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="100" />
</location>
</source>
<source familyname="Test Family" filename="master_ufo/TestFamily-Master0.ufo" name="master_0" stylename="Master0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="100" />
</location>
</source>
<source familyname="Test Family" filename="master_ufo/TestFamily-Master4.ufo" name="master_4" stylename="Master4">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="100" />
</location>
</source>
</sources>
<instances>
<instance familyname="Test Family" filename="instances/TestFamily-ExtraLight.ufo" name="instance_ExtraLight" postscriptfontname="TestFamily-ExtraLight" stylename="ExtraLight">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family" filename="instances/TestFamily-Light.ufo" name="instance_Light" postscriptfontname="TestFamily-Light" stylename="Light">
<location>
<dimension name="weight" xvalue="150" />
<dimension name="contrast" xvalue="0" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family" filename="instances/TestFamily-Regular.ufo" name="instance_Regular" postscriptfontname="TestFamily-Regular" stylename="Regular">
<location>
<dimension name="weight" xvalue="394" />
<dimension name="contrast" xvalue="0" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family" filename="instances/TestFamily-Semibold.ufo" name="instance_Semibold" postscriptfontname="TestFamily-Semibold" stylename="Semibold">
<location>
<dimension name="weight" xvalue="600" />
<dimension name="contrast" xvalue="0" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family" filename="instances/TestFamily-Bold.ufo" name="instance_Bold" postscriptfontname="TestFamily-Bold" stylename="Bold">
<location>
<dimension name="weight" xvalue="824" />
<dimension name="contrast" xvalue="0" />
</location>
<glyphs>
<glyph name="dollar" unicode="0x24">
<location>
<dimension name="weight" xvalue="824" />
<dimension name="contrast" xvalue="0" />
</location>
<masters>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_1">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_2">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_3">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_4">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
</masters>
</glyph>
</glyphs>
<kerning />
<info />
</instance>
<instance familyname="Test Family" filename="instances/TestFamily-Black.ufo" name="instance_Black" postscriptfontname="TestFamily-Black" stylename="Black">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
<glyphs>
<glyph name="dollar" unicode="0x24">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
<masters>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_1">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_2">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_3">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_4">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
</masters>
</glyph>
</glyphs>
<kerning />
<info />
</instance>
<instance familyname="Test Family" filename="instances/TestFamily-BlackMediumContrast.ufo" name="instance_BlackMediumContrast" postscriptfontname="TestFamily-BlackMediumContrast" stylename="Black Medium Contrast">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="50" />
</location>
<glyphs>
<glyph name="dollar" unicode="0x24">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
<masters>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_1">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_2">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_3">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_4">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
</masters>
</glyph>
</glyphs>
<kerning />
<info />
</instance>
<instance familyname="Test Family" filename="instances/TestFamily-BlackHighContrast.ufo" name="instance_BlackHighContrast" postscriptfontname="TestFamily-BlackHighContrast" stylename="Black High Contrast">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="100" />
</location>
<glyphs>
<glyph name="dollar" unicode="0x24">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
<masters>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_1">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_2">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_3">
<location>
<dimension name="weight" xvalue="1000" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_0">
<location>
<dimension name="weight" xvalue="0" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
<master glyphname="dollar.nostroke" source="master_4">
<location>
<dimension name="weight" xvalue="368" />
<dimension name="contrast" xvalue="0" />
</location>
</master>
</masters>
</glyph>
</glyphs>
<kerning />
<info />
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="utf-8"?>
<designspace format="3">
<axes>
<axis default="1000.0" maximum="1000.0" minimum="0.0" name="weight" tag="wght" />
</axes>
<sources>
<source familyname="Test Family 2" filename="master_ufo/TestFamily2-Master0.ufo" name="master_0" stylename="Master0">
<location>
<dimension name="weight" xvalue="0" />
</location>
</source>
<source familyname="Test Family 2" filename="master_ufo/TestFamily2-Master1.ufo" name="master_1" stylename="Master1">
<lib copy="1" />
<groups copy="1" />
<info copy="1" />
<location>
<dimension name="weight" xvalue="1000" />
</location>
</source>
</sources>
<instances>
<instance familyname="Test Family 2" filename="instances/TestFamily2-ExtraLight.ufo" name="instance_ExtraLight" postscriptfontname="TestFamily2-ExtraLight" stylename="ExtraLight">
<location>
<dimension name="weight" xvalue="0" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Light.ufo" name="instance_Light" postscriptfontname="TestFamily2-Light" stylename="Light">
<location>
<dimension name="weight" xvalue="100" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Regular.ufo" name="instance_Regular" postscriptfontname="TestFamily2-Regular" stylename="Regular">
<location>
<dimension name="weight" xvalue="368" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Semibold.ufo" name="instance_Semibold" postscriptfontname="TestFamily2-Semibold" stylename="Semibold">
<location>
<dimension name="weight" xvalue="600" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Bold.ufo" name="instance_Bold" postscriptfontname="TestFamily2-Bold" stylename="Bold">
<location>
<dimension name="weight" xvalue="824" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Black.ufo" name="instance_Black" postscriptfontname="TestFamily2-Black" stylename="Black">
<location>
<dimension name="weight" xvalue="1000" />
</location>
<kerning />
<info />
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<designspace format="3">
<sources>
<source familyname="Test Family 2" filename="master_ufo/TestFamily2-Master0.ufo" name="master_0" stylename="Master0">
<lib copy="1" />
<groups copy="1" />
<info copy="1" />
<location>
<dimension name="weight" xvalue="0" />
</location>
</source>
<source familyname="Test Family 2" filename="master_ufo/TestFamily2-Master1.ufo" name="master_1" stylename="Master1">
<location>
<dimension name="weight" xvalue="1000" />
</location>
</source>
</sources>
<instances>
<instance familyname="Test Family 2" filename="instances/TestFamily2-ExtraLight.ufo" name="instance_ExtraLight" postscriptfontname="TestFamily2-ExtraLight" stylename="ExtraLight">
<location>
<dimension name="weight" xvalue="0" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Light.ufo" name="instance_Light" postscriptfontname="TestFamily2-Light" stylename="Light">
<location>
<dimension name="weight" xvalue="100" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Regular.ufo" name="instance_Regular" postscriptfontname="TestFamily2-Regular" stylename="Regular">
<location>
<dimension name="weight" xvalue="368" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Semibold.ufo" name="instance_Semibold" postscriptfontname="TestFamily2-Semibold" stylename="Semibold">
<location>
<dimension name="weight" xvalue="600" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Bold.ufo" name="instance_Bold" postscriptfontname="TestFamily2-Bold" stylename="Bold">
<location>
<dimension name="weight" xvalue="824" />
</location>
<kerning />
<info />
</instance>
<instance familyname="Test Family 2" filename="instances/TestFamily2-Black.ufo" name="instance_Black" postscriptfontname="TestFamily2-Black" stylename="Black">
<location>
<dimension name="weight" xvalue="1000" />
</location>
<kerning />
<info />
</instance>
</instances>
</designspace>

View File

@ -0,0 +1,768 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.8">
<GDEF>
<Version value="0x00010003"/>
<VarStore Format="1">
<Format value="1"/>
<VarRegionList>
<!-- RegionAxisCount=1 -->
<!-- RegionCount=1 -->
<Region index="0">
<VarRegionAxis index="0">
<StartCoord value="0.0"/>
<PeakCoord value="1.0"/>
<EndCoord value="1.0"/>
</VarRegionAxis>
</Region>
</VarRegionList>
<!-- VarDataCount=1 -->
<VarData index="0">
<!-- ItemCount=0 -->
<NumShorts value="0"/>
<!-- VarRegionCount=1 -->
<VarRegionIndex index="0" value="0"/>
</VarData>
</VarStore>
</GDEF>
<HVAR>
<Version value="0x00010000"/>
<VarStore Format="1">
<Format value="1"/>
<VarRegionList>
<!-- RegionAxisCount=1 -->
<!-- RegionCount=1 -->
<Region index="0">
<VarRegionAxis index="0">
<StartCoord value="0.0"/>
<PeakCoord value="1.0"/>
<EndCoord value="1.0"/>
</VarRegionAxis>
</Region>
</VarRegionList>
<!-- VarDataCount=1 -->
<VarData index="0">
<!-- ItemCount=17 -->
<NumShorts value="1"/>
<!-- VarRegionCount=1 -->
<VarRegionIndex index="0" value="0"/>
<Item index="0" value="[80]"/>
<Item index="1" value="[0]"/>
<Item index="2" value="[64]"/>
<Item index="3" value="[50]"/>
<Item index="4" value="[40]"/>
<Item index="5" value="[108]"/>
<Item index="6" value="[56]"/>
<Item index="7" value="[98]"/>
<Item index="8" value="[206]"/>
<Item index="9" value="[40]"/>
<Item index="10" value="[72]"/>
<Item index="11" value="[128]"/>
<Item index="12" value="[-18]"/>
<Item index="13" value="[0]"/>
<Item index="14" value="[0]"/>
<Item index="15" value="[0]"/>
<Item index="16" value="[0]"/>
</VarData>
</VarStore>
</HVAR>
<fvar>
<!-- Weight -->
<Axis>
<AxisTag>wght</AxisTag>
<MinValue>0.0</MinValue>
<DefaultValue>0.0</DefaultValue>
<MaxValue>1000.0</MaxValue>
<AxisNameID>257</AxisNameID>
</Axis>
<!-- ExtraLight -->
<!-- PostScript: TestFamily2-ExtraLight -->
<NamedInstance postscriptNameID="259" subfamilyNameID="258">
<coord axis="wght" value="0.0"/>
</NamedInstance>
<!-- Light -->
<!-- PostScript: TestFamily2-Light -->
<NamedInstance postscriptNameID="261" subfamilyNameID="260">
<coord axis="wght" value="100.0"/>
</NamedInstance>
<!-- Regular -->
<!-- PostScript: TestFamily2-Regular -->
<NamedInstance postscriptNameID="263" subfamilyNameID="262">
<coord axis="wght" value="368.0"/>
</NamedInstance>
<!-- Semibold -->
<!-- PostScript: TestFamily2-Semibold -->
<NamedInstance postscriptNameID="265" subfamilyNameID="264">
<coord axis="wght" value="600.0"/>
</NamedInstance>
<!-- Bold -->
<!-- PostScript: TestFamily2-Bold -->
<NamedInstance postscriptNameID="267" subfamilyNameID="266">
<coord axis="wght" value="824.0"/>
</NamedInstance>
<!-- Black -->
<!-- PostScript: TestFamily2-Black -->
<NamedInstance postscriptNameID="269" subfamilyNameID="268">
<coord axis="wght" value="1000.0"/>
</NamedInstance>
</fvar>
<gvar>
<version value="1"/>
<reserved value="0"/>
<glyphVariations glyph=".notdef">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-20" y="0"/>
<delta pt="1" x="-20" y="0"/>
<delta pt="2" x="100" y="0"/>
<delta pt="3" x="100" y="0"/>
<delta pt="4" x="144" y="72"/>
<delta pt="5" x="-60" y="72"/>
<delta pt="6" x="14" y="-48"/>
<delta pt="7" x="40" y="-58"/>
<delta pt="8" x="40" y="-58"/>
<delta pt="9" x="68" y="-48"/>
<delta pt="10" x="40" y="58"/>
<delta pt="11" x="40" y="58"/>
<delta pt="12" x="26" y="62"/>
<delta pt="13" x="-50" y="-70"/>
<delta pt="14" x="132" y="-70"/>
<delta pt="15" x="56" y="62"/>
<delta pt="16" x="54" y="98"/>
<delta pt="17" x="-18" y="0"/>
<delta pt="18" x="54" y="-102"/>
<delta pt="19" x="28" y="98"/>
<delta pt="20" x="28" y="-102"/>
<delta pt="21" x="98" y="0"/>
<delta pt="22" x="0" y="0"/>
<delta pt="23" x="80" y="0"/>
<delta pt="24" x="0" y="0"/>
<delta pt="25" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="space">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="0" y="0"/>
<delta pt="1" x="0" y="0"/>
<delta pt="2" x="0" y="0"/>
<delta pt="3" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="A">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-20" y="0"/>
<delta pt="1" x="-58" y="-10"/>
<delta pt="2" x="122" y="-10"/>
<delta pt="3" x="84" y="0"/>
<delta pt="4" x="-64" y="0"/>
<delta pt="5" x="0" y="-80"/>
<delta pt="6" x="9" y="-94"/>
<delta pt="7" x="22" y="-91"/>
<delta pt="8" x="28" y="-104"/>
<delta pt="9" x="28" y="-104"/>
<delta pt="10" x="36" y="-92"/>
<delta pt="11" x="49" y="-94"/>
<delta pt="12" x="58" y="-80"/>
<delta pt="13" x="124" y="0"/>
<delta pt="14" x="20" y="-98"/>
<delta pt="15" x="20" y="7"/>
<delta pt="16" x="45" y="7"/>
<delta pt="17" x="45" y="-98"/>
<delta pt="18" x="0" y="0"/>
<delta pt="19" x="64" y="0"/>
<delta pt="20" x="0" y="-10"/>
<delta pt="21" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="a">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-10" y="0"/>
<delta pt="1" x="-24" y="0"/>
<delta pt="2" x="-22" y="31"/>
<delta pt="3" x="-22" y="25"/>
<delta pt="4" x="-22" y="23"/>
<delta pt="5" x="-46" y="29"/>
<delta pt="6" x="-64" y="26"/>
<delta pt="7" x="-69" y="-5"/>
<delta pt="8" x="-58" y="-86"/>
<delta pt="9" x="-16" y="-86"/>
<delta pt="10" x="8" y="-86"/>
<delta pt="11" x="31" y="-67"/>
<delta pt="12" x="14" y="-70"/>
<delta pt="13" x="-30" y="18"/>
<delta pt="14" x="0" y="34"/>
<delta pt="15" x="16" y="22"/>
<delta pt="16" x="16" y="22"/>
<delta pt="17" x="30" y="22"/>
<delta pt="18" x="78" y="19"/>
<delta pt="19" x="78" y="-32"/>
<delta pt="20" x="78" y="0"/>
<delta pt="21" x="-36" y="0"/>
<delta pt="22" x="-44" y="-16"/>
<delta pt="23" x="-46" y="-16"/>
<delta pt="24" x="-38" y="-13"/>
<delta pt="25" x="-18" y="0"/>
<delta pt="26" x="48" y="104"/>
<delta pt="27" x="25" y="104"/>
<delta pt="28" x="-30" y="81"/>
<delta pt="29" x="-64" y="56"/>
<delta pt="30" x="-64" y="-50"/>
<delta pt="31" x="32" y="-41"/>
<delta pt="32" x="110" y="-3"/>
<delta pt="33" x="110" y="38"/>
<delta pt="34" x="110" y="77"/>
<delta pt="35" x="70" y="104"/>
<delta pt="36" x="0" y="0"/>
<delta pt="37" x="50" y="0"/>
<delta pt="38" x="0" y="22"/>
<delta pt="39" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="d">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-12" y="0"/>
<delta pt="1" x="-15" y="0"/>
<delta pt="2" x="-18" y="12"/>
<delta pt="3" x="-18" y="12"/>
<delta pt="4" x="-18" y="19"/>
<delta pt="5" x="-17" y="22"/>
<delta pt="6" x="-28" y="22"/>
<delta pt="7" x="-32" y="22"/>
<delta pt="8" x="-44" y="26"/>
<delta pt="9" x="-60" y="32"/>
<delta pt="10" x="-64" y="14"/>
<delta pt="11" x="-64" y="-26"/>
<delta pt="12" x="78" y="-26"/>
<delta pt="13" x="78" y="0"/>
<delta pt="14" x="-36" y="0"/>
<delta pt="15" x="-44" y="-18"/>
<delta pt="16" x="-46" y="-18"/>
<delta pt="17" x="-42" y="-14"/>
<delta pt="18" x="-29" y="0"/>
<delta pt="19" x="32" y="112"/>
<delta pt="20" x="10" y="112"/>
<delta pt="21" x="-38" y="83"/>
<delta pt="22" x="-64" y="64"/>
<delta pt="23" x="-64" y="-48"/>
<delta pt="24" x="-39" y="-70"/>
<delta pt="25" x="-6" y="-90"/>
<delta pt="26" x="16" y="-90"/>
<delta pt="27" x="65" y="-90"/>
<delta pt="28" x="126" y="-13"/>
<delta pt="29" x="126" y="14"/>
<delta pt="30" x="126" y="45"/>
<delta pt="31" x="79" y="112"/>
<delta pt="32" x="0" y="0"/>
<delta pt="33" x="40" y="0"/>
<delta pt="34" x="0" y="-26"/>
<delta pt="35" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="f">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-12" y="0"/>
<delta pt="1" x="-12" y="-90"/>
<delta pt="2" x="-12" y="-80"/>
<delta pt="3" x="16" y="-26"/>
<delta pt="4" x="76" y="-26"/>
<delta pt="5" x="95" y="-26"/>
<delta pt="6" x="116" y="-30"/>
<delta pt="7" x="116" y="-28"/>
<delta pt="8" x="96" y="-128"/>
<delta pt="9" x="97" y="-132"/>
<delta pt="10" x="104" y="-132"/>
<delta pt="11" x="120" y="-132"/>
<delta pt="12" x="130" y="-99"/>
<delta pt="13" x="130" y="-80"/>
<delta pt="14" x="130" y="0"/>
<delta pt="15" x="-12" y="-84"/>
<delta pt="16" x="-12" y="20"/>
<delta pt="17" x="-2" y="22"/>
<delta pt="18" x="100" y="22"/>
<delta pt="19" x="100" y="-84"/>
<delta pt="20" x="0" y="0"/>
<delta pt="21" x="108" y="0"/>
<delta pt="22" x="0" y="-26"/>
<delta pt="23" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="n">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-38" y="0"/>
<delta pt="1" x="-38" y="22"/>
<delta pt="2" x="76" y="22"/>
<delta pt="3" x="84" y="38"/>
<delta pt="4" x="86" y="38"/>
<delta pt="5" x="78" y="28"/>
<delta pt="6" x="77" y="22"/>
<delta pt="7" x="78" y="22"/>
<delta pt="8" x="86" y="22"/>
<delta pt="9" x="90" y="0"/>
<delta pt="10" x="90" y="0"/>
<delta pt="11" x="90" y="0"/>
<delta pt="12" x="-52" y="0"/>
<delta pt="13" x="-52" y="-18"/>
<delta pt="14" x="-52" y="-50"/>
<delta pt="15" x="-22" y="-96"/>
<delta pt="16" x="14" y="-96"/>
<delta pt="17" x="35" y="-96"/>
<delta pt="18" x="78" y="-68"/>
<delta pt="19" x="104" y="-38"/>
<delta pt="20" x="104" y="0"/>
<delta pt="21" x="0" y="0"/>
<delta pt="22" x="56" y="0"/>
<delta pt="23" x="0" y="22"/>
<delta pt="24" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="t">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="46" y="0"/>
<delta pt="1" x="14" y="0"/>
<delta pt="2" x="-26" y="36"/>
<delta pt="3" x="-26" y="66"/>
<delta pt="4" x="-26" y="-84"/>
<delta pt="5" x="-16" y="-84"/>
<delta pt="6" x="-16" y="20"/>
<delta pt="7" x="-16" y="22"/>
<delta pt="8" x="0" y="12"/>
<delta pt="9" x="116" y="12"/>
<delta pt="10" x="116" y="22"/>
<delta pt="11" x="88" y="22"/>
<delta pt="12" x="88" y="-84"/>
<delta pt="13" x="116" y="-84"/>
<delta pt="14" x="116" y="73"/>
<delta pt="15" x="116" y="78"/>
<delta pt="16" x="120" y="106"/>
<delta pt="17" x="92" y="106"/>
<delta pt="18" x="90" y="106"/>
<delta pt="19" x="79" y="101"/>
<delta pt="20" x="74" y="98"/>
<delta pt="21" x="90" y="0"/>
<delta pt="22" x="91" y="2"/>
<delta pt="23" x="75" y="0"/>
<delta pt="24" x="0" y="0"/>
<delta pt="25" x="98" y="0"/>
<delta pt="26" x="0" y="12"/>
<delta pt="27" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="f_t">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-12" y="0"/>
<delta pt="1" x="-12" y="-90"/>
<delta pt="2" x="-12" y="-80"/>
<delta pt="3" x="16" y="-26"/>
<delta pt="4" x="76" y="-26"/>
<delta pt="5" x="95" y="-26"/>
<delta pt="6" x="116" y="-30"/>
<delta pt="7" x="116" y="-28"/>
<delta pt="8" x="96" y="-128"/>
<delta pt="9" x="97" y="-132"/>
<delta pt="10" x="104" y="-132"/>
<delta pt="11" x="120" y="-132"/>
<delta pt="12" x="130" y="-99"/>
<delta pt="13" x="130" y="-80"/>
<delta pt="14" x="130" y="0"/>
<delta pt="15" x="154" y="0"/>
<delta pt="16" x="122" y="0"/>
<delta pt="17" x="82" y="36"/>
<delta pt="18" x="82" y="66"/>
<delta pt="19" x="82" y="-84"/>
<delta pt="20" x="-12" y="-84"/>
<delta pt="21" x="-12" y="20"/>
<delta pt="22" x="-2" y="22"/>
<delta pt="23" x="92" y="22"/>
<delta pt="24" x="108" y="12"/>
<delta pt="25" x="224" y="12"/>
<delta pt="26" x="224" y="22"/>
<delta pt="27" x="196" y="22"/>
<delta pt="28" x="196" y="-84"/>
<delta pt="29" x="224" y="-84"/>
<delta pt="30" x="224" y="73"/>
<delta pt="31" x="224" y="78"/>
<delta pt="32" x="228" y="106"/>
<delta pt="33" x="200" y="106"/>
<delta pt="34" x="198" y="106"/>
<delta pt="35" x="187" y="101"/>
<delta pt="36" x="182" y="98"/>
<delta pt="37" x="198" y="0"/>
<delta pt="38" x="199" y="2"/>
<delta pt="39" x="183" y="0"/>
<delta pt="40" x="0" y="0"/>
<delta pt="41" x="206" y="0"/>
<delta pt="42" x="0" y="-26"/>
<delta pt="43" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="a.alt">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-12" y="0"/>
<delta pt="1" x="-15" y="0"/>
<delta pt="2" x="-18" y="12"/>
<delta pt="3" x="-18" y="12"/>
<delta pt="4" x="-18" y="19"/>
<delta pt="5" x="-13" y="22"/>
<delta pt="6" x="-24" y="22"/>
<delta pt="7" x="-32" y="22"/>
<delta pt="8" x="-36" y="24"/>
<delta pt="9" x="-42" y="18"/>
<delta pt="10" x="-40" y="18"/>
<delta pt="11" x="-28" y="22"/>
<delta pt="12" x="78" y="22"/>
<delta pt="13" x="78" y="0"/>
<delta pt="14" x="-36" y="0"/>
<delta pt="15" x="-44" y="-18"/>
<delta pt="16" x="-46" y="-18"/>
<delta pt="17" x="-42" y="-14"/>
<delta pt="18" x="-29" y="0"/>
<delta pt="19" x="32" y="112"/>
<delta pt="20" x="10" y="112"/>
<delta pt="21" x="-38" y="83"/>
<delta pt="22" x="-64" y="64"/>
<delta pt="23" x="-64" y="-48"/>
<delta pt="24" x="-39" y="-70"/>
<delta pt="25" x="-6" y="-90"/>
<delta pt="26" x="16" y="-90"/>
<delta pt="27" x="65" y="-90"/>
<delta pt="28" x="126" y="-13"/>
<delta pt="29" x="126" y="14"/>
<delta pt="30" x="126" y="45"/>
<delta pt="31" x="79" y="112"/>
<delta pt="32" x="0" y="0"/>
<delta pt="33" x="40" y="0"/>
<delta pt="34" x="0" y="22"/>
<delta pt="35" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="A.sc">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-20" y="0"/>
<delta pt="1" x="-52" y="22"/>
<delta pt="2" x="125" y="22"/>
<delta pt="3" x="92" y="0"/>
<delta pt="4" x="-54" y="0"/>
<delta pt="5" x="5" y="-60"/>
<delta pt="6" x="14" y="-71"/>
<delta pt="7" x="26" y="-58"/>
<delta pt="8" x="32" y="-66"/>
<delta pt="9" x="32" y="-66"/>
<delta pt="10" x="40" y="-58"/>
<delta pt="11" x="52" y="-70"/>
<delta pt="12" x="61" y="-60"/>
<delta pt="13" x="122" y="0"/>
<delta pt="14" x="21" y="-82"/>
<delta pt="15" x="21" y="12"/>
<delta pt="16" x="52" y="12"/>
<delta pt="17" x="52" y="-82"/>
<delta pt="18" x="0" y="0"/>
<delta pt="19" x="72" y="0"/>
<delta pt="20" x="0" y="22"/>
<delta pt="21" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="ampersand">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="22" y="0"/>
<delta pt="1" x="-16" y="0"/>
<delta pt="2" x="-16" y="18"/>
<delta pt="3" x="-16" y="10"/>
<delta pt="4" x="-16" y="22"/>
<delta pt="5" x="-14" y="24"/>
<delta pt="6" x="-11" y="9"/>
<delta pt="7" x="-8" y="-13"/>
<delta pt="8" x="-6" y="-37"/>
<delta pt="9" x="-6" y="-46"/>
<delta pt="10" x="-6" y="-58"/>
<delta pt="11" x="9" y="-94"/>
<delta pt="12" x="32" y="-94"/>
<delta pt="13" x="58" y="-94"/>
<delta pt="14" x="79" y="-58"/>
<delta pt="15" x="79" y="-44"/>
<delta pt="16" x="79" y="-23"/>
<delta pt="17" x="87" y="22"/>
<delta pt="18" x="100" y="62"/>
<delta pt="19" x="108" y="77"/>
<delta pt="20" x="111" y="87"/>
<delta pt="21" x="120" y="102"/>
<delta pt="22" x="120" y="110"/>
<delta pt="23" x="92" y="0"/>
<delta pt="24" x="72" y="-3"/>
<delta pt="25" x="36" y="-4"/>
<delta pt="26" x="23" y="-7"/>
<delta pt="27" x="2" y="-11"/>
<delta pt="28" x="-23" y="-20"/>
<delta pt="29" x="-32" y="-33"/>
<delta pt="30" x="-32" y="-42"/>
<delta pt="31" x="-32" y="-35"/>
<delta pt="32" x="-4" y="-10"/>
<delta pt="33" x="26" y="-10"/>
<delta pt="34" x="53" y="-10"/>
<delta pt="35" x="94" y="-28"/>
<delta pt="36" x="94" y="-48"/>
<delta pt="37" x="94" y="-52"/>
<delta pt="38" x="100" y="-48"/>
<delta pt="39" x="108" y="-31"/>
<delta pt="40" x="114" y="-3"/>
<delta pt="41" x="114" y="18"/>
<delta pt="42" x="114" y="57"/>
<delta pt="43" x="66" y="102"/>
<delta pt="44" x="42" y="102"/>
<delta pt="45" x="28" y="102"/>
<delta pt="46" x="11" y="88"/>
<delta pt="47" x="10" y="78"/>
<delta pt="48" x="6" y="66"/>
<delta pt="49" x="8" y="40"/>
<delta pt="50" x="4" y="32"/>
<delta pt="51" x="130" y="32"/>
<delta pt="52" x="129" y="32"/>
<delta pt="53" x="118" y="30"/>
<delta pt="54" x="106" y="20"/>
<delta pt="55" x="96" y="10"/>
<delta pt="56" x="51" y="0"/>
<delta pt="57" x="0" y="0"/>
<delta pt="58" x="128" y="0"/>
<delta pt="59" x="0" y="-10"/>
<delta pt="60" x="0" y="0"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="uni25CC">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-6" y="-1"/>
<delta pt="1" x="-10" y="-1"/>
<delta pt="2" x="-20" y="4"/>
<delta pt="3" x="-20" y="12"/>
<delta pt="4" x="-20" y="18"/>
<delta pt="5" x="-10" y="26"/>
<delta pt="6" x="-6" y="26"/>
<delta pt="7" x="8" y="26"/>
<delta pt="8" x="8" y="12"/>
<delta pt="9" x="8" y="-1"/>
<delta pt="10" x="-6" y="-3"/>
<delta pt="11" x="-12" y="-3"/>
<delta pt="12" x="-22" y="4"/>
<delta pt="13" x="-22" y="12"/>
<delta pt="14" x="-22" y="17"/>
<delta pt="15" x="-12" y="25"/>
<delta pt="16" x="-6" y="25"/>
<delta pt="17" x="8" y="25"/>
<delta pt="18" x="8" y="12"/>
<delta pt="19" x="8" y="-3"/>
<delta pt="20" x="-6" y="-5"/>
<delta pt="21" x="-10" y="-5"/>
<delta pt="22" x="-20" y="3"/>
<delta pt="23" x="-20" y="9"/>
<delta pt="24" x="-20" y="16"/>
<delta pt="25" x="-10" y="23"/>
<delta pt="26" x="-6" y="23"/>
<delta pt="27" x="8" y="23"/>
<delta pt="28" x="8" y="9"/>
<delta pt="29" x="8" y="-5"/>
<delta pt="30" x="-7" y="-1"/>
<delta pt="31" x="-13" y="-1"/>
<delta pt="32" x="-23" y="6"/>
<delta pt="33" x="-23" y="12"/>
<delta pt="34" x="-23" y="19"/>
<delta pt="35" x="-13" y="27"/>
<delta pt="36" x="-7" y="27"/>
<delta pt="37" x="-2" y="27"/>
<delta pt="38" x="8" y="19"/>
<delta pt="39" x="8" y="12"/>
<delta pt="40" x="8" y="-1"/>
<delta pt="41" x="-7" y="-5"/>
<delta pt="42" x="-13" y="-5"/>
<delta pt="43" x="-23" y="2"/>
<delta pt="44" x="-23" y="9"/>
<delta pt="45" x="-23" y="14"/>
<delta pt="46" x="-13" y="23"/>
<delta pt="47" x="-7" y="23"/>
<delta pt="48" x="-2" y="23"/>
<delta pt="49" x="8" y="14"/>
<delta pt="50" x="8" y="9"/>
<delta pt="51" x="8" y="-5"/>
<delta pt="52" x="-8" y="-1"/>
<delta pt="53" x="-13" y="-1"/>
<delta pt="54" x="-22" y="8"/>
<delta pt="55" x="-22" y="14"/>
<delta pt="56" x="-22" y="20"/>
<delta pt="57" x="-13" y="27"/>
<delta pt="58" x="-8" y="27"/>
<delta pt="59" x="6" y="27"/>
<delta pt="60" x="6" y="14"/>
<delta pt="61" x="6" y="-1"/>
<delta pt="62" x="-8" y="-5"/>
<delta pt="63" x="-13" y="-5"/>
<delta pt="64" x="-22" y="3"/>
<delta pt="65" x="-22" y="10"/>
<delta pt="66" x="-22" y="16"/>
<delta pt="67" x="-13" y="22"/>
<delta pt="68" x="-8" y="22"/>
<delta pt="69" x="6" y="22"/>
<delta pt="70" x="6" y="10"/>
<delta pt="71" x="6" y="-5"/>
<delta pt="72" x="-9" y="-1"/>
<delta pt="73" x="-15" y="-1"/>
<delta pt="74" x="-25" y="6"/>
<delta pt="75" x="-25" y="12"/>
<delta pt="76" x="-25" y="19"/>
<delta pt="77" x="-15" y="27"/>
<delta pt="78" x="-9" y="27"/>
<delta pt="79" x="-3" y="27"/>
<delta pt="80" x="7" y="19"/>
<delta pt="81" x="7" y="12"/>
<delta pt="82" x="7" y="-1"/>
<delta pt="83" x="-9" y="-5"/>
<delta pt="84" x="-15" y="-5"/>
<delta pt="85" x="-25" y="1"/>
<delta pt="86" x="-25" y="9"/>
<delta pt="87" x="-25" y="15"/>
<delta pt="88" x="-15" y="24"/>
<delta pt="89" x="-9" y="24"/>
<delta pt="90" x="-3" y="24"/>
<delta pt="91" x="7" y="15"/>
<delta pt="92" x="7" y="9"/>
<delta pt="93" x="7" y="-5"/>
<delta pt="94" x="-8" y="-1"/>
<delta pt="95" x="-16" y="-1"/>
<delta pt="96" x="-25" y="4"/>
<delta pt="97" x="-25" y="12"/>
<delta pt="98" x="-25" y="18"/>
<delta pt="99" x="-16" y="26"/>
<delta pt="100" x="-8" y="26"/>
<delta pt="101" x="6" y="26"/>
<delta pt="102" x="6" y="12"/>
<delta pt="103" x="6" y="-1"/>
<delta pt="104" x="-10" y="-3"/>
<delta pt="105" x="-25" y="-3"/>
<delta pt="106" x="-25" y="12"/>
<delta pt="107" x="-25" y="25"/>
<delta pt="108" x="-10" y="25"/>
<delta pt="109" x="-3" y="25"/>
<delta pt="110" x="5" y="17"/>
<delta pt="111" x="5" y="12"/>
<delta pt="112" x="5" y="-3"/>
<delta pt="113" x="-8" y="-4"/>
<delta pt="114" x="-16" y="-4"/>
<delta pt="115" x="-25" y="3"/>
<delta pt="116" x="-25" y="10"/>
<delta pt="117" x="-25" y="17"/>
<delta pt="118" x="-16" y="24"/>
<delta pt="119" x="-8" y="24"/>
<delta pt="120" x="6" y="24"/>
<delta pt="121" x="6" y="10"/>
<delta pt="122" x="6" y="-4"/>
<delta pt="123" x="0" y="0"/>
<delta pt="124" x="-18" y="0"/>
<delta pt="125" x="0" y="22"/>
<delta pt="126" x="0" y="1"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="uni0303">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-13" y="-8"/>
<delta pt="1" x="-4" y="-8"/>
<delta pt="2" x="-4" y="-30"/>
<delta pt="3" x="2" y="-52"/>
<delta pt="4" x="18" y="-52"/>
<delta pt="5" x="34" y="-52"/>
<delta pt="6" x="45" y="-13"/>
<delta pt="7" x="44" y="0"/>
<delta pt="8" x="-36" y="4"/>
<delta pt="9" x="-37" y="46"/>
<delta pt="10" x="0" y="40"/>
<delta pt="11" x="12" y="40"/>
<delta pt="12" x="4" y="40"/>
<delta pt="13" x="3" y="62"/>
<delta pt="14" x="-3" y="84"/>
<delta pt="15" x="-19" y="84"/>
<delta pt="16" x="-35" y="84"/>
<delta pt="17" x="-45" y="44"/>
<delta pt="18" x="-44" y="32"/>
<delta pt="19" x="36" y="28"/>
<delta pt="20" x="37" y="-15"/>
<delta pt="21" x="0" y="-8"/>
<delta pt="22" x="0" y="0"/>
<delta pt="23" x="0" y="0"/>
<delta pt="24" x="0" y="40"/>
<delta pt="25" x="0" y="8"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="uni0308">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="-28" y="-40"/>
<delta pt="1" x="-49" y="-40"/>
<delta pt="2" x="-76" y="-12"/>
<delta pt="3" x="-76" y="8"/>
<delta pt="4" x="-76" y="28"/>
<delta pt="5" x="-49" y="56"/>
<delta pt="6" x="-28" y="56"/>
<delta pt="7" x="-7" y="56"/>
<delta pt="8" x="20" y="28"/>
<delta pt="9" x="20" y="8"/>
<delta pt="10" x="20" y="-12"/>
<delta pt="11" x="-7" y="-40"/>
<delta pt="12" x="28" y="-40"/>
<delta pt="13" x="7" y="-40"/>
<delta pt="14" x="-20" y="-12"/>
<delta pt="15" x="-20" y="8"/>
<delta pt="16" x="-20" y="28"/>
<delta pt="17" x="7" y="56"/>
<delta pt="18" x="28" y="56"/>
<delta pt="19" x="49" y="56"/>
<delta pt="20" x="76" y="28"/>
<delta pt="21" x="76" y="8"/>
<delta pt="22" x="76" y="-12"/>
<delta pt="23" x="49" y="-40"/>
<delta pt="24" x="0" y="0"/>
<delta pt="25" x="0" y="0"/>
<delta pt="26" x="0" y="56"/>
<delta pt="27" x="0" y="40"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="uni0330">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="0" y="0"/>
<delta pt="1" x="0" y="0"/>
<delta pt="2" x="0" y="0"/>
<delta pt="3" x="0" y="40"/>
<delta pt="4" x="0" y="8"/>
</tuple>
</glyphVariations>
<glyphVariations glyph="uni0324">
<tuple>
<coord axis="wght" value="1.0"/>
<delta pt="0" x="0" y="4"/>
<delta pt="1" x="0" y="0"/>
<delta pt="2" x="0" y="0"/>
<delta pt="3" x="0" y="60"/>
<delta pt="4" x="0" y="36"/>
</tuple>
</glyphVariations>
</gvar>
</ttFont>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.7">
</ttFont>

View File

@ -0,0 +1,478 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.7">
<GlyphOrder>
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
<GlyphID id="0" name=".notdef"/>
<GlyphID id="1" name="uni0020"/>
<GlyphID id="2" name="uni0041"/>
<GlyphID id="3" name="uni0061"/>
<GlyphID id="4" name="uni0024"/>
<GlyphID id="5" name="uni0024.nostroke"/>
</GlyphOrder>
<hhea>
<tableVersion value="0x00010000"/>
<ascent value="918"/>
<descent value="-335"/>
<lineGap value="0"/>
<advanceWidthMax value="663"/>
<minLeftSideBearing value="5"/>
<minRightSideBearing value="7"/>
<xMaxExtent value="653"/>
<caretSlopeRise value="1"/>
<caretSlopeRun value="0"/>
<caretOffset value="0"/>
<reserved0 value="0"/>
<reserved1 value="0"/>
<reserved2 value="0"/>
<reserved3 value="0"/>
<metricDataFormat value="0"/>
<numberOfHMetrics value="5"/>
</hhea>
<maxp>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="0x10000"/>
<numGlyphs value="6"/>
<maxPoints value="62"/>
<maxContours value="4"/>
<maxCompositePoints value="0"/>
<maxCompositeContours value="0"/>
<maxZones value="1"/>
<maxTwilightPoints value="0"/>
<maxStorage value="0"/>
<maxFunctionDefs value="0"/>
<maxInstructionDefs value="0"/>
<maxStackElements value="0"/>
<maxSizeOfInstructions value="0"/>
<maxComponentElements value="0"/>
<maxComponentDepth value="0"/>
</maxp>
<OS_2>
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
will be recalculated by the compiler -->
<version value="4"/>
<xAvgCharWidth value="506"/>
<usWeightClass value="400"/>
<usWidthClass value="5"/>
<fsType value="00000000 00000100"/>
<ySubscriptXSize value="650"/>
<ySubscriptYSize value="600"/>
<ySubscriptXOffset value="0"/>
<ySubscriptYOffset value="75"/>
<ySuperscriptXSize value="650"/>
<ySuperscriptYSize value="600"/>
<ySuperscriptXOffset value="0"/>
<ySuperscriptYOffset value="350"/>
<yStrikeoutSize value="50"/>
<yStrikeoutPosition value="284"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="2"/>
<bSerifStyle value="4"/>
<bWeight value="6"/>
<bProportion value="3"/>
<bContrast value="5"/>
<bStrokeVariation value="4"/>
<bArmStyle value="5"/>
<bLetterForm value="2"/>
<bMidline value="2"/>
<bXHeight value="4"/>
</panose>
<ulUnicodeRange1 value="00000000 00000000 00000000 00000011"/>
<ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="ADBO"/>
<fsSelection value="00000000 01000000"/>
<usFirstCharIndex value="32"/>
<usLastCharIndex value="97"/>
<sTypoAscender value="730"/>
<sTypoDescender value="-270"/>
<sTypoLineGap value="0"/>
<usWinAscent value="918"/>
<usWinDescent value="335"/>
<ulCodePageRange1 value="00100000 00000000 00000000 00000011"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="474"/>
<sCapHeight value="677"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContext value="0"/>
</OS_2>
<hmtx>
<mtx name=".notdef" width="640" lsb="80"/>
<mtx name="uni0020" width="234" lsb="0"/>
<mtx name="uni0024" width="497" lsb="51"/>
<mtx name="uni0024.nostroke" width="497" lsb="51"/>
<mtx name="uni0041" width="663" lsb="5"/>
<mtx name="uni0061" width="508" lsb="46"/>
</hmtx>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x20" name="uni0020"/><!-- SPACE -->
<map code="0x24" name="uni0024"/><!-- DOLLAR SIGN -->
<map code="0x41" name="uni0041"/><!-- LATIN CAPITAL LETTER A -->
<map code="0x61" name="uni0061"/><!-- LATIN SMALL LETTER A -->
</cmap_format_4>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x20" name="uni0020"/><!-- SPACE -->
<map code="0x24" name="uni0024"/><!-- DOLLAR SIGN -->
<map code="0x41" name="uni0041"/><!-- LATIN CAPITAL LETTER A -->
<map code="0x61" name="uni0061"/><!-- LATIN SMALL LETTER A -->
</cmap_format_4>
</cmap>
<loca>
<!-- The 'loca' table will be calculated by the compiler -->
</loca>
<glyf>
<!-- The xMin, yMin, xMax and yMax values
will be recalculated by the compiler. -->
<TTGlyph name=".notdef" xMin="80" yMin="0" xMax="560" yMax="670">
<contour>
<pt x="80" y="0" on="1"/>
<pt x="500" y="670" on="1"/>
<pt x="560" y="670" on="1"/>
<pt x="140" y="0" on="1"/>
</contour>
<contour>
<pt x="560" y="0" on="1"/>
<pt x="500" y="0" on="1"/>
<pt x="80" y="670" on="1"/>
<pt x="140" y="670" on="1"/>
</contour>
<contour>
<pt x="140" y="50" on="1"/>
<pt x="500" y="50" on="1"/>
<pt x="500" y="620" on="1"/>
<pt x="140" y="620" on="1"/>
</contour>
<contour>
<pt x="80" y="0" on="1"/>
<pt x="80" y="670" on="1"/>
<pt x="560" y="670" on="1"/>
<pt x="560" y="0" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="uni0020"/><!-- contains no outline data -->
<TTGlyph name="uni0024" xMin="51" yMin="-115" xMax="461" yMax="750">
<contour>
<pt x="248" y="35" on="1"/>
<pt x="310" y="35" on="0"/>
<pt x="383" y="96" on="0"/>
<pt x="383" y="151" on="1"/>
<pt x="383" y="198" on="0"/>
<pt x="326" y="252" on="0"/>
<pt x="262" y="274" on="1"/>
<pt x="225" y="287" on="1"/>
<pt x="146" y="315" on="0"/>
<pt x="58" y="403" on="0"/>
<pt x="58" y="478" on="1"/>
<pt x="58" y="554" on="0"/>
<pt x="170" y="660" on="0"/>
<pt x="256" y="660" on="1"/>
<pt x="332" y="660" on="0"/>
<pt x="438" y="578" on="0"/>
<pt x="443" y="514" on="1"/>
<pt x="437" y="498" on="0"/>
<pt x="413" y="483" on="0"/>
<pt x="399" y="483" on="1"/>
<pt x="382" y="483" on="0"/>
<pt x="349" y="510" on="0"/>
<pt x="340" y="549" on="1"/>
<pt x="323" y="625" on="1"/>
<pt x="375" y="589" on="1"/>
<pt x="344" y="602" on="0"/>
<pt x="290" y="611" on="0"/>
<pt x="267" y="611" on="1"/>
<pt x="212" y="611" on="0"/>
<pt x="136" y="555" on="0"/>
<pt x="136" y="499" on="1"/>
<pt x="136" y="451" on="0"/>
<pt x="194" y="394" on="0"/>
<pt x="247" y="377" on="1"/>
<pt x="285" y="364" on="1"/>
<pt x="386" y="329" on="0"/>
<pt x="461" y="232" on="0"/>
<pt x="461" y="170" on="1"/>
<pt x="461" y="90" on="0"/>
<pt x="345" y="-13" on="0"/>
<pt x="243" y="-13" on="1"/>
<pt x="163" y="-13" on="0"/>
<pt x="54" y="68" on="0"/>
<pt x="51" y="133" on="1"/>
<pt x="58" y="148" on="0"/>
<pt x="80" y="164" on="0"/>
<pt x="96" y="164" on="1"/>
<pt x="114" y="164" on="0"/>
<pt x="145" y="138" on="0"/>
<pt x="154" y="98" on="1"/>
<pt x="171" y="22" on="1"/>
<pt x="118" y="58" on="1"/>
<pt x="152" y="44" on="0"/>
<pt x="219" y="35" on="0"/>
</contour>
<contour>
<pt x="279" y="322" on="1"/>
<pt x="239" y="322" on="1"/>
<pt x="239" y="750" on="1"/>
<pt x="279" y="750" on="1"/>
</contour>
<contour>
<pt x="238" y="-115" on="1"/>
<pt x="238" y="322" on="1"/>
<pt x="278" y="322" on="1"/>
<pt x="278" y="-115" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="uni0024.nostroke" xMin="51" yMin="-115" xMax="461" yMax="750">
<contour>
<pt x="248" y="35" on="1"/>
<pt x="310" y="35" on="0"/>
<pt x="383" y="96" on="0"/>
<pt x="383" y="151" on="1"/>
<pt x="383" y="198" on="0"/>
<pt x="326" y="252" on="0"/>
<pt x="262" y="274" on="1"/>
<pt x="225" y="287" on="1"/>
<pt x="146" y="315" on="0"/>
<pt x="58" y="403" on="0"/>
<pt x="58" y="478" on="1"/>
<pt x="58" y="554" on="0"/>
<pt x="170" y="660" on="0"/>
<pt x="256" y="660" on="1"/>
<pt x="332" y="660" on="0"/>
<pt x="438" y="578" on="0"/>
<pt x="443" y="514" on="1"/>
<pt x="437" y="498" on="0"/>
<pt x="413" y="483" on="0"/>
<pt x="399" y="483" on="1"/>
<pt x="382" y="483" on="0"/>
<pt x="349" y="510" on="0"/>
<pt x="340" y="549" on="1"/>
<pt x="323" y="625" on="1"/>
<pt x="375" y="589" on="1"/>
<pt x="344" y="602" on="0"/>
<pt x="290" y="611" on="0"/>
<pt x="267" y="611" on="1"/>
<pt x="212" y="611" on="0"/>
<pt x="136" y="555" on="0"/>
<pt x="136" y="499" on="1"/>
<pt x="136" y="451" on="0"/>
<pt x="194" y="394" on="0"/>
<pt x="247" y="377" on="1"/>
<pt x="285" y="364" on="1"/>
<pt x="386" y="329" on="0"/>
<pt x="461" y="232" on="0"/>
<pt x="461" y="170" on="1"/>
<pt x="461" y="90" on="0"/>
<pt x="345" y="-13" on="0"/>
<pt x="243" y="-13" on="1"/>
<pt x="163" y="-13" on="0"/>
<pt x="54" y="68" on="0"/>
<pt x="51" y="133" on="1"/>
<pt x="58" y="148" on="0"/>
<pt x="80" y="164" on="0"/>
<pt x="96" y="164" on="1"/>
<pt x="114" y="164" on="0"/>
<pt x="145" y="138" on="0"/>
<pt x="154" y="98" on="1"/>
<pt x="171" y="22" on="1"/>
<pt x="118" y="58" on="1"/>
<pt x="152" y="44" on="0"/>
<pt x="219" y="35" on="0"/>
</contour>
<contour>
<pt x="279" y="635" on="1"/>
<pt x="239" y="635" on="1"/>
<pt x="239" y="750" on="1"/>
<pt x="279" y="750" on="1"/>
</contour>
<contour>
<pt x="238" y="-115" on="1"/>
<pt x="238" y="12" on="1"/>
<pt x="278" y="12" on="1"/>
<pt x="278" y="-115" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="uni0041" xMin="5" yMin="0" xMax="653" yMax="675">
<contour>
<pt x="5" y="0" on="1"/>
<pt x="5" y="40" on="1"/>
<pt x="105" y="55" on="1"/>
<pt x="125" y="55" on="1"/>
<pt x="235" y="40" on="1"/>
<pt x="235" y="0" on="1"/>
</contour>
<contour>
<pt x="71" y="0" on="1"/>
<pt x="303" y="675" on="1"/>
<pt x="363" y="675" on="1"/>
<pt x="593" y="0" on="1"/>
<pt x="500" y="0" on="1"/>
<pt x="299" y="599" on="1"/>
<pt x="322" y="599" on="1"/>
<pt x="118" y="0" on="1"/>
</contour>
<contour>
<pt x="170" y="219" on="1"/>
<pt x="186" y="265" on="1"/>
<pt x="456" y="265" on="1"/>
<pt x="472" y="219" on="1"/>
</contour>
<contour>
<pt x="383" y="0" on="1"/>
<pt x="383" y="40" on="1"/>
<pt x="509" y="55" on="1"/>
<pt x="529" y="55" on="1"/>
<pt x="653" y="40" on="1"/>
<pt x="653" y="0" on="1"/>
</contour>
<instructions/>
</TTGlyph>
<TTGlyph name="uni0061" xMin="46" yMin="-13" xMax="501" yMax="487">
<contour>
<pt x="46" y="112" on="1"/>
<pt x="46" y="154" on="0"/>
<pt x="110" y="225" on="0"/>
<pt x="210" y="262" on="1"/>
<pt x="242" y="273" on="0"/>
<pt x="328" y="297" on="0"/>
<pt x="365" y="304" on="1"/>
<pt x="365" y="268" on="1"/>
<pt x="331" y="261" on="0"/>
<pt x="254" y="237" on="0"/>
<pt x="231" y="228" on="1"/>
<pt x="164" y="202" on="0"/>
<pt x="131" y="148" on="0"/>
<pt x="131" y="126" on="1"/>
<pt x="131" y="86" on="0"/>
<pt x="178" y="52" on="0"/>
<pt x="212" y="52" on="1"/>
<pt x="238" y="52" on="0"/>
<pt x="283" y="76" on="0"/>
<pt x="330" y="110" on="1"/>
<pt x="350" y="125" on="1"/>
<pt x="364" y="104" on="1"/>
<pt x="335" y="75" on="1"/>
<pt x="290" y="30" on="0"/>
<pt x="226" y="-13" on="0"/>
<pt x="180" y="-13" on="1"/>
<pt x="125" y="-13" on="0"/>
<pt x="46" y="50" on="0"/>
</contour>
<contour>
<pt x="325" y="92" on="1"/>
<pt x="325" y="320" on="1"/>
<pt x="325" y="394" on="0"/>
<pt x="280" y="442" on="0"/>
<pt x="231" y="442" on="1"/>
<pt x="214" y="442" on="0"/>
<pt x="169" y="435" on="0"/>
<pt x="141" y="424" on="1"/>
<pt x="181" y="455" on="1"/>
<pt x="155" y="369" on="1"/>
<pt x="148" y="347" on="0"/>
<pt x="124" y="324" on="0"/>
<pt x="104" y="324" on="1"/>
<pt x="62" y="324" on="0"/>
<pt x="59" y="364" on="1"/>
<pt x="73" y="421" on="0"/>
<pt x="177" y="487" on="0"/>
<pt x="252" y="487" on="1"/>
<pt x="329" y="487" on="0"/>
<pt x="405" y="408" on="0"/>
<pt x="405" y="314" on="1"/>
<pt x="405" y="102" on="1"/>
<pt x="405" y="68" on="0"/>
<pt x="425" y="41" on="0"/>
<pt x="442" y="41" on="1"/>
<pt x="455" y="41" on="0"/>
<pt x="473" y="53" on="0"/>
<pt x="481" y="63" on="1"/>
<pt x="501" y="41" on="1"/>
<pt x="469" y="-10" on="0"/>
<pt x="416" y="-10" on="1"/>
<pt x="375" y="-10" on="0"/>
<pt x="325" y="46" on="0"/>
</contour>
<instructions/>
</TTGlyph>
</glyf>
<name>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Test Family
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
Version 1.001;ADBO;Test Family Regular
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
Test Family
</namerecord>
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
Version 1.001
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
TestFamily-Master1
</namerecord>
<namerecord nameID="9" platformID="3" platEncID="1" langID="0x409">
Frank Grießhammer
</namerecord>
<namerecord nameID="17" platformID="3" platEncID="1" langID="0x409">
Master 1
</namerecord>
</name>
<post>
<formatType value="2.0"/>
<italicAngle value="0.0"/>
<underlinePosition value="-75"/>
<underlineThickness value="50"/>
<isFixedPitch value="0"/>
<minMemType42 value="0"/>
<maxMemType42 value="0"/>
<minMemType1 value="0"/>
<maxMemType1 value="0"/>
<psNames>
<!-- This file uses unique glyph names based on the information
found in the 'post' table. Since these names might not be unique,
we have to invent artificial names in case of clashes. In order to
be able to retain the original information, we need a name to
ps name mapping for those cases where they differ. That's what
you see below.
-->
</psNames>
<extraNames>
<!-- following are the name that are not taken from the standard Mac glyph order -->
<psName name="dollar.nostroke"/>
<psName name="uni0020"/>
<psName name="uni0041"/>
<psName name="uni0061"/>
<psName name="uni0024"/>
<psName name="uni0024.nostroke"/>
</extraNames>
</post>
</ttFont>

View File

@ -1,7 +1,9 @@
from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont
from fontTools.varLib import build
from fontTools.varLib.interpolate_layout import interpolate_layout
from fontTools.varLib.interpolate_layout import main as interpolate_layout_main
import difflib
import os
import shutil
@ -37,10 +39,13 @@ class InterpolateLayoutTest(unittest.TestCase):
return os.path.join(path, "data", "test_results", test_file_or_folder)
@staticmethod
def get_file_list(folder, suffix):
def get_file_list(folder, suffix, prefix=''):
all_files = os.listdir(folder)
return [os.path.abspath(os.path.join(folder, p)) for p in all_files
if p.endswith(suffix)]
file_list = []
for p in all_files:
if p.startswith(prefix) and p.endswith(suffix):
file_list.append(os.path.abspath(os.path.join(folder, p)))
return file_list
def temp_path(self, suffix):
self.temp_dir()
@ -104,8 +109,8 @@ class InterpolateLayoutTest(unittest.TestCase):
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
ttx_paths = self.get_file_list(ttx_dir, '.ttx')
self.temp_dir()
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily2-')
for path in ttx_paths:
self.compile_font(path, suffix, self.tempdir)
@ -118,5 +123,88 @@ class InterpolateLayoutTest(unittest.TestCase):
self.check_ttx_dump(instfont, expected_ttx_path, tables, suffix)
def test_varlib_interpolate_layout_no_GSUB_ttf(self):
"""The base master has no GSUB table.
The variable font will end up without a GSUB table.
"""
suffix = '.ttf'
ds_path = self.get_test_input('InterpolateLayout2.designspace')
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
self.temp_dir()
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily2-')
for path in ttx_paths:
self.compile_font(path, suffix, self.tempdir)
finder = lambda s: s.replace(ufo_dir, self.tempdir).replace('.ufo', suffix)
instfont = interpolate_layout(ds_path, {'weight': 500}, finder)
tables = ['GSUB']
expected_ttx_path = self.get_test_output('InterpolateLayout2.ttx')
self.expect_ttx(instfont, expected_ttx_path, tables)
self.check_ttx_dump(instfont, expected_ttx_path, tables, suffix)
def test_varlib_interpolate_layout_GSUB_only_no_axes_ttf(self):
"""Only GSUB, and only in the base master.
Designspace file has no <axes> element.
The variable font will inherit the GSUB table from the
base master.
"""
suffix = '.ttf'
ds_path = self.get_test_input('InterpolateLayout3.designspace')
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
self.temp_dir()
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily2-')
for path in ttx_paths:
self.compile_font(path, suffix, self.tempdir)
finder = lambda s: s.replace(ufo_dir, self.tempdir).replace('.ufo', suffix)
instfont = interpolate_layout(ds_path, {'weight': 500}, finder)
tables = ['GSUB']
expected_ttx_path = self.get_test_output('InterpolateLayout.ttx')
self.expect_ttx(instfont, expected_ttx_path, tables)
self.check_ttx_dump(instfont, expected_ttx_path, tables, suffix)
def test_varlib_interpolate_layout_main_ttf(self):
"""Mostly for testing varLib.interpolate_layout.main()
"""
suffix = '.ttf'
ds_path = self.get_test_input('Build.designspace')
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
self.temp_dir()
ttf_dir = os.path.join(self.tempdir, 'master_ttf_interpolatable')
os.makedirs(ttf_dir)
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily-')
for path in ttx_paths:
self.compile_font(path, suffix, ttf_dir)
finder = lambda s: s.replace(ufo_dir, ttf_dir).replace('.ufo', suffix)
varfont, _, _ = build(ds_path, finder)
varfont_name = 'InterpolateLayoutMain'
varfont_path = os.path.join(self.tempdir, varfont_name + suffix)
varfont.save(varfont_path)
ds_copy = os.path.splitext(varfont_path)[0] + '.designspace'
shutil.copy2(ds_path, ds_copy)
args = [ds_copy, 'wght=500', 'cntr=50']
interpolate_layout_main(args)
instfont_path = os.path.splitext(varfont_path)[0] + '-instance' + suffix
instfont = TTFont(instfont_path)
tables = [table_tag for table_tag in instfont.keys() if table_tag != 'head']
expected_ttx_path = self.get_test_output(varfont_name + '.ttx')
self.expect_ttx(instfont, expected_ttx_path, tables)
if __name__ == "__main__":
sys.exit(unittest.main())

View File

@ -38,10 +38,13 @@ class MutatorTest(unittest.TestCase):
return os.path.join(path, "data", "test_results", test_file_or_folder)
@staticmethod
def get_file_list(folder, suffix):
def get_file_list(folder, suffix, prefix=''):
all_files = os.listdir(folder)
return [os.path.abspath(os.path.join(folder, p)) for p in all_files
if p.endswith(suffix)]
file_list = []
for p in all_files:
if p.startswith(prefix) and p.endswith(suffix):
file_list.append(os.path.abspath(os.path.join(folder, p)))
return file_list
def temp_path(self, suffix):
self.temp_dir()
@ -94,8 +97,8 @@ class MutatorTest(unittest.TestCase):
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
ttx_paths = self.get_file_list(ttx_dir, '.ttx')
self.temp_dir()
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily-')
for path in ttx_paths:
self.compile_font(path, suffix, self.tempdir)
@ -111,8 +114,8 @@ class MutatorTest(unittest.TestCase):
instfont_path = os.path.splitext(varfont_path)[0] + '-instance' + suffix
instfont = TTFont(instfont_path)
tables = [table_tag for table_tag in instfont.keys() if table_tag != 'head']
expected_ttx = self.get_test_output(varfont_name + '.ttx')
self.expect_ttx(instfont, expected_ttx, tables)
expected_ttx_path = self.get_test_output(varfont_name + '.ttx')
self.expect_ttx(instfont, expected_ttx_path, tables)
if __name__ == "__main__":

View File

@ -2,6 +2,7 @@ from __future__ import print_function, division, absolute_import
from fontTools.misc.py23 import *
from fontTools.ttLib import TTFont
from fontTools.varLib import build
from fontTools.varLib import main as varLib_main
import difflib
import os
import shutil
@ -37,10 +38,13 @@ class BuildTest(unittest.TestCase):
return os.path.join(path, "data", "test_results", test_file_or_folder)
@staticmethod
def get_file_list(folder, suffix):
def get_file_list(folder, suffix, prefix=''):
all_files = os.listdir(folder)
return [os.path.abspath(os.path.join(folder, p)) for p in all_files
if p.endswith(suffix)]
file_list = []
for p in all_files:
if p.startswith(prefix) and p.endswith(suffix):
file_list.append(os.path.abspath(os.path.join(folder, p)))
return file_list
def temp_path(self, suffix):
self.temp_dir()
@ -94,13 +98,16 @@ class BuildTest(unittest.TestCase):
# -----
def test_varlib_build_ttf(self):
"""Designspace file contains <axes> element.
build() is called without an axisMap parameter.
"""
suffix = '.ttf'
ds_path = self.get_test_input('Build.designspace')
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
ttx_paths = self.get_file_list(ttx_dir, '.ttx')
self.temp_dir()
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily-')
for path in ttx_paths:
self.compile_font(path, suffix, self.tempdir)
@ -113,5 +120,78 @@ class BuildTest(unittest.TestCase):
self.check_ttx_dump(varfont, expected_ttx_path, tables, suffix)
def test_varlib_build2_ttf(self):
"""Designspace file does not contain an <axes> element.
build() is called with an axisMap parameter.
"""
suffix = '.ttf'
ds_path = self.get_test_input('Build2.designspace')
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
self.temp_dir()
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily-')
for path in ttx_paths:
self.compile_font(path, suffix, self.tempdir)
axisMap = {'contrast': ('cntr', 'Contrast')}
finder = lambda s: s.replace(ufo_dir, self.tempdir).replace('.ufo', suffix)
varfont, model, _ = build(ds_path, finder, axisMap)
tables = ['GDEF', 'HVAR', 'fvar', 'gvar']
expected_ttx_path = self.get_test_output('Build.ttx')
self.expect_ttx(varfont, expected_ttx_path, tables)
self.check_ttx_dump(varfont, expected_ttx_path, tables, suffix)
def test_varlib_build3_ttf(self):
"""Designspace file does not contain an <axes> element.
build() is called without an axisMap parameter.
"""
suffix = '.ttf'
ds_path = self.get_test_input('InterpolateLayout3.designspace')
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
self.temp_dir()
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily2-')
for path in ttx_paths:
self.compile_font(path, suffix, self.tempdir)
finder = lambda s: s.replace(ufo_dir, self.tempdir).replace('.ufo', suffix)
varfont, model, _ = build(ds_path, finder)
tables = ['GDEF', 'HVAR', 'fvar', 'gvar']
expected_ttx_path = self.get_test_output('Build3.ttx')
self.expect_ttx(varfont, expected_ttx_path, tables)
self.check_ttx_dump(varfont, expected_ttx_path, tables, suffix)
def test_varlib_main_ttf(self):
"""Mostly for testing varLib.main()
"""
suffix = '.ttf'
ds_path = self.get_test_input('Build.designspace')
ufo_dir = self.get_test_input('master_ufo')
ttx_dir = self.get_test_input('master_ttx_interpolatable_ttf')
self.temp_dir()
ttf_dir = os.path.join(self.tempdir, 'master_ttf_interpolatable')
os.makedirs(ttf_dir)
ttx_paths = self.get_file_list(ttx_dir, '.ttx', 'TestFamily-')
for path in ttx_paths:
self.compile_font(path, suffix, ttf_dir)
ds_copy = os.path.join(self.tempdir, 'BuildMain.designspace')
shutil.copy2(ds_path, ds_copy)
varLib_main([ds_copy])
varfont_path = os.path.splitext(ds_copy)[0] + '-VF' + suffix
varfont = TTFont(varfont_path)
tables = [table_tag for table_tag in varfont.keys() if table_tag != 'head']
expected_ttx_path = self.get_test_output('BuildMain.ttx')
self.expect_ttx(varfont, expected_ttx_path, tables)
if __name__ == "__main__":
sys.exit(unittest.main())