[instancer/CFF2] Add another test

This one has private blend values.
This commit is contained in:
Behdad Esfahbod 2024-05-14 13:46:23 -06:00
parent b3dc48a967
commit 267fa79cca
3 changed files with 1056 additions and 7 deletions

View File

@ -0,0 +1,648 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="OTTO" ttLibVersion="4.51">
<GlyphOrder>
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
<GlyphID id="0" name=".notdef"/>
<GlyphID id="1" name="uni6868"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="2.004"/>
<checkSumAdjustment value="0x7377173c"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00000011"/>
<unitsPerEm value="1000"/>
<created value="Thu Apr 29 17:39:47 2021"/>
<modified value="Thu Apr 29 08:51:43 2021"/>
<xMin value="46"/>
<yMin value="-72"/>
<xMax value="960"/>
<yMax value="833"/>
<macStyle value="00000000 00000000"/>
<lowestRecPPEM value="3"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="0x00010000"/>
<ascent value="1160"/>
<descent value="-288"/>
<lineGap value="0"/>
<advanceWidthMax value="1000"/>
<minLeftSideBearing value="46"/>
<minRightSideBearing value="40"/>
<xMaxExtent value="960"/>
<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="1"/>
</hhea>
<maxp>
<tableVersion value="0x5000"/>
<numGlyphs value="2"/>
</maxp>
<OS_2>
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
will be recalculated by the compiler -->
<version value="3"/>
<xAvgCharWidth value="989"/>
<usWeightClass value="100"/>
<usWidthClass value="5"/>
<fsType value="00000000 00000000"/>
<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="325"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="2"/>
<bSerifStyle value="11"/>
<bWeight value="2"/>
<bProportion value="0"/>
<bContrast value="0"/>
<bStrokeVariation value="0"/>
<bArmStyle value="0"/>
<bLetterForm value="0"/>
<bMidline value="0"/>
<bXHeight value="0"/>
</panose>
<ulUnicodeRange1 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange2 value="00001000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="ADBO"/>
<fsSelection value="00000000 00000000"/>
<usFirstCharIndex value="26728"/>
<usLastCharIndex value="26728"/>
<sTypoAscender value="880"/>
<sTypoDescender value="-120"/>
<sTypoLineGap value="0"/>
<usWinAscent value="1160"/>
<usWinDescent value="288"/>
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="543"/>
<sCapHeight value="733"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContext value="6"/>
</OS_2>
<hmtx>
<mtx name=".notdef" width="1000" lsb="100"/>
<mtx name="uni6868" width="1000" lsb="46"/>
</hmtx>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x6868" name="uni6868"/><!-- CJK UNIFIED IDEOGRAPH-6868 -->
</cmap_format_4>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x6868" name="uni6868"/><!-- CJK UNIFIED IDEOGRAPH-6868 -->
</cmap_format_4>
</cmap>
<name>
<namerecord nameID="0" platformID="3" platEncID="1" langID="0x409">
© 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'.
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Noto Sans SC
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
2.004;ADBO;NotoSansSC-Thin;ADOBE
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
Noto Sans SC
</namerecord>
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
Version 2.004;hotconv 1.0.118;makeotfexe 2.5.65603
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Thin
</namerecord>
<namerecord nameID="256" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="258" platformID="3" platEncID="1" langID="0x409">
Thin
</namerecord>
<namerecord nameID="259" platformID="3" platEncID="1" langID="0x409">
Light
</namerecord>
<namerecord nameID="260" platformID="3" platEncID="1" langID="0x409">
DemiLight
</namerecord>
<namerecord nameID="261" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="262" platformID="3" platEncID="1" langID="0x409">
Medium
</namerecord>
<namerecord nameID="263" platformID="3" platEncID="1" langID="0x409">
Bold
</namerecord>
<namerecord nameID="264" platformID="3" platEncID="1" langID="0x409">
Black
</namerecord>
<namerecord nameID="265" platformID="3" platEncID="1" langID="0x409">
Weight
</namerecord>
<namerecord nameID="266" platformID="3" platEncID="1" langID="0x409">
Thin
</namerecord>
<namerecord nameID="267" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Thin
</namerecord>
<namerecord nameID="268" platformID="3" platEncID="1" langID="0x409">
Light
</namerecord>
<namerecord nameID="269" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Light
</namerecord>
<namerecord nameID="270" platformID="3" platEncID="1" langID="0x409">
DemiLight
</namerecord>
<namerecord nameID="271" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-DemiLight
</namerecord>
<namerecord nameID="272" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="273" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Regular
</namerecord>
<namerecord nameID="274" platformID="3" platEncID="1" langID="0x409">
Medium
</namerecord>
<namerecord nameID="275" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Medium
</namerecord>
<namerecord nameID="276" platformID="3" platEncID="1" langID="0x409">
Bold
</namerecord>
<namerecord nameID="277" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Bold
</namerecord>
<namerecord nameID="278" platformID="3" platEncID="1" langID="0x409">
Black
</namerecord>
<namerecord nameID="279" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Black
</namerecord>
</name>
<post>
<formatType value="3.0"/>
<italicAngle value="0.0"/>
<underlinePosition value="-125"/>
<underlineThickness value="50"/>
<isFixedPitch value="0"/>
<minMemType42 value="0"/>
<maxMemType42 value="0"/>
<minMemType1 value="0"/>
<maxMemType1 value="0"/>
</post>
<CFF2>
<major value="2"/>
<minor value="0"/>
<CFFFont name="CFF2Font">
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FDSelect format="0"/>
<FDArray>
<FontDict index="0">
<Private>
<BlueValues value="-250 -250 1100 1100"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="35"/>
<StdVW value="28"/>
<StemSnapV value="28 46"/>
<LanguageGroup value="1"/>
<ExpansionFactor value="0.06"/>
</Private>
</FontDict>
<FontDict index="1">
<Private>
<BlueValues value="-250 -250 1100 1100"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="35"/>
<StdVW value="28"/>
<StemSnapV value="28 46"/>
<LanguageGroup value="1"/>
<ExpansionFactor value="0.06"/>
</Private>
</FontDict>
</FDArray>
<CharStrings>
<CharString name=".notdef" fdSelectIndex="0">
</CharString>
<CharString name="uni6868" fdSelectIndex="1">
69 271 -16 33 2 blend
rmoveto
-30 856 30 -95 40 95 3 blend
vlineto
-443 103 -81 -61 2 blend
rmoveto
-446 30 446 5 119 -5 3 blend
vlineto
-62 -110 -125 -2 2 blend
rmoveto
-87 -119 -170 -109 -147 -49 7 -5 9 -11 5 -9 145 54 174 111 90 124 11 40 23 37 5 14 24 -25 35 -45 16 -26 1 -4 -29 -15 1 -12 18 blend
rrcurveto
71 12 39 33 2 blend
rmoveto
-27 -13 -86 -39 2 blend
rlineto
88 -127 173 -108 158 -50 5 9 9 10 7 6 -159 45 -170 104 -84 124 7 22 -25 14 -16 1 16 28 35 46 25 23 19 -10 19 -35 6 -50 18 blend
rrcurveto
-451 501 -120 18 2 blend
rmoveto
42 -51 44 -70 16 -45 -11 5 -10 8 -3 5 6 blend
rrcurveto
28 15 -17 44 -44 68 -42 50 86 50 3 -4 6 -9 9 -8 8 blend
rlinecurve
183 56 -86 -8 2 blend
rmoveto
-472 28 472 -50 111 50 3 blend
vlineto
-273 -379 -84 31 2 blend
rmoveto
16 -26 70 33 93 45 88 42 42 -101 -2 8 -13 5 -16 7 8 blend
rlinecurve
-7 26 -97 -46 -98 -46 -65 -32 87 9 -3 7 -3 5 7 blend
-28 rlinecurve
467 173 19 -103 2 blend
rmoveto
59 -44 67 -64 31 -43 -24 2 -24 5 -14 5 6 blend
rrcurveto
26 17 -33 43 -67 63 -58 43 84 51 13 -5 22 -8 22 -4 8 blend
rlinecurve
8 104 -63 31 2 blend
rmoveto
-29 340 29 -90 -29 90 3 blend
vlineto
-291 89 -3 -2 2 blend
rmoveto
-33 -81 -82 -84 -90 -50 7 -5 9 -11 4 -6 94 52 84 89 38 88 -6 12 -3 4 6 4 18 -19 29 -37 16 -23 3 6 14 7 25 9 18 blend
rrcurveto
251 -81 -122 39 2 blend
rmoveto
-7 -14 1 blend
vlineto
-76 -215 -200 -89 -239 -37 6 -7 8 -12 4 -7 243 43 202 90 84 231 17 41 27 6 11 5 19 -20 30 -48 10 -27 -1 4 -4 21 -1 1 18 blend
rrcurveto
-17 12 -7 -2 -71 33 -17 -2 4 blend
rlineto
</CharString>
</CharStrings>
<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>
</CFFFont>
<GlobalSubrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</GlobalSubrs>
</CFF2>
<GPOS>
<Version value="0x00010000"/>
<ScriptList>
<!-- ScriptCount=1 -->
<ScriptRecord index="0">
<ScriptTag value="DFLT"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=0 -->
</DefaultLangSys>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
</ScriptList>
<FeatureList>
<!-- FeatureCount=0 -->
</FeatureList>
<LookupList>
<!-- LookupCount=0 -->
</LookupList>
</GPOS>
<GSUB>
<Version value="0x00010000"/>
<ScriptList>
<!-- ScriptCount=6 -->
<ScriptRecord index="0">
<ScriptTag value="DFLT"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=0 -->
</DefaultLangSys>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="1">
<ScriptTag value="cyrl"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="2">
<ScriptTag value="grek"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="3">
<ScriptTag value="hani"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="4">
<ScriptTag value="kana"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="5">
<ScriptTag value="latn"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
</ScriptList>
<FeatureList>
<!-- FeatureCount=0 -->
</FeatureList>
<LookupList>
<!-- LookupCount=0 -->
</LookupList>
</GSUB>
<HVAR>
<Version value="0x00010000"/>
<VarStore Format="1">
<Format value="1"/>
<VarRegionList>
<!-- RegionAxisCount=1 -->
<!-- RegionCount=0 -->
</VarRegionList>
<!-- VarDataCount=1 -->
<VarData index="0">
<!-- ItemCount=2 -->
<NumShorts value="0"/>
<!-- VarRegionCount=0 -->
<Item index="0" value="[]"/>
<Item index="1" value="[]"/>
</VarData>
</VarStore>
</HVAR>
<STAT>
<Version value="0x00010001"/>
<DesignAxisRecordSize value="8"/>
<!-- DesignAxisCount=1 -->
<DesignAxisRecord>
<Axis index="0">
<AxisTag value="wght"/>
<AxisNameID value="265"/> <!-- Weight -->
<AxisOrdering value="0"/>
</Axis>
</DesignAxisRecord>
<!-- AxisValueCount=7 -->
<AxisValueArray>
<AxisValue index="0" Format="2">
<AxisIndex value="0"/>
<Flags value="0"/>
<ValueNameID value="258"/> <!-- Thin -->
<NominalValue value="100.0"/>
<RangeMinValue value="100.0"/>
<RangeMaxValue value="199.0"/>
</AxisValue>
<AxisValue index="1" Format="2">
<AxisIndex value="0"/>
<Flags value="0"/>
<ValueNameID value="259"/> <!-- Light -->
<NominalValue value="300.0"/>
<RangeMinValue value="200.0"/>
<RangeMaxValue value="349.0"/>
</AxisValue>
<AxisValue index="2" Format="2">
<AxisIndex value="0"/>
<Flags value="0"/>
<ValueNameID value="260"/> <!-- DemiLight -->
<NominalValue value="350.0"/>
<RangeMinValue value="350.0"/>
<RangeMaxValue value="399.0"/>
</AxisValue>
<AxisValue index="3" Format="2">
<AxisIndex value="0"/>
<Flags value="2"/> <!-- ElidableAxisValueName -->
<ValueNameID value="261"/> <!-- Regular -->
<NominalValue value="400.0"/>
<RangeMinValue value="400.0"/>
<RangeMaxValue value="499.0"/>
</AxisValue>
<AxisValue index="4" Format="2">
<AxisIndex value="0"/>
<Flags value="0"/>
<ValueNameID value="262"/> <!-- Medium -->
<NominalValue value="500.0"/>
<RangeMinValue value="500.0"/>
<RangeMaxValue value="650.0"/>
</AxisValue>
<AxisValue index="5" Format="2">
<AxisIndex value="0"/>
<Flags value="0"/>
<ValueNameID value="263"/> <!-- Bold -->
<NominalValue value="700.0"/>
<RangeMinValue value="650.0"/>
<RangeMaxValue value="800.0"/>
</AxisValue>
<AxisValue index="6" Format="2">
<AxisIndex value="0"/>
<Flags value="0"/>
<ValueNameID value="264"/> <!-- Black -->
<NominalValue value="900.0"/>
<RangeMinValue value="800.0"/>
<RangeMaxValue value="900.0"/>
</AxisValue>
</AxisValueArray>
<ElidedFallbackNameID value="256"/> <!-- Regular -->
</STAT>
<VORG>
<majorVersion value="1"/>
<minorVersion value="0"/>
<defaultVertOriginY value="880"/>
<numVertOriginYMetrics value="0"/>
</VORG>
<VVAR>
<Version value="0x00010000"/>
<VarStore Format="1">
<Format value="1"/>
<VarRegionList>
<!-- RegionAxisCount=1 -->
<!-- RegionCount=0 -->
</VarRegionList>
<!-- VarDataCount=1 -->
<VarData index="0">
<!-- ItemCount=1 -->
<NumShorts value="0"/>
<!-- VarRegionCount=0 -->
<Item index="0" value="[]"/>
</VarData>
</VarStore>
<AdvHeightMap>
<Map glyph=".notdef" outer="0" inner="0"/>
<Map glyph="uni6868" outer="0" inner="0"/>
</AdvHeightMap>
<VOrgMap>
<Map glyph=".notdef" outer="0" inner="0"/>
<Map glyph="uni6868" outer="0" inner="0"/>
</VOrgMap>
</VVAR>
<avar>
<version major="1" minor="0"/>
<segment axis="wght">
<mapping from="-1.0" to="-1.0"/>
<mapping from="0.0" to="0.0"/>
<mapping from="0.25" to="0.16"/>
<mapping from="0.3125" to="0.32"/>
<mapping from="0.375" to="0.39"/>
<mapping from="0.5" to="0.56"/>
<mapping from="0.75" to="0.78"/>
<mapping from="1.0" to="1.0"/>
</segment>
</avar>
<fvar>
<!-- Weight -->
<Axis>
<AxisTag>wght</AxisTag>
<Flags>0x0</Flags>
<MinValue>100.0</MinValue>
<DefaultValue>100.0</DefaultValue>
<MaxValue>900.0</MaxValue>
<AxisNameID>265</AxisNameID>
</Axis>
<!-- Thin -->
<!-- PostScript: NotoSansSC-Thin -->
<NamedInstance flags="0x0" postscriptNameID="267" subfamilyNameID="266">
<coord axis="wght" value="100.0"/>
</NamedInstance>
<!-- Light -->
<!-- PostScript: NotoSansSC-Light -->
<NamedInstance flags="0x0" postscriptNameID="269" subfamilyNameID="268">
<coord axis="wght" value="300.0"/>
</NamedInstance>
<!-- DemiLight -->
<!-- PostScript: NotoSansSC-DemiLight -->
<NamedInstance flags="0x0" postscriptNameID="271" subfamilyNameID="270">
<coord axis="wght" value="350.0"/>
</NamedInstance>
<!-- Regular -->
<!-- PostScript: NotoSansSC-Regular -->
<NamedInstance flags="0x0" postscriptNameID="273" subfamilyNameID="272">
<coord axis="wght" value="400.0"/>
</NamedInstance>
<!-- Medium -->
<!-- PostScript: NotoSansSC-Medium -->
<NamedInstance flags="0x0" postscriptNameID="275" subfamilyNameID="274">
<coord axis="wght" value="500.0"/>
</NamedInstance>
<!-- Bold -->
<!-- PostScript: NotoSansSC-Bold -->
<NamedInstance flags="0x0" postscriptNameID="277" subfamilyNameID="276">
<coord axis="wght" value="700.0"/>
</NamedInstance>
<!-- Black -->
<!-- PostScript: NotoSansSC-Black -->
<NamedInstance flags="0x0" postscriptNameID="279" subfamilyNameID="278">
<coord axis="wght" value="900.0"/>
</NamedInstance>
</fvar>
<vhea>
<tableVersion value="0x00011000"/>
<ascent value="500"/>
<descent value="-500"/>
<lineGap value="0"/>
<advanceHeightMax value="1000"/>
<minTopSideBearing value="47"/>
<minBottomSideBearing value="48"/>
<yMaxExtent value="952"/>
<caretSlopeRise value="0"/>
<caretSlopeRun value="1"/>
<caretOffset value="0"/>
<reserved1 value="0"/>
<reserved2 value="0"/>
<reserved3 value="0"/>
<reserved4 value="0"/>
<metricDataFormat value="0"/>
<numberOfVMetrics value="1"/>
</vhea>
<vmtx>
<mtx name=".notdef" height="1000" tsb="0"/>
<mtx name="uni6868" height="1000" tsb="47"/>
</vmtx>
</ttFont>

