diff options
Diffstat (limited to 'Tests/varLib')
98 files changed, 4408 insertions, 268 deletions
diff --git a/Tests/varLib/data/IncompatibleArrays.designspace b/Tests/varLib/data/IncompatibleArrays.designspace new file mode 100644 index 00000000..399810ea --- /dev/null +++ b/Tests/varLib/data/IncompatibleArrays.designspace @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='UTF-8'?> +<designspace format="4.1"> + <axes> + <axis tag="wght" name="Weight" minimum="200" maximum="700" default="200"/> + </axes> + <sources> + <source filename="master_incompatible_arrays/IncompatibleArrays-Regular.ttx" name="Simple Two Axis Regular" familyname="Simple Two Axis" stylename="Regular"> + <lib copy="1"/> + <groups copy="1"/> + <features copy="1"/> + <info copy="1"/> + <location> + <dimension name="Weight" xvalue="200"/> + </location> + </source> + <source filename="master_incompatible_arrays/IncompatibleArrays-Bold.ttx" name="Simple Two Axis Bold" familyname="Simple Two Axis" stylename="Bold"> + <location> + <dimension name="Weight" xvalue="700"/> + </location> + </source> + </sources> +</designspace> diff --git a/Tests/varLib/data/IncompatibleFeatures.designspace b/Tests/varLib/data/IncompatibleFeatures.designspace new file mode 100644 index 00000000..ab275164 --- /dev/null +++ b/Tests/varLib/data/IncompatibleFeatures.designspace @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='UTF-8'?> +<designspace format="4.1"> + <axes> + <axis tag="wght" name="Weight" minimum="200" maximum="700" default="200"/> + </axes> + <sources> + <source filename="master_incompatible_features/IncompatibleFeatures-Regular.ttx" name="Simple Two Axis Regular" familyname="Simple Two Axis" stylename="Regular"> + <lib copy="1"/> + <groups copy="1"/> + <features copy="1"/> + <info copy="1"/> + <location> + <dimension name="Weight" xvalue="200"/> + </location> + </source> + <source filename="master_incompatible_features/IncompatibleFeatures-Bold.ttx" name="Simple Two Axis Bold" familyname="Simple Two Axis" stylename="Bold"> + <location> + <dimension name="Weight" xvalue="700"/> + </location> + </source> + </sources> +</designspace> diff --git a/Tests/varLib/data/IncompatibleLookupTypes.designspace b/Tests/varLib/data/IncompatibleLookupTypes.designspace new file mode 100644 index 00000000..c7d35754 --- /dev/null +++ b/Tests/varLib/data/IncompatibleLookupTypes.designspace @@ -0,0 +1,22 @@ +<?xml version='1.0' encoding='UTF-8'?> +<designspace format="4.1"> + <axes> + <axis tag="wght" name="Weight" minimum="200" maximum="700" default="200"/> + </axes> + <sources> + <source filename="master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx" name="Simple Two Axis Regular" familyname="Simple Two Axis" stylename="Regular"> + <lib copy="1"/> + <groups copy="1"/> + <features copy="1"/> + <info copy="1"/> + <location> + <dimension name="Weight" xvalue="200"/> + </location> + </source> + <source filename="master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx" name="Simple Two Axis Bold" familyname="Simple Two Axis" stylename="Bold"> + <location> + <dimension name="Weight" xvalue="700"/> + </location> + </source> + </sources> +</designspace> diff --git a/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx b/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx index 7270a161..8b633f1a 100644 --- a/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx +++ b/Tests/varLib/data/master_cff2/TestCFF2_Black.ttx @@ -495,7 +495,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="dollar.a"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx b/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx index 41dbb750..aae43aac 100644 --- a/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx +++ b/Tests/varLib/data/master_cff2/TestCFF2_ExtraLight.ttx @@ -495,7 +495,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="dollar.a"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx b/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx index 49d116ce..471eb248 100644 --- a/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx +++ b/Tests/varLib/data/master_cff2/TestCFF2_Regular.ttx @@ -493,7 +493,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="dollar.a"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx b/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx index 22f82758..3280eeac 100644 --- a/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx +++ b/Tests/varLib/data/master_cff2_input/TestCFF2_Black.ttx @@ -487,7 +487,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="dollar.a"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx b/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx index e3a35f03..fbcf91a8 100644 --- a/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx +++ b/Tests/varLib/data/master_cff2_input/TestCFF2_ExtraLight.ttx @@ -487,7 +487,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="dollar.a"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx b/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx index bf0a9623..757e5b89 100644 --- a/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx +++ b/Tests/varLib/data/master_cff2_input/TestCFF2_Regular.ttx @@ -485,7 +485,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="dollar.a"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Bold.ttx b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Bold.ttx new file mode 100644 index 00000000..c47ecbad --- /dev/null +++ b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Bold.ttx @@ -0,0 +1,612 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20"> + + <GlyphOrder> + <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> + <GlyphID id="0" name=".notdef"/> + <GlyphID id="1" name="A"/> + <GlyphID id="2" name="Aacute"/> + <GlyphID id="3" name="O"/> + <GlyphID id="4" name="V"/> + <GlyphID id="5" name="space"/> + <GlyphID id="6" name="dollar"/> + <GlyphID id="7" name="dollar.bold"/> + <GlyphID id="8" name="acutecomb"/> + <GlyphID id="9" name="dollar.BRACKET.500"/> + </GlyphOrder> + + <head> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="1.0"/> + <fontRevision value="1.0"/> + <checkSumAdjustment value="0x10cb3f3"/> + <magicNumber value="0x5f0f3cf5"/> + <flags value="00000000 00000011"/> + <unitsPerEm value="1000"/> + <created value="Fri Jan 15 14:37:13 2021"/> + <modified value="Mon Mar 15 12:57:03 2021"/> + <xMin value="-141"/> + <yMin value="-200"/> + <xMax value="906"/> + <yMax value="949"/> + <macStyle value="00000000 00000001"/> + <lowestRecPPEM value="6"/> + <fontDirectionHint value="2"/> + <indexToLocFormat value="0"/> + <glyphDataFormat value="0"/> + </head> + + <hhea> + <tableVersion value="0x00010000"/> + <ascent value="1000"/> + <descent value="-200"/> + <lineGap value="0"/> + <advanceWidthMax value="911"/> + <minLeftSideBearing value="-141"/> + <minRightSideBearing value="-125"/> + <xMaxExtent value="906"/> + <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="10"/> + </hhea> + + <maxp> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="0x10000"/> + <numGlyphs value="10"/> + <maxPoints value="52"/> + <maxContours value="3"/> + <maxCompositePoints value="16"/> + <maxCompositeContours value="4"/> + <maxZones value="1"/> + <maxTwilightPoints value="0"/> + <maxStorage value="0"/> + <maxFunctionDefs value="0"/> + <maxInstructionDefs value="0"/> + <maxStackElements value="0"/> + <maxSizeOfInstructions value="0"/> + <maxComponentElements value="2"/> + <maxComponentDepth value="1"/> + </maxp> + + <OS_2> + <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex' + will be recalculated by the compiler --> + <version value="4"/> + <xAvgCharWidth value="672"/> + <usWeightClass value="400"/> + <usWidthClass value="5"/> + <fsType value="00000000 00001000"/> + <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="300"/> + <sFamilyClass value="0"/> + <panose> + <bFamilyType value="0"/> + <bSerifStyle value="0"/> + <bWeight value="0"/> + <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 01000011"/> + <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> + <achVendID value="NONE"/> + <fsSelection value="00000000 00100000"/> + <usFirstCharIndex value="32"/> + <usLastCharIndex value="769"/> + <sTypoAscender value="800"/> + <sTypoDescender value="-200"/> + <sTypoLineGap value="200"/> + <usWinAscent value="1000"/> + <usWinDescent value="200"/> + <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/> + <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> + <sxHeight value="500"/> + <sCapHeight value="700"/> + <usDefaultChar value="0"/> + <usBreakChar value="32"/> + <usMaxContext value="2"/> + </OS_2> + + <hmtx> + <mtx name=".notdef" width="500" lsb="50"/> + <mtx name="A" width="911" lsb="5"/> + <mtx name="Aacute" width="911" lsb="5"/> + <mtx name="O" width="715" lsb="15"/> + <mtx name="V" width="911" lsb="5"/> + <mtx name="acutecomb" width="0" lsb="-141"/> + <mtx name="dollar" width="600" lsb="1"/> + <mtx name="dollar.BRACKET.500" width="600" lsb="1"/> + <mtx name="dollar.bold" width="600" lsb="1"/> + <mtx name="space" width="300" lsb="0"/> + </hmtx> + + <cmap> + <tableVersion version="0"/> + <cmap_format_4 platformID="0" platEncID="3" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </cmap_format_4> + <cmap_format_4 platformID="3" platEncID="1" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </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="50" yMin="-200" xMax="450" yMax="800"> + <contour> + <pt x="50" y="-200" on="1"/> + <pt x="50" y="800" on="1"/> + <pt x="450" y="800" on="1"/> + <pt x="450" y="-200" on="1"/> + </contour> + <contour> + <pt x="100" y="-150" on="1"/> + <pt x="400" y="-150" on="1"/> + <pt x="400" y="750" on="1"/> + <pt x="100" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="A" xMin="5" yMin="0" xMax="906" yMax="700"> + <contour> + <pt x="705" y="0" on="1"/> + <pt x="906" y="0" on="1"/> + <pt x="556" y="700" on="1"/> + <pt x="355" y="700" on="1"/> + </contour> + <contour> + <pt x="5" y="0" on="1"/> + <pt x="206" y="0" on="1"/> + <pt x="556" y="700" on="1"/> + <pt x="355" y="700" on="1"/> + </contour> + <contour> + <pt x="640" y="311" on="1"/> + <pt x="190" y="311" on="1"/> + <pt x="190" y="191" on="1"/> + <pt x="640" y="191" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="906" yMax="949"> + <component glyphName="A" x="0" y="0" flags="0x204"/> + <component glyphName="acutecomb" x="479" y="124" flags="0x4"/> + </TTGlyph> + + <TTGlyph name="O" xMin="15" yMin="-10" xMax="670" yMax="710"> + <contour> + <pt x="342" y="-10" on="1"/> + <pt x="172" y="-10" on="0"/> + <pt x="15" y="163" on="0"/> + <pt x="15" y="350" on="1"/> + <pt x="15" y="538" on="0"/> + <pt x="172" y="710" on="0"/> + <pt x="342" y="710" on="1"/> + <pt x="513" y="710" on="0"/> + <pt x="670" y="538" on="0"/> + <pt x="670" y="350" on="1"/> + <pt x="670" y="163" on="0"/> + <pt x="513" y="-10" on="0"/> + </contour> + <contour> + <pt x="342" y="153" on="1"/> + <pt x="419" y="153" on="0"/> + <pt x="490" y="247" on="0"/> + <pt x="490" y="350" on="1"/> + <pt x="490" y="453" on="0"/> + <pt x="419" y="547" on="0"/> + <pt x="342" y="547" on="1"/> + <pt x="266" y="547" on="0"/> + <pt x="195" y="453" on="0"/> + <pt x="195" y="350" on="1"/> + <pt x="195" y="247" on="0"/> + <pt x="266" y="153" on="0"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="V" xMin="5" yMin="0" xMax="906" yMax="700"> + <contour> + <pt x="355" y="0" on="1"/> + <pt x="705" y="700" on="1"/> + <pt x="906" y="700" on="1"/> + <pt x="556" y="0" on="1"/> + </contour> + <contour> + <pt x="355" y="0" on="1"/> + <pt x="5" y="700" on="1"/> + <pt x="206" y="700" on="1"/> + <pt x="556" y="0" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="825"> + <contour> + <pt x="-118" y="756" on="1"/> + <pt x="-141" y="630" on="1"/> + <pt x="102" y="699" on="1"/> + <pt x="125" y="825" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="479" y="549" on="0"/> + <pt x="411" y="588" on="0"/> + <pt x="369" y="595" on="1"/> + <pt x="369" y="400" on="1"/> + <pt x="476" y="378" on="0"/> + <pt x="595" y="278" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="118" y="144" on="0"/> + <pt x="195" y="106" on="0"/> + <pt x="249" y="100" on="1"/> + <pt x="249" y="273" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="294" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <contour> + <pt x="152" y="502" on="1"/> + <pt x="152" y="480" on="0"/> + <pt x="166" y="453" on="0"/> + <pt x="208" y="434" on="0"/> + <pt x="249" y="424" on="1"/> + <pt x="249" y="595" on="1"/> + <pt x="199" y="587" on="0"/> + <pt x="152" y="538" on="0"/> + </contour> + <contour> + <pt x="369" y="100" on="1"/> + <pt x="426" y="107" on="0"/> + <pt x="471" y="150" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="201" on="0"/> + <pt x="456" y="225" on="0"/> + <pt x="412" y="243" on="0"/> + <pt x="369" y="252" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.BRACKET.500" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="468" y="560" on="0"/> + <pt x="374" y="600" on="0"/> + <pt x="308" y="600" on="1"/> + <pt x="227" y="600" on="0"/> + <pt x="152" y="548" on="0"/> + <pt x="152" y="502" on="1"/> + <pt x="152" y="479" on="0"/> + <pt x="168" y="450" on="0"/> + <pt x="217" y="431" on="0"/> + <pt x="264" y="421" on="1"/> + <pt x="363" y="401" on="1"/> + <pt x="473" y="379" on="0"/> + <pt x="595" y="279" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="112" y="150" on="0"/> + <pt x="176" y="114" on="0"/> + <pt x="256" y="97" on="0"/> + <pt x="310" y="97" on="1"/> + <pt x="402" y="97" on="0"/> + <pt x="471" y="143" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="203" on="0"/> + <pt x="453" y="228" on="0"/> + <pt x="399" y="247" on="0"/> + <pt x="345" y="256" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="293" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.bold" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="468" y="560" on="0"/> + <pt x="374" y="600" on="0"/> + <pt x="308" y="600" on="1"/> + <pt x="227" y="600" on="0"/> + <pt x="152" y="548" on="0"/> + <pt x="152" y="502" on="1"/> + <pt x="152" y="479" on="0"/> + <pt x="168" y="450" on="0"/> + <pt x="217" y="431" on="0"/> + <pt x="264" y="421" on="1"/> + <pt x="363" y="401" on="1"/> + <pt x="473" y="379" on="0"/> + <pt x="595" y="279" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="112" y="150" on="0"/> + <pt x="176" y="114" on="0"/> + <pt x="256" y="97" on="0"/> + <pt x="310" y="97" on="1"/> + <pt x="402" y="97" on="0"/> + <pt x="471" y="143" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="203" on="0"/> + <pt x="453" y="228" on="0"/> + <pt x="399" y="247" on="0"/> + <pt x="345" y="256" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="293" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="space"/><!-- contains no outline data --> + + </glyf> + + <name> + <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis + </namerecord> + <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> + Bold + </namerecord> + <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> + 1.000;NONE;SimpleTwoAxis-Bold + </namerecord> + <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis Bold + </namerecord> + <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> + Version 1.000 + </namerecord> + <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> + SimpleTwoAxis-Bold + </namerecord> + </name> + + <post> + <formatType value="2.0"/> + <italicAngle value="0.0"/> + <underlinePosition value="-100"/> + <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.bold"/> + <psName name="acutecomb"/> + <psName name="dollar.BRACKET.500"/> + </extraNames> + </post> + + <GDEF> + <Version value="0x00010000"/> + <GlyphClassDef> + <ClassDef glyph="A" class="1"/> + <ClassDef glyph="Aacute" class="1"/> + <ClassDef glyph="acutecomb" class="3"/> + </GlyphClassDef> + </GDEF> + <GPOS> + <Version value="0x00010000"/> + <ScriptList> + </ScriptList> + <FeatureList> + <!-- FeatureCount=2 --> + <FeatureRecord index="0"> + <FeatureTag value="kern"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="0"/> + </Feature> + </FeatureRecord> + <FeatureRecord index="1"> + <FeatureTag value="mark"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="1"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=2 --> + <Lookup index="0"> + <LookupType value="2"/> + <LookupFlag value="8"/><!-- ignoreMarks --> + <!-- SubTableCount=1 --> + <PairPos index="0" Format="1"> + <Coverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + <Glyph value="V"/> + </Coverage> + <ValueFormat1 value="4"/> + <ValueFormat2 value="0"/> + <!-- PairSetCount=3 --> + <PairSet index="0"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="1"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="2"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="O"/> + <Value1 XAdvance="-20"/> + </PairValueRecord> + </PairSet> + </PairPos> + </Lookup> + <Lookup index="1"> + <LookupType value="4"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <MarkBasePos index="0" Format="1"> + <MarkCoverage> + <Glyph value="acutecomb"/> + </MarkCoverage> + <BaseCoverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + </BaseCoverage> + <!-- ClassCount=1 --> + <MarkArray> + <!-- MarkCount=1 --> + <MarkRecord index="0"> + <Class value="0"/> + <MarkAnchor Format="1"> + <XCoordinate value="4"/> + <YCoordinate value="623"/> + </MarkAnchor> + </MarkRecord> + </MarkArray> + <BaseArray> + <!-- BaseCount=2 --> + <BaseRecord index="0"> + <BaseAnchor index="0" Format="1"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + <BaseRecord index="1"> + <BaseAnchor index="0" Format="1"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + </BaseArray> + </MarkBasePos> + </Lookup> + </LookupList> + </GPOS> + +</ttFont> diff --git a/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Regular.ttx b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Regular.ttx new file mode 100644 index 00000000..cabb69a4 --- /dev/null +++ b/Tests/varLib/data/master_incompatible_arrays/IncompatibleArrays-Regular.ttx @@ -0,0 +1,626 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20"> + + <GlyphOrder> + <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> + <GlyphID id="0" name=".notdef"/> + <GlyphID id="1" name="A"/> + <GlyphID id="2" name="Aacute"/> + <GlyphID id="3" name="O"/> + <GlyphID id="4" name="V"/> + <GlyphID id="5" name="space"/> + <GlyphID id="6" name="dollar"/> + <GlyphID id="7" name="dollar.bold"/> + <GlyphID id="8" name="acutecomb"/> + <GlyphID id="9" name="dollar.BRACKET.500"/> + </GlyphOrder> + + <head> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="1.0"/> + <fontRevision value="1.0"/> + <checkSumAdjustment value="0x3c7bc79b"/> + <magicNumber value="0x5f0f3cf5"/> + <flags value="00000000 00000011"/> + <unitsPerEm value="1000"/> + <created value="Fri Jan 15 14:37:13 2021"/> + <modified value="Mon Mar 15 12:57:03 2021"/> + <xMin value="-141"/> + <yMin value="-200"/> + <xMax value="751"/> + <yMax value="915"/> + <macStyle value="00000000 00000000"/> + <lowestRecPPEM value="6"/> + <fontDirectionHint value="2"/> + <indexToLocFormat value="0"/> + <glyphDataFormat value="0"/> + </head> + + <hhea> + <tableVersion value="0x00010000"/> + <ascent value="1000"/> + <descent value="-200"/> + <lineGap value="0"/> + <advanceWidthMax value="756"/> + <minLeftSideBearing value="-141"/> + <minRightSideBearing value="-125"/> + <xMaxExtent value="751"/> + <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="10"/> + </hhea> + + <maxp> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="0x10000"/> + <numGlyphs value="10"/> + <maxPoints value="52"/> + <maxContours value="3"/> + <maxCompositePoints value="16"/> + <maxCompositeContours value="4"/> + <maxZones value="1"/> + <maxTwilightPoints value="0"/> + <maxStorage value="0"/> + <maxFunctionDefs value="0"/> + <maxInstructionDefs value="0"/> + <maxStackElements value="0"/> + <maxSizeOfInstructions value="0"/> + <maxComponentElements value="2"/> + <maxComponentDepth value="1"/> + </maxp> + + <OS_2> + <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex' + will be recalculated by the compiler --> + <version value="4"/> + <xAvgCharWidth value="604"/> + <usWeightClass value="400"/> + <usWidthClass value="5"/> + <fsType value="00000000 00001000"/> + <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="300"/> + <sFamilyClass value="0"/> + <panose> + <bFamilyType value="0"/> + <bSerifStyle value="0"/> + <bWeight value="0"/> + <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 01000011"/> + <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> + <achVendID value="NONE"/> + <fsSelection value="00000000 01000000"/> + <usFirstCharIndex value="32"/> + <usLastCharIndex value="769"/> + <sTypoAscender value="800"/> + <sTypoDescender value="-200"/> + <sTypoLineGap value="200"/> + <usWinAscent value="1000"/> + <usWinDescent value="200"/> + <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/> + <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> + <sxHeight value="500"/> + <sCapHeight value="700"/> + <usDefaultChar value="0"/> + <usBreakChar value="32"/> + <usMaxContext value="2"/> + </OS_2> + + <hmtx> + <mtx name=".notdef" width="500" lsb="50"/> + <mtx name="A" width="756" lsb="5"/> + <mtx name="Aacute" width="756" lsb="5"/> + <mtx name="O" width="664" lsb="30"/> + <mtx name="V" width="756" lsb="5"/> + <mtx name="acutecomb" width="0" lsb="-141"/> + <mtx name="dollar" width="600" lsb="29"/> + <mtx name="dollar.BRACKET.500" width="600" lsb="29"/> + <mtx name="dollar.bold" width="600" lsb="29"/> + <mtx name="space" width="200" lsb="0"/> + </hmtx> + + <cmap> + <tableVersion version="0"/> + <cmap_format_4 platformID="0" platEncID="3" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </cmap_format_4> + <cmap_format_4 platformID="3" platEncID="1" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </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="50" yMin="-200" xMax="450" yMax="800"> + <contour> + <pt x="50" y="-200" on="1"/> + <pt x="50" y="800" on="1"/> + <pt x="450" y="800" on="1"/> + <pt x="450" y="-200" on="1"/> + </contour> + <contour> + <pt x="100" y="-150" on="1"/> + <pt x="400" y="-150" on="1"/> + <pt x="400" y="750" on="1"/> + <pt x="100" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="A" xMin="5" yMin="0" xMax="751" yMax="700"> + <contour> + <pt x="641" y="0" on="1"/> + <pt x="751" y="0" on="1"/> + <pt x="433" y="700" on="1"/> + <pt x="323" y="700" on="1"/> + </contour> + <contour> + <pt x="5" y="0" on="1"/> + <pt x="115" y="0" on="1"/> + <pt x="433" y="700" on="1"/> + <pt x="323" y="700" on="1"/> + </contour> + <contour> + <pt x="567" y="284" on="1"/> + <pt x="152" y="284" on="1"/> + <pt x="152" y="204" on="1"/> + <pt x="567" y="204" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="751" yMax="915"> + <component glyphName="A" x="0" y="0" flags="0x204"/> + <component glyphName="acutecomb" x="402" y="130" flags="0x4"/> + </TTGlyph> + + <TTGlyph name="O" xMin="30" yMin="-10" xMax="634" yMax="710"> + <contour> + <pt x="332" y="-10" on="1"/> + <pt x="181" y="-10" on="0"/> + <pt x="30" y="169" on="0"/> + <pt x="30" y="350" on="1"/> + <pt x="30" y="531" on="0"/> + <pt x="181" y="710" on="0"/> + <pt x="332" y="710" on="1"/> + <pt x="484" y="710" on="0"/> + <pt x="634" y="531" on="0"/> + <pt x="634" y="350" on="1"/> + <pt x="634" y="169" on="0"/> + <pt x="484" y="-10" on="0"/> + </contour> + <contour> + <pt x="332" y="74" on="1"/> + <pt x="438" y="74" on="0"/> + <pt x="544" y="212" on="0"/> + <pt x="544" y="350" on="1"/> + <pt x="544" y="488" on="0"/> + <pt x="438" y="626" on="0"/> + <pt x="332" y="626" on="1"/> + <pt x="226" y="626" on="0"/> + <pt x="120" y="488" on="0"/> + <pt x="120" y="350" on="1"/> + <pt x="120" y="212" on="0"/> + <pt x="226" y="74" on="0"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="V" xMin="5" yMin="0" xMax="751" yMax="700"> + <contour> + <pt x="323" y="0" on="1"/> + <pt x="641" y="700" on="1"/> + <pt x="751" y="700" on="1"/> + <pt x="433" y="0" on="1"/> + </contour> + <contour> + <pt x="323" y="0" on="1"/> + <pt x="5" y="700" on="1"/> + <pt x="115" y="700" on="1"/> + <pt x="433" y="0" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="785"> + <contour> + <pt x="-118" y="716" on="1"/> + <pt x="-141" y="630" on="1"/> + <pt x="102" y="699" on="1"/> + <pt x="125" y="785" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar" xMin="29" yMin="-68" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="473" y="584" on="0"/> + <pt x="398" y="621" on="0"/> + <pt x="354" y="627" on="1"/> + <pt x="354" y="373" on="1"/> + <pt x="467" y="351" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-68" on="1"/> + <pt x="264" y="-68" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="123" y="110" on="0"/> + <pt x="207" y="73" on="0"/> + <pt x="264" y="69" on="1"/> + <pt x="264" y="301" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <contour> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="264" y="627" on="1"/> + <pt x="203" y="618" on="0"/> + <pt x="137" y="553" on="0"/> + </contour> + <contour> + <pt x="354" y="69" on="1"/> + <pt x="423" y="76" on="0"/> + <pt x="486" y="135" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="211" on="0"/> + <pt x="462" y="250" on="0"/> + <pt x="405" y="275" on="0"/> + <pt x="354" y="285" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.BRACKET.500" xMin="29" yMin="-76" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="464" y="592" on="0"/> + <pt x="370" y="630" on="0"/> + <pt x="308" y="630" on="1"/> + <pt x="226" y="630" on="0"/> + <pt x="137" y="562" on="0"/> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="360" y="372" on="1"/> + <pt x="469" y="350" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-76" on="1"/> + <pt x="264" y="-76" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="115" y="118" on="0"/> + <pt x="180" y="83" on="0"/> + <pt x="259" y="67" on="0"/> + <pt x="310" y="67" on="1"/> + <pt x="403" y="67" on="0"/> + <pt x="486" y="128" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="212" on="0"/> + <pt x="461" y="251" on="0"/> + <pt x="401" y="277" on="0"/> + <pt x="348" y="286" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.bold" xMin="29" yMin="-76" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="464" y="592" on="0"/> + <pt x="370" y="630" on="0"/> + <pt x="308" y="630" on="1"/> + <pt x="226" y="630" on="0"/> + <pt x="137" y="562" on="0"/> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="360" y="372" on="1"/> + <pt x="469" y="350" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-76" on="1"/> + <pt x="264" y="-76" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="115" y="118" on="0"/> + <pt x="180" y="83" on="0"/> + <pt x="259" y="67" on="0"/> + <pt x="310" y="67" on="1"/> + <pt x="403" y="67" on="0"/> + <pt x="486" y="128" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="212" on="0"/> + <pt x="461" y="251" on="0"/> + <pt x="401" y="277" on="0"/> + <pt x="348" y="286" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="space"/><!-- contains no outline data --> + + </glyf> + + <name> + <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis + </namerecord> + <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> + Regular + </namerecord> + <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> + 1.000;NONE;SimpleTwoAxis-Regular + </namerecord> + <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis Regular + </namerecord> + <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> + Version 1.000 + </namerecord> + <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> + SimpleTwoAxis-Regular + </namerecord> + </name> + + <post> + <formatType value="2.0"/> + <italicAngle value="0.0"/> + <underlinePosition value="-100"/> + <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.bold"/> + <psName name="acutecomb"/> + <psName name="dollar.BRACKET.500"/> + </extraNames> + </post> + + <GDEF> + <Version value="0x00010000"/> + <GlyphClassDef> + <ClassDef glyph="A" class="1"/> + <ClassDef glyph="Aacute" class="1"/> + <ClassDef glyph="acutecomb" class="3"/> + </GlyphClassDef> + </GDEF> + + <GPOS> + <Version value="0x00010000"/> + <ScriptList> + <!-- ScriptCount=1 --> + <ScriptRecord index="0"> + <ScriptTag value="DFLT"/> + <Script> + <DefaultLangSys> + <ReqFeatureIndex value="65535"/> + <!-- FeatureCount=2 --> + <FeatureIndex index="0" value="0"/> + <FeatureIndex index="1" value="1"/> + </DefaultLangSys> + <!-- LangSysCount=0 --> + </Script> + </ScriptRecord> + </ScriptList> + <FeatureList> + <!-- FeatureCount=2 --> + <FeatureRecord index="0"> + <FeatureTag value="kern"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="0"/> + </Feature> + </FeatureRecord> + <FeatureRecord index="1"> + <FeatureTag value="mark"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="1"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=2 --> + <Lookup index="0"> + <LookupType value="2"/> + <LookupFlag value="8"/><!-- ignoreMarks --> + <!-- SubTableCount=1 --> + <PairPos index="0" Format="1"> + <Coverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + <Glyph value="V"/> + </Coverage> + <ValueFormat1 value="4"/> + <ValueFormat2 value="0"/> + <!-- PairSetCount=3 --> + <PairSet index="0"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="1"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="2"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="O"/> + <Value1 XAdvance="-20"/> + </PairValueRecord> + </PairSet> + </PairPos> + </Lookup> + <Lookup index="1"> + <LookupType value="4"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <MarkBasePos index="0" Format="1"> + <MarkCoverage> + <Glyph value="acutecomb"/> + </MarkCoverage> + <BaseCoverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + </BaseCoverage> + <!-- ClassCount=1 --> + <MarkArray> + <!-- MarkCount=1 --> + <MarkRecord index="0"> + <Class value="0"/> + <MarkAnchor Format="1"> + <XCoordinate value="4"/> + <YCoordinate value="623"/> + </MarkAnchor> + </MarkRecord> + </MarkArray> + <BaseArray> + <!-- BaseCount=2 --> + <BaseRecord index="0"> + <BaseAnchor index="0" Format="1"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + <BaseRecord index="1"> + <BaseAnchor index="0" Format="1"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + </BaseArray> + </MarkBasePos> + </Lookup> + </LookupList> + </GPOS> + +</ttFont> diff --git a/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Bold.ttx b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Bold.ttx new file mode 100644 index 00000000..18aee9fa --- /dev/null +++ b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Bold.ttx @@ -0,0 +1,578 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20"> + + <GlyphOrder> + <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> + <GlyphID id="0" name=".notdef"/> + <GlyphID id="1" name="A"/> + <GlyphID id="2" name="Aacute"/> + <GlyphID id="3" name="O"/> + <GlyphID id="4" name="V"/> + <GlyphID id="5" name="space"/> + <GlyphID id="6" name="dollar"/> + <GlyphID id="7" name="dollar.bold"/> + <GlyphID id="8" name="acutecomb"/> + <GlyphID id="9" name="dollar.BRACKET.500"/> + </GlyphOrder> + + <head> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="1.0"/> + <fontRevision value="1.0"/> + <checkSumAdjustment value="0x10cb3f3"/> + <magicNumber value="0x5f0f3cf5"/> + <flags value="00000000 00000011"/> + <unitsPerEm value="1000"/> + <created value="Fri Jan 15 14:37:13 2021"/> + <modified value="Mon Mar 15 12:57:03 2021"/> + <xMin value="-141"/> + <yMin value="-200"/> + <xMax value="906"/> + <yMax value="949"/> + <macStyle value="00000000 00000001"/> + <lowestRecPPEM value="6"/> + <fontDirectionHint value="2"/> + <indexToLocFormat value="0"/> + <glyphDataFormat value="0"/> + </head> + + <hhea> + <tableVersion value="0x00010000"/> + <ascent value="1000"/> + <descent value="-200"/> + <lineGap value="0"/> + <advanceWidthMax value="911"/> + <minLeftSideBearing value="-141"/> + <minRightSideBearing value="-125"/> + <xMaxExtent value="906"/> + <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="10"/> + </hhea> + + <maxp> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="0x10000"/> + <numGlyphs value="10"/> + <maxPoints value="52"/> + <maxContours value="3"/> + <maxCompositePoints value="16"/> + <maxCompositeContours value="4"/> + <maxZones value="1"/> + <maxTwilightPoints value="0"/> + <maxStorage value="0"/> + <maxFunctionDefs value="0"/> + <maxInstructionDefs value="0"/> + <maxStackElements value="0"/> + <maxSizeOfInstructions value="0"/> + <maxComponentElements value="2"/> + <maxComponentDepth value="1"/> + </maxp> + + <OS_2> + <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex' + will be recalculated by the compiler --> + <version value="4"/> + <xAvgCharWidth value="672"/> + <usWeightClass value="400"/> + <usWidthClass value="5"/> + <fsType value="00000000 00001000"/> + <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="300"/> + <sFamilyClass value="0"/> + <panose> + <bFamilyType value="0"/> + <bSerifStyle value="0"/> + <bWeight value="0"/> + <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 01000011"/> + <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> + <achVendID value="NONE"/> + <fsSelection value="00000000 00100000"/> + <usFirstCharIndex value="32"/> + <usLastCharIndex value="769"/> + <sTypoAscender value="800"/> + <sTypoDescender value="-200"/> + <sTypoLineGap value="200"/> + <usWinAscent value="1000"/> + <usWinDescent value="200"/> + <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/> + <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> + <sxHeight value="500"/> + <sCapHeight value="700"/> + <usDefaultChar value="0"/> + <usBreakChar value="32"/> + <usMaxContext value="2"/> + </OS_2> + + <hmtx> + <mtx name=".notdef" width="500" lsb="50"/> + <mtx name="A" width="911" lsb="5"/> + <mtx name="Aacute" width="911" lsb="5"/> + <mtx name="O" width="715" lsb="15"/> + <mtx name="V" width="911" lsb="5"/> + <mtx name="acutecomb" width="0" lsb="-141"/> + <mtx name="dollar" width="600" lsb="1"/> + <mtx name="dollar.BRACKET.500" width="600" lsb="1"/> + <mtx name="dollar.bold" width="600" lsb="1"/> + <mtx name="space" width="300" lsb="0"/> + </hmtx> + + <cmap> + <tableVersion version="0"/> + <cmap_format_4 platformID="0" platEncID="3" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </cmap_format_4> + <cmap_format_4 platformID="3" platEncID="1" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </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="50" yMin="-200" xMax="450" yMax="800"> + <contour> + <pt x="50" y="-200" on="1"/> + <pt x="50" y="800" on="1"/> + <pt x="450" y="800" on="1"/> + <pt x="450" y="-200" on="1"/> + </contour> + <contour> + <pt x="100" y="-150" on="1"/> + <pt x="400" y="-150" on="1"/> + <pt x="400" y="750" on="1"/> + <pt x="100" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="A" xMin="5" yMin="0" xMax="906" yMax="700"> + <contour> + <pt x="705" y="0" on="1"/> + <pt x="906" y="0" on="1"/> + <pt x="556" y="700" on="1"/> + <pt x="355" y="700" on="1"/> + </contour> + <contour> + <pt x="5" y="0" on="1"/> + <pt x="206" y="0" on="1"/> + <pt x="556" y="700" on="1"/> + <pt x="355" y="700" on="1"/> + </contour> + <contour> + <pt x="640" y="311" on="1"/> + <pt x="190" y="311" on="1"/> + <pt x="190" y="191" on="1"/> + <pt x="640" y="191" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="906" yMax="949"> + <component glyphName="A" x="0" y="0" flags="0x204"/> + <component glyphName="acutecomb" x="479" y="124" flags="0x4"/> + </TTGlyph> + + <TTGlyph name="O" xMin="15" yMin="-10" xMax="670" yMax="710"> + <contour> + <pt x="342" y="-10" on="1"/> + <pt x="172" y="-10" on="0"/> + <pt x="15" y="163" on="0"/> + <pt x="15" y="350" on="1"/> + <pt x="15" y="538" on="0"/> + <pt x="172" y="710" on="0"/> + <pt x="342" y="710" on="1"/> + <pt x="513" y="710" on="0"/> + <pt x="670" y="538" on="0"/> + <pt x="670" y="350" on="1"/> + <pt x="670" y="163" on="0"/> + <pt x="513" y="-10" on="0"/> + </contour> + <contour> + <pt x="342" y="153" on="1"/> + <pt x="419" y="153" on="0"/> + <pt x="490" y="247" on="0"/> + <pt x="490" y="350" on="1"/> + <pt x="490" y="453" on="0"/> + <pt x="419" y="547" on="0"/> + <pt x="342" y="547" on="1"/> + <pt x="266" y="547" on="0"/> + <pt x="195" y="453" on="0"/> + <pt x="195" y="350" on="1"/> + <pt x="195" y="247" on="0"/> + <pt x="266" y="153" on="0"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="V" xMin="5" yMin="0" xMax="906" yMax="700"> + <contour> + <pt x="355" y="0" on="1"/> + <pt x="705" y="700" on="1"/> + <pt x="906" y="700" on="1"/> + <pt x="556" y="0" on="1"/> + </contour> + <contour> + <pt x="355" y="0" on="1"/> + <pt x="5" y="700" on="1"/> + <pt x="206" y="700" on="1"/> + <pt x="556" y="0" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="825"> + <contour> + <pt x="-118" y="756" on="1"/> + <pt x="-141" y="630" on="1"/> + <pt x="102" y="699" on="1"/> + <pt x="125" y="825" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="479" y="549" on="0"/> + <pt x="411" y="588" on="0"/> + <pt x="369" y="595" on="1"/> + <pt x="369" y="400" on="1"/> + <pt x="476" y="378" on="0"/> + <pt x="595" y="278" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="118" y="144" on="0"/> + <pt x="195" y="106" on="0"/> + <pt x="249" y="100" on="1"/> + <pt x="249" y="273" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="294" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <contour> + <pt x="152" y="502" on="1"/> + <pt x="152" y="480" on="0"/> + <pt x="166" y="453" on="0"/> + <pt x="208" y="434" on="0"/> + <pt x="249" y="424" on="1"/> + <pt x="249" y="595" on="1"/> + <pt x="199" y="587" on="0"/> + <pt x="152" y="538" on="0"/> + </contour> + <contour> + <pt x="369" y="100" on="1"/> + <pt x="426" y="107" on="0"/> + <pt x="471" y="150" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="201" on="0"/> + <pt x="456" y="225" on="0"/> + <pt x="412" y="243" on="0"/> + <pt x="369" y="252" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.BRACKET.500" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="468" y="560" on="0"/> + <pt x="374" y="600" on="0"/> + <pt x="308" y="600" on="1"/> + <pt x="227" y="600" on="0"/> + <pt x="152" y="548" on="0"/> + <pt x="152" y="502" on="1"/> + <pt x="152" y="479" on="0"/> + <pt x="168" y="450" on="0"/> + <pt x="217" y="431" on="0"/> + <pt x="264" y="421" on="1"/> + <pt x="363" y="401" on="1"/> + <pt x="473" y="379" on="0"/> + <pt x="595" y="279" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="112" y="150" on="0"/> + <pt x="176" y="114" on="0"/> + <pt x="256" y="97" on="0"/> + <pt x="310" y="97" on="1"/> + <pt x="402" y="97" on="0"/> + <pt x="471" y="143" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="203" on="0"/> + <pt x="453" y="228" on="0"/> + <pt x="399" y="247" on="0"/> + <pt x="345" y="256" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="293" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.bold" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="468" y="560" on="0"/> + <pt x="374" y="600" on="0"/> + <pt x="308" y="600" on="1"/> + <pt x="227" y="600" on="0"/> + <pt x="152" y="548" on="0"/> + <pt x="152" y="502" on="1"/> + <pt x="152" y="479" on="0"/> + <pt x="168" y="450" on="0"/> + <pt x="217" y="431" on="0"/> + <pt x="264" y="421" on="1"/> + <pt x="363" y="401" on="1"/> + <pt x="473" y="379" on="0"/> + <pt x="595" y="279" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="112" y="150" on="0"/> + <pt x="176" y="114" on="0"/> + <pt x="256" y="97" on="0"/> + <pt x="310" y="97" on="1"/> + <pt x="402" y="97" on="0"/> + <pt x="471" y="143" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="203" on="0"/> + <pt x="453" y="228" on="0"/> + <pt x="399" y="247" on="0"/> + <pt x="345" y="256" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="293" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="space"/><!-- contains no outline data --> + + </glyf> + + <name> + <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis + </namerecord> + <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> + Bold + </namerecord> + <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> + 1.000;NONE;SimpleTwoAxis-Bold + </namerecord> + <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis Bold + </namerecord> + <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> + Version 1.000 + </namerecord> + <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> + SimpleTwoAxis-Bold + </namerecord> + </name> + + <post> + <formatType value="2.0"/> + <italicAngle value="0.0"/> + <underlinePosition value="-100"/> + <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.bold"/> + <psName name="acutecomb"/> + <psName name="dollar.BRACKET.500"/> + </extraNames> + </post> + + <GDEF> + <Version value="0x00010000"/> + <GlyphClassDef> + <ClassDef glyph="A" class="1"/> + <ClassDef glyph="Aacute" class="1"/> + <ClassDef glyph="acutecomb" class="3"/> + </GlyphClassDef> + </GDEF> + + <GPOS> + <Version value="0x00010000"/> + <ScriptList> + <!-- ScriptCount=1 --> + <ScriptRecord index="0"> + <ScriptTag value="DFLT"/> + <Script> + <DefaultLangSys> + <ReqFeatureIndex value="65535"/> + <!-- FeatureCount=2 --> + <FeatureIndex index="0" value="0"/> + </DefaultLangSys> + <!-- LangSysCount=0 --> + </Script> + </ScriptRecord> + </ScriptList> + <FeatureList> + <!-- FeatureCount=2 --> + <FeatureRecord index="0"> + <FeatureTag value="kern"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="0"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=2 --> + <Lookup index="0"> + <LookupType value="2"/> + <LookupFlag value="8"/><!-- ignoreMarks --> + <!-- SubTableCount=1 --> + <PairPos index="0" Format="1"> + <Coverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + <Glyph value="V"/> + </Coverage> + <ValueFormat1 value="4"/> + <ValueFormat2 value="0"/> + <!-- PairSetCount=3 --> + <PairSet index="0"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-120"/> + </PairValueRecord> + </PairSet> + <PairSet index="1"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-120"/> + </PairValueRecord> + </PairSet> + <PairSet index="2"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="O"/> + <Value1 XAdvance="-20"/> + </PairValueRecord> + </PairSet> + </PairPos> + </Lookup> + </LookupList> + </GPOS> + +</ttFont> diff --git a/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Regular.ttx b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Regular.ttx new file mode 100644 index 00000000..cabb69a4 --- /dev/null +++ b/Tests/varLib/data/master_incompatible_features/IncompatibleFeatures-Regular.ttx @@ -0,0 +1,626 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20"> + + <GlyphOrder> + <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> + <GlyphID id="0" name=".notdef"/> + <GlyphID id="1" name="A"/> + <GlyphID id="2" name="Aacute"/> + <GlyphID id="3" name="O"/> + <GlyphID id="4" name="V"/> + <GlyphID id="5" name="space"/> + <GlyphID id="6" name="dollar"/> + <GlyphID id="7" name="dollar.bold"/> + <GlyphID id="8" name="acutecomb"/> + <GlyphID id="9" name="dollar.BRACKET.500"/> + </GlyphOrder> + + <head> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="1.0"/> + <fontRevision value="1.0"/> + <checkSumAdjustment value="0x3c7bc79b"/> + <magicNumber value="0x5f0f3cf5"/> + <flags value="00000000 00000011"/> + <unitsPerEm value="1000"/> + <created value="Fri Jan 15 14:37:13 2021"/> + <modified value="Mon Mar 15 12:57:03 2021"/> + <xMin value="-141"/> + <yMin value="-200"/> + <xMax value="751"/> + <yMax value="915"/> + <macStyle value="00000000 00000000"/> + <lowestRecPPEM value="6"/> + <fontDirectionHint value="2"/> + <indexToLocFormat value="0"/> + <glyphDataFormat value="0"/> + </head> + + <hhea> + <tableVersion value="0x00010000"/> + <ascent value="1000"/> + <descent value="-200"/> + <lineGap value="0"/> + <advanceWidthMax value="756"/> + <minLeftSideBearing value="-141"/> + <minRightSideBearing value="-125"/> + <xMaxExtent value="751"/> + <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="10"/> + </hhea> + + <maxp> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="0x10000"/> + <numGlyphs value="10"/> + <maxPoints value="52"/> + <maxContours value="3"/> + <maxCompositePoints value="16"/> + <maxCompositeContours value="4"/> + <maxZones value="1"/> + <maxTwilightPoints value="0"/> + <maxStorage value="0"/> + <maxFunctionDefs value="0"/> + <maxInstructionDefs value="0"/> + <maxStackElements value="0"/> + <maxSizeOfInstructions value="0"/> + <maxComponentElements value="2"/> + <maxComponentDepth value="1"/> + </maxp> + + <OS_2> + <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex' + will be recalculated by the compiler --> + <version value="4"/> + <xAvgCharWidth value="604"/> + <usWeightClass value="400"/> + <usWidthClass value="5"/> + <fsType value="00000000 00001000"/> + <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="300"/> + <sFamilyClass value="0"/> + <panose> + <bFamilyType value="0"/> + <bSerifStyle value="0"/> + <bWeight value="0"/> + <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 01000011"/> + <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> + <achVendID value="NONE"/> + <fsSelection value="00000000 01000000"/> + <usFirstCharIndex value="32"/> + <usLastCharIndex value="769"/> + <sTypoAscender value="800"/> + <sTypoDescender value="-200"/> + <sTypoLineGap value="200"/> + <usWinAscent value="1000"/> + <usWinDescent value="200"/> + <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/> + <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> + <sxHeight value="500"/> + <sCapHeight value="700"/> + <usDefaultChar value="0"/> + <usBreakChar value="32"/> + <usMaxContext value="2"/> + </OS_2> + + <hmtx> + <mtx name=".notdef" width="500" lsb="50"/> + <mtx name="A" width="756" lsb="5"/> + <mtx name="Aacute" width="756" lsb="5"/> + <mtx name="O" width="664" lsb="30"/> + <mtx name="V" width="756" lsb="5"/> + <mtx name="acutecomb" width="0" lsb="-141"/> + <mtx name="dollar" width="600" lsb="29"/> + <mtx name="dollar.BRACKET.500" width="600" lsb="29"/> + <mtx name="dollar.bold" width="600" lsb="29"/> + <mtx name="space" width="200" lsb="0"/> + </hmtx> + + <cmap> + <tableVersion version="0"/> + <cmap_format_4 platformID="0" platEncID="3" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </cmap_format_4> + <cmap_format_4 platformID="3" platEncID="1" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </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="50" yMin="-200" xMax="450" yMax="800"> + <contour> + <pt x="50" y="-200" on="1"/> + <pt x="50" y="800" on="1"/> + <pt x="450" y="800" on="1"/> + <pt x="450" y="-200" on="1"/> + </contour> + <contour> + <pt x="100" y="-150" on="1"/> + <pt x="400" y="-150" on="1"/> + <pt x="400" y="750" on="1"/> + <pt x="100" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="A" xMin="5" yMin="0" xMax="751" yMax="700"> + <contour> + <pt x="641" y="0" on="1"/> + <pt x="751" y="0" on="1"/> + <pt x="433" y="700" on="1"/> + <pt x="323" y="700" on="1"/> + </contour> + <contour> + <pt x="5" y="0" on="1"/> + <pt x="115" y="0" on="1"/> + <pt x="433" y="700" on="1"/> + <pt x="323" y="700" on="1"/> + </contour> + <contour> + <pt x="567" y="284" on="1"/> + <pt x="152" y="284" on="1"/> + <pt x="152" y="204" on="1"/> + <pt x="567" y="204" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="751" yMax="915"> + <component glyphName="A" x="0" y="0" flags="0x204"/> + <component glyphName="acutecomb" x="402" y="130" flags="0x4"/> + </TTGlyph> + + <TTGlyph name="O" xMin="30" yMin="-10" xMax="634" yMax="710"> + <contour> + <pt x="332" y="-10" on="1"/> + <pt x="181" y="-10" on="0"/> + <pt x="30" y="169" on="0"/> + <pt x="30" y="350" on="1"/> + <pt x="30" y="531" on="0"/> + <pt x="181" y="710" on="0"/> + <pt x="332" y="710" on="1"/> + <pt x="484" y="710" on="0"/> + <pt x="634" y="531" on="0"/> + <pt x="634" y="350" on="1"/> + <pt x="634" y="169" on="0"/> + <pt x="484" y="-10" on="0"/> + </contour> + <contour> + <pt x="332" y="74" on="1"/> + <pt x="438" y="74" on="0"/> + <pt x="544" y="212" on="0"/> + <pt x="544" y="350" on="1"/> + <pt x="544" y="488" on="0"/> + <pt x="438" y="626" on="0"/> + <pt x="332" y="626" on="1"/> + <pt x="226" y="626" on="0"/> + <pt x="120" y="488" on="0"/> + <pt x="120" y="350" on="1"/> + <pt x="120" y="212" on="0"/> + <pt x="226" y="74" on="0"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="V" xMin="5" yMin="0" xMax="751" yMax="700"> + <contour> + <pt x="323" y="0" on="1"/> + <pt x="641" y="700" on="1"/> + <pt x="751" y="700" on="1"/> + <pt x="433" y="0" on="1"/> + </contour> + <contour> + <pt x="323" y="0" on="1"/> + <pt x="5" y="700" on="1"/> + <pt x="115" y="700" on="1"/> + <pt x="433" y="0" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="785"> + <contour> + <pt x="-118" y="716" on="1"/> + <pt x="-141" y="630" on="1"/> + <pt x="102" y="699" on="1"/> + <pt x="125" y="785" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar" xMin="29" yMin="-68" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="473" y="584" on="0"/> + <pt x="398" y="621" on="0"/> + <pt x="354" y="627" on="1"/> + <pt x="354" y="373" on="1"/> + <pt x="467" y="351" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-68" on="1"/> + <pt x="264" y="-68" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="123" y="110" on="0"/> + <pt x="207" y="73" on="0"/> + <pt x="264" y="69" on="1"/> + <pt x="264" y="301" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <contour> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="264" y="627" on="1"/> + <pt x="203" y="618" on="0"/> + <pt x="137" y="553" on="0"/> + </contour> + <contour> + <pt x="354" y="69" on="1"/> + <pt x="423" y="76" on="0"/> + <pt x="486" y="135" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="211" on="0"/> + <pt x="462" y="250" on="0"/> + <pt x="405" y="275" on="0"/> + <pt x="354" y="285" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.BRACKET.500" xMin="29" yMin="-76" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="464" y="592" on="0"/> + <pt x="370" y="630" on="0"/> + <pt x="308" y="630" on="1"/> + <pt x="226" y="630" on="0"/> + <pt x="137" y="562" on="0"/> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="360" y="372" on="1"/> + <pt x="469" y="350" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-76" on="1"/> + <pt x="264" y="-76" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="115" y="118" on="0"/> + <pt x="180" y="83" on="0"/> + <pt x="259" y="67" on="0"/> + <pt x="310" y="67" on="1"/> + <pt x="403" y="67" on="0"/> + <pt x="486" y="128" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="212" on="0"/> + <pt x="461" y="251" on="0"/> + <pt x="401" y="277" on="0"/> + <pt x="348" y="286" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.bold" xMin="29" yMin="-76" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="464" y="592" on="0"/> + <pt x="370" y="630" on="0"/> + <pt x="308" y="630" on="1"/> + <pt x="226" y="630" on="0"/> + <pt x="137" y="562" on="0"/> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="360" y="372" on="1"/> + <pt x="469" y="350" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-76" on="1"/> + <pt x="264" y="-76" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="115" y="118" on="0"/> + <pt x="180" y="83" on="0"/> + <pt x="259" y="67" on="0"/> + <pt x="310" y="67" on="1"/> + <pt x="403" y="67" on="0"/> + <pt x="486" y="128" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="212" on="0"/> + <pt x="461" y="251" on="0"/> + <pt x="401" y="277" on="0"/> + <pt x="348" y="286" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="space"/><!-- contains no outline data --> + + </glyf> + + <name> + <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis + </namerecord> + <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> + Regular + </namerecord> + <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> + 1.000;NONE;SimpleTwoAxis-Regular + </namerecord> + <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis Regular + </namerecord> + <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> + Version 1.000 + </namerecord> + <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> + SimpleTwoAxis-Regular + </namerecord> + </name> + + <post> + <formatType value="2.0"/> + <italicAngle value="0.0"/> + <underlinePosition value="-100"/> + <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.bold"/> + <psName name="acutecomb"/> + <psName name="dollar.BRACKET.500"/> + </extraNames> + </post> + + <GDEF> + <Version value="0x00010000"/> + <GlyphClassDef> + <ClassDef glyph="A" class="1"/> + <ClassDef glyph="Aacute" class="1"/> + <ClassDef glyph="acutecomb" class="3"/> + </GlyphClassDef> + </GDEF> + + <GPOS> + <Version value="0x00010000"/> + <ScriptList> + <!-- ScriptCount=1 --> + <ScriptRecord index="0"> + <ScriptTag value="DFLT"/> + <Script> + <DefaultLangSys> + <ReqFeatureIndex value="65535"/> + <!-- FeatureCount=2 --> + <FeatureIndex index="0" value="0"/> + <FeatureIndex index="1" value="1"/> + </DefaultLangSys> + <!-- LangSysCount=0 --> + </Script> + </ScriptRecord> + </ScriptList> + <FeatureList> + <!-- FeatureCount=2 --> + <FeatureRecord index="0"> + <FeatureTag value="kern"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="0"/> + </Feature> + </FeatureRecord> + <FeatureRecord index="1"> + <FeatureTag value="mark"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="1"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=2 --> + <Lookup index="0"> + <LookupType value="2"/> + <LookupFlag value="8"/><!-- ignoreMarks --> + <!-- SubTableCount=1 --> + <PairPos index="0" Format="1"> + <Coverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + <Glyph value="V"/> + </Coverage> + <ValueFormat1 value="4"/> + <ValueFormat2 value="0"/> + <!-- PairSetCount=3 --> + <PairSet index="0"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="1"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="2"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="O"/> + <Value1 XAdvance="-20"/> + </PairValueRecord> + </PairSet> + </PairPos> + </Lookup> + <Lookup index="1"> + <LookupType value="4"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <MarkBasePos index="0" Format="1"> + <MarkCoverage> + <Glyph value="acutecomb"/> + </MarkCoverage> + <BaseCoverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + </BaseCoverage> + <!-- ClassCount=1 --> + <MarkArray> + <!-- MarkCount=1 --> + <MarkRecord index="0"> + <Class value="0"/> + <MarkAnchor Format="1"> + <XCoordinate value="4"/> + <YCoordinate value="623"/> + </MarkAnchor> + </MarkRecord> + </MarkArray> + <BaseArray> + <!-- BaseCount=2 --> + <BaseRecord index="0"> + <BaseAnchor index="0" Format="1"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + <BaseRecord index="1"> + <BaseAnchor index="0" Format="1"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + </BaseArray> + </MarkBasePos> + </Lookup> + </LookupList> + </GPOS> + +</ttFont> diff --git a/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx new file mode 100644 index 00000000..6a282237 --- /dev/null +++ b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Bold.ttx @@ -0,0 +1,622 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20"> + + <GlyphOrder> + <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> + <GlyphID id="0" name=".notdef"/> + <GlyphID id="1" name="A"/> + <GlyphID id="2" name="Aacute"/> + <GlyphID id="3" name="O"/> + <GlyphID id="4" name="V"/> + <GlyphID id="5" name="space"/> + <GlyphID id="6" name="dollar"/> + <GlyphID id="7" name="dollar.bold"/> + <GlyphID id="8" name="acutecomb"/> + <GlyphID id="9" name="dollar.BRACKET.500"/> + </GlyphOrder> + + <head> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="1.0"/> + <fontRevision value="1.0"/> + <checkSumAdjustment value="0x10cb3f3"/> + <magicNumber value="0x5f0f3cf5"/> + <flags value="00000000 00000011"/> + <unitsPerEm value="1000"/> + <created value="Fri Jan 15 14:37:13 2021"/> + <modified value="Mon Mar 15 12:57:03 2021"/> + <xMin value="-141"/> + <yMin value="-200"/> + <xMax value="906"/> + <yMax value="949"/> + <macStyle value="00000000 00000001"/> + <lowestRecPPEM value="6"/> + <fontDirectionHint value="2"/> + <indexToLocFormat value="0"/> + <glyphDataFormat value="0"/> + </head> + + <hhea> + <tableVersion value="0x00010000"/> + <ascent value="1000"/> + <descent value="-200"/> + <lineGap value="0"/> + <advanceWidthMax value="911"/> + <minLeftSideBearing value="-141"/> + <minRightSideBearing value="-125"/> + <xMaxExtent value="906"/> + <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="10"/> + </hhea> + + <maxp> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="0x10000"/> + <numGlyphs value="10"/> + <maxPoints value="52"/> + <maxContours value="3"/> + <maxCompositePoints value="16"/> + <maxCompositeContours value="4"/> + <maxZones value="1"/> + <maxTwilightPoints value="0"/> + <maxStorage value="0"/> + <maxFunctionDefs value="0"/> + <maxInstructionDefs value="0"/> + <maxStackElements value="0"/> + <maxSizeOfInstructions value="0"/> + <maxComponentElements value="2"/> + <maxComponentDepth value="1"/> + </maxp> + + <OS_2> + <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex' + will be recalculated by the compiler --> + <version value="4"/> + <xAvgCharWidth value="672"/> + <usWeightClass value="400"/> + <usWidthClass value="5"/> + <fsType value="00000000 00001000"/> + <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="300"/> + <sFamilyClass value="0"/> + <panose> + <bFamilyType value="0"/> + <bSerifStyle value="0"/> + <bWeight value="0"/> + <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 01000011"/> + <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> + <achVendID value="NONE"/> + <fsSelection value="00000000 00100000"/> + <usFirstCharIndex value="32"/> + <usLastCharIndex value="769"/> + <sTypoAscender value="800"/> + <sTypoDescender value="-200"/> + <sTypoLineGap value="200"/> + <usWinAscent value="1000"/> + <usWinDescent value="200"/> + <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/> + <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> + <sxHeight value="500"/> + <sCapHeight value="700"/> + <usDefaultChar value="0"/> + <usBreakChar value="32"/> + <usMaxContext value="2"/> + </OS_2> + + <hmtx> + <mtx name=".notdef" width="500" lsb="50"/> + <mtx name="A" width="911" lsb="5"/> + <mtx name="Aacute" width="911" lsb="5"/> + <mtx name="O" width="715" lsb="15"/> + <mtx name="V" width="911" lsb="5"/> + <mtx name="acutecomb" width="0" lsb="-141"/> + <mtx name="dollar" width="600" lsb="1"/> + <mtx name="dollar.BRACKET.500" width="600" lsb="1"/> + <mtx name="dollar.bold" width="600" lsb="1"/> + <mtx name="space" width="300" lsb="0"/> + </hmtx> + + <cmap> + <tableVersion version="0"/> + <cmap_format_4 platformID="0" platEncID="3" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </cmap_format_4> + <cmap_format_4 platformID="3" platEncID="1" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </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="50" yMin="-200" xMax="450" yMax="800"> + <contour> + <pt x="50" y="-200" on="1"/> + <pt x="50" y="800" on="1"/> + <pt x="450" y="800" on="1"/> + <pt x="450" y="-200" on="1"/> + </contour> + <contour> + <pt x="100" y="-150" on="1"/> + <pt x="400" y="-150" on="1"/> + <pt x="400" y="750" on="1"/> + <pt x="100" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="A" xMin="5" yMin="0" xMax="906" yMax="700"> + <contour> + <pt x="705" y="0" on="1"/> + <pt x="906" y="0" on="1"/> + <pt x="556" y="700" on="1"/> + <pt x="355" y="700" on="1"/> + </contour> + <contour> + <pt x="5" y="0" on="1"/> + <pt x="206" y="0" on="1"/> + <pt x="556" y="700" on="1"/> + <pt x="355" y="700" on="1"/> + </contour> + <contour> + <pt x="640" y="311" on="1"/> + <pt x="190" y="311" on="1"/> + <pt x="190" y="191" on="1"/> + <pt x="640" y="191" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="906" yMax="949"> + <component glyphName="A" x="0" y="0" flags="0x204"/> + <component glyphName="acutecomb" x="479" y="124" flags="0x4"/> + </TTGlyph> + + <TTGlyph name="O" xMin="15" yMin="-10" xMax="670" yMax="710"> + <contour> + <pt x="342" y="-10" on="1"/> + <pt x="172" y="-10" on="0"/> + <pt x="15" y="163" on="0"/> + <pt x="15" y="350" on="1"/> + <pt x="15" y="538" on="0"/> + <pt x="172" y="710" on="0"/> + <pt x="342" y="710" on="1"/> + <pt x="513" y="710" on="0"/> + <pt x="670" y="538" on="0"/> + <pt x="670" y="350" on="1"/> + <pt x="670" y="163" on="0"/> + <pt x="513" y="-10" on="0"/> + </contour> + <contour> + <pt x="342" y="153" on="1"/> + <pt x="419" y="153" on="0"/> + <pt x="490" y="247" on="0"/> + <pt x="490" y="350" on="1"/> + <pt x="490" y="453" on="0"/> + <pt x="419" y="547" on="0"/> + <pt x="342" y="547" on="1"/> + <pt x="266" y="547" on="0"/> + <pt x="195" y="453" on="0"/> + <pt x="195" y="350" on="1"/> + <pt x="195" y="247" on="0"/> + <pt x="266" y="153" on="0"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="V" xMin="5" yMin="0" xMax="906" yMax="700"> + <contour> + <pt x="355" y="0" on="1"/> + <pt x="705" y="700" on="1"/> + <pt x="906" y="700" on="1"/> + <pt x="556" y="0" on="1"/> + </contour> + <contour> + <pt x="355" y="0" on="1"/> + <pt x="5" y="700" on="1"/> + <pt x="206" y="700" on="1"/> + <pt x="556" y="0" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="825"> + <contour> + <pt x="-118" y="756" on="1"/> + <pt x="-141" y="630" on="1"/> + <pt x="102" y="699" on="1"/> + <pt x="125" y="825" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="479" y="549" on="0"/> + <pt x="411" y="588" on="0"/> + <pt x="369" y="595" on="1"/> + <pt x="369" y="400" on="1"/> + <pt x="476" y="378" on="0"/> + <pt x="595" y="278" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="118" y="144" on="0"/> + <pt x="195" y="106" on="0"/> + <pt x="249" y="100" on="1"/> + <pt x="249" y="273" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="294" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <contour> + <pt x="152" y="502" on="1"/> + <pt x="152" y="480" on="0"/> + <pt x="166" y="453" on="0"/> + <pt x="208" y="434" on="0"/> + <pt x="249" y="424" on="1"/> + <pt x="249" y="595" on="1"/> + <pt x="199" y="587" on="0"/> + <pt x="152" y="538" on="0"/> + </contour> + <contour> + <pt x="369" y="100" on="1"/> + <pt x="426" y="107" on="0"/> + <pt x="471" y="150" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="201" on="0"/> + <pt x="456" y="225" on="0"/> + <pt x="412" y="243" on="0"/> + <pt x="369" y="252" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.BRACKET.500" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="468" y="560" on="0"/> + <pt x="374" y="600" on="0"/> + <pt x="308" y="600" on="1"/> + <pt x="227" y="600" on="0"/> + <pt x="152" y="548" on="0"/> + <pt x="152" y="502" on="1"/> + <pt x="152" y="479" on="0"/> + <pt x="168" y="450" on="0"/> + <pt x="217" y="431" on="0"/> + <pt x="264" y="421" on="1"/> + <pt x="363" y="401" on="1"/> + <pt x="473" y="379" on="0"/> + <pt x="595" y="279" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="112" y="150" on="0"/> + <pt x="176" y="114" on="0"/> + <pt x="256" y="97" on="0"/> + <pt x="310" y="97" on="1"/> + <pt x="402" y="97" on="0"/> + <pt x="471" y="143" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="203" on="0"/> + <pt x="453" y="228" on="0"/> + <pt x="399" y="247" on="0"/> + <pt x="345" y="256" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="293" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.bold" xMin="1" yMin="-98" xMax="595" yMax="789"> + <contour> + <pt x="249" y="789" on="1"/> + <pt x="369" y="789" on="1"/> + <pt x="369" y="743" on="1"/> + <pt x="427" y="735" on="0"/> + <pt x="537" y="681" on="0"/> + <pt x="590" y="623" on="1"/> + <pt x="510" y="515" on="1"/> + <pt x="468" y="560" on="0"/> + <pt x="374" y="600" on="0"/> + <pt x="308" y="600" on="1"/> + <pt x="227" y="600" on="0"/> + <pt x="152" y="548" on="0"/> + <pt x="152" y="502" on="1"/> + <pt x="152" y="479" on="0"/> + <pt x="168" y="450" on="0"/> + <pt x="217" y="431" on="0"/> + <pt x="264" y="421" on="1"/> + <pt x="363" y="401" on="1"/> + <pt x="473" y="379" on="0"/> + <pt x="595" y="279" on="0"/> + <pt x="595" y="184" on="1"/> + <pt x="595" y="93" on="0"/> + <pt x="474" y="-32" on="0"/> + <pt x="369" y="-46" on="1"/> + <pt x="369" y="-98" on="1"/> + <pt x="249" y="-98" on="1"/> + <pt x="249" y="-47" on="1"/> + <pt x="176" y="-39" on="0"/> + <pt x="52" y="17" on="0"/> + <pt x="1" y="69" on="1"/> + <pt x="80" y="179" on="1"/> + <pt x="112" y="150" on="0"/> + <pt x="176" y="114" on="0"/> + <pt x="256" y="97" on="0"/> + <pt x="310" y="97" on="1"/> + <pt x="402" y="97" on="0"/> + <pt x="471" y="143" on="0"/> + <pt x="471" y="183" on="1"/> + <pt x="471" y="203" on="0"/> + <pt x="453" y="228" on="0"/> + <pt x="399" y="247" on="0"/> + <pt x="345" y="256" on="1"/> + <pt x="246" y="274" on="1"/> + <pt x="144" y="293" on="0"/> + <pt x="28" y="405" on="0"/> + <pt x="28" y="502" on="1"/> + <pt x="28" y="567" on="0"/> + <pt x="84" y="667" on="0"/> + <pt x="184" y="732" on="0"/> + <pt x="249" y="742" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="space"/><!-- contains no outline data --> + + </glyf> + + <name> + <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis + </namerecord> + <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> + Bold + </namerecord> + <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> + 1.000;NONE;SimpleTwoAxis-Bold + </namerecord> + <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis Bold + </namerecord> + <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> + Version 1.000 + </namerecord> + <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> + SimpleTwoAxis-Bold + </namerecord> + </name> + + <post> + <formatType value="2.0"/> + <italicAngle value="0.0"/> + <underlinePosition value="-100"/> + <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.bold"/> + <psName name="acutecomb"/> + <psName name="dollar.BRACKET.500"/> + </extraNames> + </post> + + <GDEF> + <Version value="0x00010000"/> + <GlyphClassDef> + <ClassDef glyph="A" class="1"/> + <ClassDef glyph="Aacute" class="1"/> + <ClassDef glyph="acutecomb" class="3"/> + </GlyphClassDef> + </GDEF> + + <GPOS> + <Version value="0x00010000"/> + <ScriptList> + <!-- ScriptCount=1 --> + <ScriptRecord index="0"> + <ScriptTag value="DFLT"/> + <Script> + <DefaultLangSys> + <ReqFeatureIndex value="65535"/> + <!-- FeatureCount=2 --> + <FeatureIndex index="0" value="0"/> + <FeatureIndex index="1" value="1"/> + </DefaultLangSys> + <!-- LangSysCount=0 --> + </Script> + </ScriptRecord> + </ScriptList> + <FeatureList> + <!-- FeatureCount=2 --> + <FeatureRecord index="0"> + <FeatureTag value="kern"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="0"/> + </Feature> + </FeatureRecord> + <FeatureRecord index="1"> + <FeatureTag value="mark"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="1"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=2 --> + <Lookup index="0"> + <LookupType value="2"/> + <LookupFlag value="8"/><!-- ignoreMarks --> + <!-- SubTableCount=1 --> + <PairPos index="0" Format="1"> + <Coverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + <Glyph value="V"/> + </Coverage> + <ValueFormat1 value="4"/> + <ValueFormat2 value="0"/> + <!-- PairSetCount=3 --> + <PairSet index="0"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="1"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="2"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="O"/> + <Value1 XAdvance="-20"/> + </PairValueRecord> + </PairSet> + </PairPos> + </Lookup> + <Lookup index="1"> + <LookupType value="4"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <PairPos index="0" Format="1"> + <Coverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + <Glyph value="V"/> + </Coverage> + <ValueFormat1 value="4"/> + <ValueFormat2 value="0"/> + <!-- PairSetCount=3 --> + <PairSet index="0"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="1"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="2"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="O"/> + <Value1 XAdvance="-20"/> + </PairValueRecord> + </PairSet> + </PairPos> + </Lookup> + </LookupList> + </GPOS> + +</ttFont> diff --git a/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx new file mode 100644 index 00000000..dc6eb17c --- /dev/null +++ b/Tests/varLib/data/master_incompatible_lookup_types/IncompatibleLookupTypes-Regular.ttx @@ -0,0 +1,626 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.20"> + + <GlyphOrder> + <!-- The 'id' attribute is only for humans; it is ignored when parsed. --> + <GlyphID id="0" name=".notdef"/> + <GlyphID id="1" name="A"/> + <GlyphID id="2" name="Aacute"/> + <GlyphID id="3" name="O"/> + <GlyphID id="4" name="V"/> + <GlyphID id="5" name="space"/> + <GlyphID id="6" name="dollar"/> + <GlyphID id="7" name="dollar.bold"/> + <GlyphID id="8" name="acutecomb"/> + <GlyphID id="9" name="dollar.BRACKET.500"/> + </GlyphOrder> + + <head> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="1.0"/> + <fontRevision value="1.0"/> + <checkSumAdjustment value="0x3c7bc79b"/> + <magicNumber value="0x5f0f3cf5"/> + <flags value="00000000 00000011"/> + <unitsPerEm value="1000"/> + <created value="Fri Jan 15 14:37:13 2021"/> + <modified value="Mon Mar 15 12:57:03 2021"/> + <xMin value="-141"/> + <yMin value="-200"/> + <xMax value="751"/> + <yMax value="915"/> + <macStyle value="00000000 00000000"/> + <lowestRecPPEM value="6"/> + <fontDirectionHint value="2"/> + <indexToLocFormat value="0"/> + <glyphDataFormat value="0"/> + </head> + + <hhea> + <tableVersion value="0x00010000"/> + <ascent value="1000"/> + <descent value="-200"/> + <lineGap value="0"/> + <advanceWidthMax value="756"/> + <minLeftSideBearing value="-141"/> + <minRightSideBearing value="-125"/> + <xMaxExtent value="751"/> + <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="10"/> + </hhea> + + <maxp> + <!-- Most of this table will be recalculated by the compiler --> + <tableVersion value="0x10000"/> + <numGlyphs value="10"/> + <maxPoints value="52"/> + <maxContours value="3"/> + <maxCompositePoints value="16"/> + <maxCompositeContours value="4"/> + <maxZones value="1"/> + <maxTwilightPoints value="0"/> + <maxStorage value="0"/> + <maxFunctionDefs value="0"/> + <maxInstructionDefs value="0"/> + <maxStackElements value="0"/> + <maxSizeOfInstructions value="0"/> + <maxComponentElements value="2"/> + <maxComponentDepth value="1"/> + </maxp> + + <OS_2> + <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex' + will be recalculated by the compiler --> + <version value="4"/> + <xAvgCharWidth value="604"/> + <usWeightClass value="400"/> + <usWidthClass value="5"/> + <fsType value="00000000 00001000"/> + <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="300"/> + <sFamilyClass value="0"/> + <panose> + <bFamilyType value="0"/> + <bSerifStyle value="0"/> + <bWeight value="0"/> + <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 01000011"/> + <ulUnicodeRange2 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/> + <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/> + <achVendID value="NONE"/> + <fsSelection value="00000000 01000000"/> + <usFirstCharIndex value="32"/> + <usLastCharIndex value="769"/> + <sTypoAscender value="800"/> + <sTypoDescender value="-200"/> + <sTypoLineGap value="200"/> + <usWinAscent value="1000"/> + <usWinDescent value="200"/> + <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/> + <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/> + <sxHeight value="500"/> + <sCapHeight value="700"/> + <usDefaultChar value="0"/> + <usBreakChar value="32"/> + <usMaxContext value="2"/> + </OS_2> + + <hmtx> + <mtx name=".notdef" width="500" lsb="50"/> + <mtx name="A" width="756" lsb="5"/> + <mtx name="Aacute" width="756" lsb="5"/> + <mtx name="O" width="664" lsb="30"/> + <mtx name="V" width="756" lsb="5"/> + <mtx name="acutecomb" width="0" lsb="-141"/> + <mtx name="dollar" width="600" lsb="29"/> + <mtx name="dollar.BRACKET.500" width="600" lsb="29"/> + <mtx name="dollar.bold" width="600" lsb="29"/> + <mtx name="space" width="200" lsb="0"/> + </hmtx> + + <cmap> + <tableVersion version="0"/> + <cmap_format_4 platformID="0" platEncID="3" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </cmap_format_4> + <cmap_format_4 platformID="3" platEncID="1" language="0"> + <map code="0x20" name="space"/><!-- SPACE --> + <map code="0x24" name="dollar"/><!-- DOLLAR SIGN --> + <map code="0x41" name="A"/><!-- LATIN CAPITAL LETTER A --> + <map code="0x4f" name="O"/><!-- LATIN CAPITAL LETTER O --> + <map code="0x56" name="V"/><!-- LATIN CAPITAL LETTER V --> + <map code="0xc1" name="Aacute"/><!-- LATIN CAPITAL LETTER A WITH ACUTE --> + <map code="0x301" name="acutecomb"/><!-- COMBINING ACUTE ACCENT --> + </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="50" yMin="-200" xMax="450" yMax="800"> + <contour> + <pt x="50" y="-200" on="1"/> + <pt x="50" y="800" on="1"/> + <pt x="450" y="800" on="1"/> + <pt x="450" y="-200" on="1"/> + </contour> + <contour> + <pt x="100" y="-150" on="1"/> + <pt x="400" y="-150" on="1"/> + <pt x="400" y="750" on="1"/> + <pt x="100" y="750" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="A" xMin="5" yMin="0" xMax="751" yMax="700"> + <contour> + <pt x="641" y="0" on="1"/> + <pt x="751" y="0" on="1"/> + <pt x="433" y="700" on="1"/> + <pt x="323" y="700" on="1"/> + </contour> + <contour> + <pt x="5" y="0" on="1"/> + <pt x="115" y="0" on="1"/> + <pt x="433" y="700" on="1"/> + <pt x="323" y="700" on="1"/> + </contour> + <contour> + <pt x="567" y="284" on="1"/> + <pt x="152" y="284" on="1"/> + <pt x="152" y="204" on="1"/> + <pt x="567" y="204" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="Aacute" xMin="5" yMin="0" xMax="751" yMax="915"> + <component glyphName="A" x="0" y="0" flags="0x204"/> + <component glyphName="acutecomb" x="402" y="130" flags="0x4"/> + </TTGlyph> + + <TTGlyph name="O" xMin="30" yMin="-10" xMax="634" yMax="710"> + <contour> + <pt x="332" y="-10" on="1"/> + <pt x="181" y="-10" on="0"/> + <pt x="30" y="169" on="0"/> + <pt x="30" y="350" on="1"/> + <pt x="30" y="531" on="0"/> + <pt x="181" y="710" on="0"/> + <pt x="332" y="710" on="1"/> + <pt x="484" y="710" on="0"/> + <pt x="634" y="531" on="0"/> + <pt x="634" y="350" on="1"/> + <pt x="634" y="169" on="0"/> + <pt x="484" y="-10" on="0"/> + </contour> + <contour> + <pt x="332" y="74" on="1"/> + <pt x="438" y="74" on="0"/> + <pt x="544" y="212" on="0"/> + <pt x="544" y="350" on="1"/> + <pt x="544" y="488" on="0"/> + <pt x="438" y="626" on="0"/> + <pt x="332" y="626" on="1"/> + <pt x="226" y="626" on="0"/> + <pt x="120" y="488" on="0"/> + <pt x="120" y="350" on="1"/> + <pt x="120" y="212" on="0"/> + <pt x="226" y="74" on="0"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="V" xMin="5" yMin="0" xMax="751" yMax="700"> + <contour> + <pt x="323" y="0" on="1"/> + <pt x="641" y="700" on="1"/> + <pt x="751" y="700" on="1"/> + <pt x="433" y="0" on="1"/> + </contour> + <contour> + <pt x="323" y="0" on="1"/> + <pt x="5" y="700" on="1"/> + <pt x="115" y="700" on="1"/> + <pt x="433" y="0" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="acutecomb" xMin="-141" yMin="630" xMax="125" yMax="785"> + <contour> + <pt x="-118" y="716" on="1"/> + <pt x="-141" y="630" on="1"/> + <pt x="102" y="699" on="1"/> + <pt x="125" y="785" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar" xMin="29" yMin="-68" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="473" y="584" on="0"/> + <pt x="398" y="621" on="0"/> + <pt x="354" y="627" on="1"/> + <pt x="354" y="373" on="1"/> + <pt x="467" y="351" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-68" on="1"/> + <pt x="264" y="-68" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="123" y="110" on="0"/> + <pt x="207" y="73" on="0"/> + <pt x="264" y="69" on="1"/> + <pt x="264" y="301" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <contour> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="264" y="627" on="1"/> + <pt x="203" y="618" on="0"/> + <pt x="137" y="553" on="0"/> + </contour> + <contour> + <pt x="354" y="69" on="1"/> + <pt x="423" y="76" on="0"/> + <pt x="486" y="135" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="211" on="0"/> + <pt x="462" y="250" on="0"/> + <pt x="405" y="275" on="0"/> + <pt x="354" y="285" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.BRACKET.500" xMin="29" yMin="-76" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="464" y="592" on="0"/> + <pt x="370" y="630" on="0"/> + <pt x="308" y="630" on="1"/> + <pt x="226" y="630" on="0"/> + <pt x="137" y="562" on="0"/> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="360" y="372" on="1"/> + <pt x="469" y="350" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-76" on="1"/> + <pt x="264" y="-76" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="115" y="118" on="0"/> + <pt x="180" y="83" on="0"/> + <pt x="259" y="67" on="0"/> + <pt x="310" y="67" on="1"/> + <pt x="403" y="67" on="0"/> + <pt x="486" y="128" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="212" on="0"/> + <pt x="461" y="251" on="0"/> + <pt x="401" y="277" on="0"/> + <pt x="348" y="286" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="dollar.bold" xMin="29" yMin="-76" xMax="580" yMax="759"> + <contour> + <pt x="264" y="759" on="1"/> + <pt x="354" y="759" on="1"/> + <pt x="354" y="715" on="1"/> + <pt x="415" y="709" on="0"/> + <pt x="519" y="662" on="0"/> + <pt x="562" y="620" on="1"/> + <pt x="509" y="548" on="1"/> + <pt x="464" y="592" on="0"/> + <pt x="370" y="630" on="0"/> + <pt x="308" y="630" on="1"/> + <pt x="226" y="630" on="0"/> + <pt x="137" y="562" on="0"/> + <pt x="137" y="502" on="1"/> + <pt x="137" y="470" on="0"/> + <pt x="160" y="428" on="0"/> + <pt x="214" y="402" on="0"/> + <pt x="261" y="392" on="1"/> + <pt x="360" y="372" on="1"/> + <pt x="469" y="350" on="0"/> + <pt x="580" y="263" on="0"/> + <pt x="580" y="184" on="1"/> + <pt x="580" y="102" on="0"/> + <pt x="459" y="-8" on="0"/> + <pt x="354" y="-18" on="1"/> + <pt x="354" y="-76" on="1"/> + <pt x="264" y="-76" on="1"/> + <pt x="264" y="-18" on="1"/> + <pt x="192" y="-12" on="0"/> + <pt x="72" y="34" on="0"/> + <pt x="29" y="74" on="1"/> + <pt x="81" y="146" on="1"/> + <pt x="115" y="118" on="0"/> + <pt x="180" y="83" on="0"/> + <pt x="259" y="67" on="0"/> + <pt x="310" y="67" on="1"/> + <pt x="403" y="67" on="0"/> + <pt x="486" y="128" on="0"/> + <pt x="486" y="183" on="1"/> + <pt x="486" y="212" on="0"/> + <pt x="461" y="251" on="0"/> + <pt x="401" y="277" on="0"/> + <pt x="348" y="286" on="1"/> + <pt x="249" y="304" on="1"/> + <pt x="148" y="323" on="0"/> + <pt x="43" y="420" on="0"/> + <pt x="43" y="502" on="1"/> + <pt x="43" y="559" on="0"/> + <pt x="99" y="650" on="0"/> + <pt x="199" y="707" on="0"/> + <pt x="264" y="715" on="1"/> + </contour> + <instructions/> + </TTGlyph> + + <TTGlyph name="space"/><!-- contains no outline data --> + + </glyf> + + <name> + <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis + </namerecord> + <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409"> + Regular + </namerecord> + <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409"> + 1.000;NONE;SimpleTwoAxis-Regular + </namerecord> + <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409"> + Simple Two Axis Regular + </namerecord> + <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409"> + Version 1.000 + </namerecord> + <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409"> + SimpleTwoAxis-Regular + </namerecord> + </name> + + <post> + <formatType value="2.0"/> + <italicAngle value="0.0"/> + <underlinePosition value="-100"/> + <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.bold"/> + <psName name="acutecomb"/> + <psName name="dollar.BRACKET.500"/> + </extraNames> + </post> + + <GDEF> + <Version value="0x00010000"/> + <GlyphClassDef> + <ClassDef glyph="A" class="1"/> + <ClassDef glyph="Aacute" class="1"/> + <ClassDef glyph="acutecomb" class="3"/> + </GlyphClassDef> + </GDEF> + + <GPOS> + <Version value="0x00010000"/> + <ScriptList> + <!-- ScriptCount=1 --> + <ScriptRecord index="0"> + <ScriptTag value="DFLT"/> + <Script> + <DefaultLangSys> + <ReqFeatureIndex value="65535"/> + <!-- FeatureCount=2 --> + <FeatureIndex index="0" value="0"/> + <FeatureIndex index="1" value="1"/> + </DefaultLangSys> + <!-- LangSysCount=0 --> + </Script> + </ScriptRecord> + </ScriptList> + <FeatureList> + <!-- FeatureCount=2 --> + <FeatureRecord index="0"> + <FeatureTag value="kern"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="0"/> + </Feature> + </FeatureRecord> + <FeatureRecord index="1"> + <FeatureTag value="mark"/> + <Feature> + <!-- LookupCount=1 --> + <LookupListIndex index="0" value="1"/> + </Feature> + </FeatureRecord> + </FeatureList> + <LookupList> + <!-- LookupCount=2 --> + <Lookup index="0"> + <LookupType value="2"/> + <LookupFlag value="8"/><!-- ignoreMarks --> + <!-- SubTableCount=1 --> + <PairPos index="0" Format="1"> + <Coverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + <Glyph value="V"/> + </Coverage> + <ValueFormat1 value="4"/> + <ValueFormat2 value="0"/> + <!-- PairSetCount=3 --> + <PairSet index="0"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="1"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="V"/> + <Value1 XAdvance="-80"/> + </PairValueRecord> + </PairSet> + <PairSet index="2"> + <!-- PairValueCount=1 --> + <PairValueRecord index="0"> + <SecondGlyph value="O"/> + <Value1 XAdvance="-20"/> + </PairValueRecord> + </PairSet> + </PairPos> + </Lookup> + <Lookup index="1"> + <LookupType value="4"/> + <LookupFlag value="0"/> + <!-- SubTableCount=1 --> + <MarkBasePos index="0" Format="1"> + <MarkCoverage> + <Glyph value="acutecomb"/> + </MarkCoverage> + <BaseCoverage> + <Glyph value="A"/> + <Glyph value="Aacute"/> + </BaseCoverage> + <!-- ClassCount=1 --> + <MarkArray> + <!-- MarkCount=1 --> + <MarkRecord index="0"> + <Class value="0"/> + <MarkAnchor Format="1"> + <XCoordinate value="4"/> + <YCoordinate value="623"/> + </MarkAnchor> + </MarkRecord> + </MarkArray> + <BaseArray> + <!-- BaseCount=2 --> + <BaseRecord index="0"> + <BaseAnchor index="0" Format="3"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + <BaseRecord index="1"> + <BaseAnchor index="0" Format="1"> + <XCoordinate value="406"/> + <YCoordinate value="753"/> + </BaseAnchor> + </BaseRecord> + </BaseArray> + </MarkBasePos> + </Lookup> + </LookupList> + </GPOS> + +</ttFont> diff --git a/Tests/varLib/data/master_kerning_merging/0.ttx b/Tests/varLib/data/master_kerning_merging/0.ttx index 1bc52ae9..1ca22f68 100644 --- a/Tests/varLib/data/master_kerning_merging/0.ttx +++ b/Tests/varLib/data/master_kerning_merging/0.ttx @@ -266,16 +266,16 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="B"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="A" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="C" class="1"/> </ClassDef2> <!-- Class1Count=2 --> diff --git a/Tests/varLib/data/master_kerning_merging/1.ttx b/Tests/varLib/data/master_kerning_merging/1.ttx index ea7c353c..9f6756d8 100644 --- a/Tests/varLib/data/master_kerning_merging/1.ttx +++ b/Tests/varLib/data/master_kerning_merging/1.ttx @@ -260,14 +260,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="B" class="2"/> <ClassDef glyph="D" class="1"/> </ClassDef2> diff --git a/Tests/varLib/data/master_kerning_merging/2.ttx b/Tests/varLib/data/master_kerning_merging/2.ttx index caf4275b..b8302e8b 100644 --- a/Tests/varLib/data/master_kerning_merging/2.ttx +++ b/Tests/varLib/data/master_kerning_merging/2.ttx @@ -266,16 +266,16 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="B"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="A" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="D" class="1"/> </ClassDef2> <!-- Class1Count=2 --> diff --git a/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx b/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx index a6a8e003..157043f0 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_otf/TestFamily2-Master0.ttx @@ -766,7 +766,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="A" out="A.sc"/> </SingleSubst> </Lookup> @@ -774,7 +774,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="a" out="a.alt"/> </SingleSubst> </Lookup> @@ -782,7 +782,7 @@ <LookupType value="2"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <MultipleSubst index="0" Format="1"> + <MultipleSubst index="0"> <Substitution in="ampersand" out="a,n,d"/> </MultipleSubst> </Lookup> @@ -790,7 +790,7 @@ <LookupType value="3"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <AlternateSubst index="0" Format="1"> + <AlternateSubst index="0"> <AlternateSet glyph="a"> <Alternate glyph="a.alt"/> <Alternate glyph="A.sc"/> @@ -801,7 +801,7 @@ <LookupType value="4"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <LigatureSubst index="0" Format="1"> + <LigatureSubst index="0"> <LigatureSet glyph="f"> <Ligature components="t" glyph="f_t"/> </LigatureSet> @@ -814,11 +814,11 @@ <ChainContextSubst index="0" Format="3"> <!-- BacktrackGlyphCount=0 --> <!-- InputGlyphCount=1 --> - <InputCoverage index="0" Format="1"> + <InputCoverage index="0"> <Glyph value="a"/> </InputCoverage> <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0" Format="1"> + <LookAheadCoverage index="0"> <Glyph value="t"/> </LookAheadCoverage> <!-- SubstCount=1 --> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx index 55d686e3..cf4b5dae 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Bold.ttx @@ -305,7 +305,7 @@ <GDEF> <Version value="0x00010000"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="dotabovecomb" class="3"/> <ClassDef glyph="e" class="1"/> </GlyphClassDef> @@ -344,10 +344,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="dotabovecomb"/> </MarkCoverage> - <BaseCoverage Format="1"> + <BaseCoverage> <Glyph value="e"/> </BaseCoverage> <!-- ClassCount=1 --> @@ -407,7 +407,7 @@ <LookupType value="4"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <LigatureSubst index="0" Format="1"> + <LigatureSubst index="0"> <LigatureSet glyph="a"> <Ligature components="e,s,s" glyph="s"/> </LigatureSet> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx index e013e0b7..c93da2a8 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/SparseMasters-Regular.ttx @@ -305,7 +305,7 @@ <GDEF> <Version value="0x00010000"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="dotabovecomb" class="3"/> <ClassDef glyph="e" class="1"/> </GlyphClassDef> @@ -344,10 +344,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="dotabovecomb"/> </MarkCoverage> - <BaseCoverage Format="1"> + <BaseCoverage> <Glyph value="e"/> </BaseCoverage> <!-- ClassCount=1 --> @@ -407,7 +407,7 @@ <LookupType value="4"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <LigatureSubst index="0" Format="1"> + <LigatureSubst index="0"> <LigatureSet glyph="a"> <Ligature components="e,s,s" glyph="s"/> </LigatureSet> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx index 6054e4bd..ca5a2e15 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master0.ttx @@ -519,7 +519,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx index afd61de9..9076cf7e 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master1.ttx @@ -519,7 +519,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx index 0ed2f4ac..9bec8c04 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master2.ttx @@ -503,7 +503,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx index 5666541e..1cfdfd91 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master3.ttx @@ -503,7 +503,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx index 87381873..1ae5d473 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily-Master4.ttx @@ -503,7 +503,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx index 13d48e74..d1a33935 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily2-Master0.ttx @@ -1081,7 +1081,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="A" out="A.sc"/> </SingleSubst> </Lookup> @@ -1089,7 +1089,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="a" out="a.alt"/> </SingleSubst> </Lookup> @@ -1097,7 +1097,7 @@ <LookupType value="2"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <MultipleSubst index="0" Format="1"> + <MultipleSubst index="0"> <Substitution in="ampersand" out="a,n,d"/> </MultipleSubst> </Lookup> @@ -1105,7 +1105,7 @@ <LookupType value="3"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <AlternateSubst index="0" Format="1"> + <AlternateSubst index="0"> <AlternateSet glyph="a"> <Alternate glyph="a.alt"/> <Alternate glyph="A.sc"/> @@ -1116,7 +1116,7 @@ <LookupType value="4"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <LigatureSubst index="0" Format="1"> + <LigatureSubst index="0"> <LigatureSet glyph="f"> <Ligature components="t" glyph="f_t"/> </LigatureSet> @@ -1129,11 +1129,11 @@ <ChainContextSubst index="0" Format="3"> <!-- BacktrackGlyphCount=0 --> <!-- InputGlyphCount=1 --> - <InputCoverage index="0" Format="1"> + <InputCoverage index="0"> <Glyph value="a"/> </InputCoverage> <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0" Format="1"> + <LookAheadCoverage index="0"> <Glyph value="t"/> </LookAheadCoverage> <!-- SubstCount=1 --> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx index 53e0dda0..0f9e97a5 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Bold.ttx @@ -480,14 +480,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx index 9b64f61e..f8ff9878 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Condensed.ttx @@ -486,14 +486,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx index 5412599f..2b7264d1 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedBold.ttx @@ -486,14 +486,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx index 4315c6cc..d03abf5f 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedLight.ttx @@ -486,14 +486,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx index 526eb446..11892209 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-CondensedSemiBold.ttx @@ -486,14 +486,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx index ddba5e44..3583c0d3 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Light.ttx @@ -486,14 +486,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx index 07f9c155..bf68b167 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-Regular.ttx @@ -480,14 +480,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx index 3674082e..96badb34 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily3-SemiBold.ttx @@ -486,14 +486,14 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="T"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="T" class="4"/> <ClassDef glyph="n" class="3"/> <ClassDef glyph="o" class="2"/> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx index 6df0a830..ab5789e5 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Italic15.ttx @@ -455,7 +455,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="N" class="1"/> <ClassDef glyph="O" class="1"/> <ClassDef glyph="Odieresis" class="1"/> @@ -467,7 +467,7 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=1 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> <Glyph value="uni0308"/> </Coverage> </MarkGlyphSetsDef> @@ -545,7 +545,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <SinglePos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="N"/> <Glyph value="O"/> <Glyph value="Odieresis"/> @@ -559,10 +559,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0308"/> </MarkCoverage> - <BaseCoverage Format="2"> + <BaseCoverage> <Glyph value="N"/> <Glyph value="O"/> <Glyph value="Odieresis"/> @@ -627,10 +627,10 @@ <LookupFlag value="16"/><!-- useMarkFilteringSet --> <!-- SubTableCount=1 --> <MarkMarkPos index="0" Format="1"> - <Mark1Coverage Format="1"> + <Mark1Coverage> <Glyph value="uni0308"/> </Mark1Coverage> - <Mark2Coverage Format="1"> + <Mark2Coverage> <Glyph value="uni0308"/> </Mark2Coverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx index ff7a52dd..0b7063fb 100644 --- a/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx +++ b/Tests/varLib/data/master_ttx_interpolatable_ttf/TestFamily4-Regular.ttx @@ -449,7 +449,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="N" class="1"/> <ClassDef glyph="O" class="1"/> <ClassDef glyph="Odieresis" class="1"/> @@ -461,7 +461,7 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=1 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> <Glyph value="uni0308"/> </Coverage> </MarkGlyphSetsDef> @@ -539,7 +539,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <SinglePos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="N"/> <Glyph value="O"/> <Glyph value="Odieresis"/> @@ -553,10 +553,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0308"/> </MarkCoverage> - <BaseCoverage Format="2"> + <BaseCoverage> <Glyph value="N"/> <Glyph value="O"/> <Glyph value="Odieresis"/> @@ -621,10 +621,10 @@ <LookupFlag value="16"/><!-- useMarkFilteringSet --> <!-- SubTableCount=1 --> <MarkMarkPos index="0" Format="1"> - <Mark1Coverage Format="1"> + <Mark1Coverage> <Glyph value="uni0308"/> </Mark1Coverage> - <Mark2Coverage Format="1"> + <Mark2Coverage> <Glyph value="uni0308"/> </Mark2Coverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx b/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx index c2a718ec..29c5bb31 100644 --- a/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx +++ b/Tests/varLib/data/master_ttx_varfont_otf/TestCFF2VF.ttx @@ -623,7 +623,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="glyph00003"/> </SingleSubst> </Lookup> @@ -631,7 +631,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="dollar" out="glyph00003"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx b/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx index 1fbb45d3..cd454b85 100644 --- a/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx +++ b/Tests/varLib/data/master_vpal_test/master_vpal_test_0.ttx @@ -424,7 +424,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=5 --> <SinglePos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni3001"/> <Glyph value="uniFF1A"/> </Coverage> @@ -434,7 +434,7 @@ <Value index="1" XPlacement="-250" XAdvance="-500"/> </SinglePos> <SinglePos index="1" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni30FB"/> </Coverage> <ValueFormat value="7"/> @@ -442,7 +442,7 @@ <Value index="0" XPlacement="-250" YPlacement="1" XAdvance="-500"/> </SinglePos> <SinglePos index="2" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni3073"/> <Glyph value="uni3074"/> </Coverage> @@ -452,7 +452,7 @@ <Value index="1" XAdvance="-30"/> </SinglePos> <SinglePos index="3" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni307B"/> </Coverage> <ValueFormat value="1"/> @@ -460,7 +460,7 @@ <Value index="0" XPlacement="11"/> </SinglePos> <SinglePos index="4" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uniFF2D"/> </Coverage> <ValueFormat value="5"/> diff --git a/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx b/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx index bb439586..e1b77c84 100644 --- a/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx +++ b/Tests/varLib/data/master_vpal_test/master_vpal_test_1.ttx @@ -424,7 +424,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=3 --> <SinglePos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni3001"/> <Glyph value="uni30FB"/> <Glyph value="uniFF1A"/> @@ -436,7 +436,7 @@ <Value index="2" XPlacement="-250" XAdvance="-500"/> </SinglePos> <SinglePos index="1" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni3073"/> <Glyph value="uni3074"/> </Coverage> @@ -446,7 +446,7 @@ <Value index="1" XAdvance="-30"/> </SinglePos> <SinglePos index="2" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uniFF2D"/> <Glyph value="uni307B"/> </Coverage> diff --git a/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx b/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx index 7383c171..d956d8c4 100644 --- a/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx +++ b/Tests/varLib/data/master_vvar_cff2/TestVVAR.0.ttx @@ -705,7 +705,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni3042" out="c30843"/> <Substitution in="uni56FD" out="c32051"/> <Substitution in="uni6280" out="c31621"/> @@ -718,7 +718,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni3042" out="c30843"/> <Substitution in="uni56FD" out="c32051"/> <Substitution in="uni6280" out="c31621"/> diff --git a/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx b/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx index f6020977..9f677494 100644 --- a/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx +++ b/Tests/varLib/data/master_vvar_cff2/TestVVAR.1.ttx @@ -705,7 +705,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni3042" out="c30843"/> <Substitution in="uni56FD" out="c32051"/> <Substitution in="uni6280" out="c31621"/> @@ -718,7 +718,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni3042" out="c30843"/> <Substitution in="uni56FD" out="c32051"/> <Substitution in="uni6280" out="c31621"/> diff --git a/Tests/varLib/data/test_results/Build.ttx b/Tests/varLib/data/test_results/Build.ttx index 5a406c84..c802bf32 100644 --- a/Tests/varLib/data/test_results/Build.ttx +++ b/Tests/varLib/data/test_results/Build.ttx @@ -3,7 +3,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/test_results/BuildMain.ttx b/Tests/varLib/data/test_results/BuildMain.ttx index 20add49e..27d02d1d 100644 --- a/Tests/varLib/data/test_results/BuildMain.ttx +++ b/Tests/varLib/data/test_results/BuildMain.ttx @@ -615,7 +615,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/test_results/BuildTestCFF2.ttx b/Tests/varLib/data/test_results/BuildTestCFF2.ttx index 9f7d6388..c4b93778 100644 --- a/Tests/varLib/data/test_results/BuildTestCFF2.ttx +++ b/Tests/varLib/data/test_results/BuildTestCFF2.ttx @@ -91,6 +91,8 @@ <StdVW> <blend value="85 -51 87"/> </StdVW> + <LanguageGroup value="0"/> + <ExpansionFactor value="0.06"/> </Private> </FontDict> </FDArray> diff --git a/Tests/varLib/data/test_results/FeatureVars.ttx b/Tests/varLib/data/test_results/FeatureVars.ttx index 18d90aa2..ca24f41c 100644 --- a/Tests/varLib/data/test_results/FeatureVars.ttx +++ b/Tests/varLib/data/test_results/FeatureVars.ttx @@ -55,7 +55,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0024" out="uni0024.nostroke"/> </SingleSubst> </Lookup> @@ -63,7 +63,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0041" out="uni0061"/> </SingleSubst> </Lookup> @@ -71,7 +71,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0061" out="uni0041"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx b/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx index f50ef785..3f9e1e08 100644 --- a/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx +++ b/Tests/varLib/data/test_results/FeatureVarsCustomTag.ttx @@ -55,7 +55,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0024" out="uni0024.nostroke"/> </SingleSubst> </Lookup> @@ -63,7 +63,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0041" out="uni0061"/> </SingleSubst> </Lookup> @@ -71,7 +71,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0061" out="uni0041"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx b/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx index 8e098b9b..8ae64da4 100644 --- a/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx +++ b/Tests/varLib/data/test_results/FeatureVarsWholeRange.ttx @@ -45,7 +45,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0024" out="uni0024.nostroke"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/test_results/FeatureVars_rclt.ttx b/Tests/varLib/data/test_results/FeatureVars_rclt.ttx index a9a998f4..b889f3a5 100644 --- a/Tests/varLib/data/test_results/FeatureVars_rclt.ttx +++ b/Tests/varLib/data/test_results/FeatureVars_rclt.ttx @@ -71,7 +71,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0041" out="uni0061"/> </SingleSubst> </Lookup> @@ -79,7 +79,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0041" out="uni0061"/> </SingleSubst> </Lookup> @@ -87,7 +87,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0024" out="uni0024.nostroke"/> </SingleSubst> </Lookup> @@ -95,7 +95,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0041" out="uni0061"/> </SingleSubst> </Lookup> @@ -103,7 +103,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="uni0061" out="uni0041"/> </SingleSubst> </Lookup> diff --git a/Tests/varLib/data/test_results/InterpolateLayout.ttx b/Tests/varLib/data/test_results/InterpolateLayout.ttx index b1ea1e99..81e50fbf 100644 --- a/Tests/varLib/data/test_results/InterpolateLayout.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayout.ttx @@ -93,7 +93,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="A" out="A.sc"/> </SingleSubst> </Lookup> @@ -101,7 +101,7 @@ <LookupType value="1"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <SingleSubst index="0" Format="1"> + <SingleSubst index="0"> <Substitution in="a" out="a.alt"/> </SingleSubst> </Lookup> @@ -109,7 +109,7 @@ <LookupType value="2"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <MultipleSubst index="0" Format="1"> + <MultipleSubst index="0"> <Substitution in="ampersand" out="a,n,d"/> </MultipleSubst> </Lookup> @@ -117,7 +117,7 @@ <LookupType value="3"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <AlternateSubst index="0" Format="1"> + <AlternateSubst index="0"> <AlternateSet glyph="a"> <Alternate glyph="a.alt"/> <Alternate glyph="A.sc"/> @@ -128,7 +128,7 @@ <LookupType value="4"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <LigatureSubst index="0" Format="1"> + <LigatureSubst index="0"> <LigatureSet glyph="f"> <Ligature components="t" glyph="f_t"/> </LigatureSet> @@ -141,11 +141,11 @@ <ChainContextSubst index="0" Format="3"> <!-- BacktrackGlyphCount=0 --> <!-- InputGlyphCount=1 --> - <InputCoverage index="0" Format="1"> + <InputCoverage index="0"> <Glyph value="a"/> </InputCoverage> <!-- LookAheadGlyphCount=1 --> - <LookAheadCoverage index="0" Format="1"> + <LookAheadCoverage index="0"> <Glyph value="t"/> </LookAheadCoverage> <!-- SubstCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx index 74e9cc5e..4180a337 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <SinglePos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat value="5"/> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx index 2e21b268..44a7558a 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_diff2.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <SinglePos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="a"/> </Coverage> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx index a61e75fb..83407c11 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_1_same.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <SinglePos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat value="5"/> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx index 4f94c37b..0aeb4973 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff.ttx @@ -34,14 +34,14 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="a" class="1"/> </ClassDef2> <!-- Class1Count=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx index 811ed580..f00c4c3a 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_diff2.ttx @@ -34,16 +34,16 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="a"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="a" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="a" class="1"/> </ClassDef2> <!-- Class1Count=2 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx index 98725336..3656964b 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_class_same.ttx @@ -34,14 +34,14 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="2"> + <ClassDef1> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="a" class="1"/> </ClassDef2> <!-- Class1Count=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx index 113bd0b1..f85985bb 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat1 value="4"/> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx index efc5ee51..b085109f 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_diff2.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="a"/> </Coverage> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx index 014c1ece..2a2a546e 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_2_spec_same.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat1 value="4"/> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx index 65d77f9d..993e0a67 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_diff.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <CursivePos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="a"/> </Coverage> <!-- EntryExitCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx index b7c8a258..1d5ebcd7 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_3_same.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <CursivePos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="a"/> </Coverage> <!-- EntryExitCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx index 72a8ccf1..7c50f96f 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_diff.ttx @@ -34,10 +34,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0303"/> </MarkCoverage> - <BaseCoverage Format="1"> + <BaseCoverage> <Glyph value="a"/> </BaseCoverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx index 9b41519b..ab96180f 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_4_same.ttx @@ -34,10 +34,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0303"/> </MarkCoverage> - <BaseCoverage Format="1"> + <BaseCoverage> <Glyph value="a"/> </BaseCoverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx index 28480e75..28b5f91e 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_diff.ttx @@ -34,10 +34,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkLigPos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0330"/> </MarkCoverage> - <LigatureCoverage Format="1"> + <LigatureCoverage> <Glyph value="f_t"/> </LigatureCoverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx index 4830f9a3..0df08c06 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_5_same.ttx @@ -34,10 +34,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkLigPos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0330"/> </MarkCoverage> - <LigatureCoverage Format="1"> + <LigatureCoverage> <Glyph value="f_t"/> </LigatureCoverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx index 38d6437e..667d4f12 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_diff.ttx @@ -34,10 +34,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkMarkPos index="0" Format="1"> - <Mark1Coverage Format="1"> + <Mark1Coverage> <Glyph value="uni0303"/> </Mark1Coverage> - <Mark2Coverage Format="1"> + <Mark2Coverage> <Glyph value="uni0308"/> </Mark2Coverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx index 05e4b514..34d0bff1 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_6_same.ttx @@ -34,10 +34,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkMarkPos index="0" Format="1"> - <Mark1Coverage Format="1"> + <Mark1Coverage> <Glyph value="uni0303"/> </Mark1Coverage> - <Mark2Coverage Format="1"> + <Mark2Coverage> <Glyph value="uni0308"/> </Mark2Coverage> <!-- ClassCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx index ea1fa7e6..14e12097 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_diff.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat1 value="4"/> @@ -54,10 +54,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0303"/> </MarkCoverage> - <BaseCoverage Format="1"> + <BaseCoverage> <Glyph value="a"/> </BaseCoverage> <!-- ClassCount=1 --> @@ -87,7 +87,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <ContextPos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <!-- PosRuleSetCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx index 1ad81185..eff24fc3 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutGPOS_7_same.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <PairPos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <ValueFormat1 value="4"/> @@ -54,10 +54,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="uni0303"/> </MarkCoverage> - <BaseCoverage Format="1"> + <BaseCoverage> <Glyph value="a"/> </BaseCoverage> <!-- ClassCount=1 --> @@ -87,7 +87,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <ContextPos index="0" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> </Coverage> <!-- PosRuleSetCount=1 --> diff --git a/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx b/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx index 6a0635d0..49d491fb 100644 --- a/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx +++ b/Tests/varLib/data/test_results/InterpolateLayoutMain.ttx @@ -498,7 +498,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx b/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx index e2d0f71c..949e6dad 100644 --- a/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx +++ b/Tests/varLib/data/test_results/InterpolateTestCFF2VF.ttx @@ -24,6 +24,8 @@ <BlueFuzz value="0"/> <StdHW value="28"/> <StdVW value="34"/> + <LanguageGroup value="0"/> + <ExpansionFactor value="0.06"/> </Private> </FontDict> </FDArray> diff --git a/Tests/varLib/data/test_results/Mutator.ttx b/Tests/varLib/data/test_results/Mutator.ttx index 75a0879e..71e5f28b 100644 --- a/Tests/varLib/data/test_results/Mutator.ttx +++ b/Tests/varLib/data/test_results/Mutator.ttx @@ -498,7 +498,7 @@ <GDEF> <Version value="0x00010000"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/test_results/SingleMaster.ttx b/Tests/varLib/data/test_results/SingleMaster.ttx index 999f5006..02cfe32b 100644 --- a/Tests/varLib/data/test_results/SingleMaster.ttx +++ b/Tests/varLib/data/test_results/SingleMaster.ttx @@ -3,7 +3,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="2"> + <GlyphClassDef> <ClassDef glyph="uni0024" class="1"/> <ClassDef glyph="uni0024.nostroke" class="1"/> <ClassDef glyph="uni0041" class="1"/> diff --git a/Tests/varLib/data/test_results/SparseMasters.ttx b/Tests/varLib/data/test_results/SparseMasters.ttx index fb9cb46d..a3f8e619 100644 --- a/Tests/varLib/data/test_results/SparseMasters.ttx +++ b/Tests/varLib/data/test_results/SparseMasters.ttx @@ -290,7 +290,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="dotabovecomb" class="3"/> <ClassDef glyph="e" class="1"/> </GlyphClassDef> @@ -352,10 +352,10 @@ <LookupFlag value="0"/> <!-- SubTableCount=1 --> <MarkBasePos index="0" Format="1"> - <MarkCoverage Format="1"> + <MarkCoverage> <Glyph value="dotabovecomb"/> </MarkCoverage> - <BaseCoverage Format="1"> + <BaseCoverage> <Glyph value="e"/> </BaseCoverage> <!-- ClassCount=1 --> @@ -425,7 +425,7 @@ <LookupType value="4"/> <LookupFlag value="0"/> <!-- SubTableCount=1 --> - <LigatureSubst index="0" Format="1"> + <LigatureSubst index="0"> <LigatureSet glyph="a"> <Ligature components="e,s,s" glyph="s"/> </LigatureSet> diff --git a/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx b/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx index 26bd7ba7..a78e6a6e 100644 --- a/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx +++ b/Tests/varLib/data/test_results/TestNonMarkingCFF2.ttx @@ -36,6 +36,8 @@ <StdVW> <blend value="34 51"/> </StdVW> + <LanguageGroup value="0"/> + <ExpansionFactor value="0.06"/> </Private> </FontDict> </FDArray> diff --git a/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx b/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx index f05f62f7..264a3d4a 100644 --- a/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx +++ b/Tests/varLib/data/test_results/TestSparseCFF2VF.ttx @@ -138,6 +138,8 @@ <BlueFuzz value="0"/> <StdHW value="1"/> <StdVW value="1"/> + <LanguageGroup value="1"/> + <ExpansionFactor value="0.06"/> </Private> </FontDict> <FontDict index="1"> @@ -148,6 +150,8 @@ <BlueFuzz value="0"/> <StdHW value="1"/> <StdVW value="1"/> + <LanguageGroup value="1"/> + <ExpansionFactor value="0.06"/> </Private> </FontDict> <FontDict index="2"> @@ -156,6 +160,8 @@ <BlueScale value="0.039625"/> <BlueShift value="7"/> <BlueFuzz value="1"/> + <LanguageGroup value="0"/> + <ExpansionFactor value="0.06"/> </Private> </FontDict> </FDArray> @@ -290,7 +296,7 @@ </CharString> <CharString name="cid06449" fdSelectIndex="1"> 2 vsindex - -60 30 203 30 -9 9 67 7 -7 14 -14 30 -20 20 80 30 59 30 121 30 18 93 -30 30 -30 108 -23 0 -26 67 2 76 -98 -2 -111 42 0 47 -13 0 -14 13 0 14 -33 0 -37 11 0 13 -11 0 -13 8 0 9 -7 0 -8 53 0 60 -32 0 -36 32 0 36 -52 0 -59 57 1 65 -33 0 -38 53 0 60 -83 -1 -93 54 0 60 -6 -19 -24 33 19 55 -76 -1 -86 76 1 86 -76 -1 -86 59 1 67 26 blend + -60 30 203 30 -9 9 67 7 -7 14 -14 30 -20 20 80 30 59 30 121 30 18 93 -30 30 -30 108 -23 0 -26 67 2 76 -98 -2 -111 42 0 47 -13 0 -14 13 0 14 -33 0 -37 11 0 13 -11 0 -13 8 0 8 -8 0 -8 53 0 60 -32 0 -36 32 0 36 -52 0 -59 57 1 65 -33 0 -38 53 0 60 -83 -1 -93 54 0 60 -6 -19 -24 33 19 55 -76 -1 -86 76 1 86 -76 -1 -86 59 1 67 26 blend hstemhm 77 30 42 30 139 30 23 30 71 10 74 30 15 30 16 30 158 30 28 30 -4 29 -14 0 -16 88 1 99 -82 -1 -92 87 1 98 -130 -1 -146 102 1 114 -73 -1 -82 74 2 84 -112 -2 -126 27 0 30 13 0 15 90 1 101 -126 -1 -142 75 1 84 -68 -1 -76 102 1 115 -144 -1 -162 94 1 105 -79 -1 -88 95 1 106 -81 -1 -91 74 1 83 22 blend vstemhm diff --git a/Tests/varLib/data/test_results/test_vpal.ttx b/Tests/varLib/data/test_results/test_vpal.ttx index 334ced55..be612930 100644 --- a/Tests/varLib/data/test_results/test_vpal.ttx +++ b/Tests/varLib/data/test_results/test_vpal.ttx @@ -34,7 +34,7 @@ <LookupFlag value="0"/> <!-- SubTableCount=6 --> <SinglePos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="uniFF1A"/> <Glyph value="uni3074"/> </Coverage> @@ -44,7 +44,7 @@ <Value index="1" XPlacement="0" YPlacement="0" XAdvance="-30"/> </SinglePos> <SinglePos index="1" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni3001"/> </Coverage> <ValueFormat value="23"/> @@ -57,7 +57,7 @@ </Value> </SinglePos> <SinglePos index="2" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni30FB"/> </Coverage> <ValueFormat value="39"/> @@ -70,7 +70,7 @@ </Value> </SinglePos> <SinglePos index="3" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="uniFF2D"/> </Coverage> <ValueFormat value="87"/> @@ -88,7 +88,7 @@ </Value> </SinglePos> <SinglePos index="4" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni3073"/> </Coverage> <ValueFormat value="71"/> @@ -101,7 +101,7 @@ </Value> </SinglePos> <SinglePos index="5" Format="1"> - <Coverage Format="1"> + <Coverage> <Glyph value="uni307B"/> </Coverage> <ValueFormat value="23"/> diff --git a/Tests/varLib/featureVars_test.py b/Tests/varLib/featureVars_test.py index 84228868..89675af2 100644 --- a/Tests/varLib/featureVars_test.py +++ b/Tests/varLib/featureVars_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.varLib.featureVars import ( overlayFeatureVariations) diff --git a/Tests/varLib/instancer/conftest.py b/Tests/varLib/instancer/conftest.py new file mode 100644 index 00000000..0ac8091d --- /dev/null +++ b/Tests/varLib/instancer/conftest.py @@ -0,0 +1,13 @@ +import os +from fontTools import ttLib +import pytest + + +TESTDATA = os.path.join(os.path.dirname(__file__), "data") + + +@pytest.fixture +def varfont(): + f = ttLib.TTFont() + f.importXML(os.path.join(TESTDATA, "PartialInstancerTest-VF.ttx")) + return f diff --git a/Tests/varLib/data/PartialInstancerTest-VF.ttx b/Tests/varLib/instancer/data/PartialInstancerTest-VF.ttx index 92540e03..268b5068 100644 --- a/Tests/varLib/data/PartialInstancerTest-VF.ttx +++ b/Tests/varLib/instancer/data/PartialInstancerTest-VF.ttx @@ -479,6 +479,9 @@ <namerecord nameID="296" platformID="3" platEncID="1" langID="0x409"> TestVariableFont-XCdBd </namerecord> + <namerecord nameID="297" platformID="3" platEncID="1" langID="0x409"> + Normal + </namerecord> </name> <post> @@ -764,6 +767,15 @@ <Value value="0.0"/> <LinkedValue value="1.0"/> </AxisValue> + <AxisValue index="3" Format="4"> + <!-- AxisCount=1 --> + <Flags value="2"/> + <ValueNameID value="297"/> <!-- Normal --> + <AxisValueRecord index="0"> + <AxisIndex value="1"/> + <Value value="100.0"/> + </AxisValueRecord> + </AxisValue> </AxisValueArray> <ElidedFallbackNameID value="2"/> <!-- Regular --> </STAT> diff --git a/Tests/varLib/data/PartialInstancerTest2-VF.ttx b/Tests/varLib/instancer/data/PartialInstancerTest2-VF.ttx index 6caef1bf..cd7ffa05 100644 --- a/Tests/varLib/data/PartialInstancerTest2-VF.ttx +++ b/Tests/varLib/instancer/data/PartialInstancerTest2-VF.ttx @@ -539,7 +539,7 @@ <GDEF> <Version value="0x00010003"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="1"/> @@ -547,13 +547,13 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=4 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> </Coverage> - <Coverage index="1" Format="1"> + <Coverage index="1"> </Coverage> - <Coverage index="2" Format="1"> + <Coverage index="2"> </Coverage> - <Coverage index="3" Format="1"> + <Coverage index="3"> </Coverage> </MarkGlyphSetsDef> <VarStore Format="1"> @@ -652,19 +652,19 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="T"/> <Glyph value="Agrave"/> </Coverage> <ValueFormat1 value="68"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> diff --git a/Tests/varLib/data/PartialInstancerTest3-VF.ttx b/Tests/varLib/instancer/data/PartialInstancerTest3-VF.ttx index 01c7d050..01c7d050 100644 --- a/Tests/varLib/data/PartialInstancerTest3-VF.ttx +++ b/Tests/varLib/instancer/data/PartialInstancerTest3-VF.ttx diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx index 5e1107ce..776a92f1 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,100.ttx @@ -335,7 +335,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="1"/> @@ -343,13 +343,13 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=4 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> </Coverage> - <Coverage index="1" Format="1"> + <Coverage index="1"> </Coverage> - <Coverage index="2" Format="1"> + <Coverage index="2"> </Coverage> - <Coverage index="3" Format="1"> + <Coverage index="3"> </Coverage> </MarkGlyphSetsDef> </GDEF> @@ -420,17 +420,17 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="T"/> <Glyph value="Agrave"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="T" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> @@ -531,7 +531,7 @@ </AxisValue> <AxisValue index="1" Format="2"> <AxisIndex value="1"/> - <Flags value="2"/> + <Flags value="2"/> <!-- ElidableAxisValueName --> <ValueNameID value="261"/> <!-- Regular --> <NominalValue value="100.0"/> <RangeMinValue value="93.75"/> diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx index 146e8634..61bc41cc 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-100,62.5.ttx @@ -335,7 +335,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="1"/> @@ -343,13 +343,13 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=4 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> </Coverage> - <Coverage index="1" Format="1"> + <Coverage index="1"> </Coverage> - <Coverage index="2" Format="1"> + <Coverage index="2"> </Coverage> - <Coverage index="3" Format="1"> + <Coverage index="3"> </Coverage> </MarkGlyphSetsDef> </GDEF> @@ -420,17 +420,17 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="T"/> <Glyph value="Agrave"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="T" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx index add86a67..c2d20571 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,100.ttx @@ -329,7 +329,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="1"/> @@ -337,13 +337,13 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=4 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> </Coverage> - <Coverage index="1" Format="1"> + <Coverage index="1"> </Coverage> - <Coverage index="2" Format="1"> + <Coverage index="2"> </Coverage> - <Coverage index="3" Format="1"> + <Coverage index="3"> </Coverage> </MarkGlyphSetsDef> </GDEF> @@ -414,17 +414,17 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="T"/> <Glyph value="Agrave"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="T" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> @@ -519,14 +519,14 @@ <AxisValueArray> <AxisValue index="0" Format="3"> <AxisIndex value="0"/> - <Flags value="2"/> + <Flags value="2"/> <!-- ElidableAxisValueName --> <ValueNameID value="261"/> <!-- Regular --> <Value value="400.0"/> <LinkedValue value="700.0"/> </AxisValue> <AxisValue index="1" Format="2"> <AxisIndex value="1"/> - <Flags value="2"/> + <Flags value="2"/> <!-- ElidableAxisValueName --> <ValueNameID value="261"/> <!-- Regular --> <NominalValue value="100.0"/> <RangeMinValue value="93.75"/> diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx index 1405904a..63eeb0e7 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-400,62.5.ttx @@ -335,7 +335,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="1"/> @@ -343,13 +343,13 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=4 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> </Coverage> - <Coverage index="1" Format="1"> + <Coverage index="1"> </Coverage> - <Coverage index="2" Format="1"> + <Coverage index="2"> </Coverage> - <Coverage index="3" Format="1"> + <Coverage index="3"> </Coverage> </MarkGlyphSetsDef> </GDEF> @@ -420,17 +420,17 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="T"/> <Glyph value="Agrave"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="T" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> @@ -525,7 +525,7 @@ <AxisValueArray> <AxisValue index="0" Format="3"> <AxisIndex value="0"/> - <Flags value="2"/> + <Flags value="2"/> <!-- ElidableAxisValueName --> <ValueNameID value="261"/> <!-- Regular --> <Value value="400.0"/> <LinkedValue value="700.0"/> diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx index e48936a8..013ba1e7 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,100.ttx @@ -335,7 +335,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="1"/> @@ -343,13 +343,13 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=4 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> </Coverage> - <Coverage index="1" Format="1"> + <Coverage index="1"> </Coverage> - <Coverage index="2" Format="1"> + <Coverage index="2"> </Coverage> - <Coverage index="3" Format="1"> + <Coverage index="3"> </Coverage> </MarkGlyphSetsDef> </GDEF> @@ -420,17 +420,17 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="T"/> <Glyph value="Agrave"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="T" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> @@ -531,7 +531,7 @@ </AxisValue> <AxisValue index="1" Format="2"> <AxisIndex value="1"/> - <Flags value="2"/> + <Flags value="2"/> <!-- ElidableAxisValueName --> <ValueNameID value="261"/> <!-- Regular --> <NominalValue value="100.0"/> <RangeMinValue value="93.75"/> diff --git a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx index 62bd7228..45e34cbf 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest2-VF-instance-900,62.5.ttx @@ -335,7 +335,7 @@ <GDEF> <Version value="0x00010002"/> - <GlyphClassDef Format="1"> + <GlyphClassDef> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="1"/> @@ -343,13 +343,13 @@ <MarkGlyphSetsDef> <MarkSetTableFormat value="1"/> <!-- MarkSetCount=4 --> - <Coverage index="0" Format="1"> + <Coverage index="0"> </Coverage> - <Coverage index="1" Format="1"> + <Coverage index="1"> </Coverage> - <Coverage index="2" Format="1"> + <Coverage index="2"> </Coverage> - <Coverage index="3" Format="1"> + <Coverage index="3"> </Coverage> </MarkGlyphSetsDef> </GDEF> @@ -420,17 +420,17 @@ <LookupFlag value="8"/><!-- ignoreMarks --> <!-- SubTableCount=1 --> <PairPos index="0" Format="2"> - <Coverage Format="1"> + <Coverage> <Glyph value="A"/> <Glyph value="T"/> <Glyph value="Agrave"/> </Coverage> <ValueFormat1 value="4"/> <ValueFormat2 value="0"/> - <ClassDef1 Format="1"> + <ClassDef1> <ClassDef glyph="T" class="1"/> </ClassDef1> - <ClassDef2 Format="1"> + <ClassDef2> <ClassDef glyph="A" class="1"/> <ClassDef glyph="Agrave" class="1"/> <ClassDef glyph="T" class="2"/> diff --git a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx index fc6310d5..fc6310d5 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx diff --git a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx index 3e18c9b7..3e18c9b7 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-400-no-overlaps.ttx diff --git a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx index be0353da..be0353da 100644 --- a/Tests/varLib/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx +++ b/Tests/varLib/instancer/data/test_results/PartialInstancerTest3-VF-instance-700-no-overlaps.ttx diff --git a/Tests/varLib/instancer_test.py b/Tests/varLib/instancer/instancer_test.py index 5e999dc8..cb7e8547 100644 --- a/Tests/varLib/instancer_test.py +++ b/Tests/varLib/instancer/instancer_test.py @@ -1,4 +1,4 @@ -from fontTools.misc.py23 import * +from fontTools.misc.py23 import Tag from fontTools.misc.fixedTools import floatToFixedToFloat from fontTools import ttLib from fontTools import designspaceLib @@ -14,20 +14,17 @@ from fontTools.varLib import featureVars from fontTools.varLib import models import collections from copy import deepcopy +from io import BytesIO, StringIO import logging import os import re +from types import SimpleNamespace import pytest -TESTDATA = os.path.join(os.path.dirname(__file__), "data") - +# see Tests/varLib/instancer/conftest.py for "varfont" fixture definition -@pytest.fixture -def varfont(): - f = ttLib.TTFont() - f.importXML(os.path.join(TESTDATA, "PartialInstancerTest-VF.ttx")) - return f +TESTDATA = os.path.join(os.path.dirname(__file__), "data") @pytest.fixture(params=[True, False], ids=["optimize", "no-optimize"]) @@ -144,7 +141,7 @@ class InstantiateGvarTest(object): assert "gvar" not in varfont def test_composite_glyph_not_in_gvar(self, varfont): - """ The 'minus' glyph is a composite glyph, which references 'hyphen' as a + """The 'minus' glyph is a composite glyph, which references 'hyphen' as a component, but has no tuple variations in gvar table, so the component offset and the phantom points do not change; however the sidebearings and bounding box do change as a result of the parent glyph 'hyphen' changing. @@ -1209,8 +1206,8 @@ class InstantiateSTATTest(object): @pytest.mark.parametrize( "location, expected", [ - ({"wght": 400}, ["Regular", "Condensed", "Upright"]), - ({"wdth": 100}, ["Thin", "Regular", "Black", "Upright"]), + ({"wght": 400}, ["Regular", "Condensed", "Upright", "Normal"]), + ({"wdth": 100}, ["Thin", "Regular", "Black", "Upright", "Normal"]), ], ) def test_pin_and_drop_axis(self, varfont, location, expected): @@ -1341,30 +1338,6 @@ class InstantiateSTATTest(object): assert axisValue in varfont2["STAT"].table.AxisValueArray.AxisValue -def test_pruningUnusedNames(varfont): - varNameIDs = instancer.getVariationNameIDs(varfont) - - assert varNameIDs == set(range(256, 296 + 1)) - - fvar = varfont["fvar"] - stat = varfont["STAT"].table - - with instancer.pruningUnusedNames(varfont): - del fvar.axes[0] # Weight (nameID=256) - del fvar.instances[0] # Thin (nameID=258) - del stat.DesignAxisRecord.Axis[0] # Weight (nameID=256) - del stat.AxisValueArray.AxisValue[0] # Thin (nameID=258) - - assert not any(n for n in varfont["name"].names if n.nameID in {256, 258}) - - with instancer.pruningUnusedNames(varfont): - del varfont["fvar"] - del varfont["STAT"] - - assert not any(n for n in varfont["name"].names if n.nameID in varNameIDs) - assert "ltag" not in varfont - - def test_setMacOverlapFlags(): flagOverlapCompound = _g_l_y_f.OVERLAP_COMPOUND flagOverlapSimple = _g_l_y_f.flagOverlapSimple diff --git a/Tests/varLib/instancer/names_test.py b/Tests/varLib/instancer/names_test.py new file mode 100644 index 00000000..9774458a --- /dev/null +++ b/Tests/varLib/instancer/names_test.py @@ -0,0 +1,322 @@ +from fontTools.ttLib.tables import otTables +from fontTools.otlLib.builder import buildStatTable +from fontTools.varLib import instancer + +import pytest + + +def test_pruningUnusedNames(varfont): + varNameIDs = instancer.names.getVariationNameIDs(varfont) + + assert varNameIDs == set(range(256, 297 + 1)) + + fvar = varfont["fvar"] + stat = varfont["STAT"].table + + with instancer.names.pruningUnusedNames(varfont): + del fvar.axes[0] # Weight (nameID=256) + del fvar.instances[0] # Thin (nameID=258) + del stat.DesignAxisRecord.Axis[0] # Weight (nameID=256) + del stat.AxisValueArray.AxisValue[0] # Thin (nameID=258) + + assert not any(n for n in varfont["name"].names if n.nameID in {256, 258}) + + with instancer.names.pruningUnusedNames(varfont): + del varfont["fvar"] + del varfont["STAT"] + + assert not any(n for n in varfont["name"].names if n.nameID in varNameIDs) + assert "ltag" not in varfont + + +def _test_name_records(varfont, expected, isNonRIBBI, platforms=[0x409]): + nametable = varfont["name"] + font_names = { + (r.nameID, r.platformID, r.platEncID, r.langID): r.toUnicode() + for r in nametable.names + } + for k in expected: + if k[-1] not in platforms: + continue + assert font_names[k] == expected[k] + + font_nameids = set(i[0] for i in font_names) + if isNonRIBBI: + assert 16 in font_nameids + assert 17 in font_nameids + + if "fvar" not in varfont: + assert 25 not in font_nameids + + +@pytest.mark.parametrize( + "limits, expected, isNonRIBBI", + [ + # Regular + ( + {"wght": 400}, + { + (1, 3, 1, 0x409): "Test Variable Font", + (2, 3, 1, 0x409): "Regular", + (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Regular", + (6, 3, 1, 0x409): "TestVariableFont-Regular", + }, + False, + ), + # Regular Normal (width axis Normal isn't included since it is elided) + ( + {"wght": 400, "wdth": 100}, + { + (1, 3, 1, 0x409): "Test Variable Font", + (2, 3, 1, 0x409): "Regular", + (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Regular", + (6, 3, 1, 0x409): "TestVariableFont-Regular", + }, + False, + ), + # Black + ( + {"wght": 900}, + { + (1, 3, 1, 0x409): "Test Variable Font Black", + (2, 3, 1, 0x409): "Regular", + (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Black", + (6, 3, 1, 0x409): "TestVariableFont-Black", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Black", + }, + True, + ), + # Thin + ( + {"wght": 100}, + { + (1, 3, 1, 0x409): "Test Variable Font Thin", + (2, 3, 1, 0x409): "Regular", + (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Thin", + (6, 3, 1, 0x409): "TestVariableFont-Thin", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Thin", + }, + True, + ), + # Thin Condensed + ( + {"wght": 100, "wdth": 79}, + { + (1, 3, 1, 0x409): "Test Variable Font Thin Condensed", + (2, 3, 1, 0x409): "Regular", + (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-ThinCondensed", + (6, 3, 1, 0x409): "TestVariableFont-ThinCondensed", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Thin Condensed", + }, + True, + ), + # Condensed with unpinned weights + ( + {"wdth": 79, "wght": instancer.AxisRange(400, 900)}, + { + (1, 3, 1, 0x409): "Test Variable Font Condensed", + (2, 3, 1, 0x409): "Regular", + (3, 3, 1, 0x409): "2.001;GOOG;TestVariableFont-Condensed", + (6, 3, 1, 0x409): "TestVariableFont-Condensed", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Condensed", + }, + True, + ), + ], +) +def test_updateNameTable_with_registered_axes_ribbi( + varfont, limits, expected, isNonRIBBI +): + instancer.names.updateNameTable(varfont, limits) + _test_name_records(varfont, expected, isNonRIBBI) + + +def test_updatetNameTable_axis_order(varfont): + axes = [ + dict( + tag="wght", + name="Weight", + values=[ + dict(value=400, name="Regular"), + ], + ), + dict( + tag="wdth", + name="Width", + values=[ + dict(value=75, name="Condensed"), + ], + ), + ] + nametable = varfont["name"] + buildStatTable(varfont, axes) + instancer.names.updateNameTable(varfont, {"wdth": 75, "wght": 400}) + assert nametable.getName(17, 3, 1, 0x409).toUnicode() == "Regular Condensed" + + # Swap the axes so the names get swapped + axes[0], axes[1] = axes[1], axes[0] + + buildStatTable(varfont, axes) + instancer.names.updateNameTable(varfont, {"wdth": 75, "wght": 400}) + assert nametable.getName(17, 3, 1, 0x409).toUnicode() == "Condensed Regular" + + +@pytest.mark.parametrize( + "limits, expected, isNonRIBBI", + [ + # Regular | Normal + ( + {"wght": 400}, + { + (1, 3, 1, 0x409): "Test Variable Font", + (2, 3, 1, 0x409): "Normal", + }, + False, + ), + # Black | Negreta + ( + {"wght": 900}, + { + (1, 3, 1, 0x409): "Test Variable Font Negreta", + (2, 3, 1, 0x409): "Normal", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Negreta", + }, + True, + ), + # Black Condensed | Negreta Zhuštěné + ( + {"wght": 900, "wdth": 79}, + { + (1, 3, 1, 0x409): "Test Variable Font Negreta Zhuštěné", + (2, 3, 1, 0x409): "Normal", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Negreta Zhuštěné", + }, + True, + ), + ], +) +def test_updateNameTable_with_multilingual_names(varfont, limits, expected, isNonRIBBI): + name = varfont["name"] + # langID 0x405 is the Czech Windows langID + name.setName("Test Variable Font", 1, 3, 1, 0x405) + name.setName("Normal", 2, 3, 1, 0x405) + name.setName("Normal", 261, 3, 1, 0x405) # nameID 261=Regular STAT entry + name.setName("Negreta", 266, 3, 1, 0x405) # nameID 266=Black STAT entry + name.setName("Zhuštěné", 279, 3, 1, 0x405) # nameID 279=Condensed STAT entry + + instancer.names.updateNameTable(varfont, limits) + _test_name_records(varfont, expected, isNonRIBBI, platforms=[0x405]) + + +def test_updateNameTable_missing_axisValues(varfont): + with pytest.raises(ValueError, match="Cannot find Axis Values \['wght=200'\]"): + instancer.names.updateNameTable(varfont, {"wght": 200}) + + +def test_updateNameTable_missing_stat(varfont): + del varfont["STAT"] + with pytest.raises( + ValueError, match="Cannot update name table since there is no STAT table." + ): + instancer.names.updateNameTable(varfont, {"wght": 400}) + + +@pytest.mark.parametrize( + "limits, expected, isNonRIBBI", + [ + # Regular | Normal + ( + {"wght": 400}, + { + (1, 3, 1, 0x409): "Test Variable Font", + (2, 3, 1, 0x409): "Italic", + (6, 3, 1, 0x409): "TestVariableFont-Italic", + }, + False, + ), + # Black Condensed Italic + ( + {"wght": 900, "wdth": 79}, + { + (1, 3, 1, 0x409): "Test Variable Font Black Condensed", + (2, 3, 1, 0x409): "Italic", + (6, 3, 1, 0x409): "TestVariableFont-BlackCondensedItalic", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Black Condensed Italic", + }, + True, + ), + ], +) +def test_updateNameTable_vf_with_italic_attribute( + varfont, limits, expected, isNonRIBBI +): + font_link_axisValue = varfont["STAT"].table.AxisValueArray.AxisValue[4] + # Unset ELIDABLE_AXIS_VALUE_NAME flag + font_link_axisValue.Flags &= ~instancer.names.ELIDABLE_AXIS_VALUE_NAME + font_link_axisValue.ValueNameID = 294 # Roman --> Italic + + instancer.names.updateNameTable(varfont, limits) + _test_name_records(varfont, expected, isNonRIBBI) + + +def test_updateNameTable_format4_axisValues(varfont): + # format 4 axisValues should dominate the other axisValues + stat = varfont["STAT"].table + + axisValue = otTables.AxisValue() + axisValue.Format = 4 + axisValue.Flags = 0 + varfont["name"].setName("Dominant Value", 297, 3, 1, 0x409) + axisValue.ValueNameID = 297 + axisValue.AxisValueRecord = [] + for tag, value in (("wght", 900), ("wdth", 79)): + rec = otTables.AxisValueRecord() + rec.AxisIndex = next( + i for i, a in enumerate(stat.DesignAxisRecord.Axis) if a.AxisTag == tag + ) + rec.Value = value + axisValue.AxisValueRecord.append(rec) + stat.AxisValueArray.AxisValue.append(axisValue) + + instancer.names.updateNameTable(varfont, {"wdth": 79, "wght": 900}) + expected = { + (1, 3, 1, 0x409): "Test Variable Font Dominant Value", + (2, 3, 1, 0x409): "Regular", + (16, 3, 1, 0x409): "Test Variable Font", + (17, 3, 1, 0x409): "Dominant Value", + } + _test_name_records(varfont, expected, isNonRIBBI=True) + + +def test_updateNameTable_elided_axisValues(varfont): + stat = varfont["STAT"].table + # set ELIDABLE_AXIS_VALUE_NAME flag for all axisValues + for axisValue in stat.AxisValueArray.AxisValue: + axisValue.Flags |= instancer.names.ELIDABLE_AXIS_VALUE_NAME + + stat.ElidedFallbackNameID = 266 # Regular --> Black + instancer.names.updateNameTable(varfont, {"wght": 400}) + # Since all axis values are elided, the elided fallback name + # must be used to construct the style names. Since we + # changed it to Black, we need both a typoSubFamilyName and + # the subFamilyName set so it conforms to the RIBBI model. + expected = {(2, 3, 1, 0x409): "Regular", (17, 3, 1, 0x409): "Black"} + _test_name_records(varfont, expected, isNonRIBBI=True) + + +def test_updateNameTable_existing_subfamily_name_is_not_regular(varfont): + # Check the subFamily name will be set to Regular when we update a name + # table to a non-RIBBI style and the current subFamily name is a RIBBI + # style which isn't Regular. + varfont["name"].setName("Bold", 2, 3, 1, 0x409) # subFamily Regular --> Bold + + instancer.names.updateNameTable(varfont, {"wght": 100}) + expected = {(2, 3, 1, 0x409): "Regular", (17, 3, 1, 0x409): "Thin"} + _test_name_records(varfont, expected, isNonRIBBI=True) diff --git a/Tests/varLib/interpolatable_test.py b/Tests/varLib/interpolatable_test.py index d6bc6ce6..a30be71e 100644 --- a/Tests/varLib/interpolatable_test.py +++ b/Tests/varLib/interpolatable_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.varLib.interpolatable import main as interpolatable_main import os diff --git a/Tests/varLib/interpolate_layout_test.py b/Tests/varLib/interpolate_layout_test.py index 8fdf60f5..d7134d79 100644 --- a/Tests/varLib/interpolate_layout_test.py +++ b/Tests/varLib/interpolate_layout_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.varLib import build from fontTools.varLib.interpolate_layout import interpolate_layout diff --git a/Tests/varLib/models_test.py b/Tests/varLib/models_test.py index 1027f29f..c220d3d2 100644 --- a/Tests/varLib/models_test.py +++ b/Tests/varLib/models_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.varLib.models import ( normalizeLocation, supportScalar, VariationModel, VariationModelError) import pytest diff --git a/Tests/varLib/mutator_test.py b/Tests/varLib/mutator_test.py index 010ab5dd..abe5d027 100644 --- a/Tests/varLib/mutator_test.py +++ b/Tests/varLib/mutator_test.py @@ -1,4 +1,3 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont from fontTools.varLib import build from fontTools.varLib.mutator import main as mutator diff --git a/Tests/varLib/varLib_test.py b/Tests/varLib/varLib_test.py index da1f94f4..b8e7183b 100644 --- a/Tests/varLib/varLib_test.py +++ b/Tests/varLib/varLib_test.py @@ -1,7 +1,7 @@ -from fontTools.misc.py23 import * from fontTools.ttLib import TTFont, newTable from fontTools.varLib import build, load_designspace from fontTools.varLib.errors import VarLibValidationError +import fontTools.varLib.errors as varLibErrors from fontTools.varLib.mutator import instantiateVariableFont from fontTools.varLib import main as varLib_main, load_masters from fontTools.varLib import set_default_weight_width_slant @@ -10,6 +10,7 @@ from fontTools.designspaceLib import ( ) from fontTools.feaLib.builder import addOpenTypeFeaturesFromString import difflib +from io import BytesIO import os import shutil import sys @@ -813,6 +814,62 @@ class BuildTest(unittest.TestCase): assert ds_loaded.instances[0].location == {"weight": 0, "width": 50} + def test_varlib_build_incompatible_features(self): + with pytest.raises( + varLibErrors.ShouldBeConstant, + match = """ + +Couldn't merge the fonts, because some values were different, but should have +been the same. This happened while performing the following operation: +GPOS.table.FeatureList.FeatureCount + +The problem is likely to be in Simple Two Axis Bold: + +Incompatible features between masters. +Expected: kern, mark. +Got: kern. +"""): + + self._run_varlib_build_test( + designspace_name="IncompatibleFeatures", + font_name="IncompatibleFeatures", + tables=["GPOS"], + expected_ttx_name="IncompatibleFeatures", + save_before_dump=True, + ) + + def test_varlib_build_incompatible_lookup_types(self): + with pytest.raises( + varLibErrors.MismatchedTypes, + match = r"MarkBasePos, instead saw PairPos" + ): + self._run_varlib_build_test( + designspace_name="IncompatibleLookupTypes", + font_name="IncompatibleLookupTypes", + tables=["GPOS"], + expected_ttx_name="IncompatibleLookupTypes", + save_before_dump=True, + ) + + def test_varlib_build_incompatible_arrays(self): + with pytest.raises( + varLibErrors.ShouldBeConstant, + match = """ + +Couldn't merge the fonts, because some values were different, but should have +been the same. This happened while performing the following operation: +GPOS.table.ScriptList.ScriptCount + +The problem is likely to be in Simple Two Axis Bold: +Expected to see .ScriptCount==1, instead saw 0""" + ): + self._run_varlib_build_test( + designspace_name="IncompatibleArrays", + font_name="IncompatibleArrays", + tables=["GPOS"], + expected_ttx_name="IncompatibleArrays", + save_before_dump=True, + ) def test_load_masters_layerName_without_required_font(): ds = DesignSpaceDocument() |