View File

@ -0,0 +1,398 @@
<?xml version="1.0" encoding="UTF-8"?>
<ttFont sfntVersion="OTTO" ttLibVersion="4.51">
<GlyphOrder>
<!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
<GlyphID id="0" name=".notdef"/>
<GlyphID id="1" name="uni6868"/>
</GlyphOrder>
<head>
<!-- Most of this table will be recalculated by the compiler -->
<tableVersion value="1.0"/>
<fontRevision value="2.004"/>
<checkSumAdjustment value="0x25b28144"/>
<magicNumber value="0x5f0f3cf5"/>
<flags value="00000000 00000011"/>
<unitsPerEm value="1000"/>
<created value="Thu Apr 29 17:39:47 2021"/>
<modified value="Tue May 14 19:41:58 2024"/>
<xMin value="36"/>
<yMin value="-81"/>
<xMax value="966"/>
<yMax value="841"/>
<macStyle value="00000000 00000000"/>
<lowestRecPPEM value="3"/>
<fontDirectionHint value="2"/>
<indexToLocFormat value="0"/>
<glyphDataFormat value="0"/>
</head>
<hhea>
<tableVersion value="0x00010000"/>
<ascent value="1160"/>
<descent value="-288"/>
<lineGap value="0"/>
<advanceWidthMax value="1000"/>
<minLeftSideBearing value="46"/>
<minRightSideBearing value="24"/>
<xMaxExtent value="976"/>
<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="1"/>
</hhea>
<maxp>
<tableVersion value="0x5000"/>
<numGlyphs value="2"/>
</maxp>
<OS_2>
<!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
will be recalculated by the compiler -->
<version value="3"/>
<xAvgCharWidth value="1000"/>
<usWeightClass value="400"/>
<usWidthClass value="5"/>
<fsType value="00000000 00000000"/>
<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="325"/>
<sFamilyClass value="0"/>
<panose>
<bFamilyType value="2"/>
<bSerifStyle value="11"/>
<bWeight value="2"/>
<bProportion value="0"/>
<bContrast value="0"/>
<bStrokeVariation value="0"/>
<bArmStyle value="0"/>
<bLetterForm value="0"/>
<bMidline value="0"/>
<bXHeight value="0"/>
</panose>
<ulUnicodeRange1 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange2 value="00001000 00000000 00000000 00000000"/>
<ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
<ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
<achVendID value="ADBO"/>
<fsSelection value="00000000 00000000"/>
<usFirstCharIndex value="26728"/>
<usLastCharIndex value="26728"/>
<sTypoAscender value="880"/>
<sTypoDescender value="-120"/>
<sTypoLineGap value="0"/>
<usWinAscent value="1160"/>
<usWinDescent value="288"/>
<ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
<ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
<sxHeight value="543"/>
<sCapHeight value="733"/>
<usDefaultChar value="0"/>
<usBreakChar value="32"/>
<usMaxContext value="6"/>
</OS_2>
<hmtx>
<mtx name=".notdef" width="1000" lsb="100"/>
<mtx name="uni6868" width="1000" lsb="46"/>
</hmtx>
<cmap>
<tableVersion version="0"/>
<cmap_format_4 platformID="0" platEncID="3" language="0">
<map code="0x6868" name="uni6868"/><!-- CJK UNIFIED IDEOGRAPH-6868 -->
</cmap_format_4>
<cmap_format_4 platformID="3" platEncID="1" language="0">
<map code="0x6868" name="uni6868"/><!-- CJK UNIFIED IDEOGRAPH-6868 -->
</cmap_format_4>
</cmap>
<name>
<namerecord nameID="0" platformID="3" platEncID="1" langID="0x409">
© 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'.
</namerecord>
<namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
Noto Sans SC
</namerecord>
<namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
2.004;ADBO;NotoSansSC-Thin;ADOBE
</namerecord>
<namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
Noto Sans SC
</namerecord>
<namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
Version 2.004;hotconv 1.0.118;makeotfexe 2.5.65603
</namerecord>
<namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
NotoSansSC-Thin
</namerecord>
<namerecord nameID="256" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="261" platformID="3" platEncID="1" langID="0x409">
Regular
</namerecord>
<namerecord nameID="265" platformID="3" platEncID="1" langID="0x409">
Weight
</namerecord>
</name>
<post>
<formatType value="3.0"/>
<italicAngle value="0.0"/>
<underlinePosition value="-125"/>
<underlineThickness value="50"/>
<isFixedPitch value="0"/>
<minMemType42 value="0"/>
<maxMemType42 value="0"/>
<minMemType1 value="0"/>
<maxMemType1 value="0"/>
</post>
<CFF2>
<major value="2"/>
<minor value="0"/>
<CFFFont name="CFF2Font">
<FontMatrix value="0.001 0 0 0.001 0 0"/>
<FDSelect format="0"/>
<FDArray>
<FontDict index="0">
<Private>
<BlueValues value="-250 -250 1100 1100"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="35"/>
<StdVW value="28"/>
<StemSnapV value="28 46"/>
<LanguageGroup value="1"/>
<ExpansionFactor value="0.06"/>
</Private>
</FontDict>
<FontDict index="1">
<Private>
<BlueValues value="-250 -250 1100 1100"/>
<BlueScale value="0.039625"/>
<BlueShift value="7"/>
<BlueFuzz value="1"/>
<StdHW value="35"/>
<StdVW value="28"/>
<StemSnapV value="28 46"/>
<LanguageGroup value="1"/>
<ExpansionFactor value="0.06"/>
</Private>
</FontDict>
</FDArray>
<CharStrings>
<CharString name=".notdef" fdSelectIndex="0">
</CharString>
<CharString name="uni6868" fdSelectIndex="1">
63 284 rmoveto
-67 872 67 vlineto
-475 79 rmoveto
-444 76 444 vlineto
-111 -111 rmoveto
-83 -103 -161 -95 -145 -44 16 -15 23 -29 11 -19 145 52 163 105 90 119 rrcurveto
86 25 rmoveto
-61 -28 rlineto
91 -118 163 -103 152 -50 11 20 23 28 17 15 -152 41 -163 90 -82 104 rrcurveto
-498 508 rmoveto
38 -49 40 -67 15 -43 rrcurveto
62 35 -16 42 -42 64 -38 47 rlinecurve
149 53 rmoveto
-492 71 492 vlineto
-306 -367 rmoveto
32 -65 69 36 88 47 82 45 rlinecurve
-19 60 -93 -47 -95 -47 -63 -28 rlinecurve
474 133 rmoveto
50 -43 58 -62 26 -41 rrcurveto
59 37 -28 41 -58 60 -49 41 rlinecurve
-17 116 rmoveto
-64 329 64 vlineto
-292 88 rmoveto
-35 -76 -83 -82 -88 -48 14 -12 20 -25 10 -15 95 54 89 92 48 92 rrcurveto
203 -66 rmoveto
-12 vlineto
-69 -199 -189 -87 -235 -35 13 -15 20 -31 8 -18 243 45 200 98 84 231 rrcurveto
-45 25 -14 -3 rlineto
</CharString>
</CharStrings>
<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>
</CFFFont>
<GlobalSubrs>
<!-- The 'index' attribute is only for humans; it is ignored when parsed. -->
</GlobalSubrs>
</CFF2>
<GPOS>
<Version value="0x00010000"/>
<ScriptList>
<!-- ScriptCount=1 -->
<ScriptRecord index="0">
<ScriptTag value="DFLT"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=0 -->
</DefaultLangSys>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
</ScriptList>
<FeatureList>
<!-- FeatureCount=0 -->
</FeatureList>
<LookupList>
<!-- LookupCount=0 -->
</LookupList>
</GPOS>
<GSUB>
<Version value="0x00010000"/>
<ScriptList>
<!-- ScriptCount=6 -->
<ScriptRecord index="0">
<ScriptTag value="DFLT"/>
<Script>
<DefaultLangSys>
<ReqFeatureIndex value="65535"/>
<!-- FeatureCount=0 -->
</DefaultLangSys>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="1">
<ScriptTag value="cyrl"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="2">
<ScriptTag value="grek"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="3">
<ScriptTag value="hani"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="4">
<ScriptTag value="kana"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
<ScriptRecord index="5">
<ScriptTag value="latn"/>
<Script>
<!-- LangSysCount=0 -->
</Script>
</ScriptRecord>
</ScriptList>
<FeatureList>
<!-- FeatureCount=0 -->
</FeatureList>
<LookupList>
<!-- LookupCount=0 -->
</LookupList>
</GSUB>
<STAT>
<Version value="0x00010001"/>
<DesignAxisRecordSize value="8"/>
<!-- DesignAxisCount=1 -->
<DesignAxisRecord>
<Axis index="0">
<AxisTag value="wght"/>
<AxisNameID value="265"/> <!-- Weight -->
<AxisOrdering value="0"/>
</Axis>
</DesignAxisRecord>
<!-- AxisValueCount=1 -->
<AxisValueArray>
<AxisValue index="0" Format="2">
<AxisIndex value="0"/>
<Flags value="2"/> <!-- ElidableAxisValueName -->
<ValueNameID value="261"/> <!-- Regular -->
<NominalValue value="400.0"/>
<RangeMinValue value="400.0"/>
<RangeMaxValue value="499.0"/>
</AxisValue>
</AxisValueArray>
<ElidedFallbackNameID value="256"/> <!-- Regular -->
</STAT>
<VORG>
<majorVersion value="1"/>
<minorVersion value="0"/>
<defaultVertOriginY value="880"/>
<numVertOriginYMetrics value="0"/>
</VORG>
<vhea>
<tableVersion value="0x00011000"/>
<ascent value="500"/>
<descent value="-500"/>
<lineGap value="0"/>
<advanceHeightMax value="1000"/>
<minTopSideBearing value="47"/>
<minBottomSideBearing value="31"/>
<yMaxExtent value="969"/>
<caretSlopeRise value="0"/>
<caretSlopeRun value="1"/>
<caretOffset value="0"/>
<reserved1 value="0"/>
<reserved2 value="0"/>
<reserved3 value="0"/>
<reserved4 value="0"/>
<metricDataFormat value="0"/>
<numberOfVMetrics value="1"/>
</vhea>
<vmtx>
<mtx name=".notdef" height="1000" tsb="0"/>
<mtx name="uni6868" height="1000" tsb="47"/>
</vmtx>
</ttFont>

View File

@ -106,9 +106,16 @@ class InstantiateCFF2Test(object):
program = varfont["CFF2"].cff.topDictIndex[0].CharStrings.values()[1].program program = varfont["CFF2"].cff.topDictIndex[0].CharStrings.values()[1].program
assert program == expected assert program == expected
def test_full_instance(self, varfont): @pytest.mark.parametrize(
"source_ttx, expected_ttx",
[
("CFF2Instancer-VF-2.ttx", "CFF2Instancer-VF-2-instance-400.ttx"),
("CFF2Instancer-VF-3.ttx", "CFF2Instancer-VF-3-instance-400.ttx"),
],
)
def test_full_instance(self, varfont, source_ttx, expected_ttx):
varfont = ttLib.TTFont() varfont = ttLib.TTFont()
varfont.importXML(os.path.join(TESTDATA, "CFF2Instancer-VF-2.ttx")) varfont.importXML(os.path.join(TESTDATA, source_ttx))
s = BytesIO() s = BytesIO()
varfont.save(s) varfont.save(s)
s.seek(0) s.seek(0)
@ -125,11 +132,7 @@ class InstantiateCFF2Test(object):
actual = stripVariableItemsFromTTX(s.getvalue()) actual = stripVariableItemsFromTTX(s.getvalue())
expected = ttLib.TTFont() expected = ttLib.TTFont()
expected.importXML( expected.importXML(os.path.join(TESTDATA, "test_results", expected_ttx))
os.path.join(
TESTDATA, "test_results", "CFF2Instancer-VF-2-instance-400.ttx"
)
)
s = BytesIO() s = BytesIO()
expected.save(s) expected.save(s)
s.seek(0) s.seek(0)