Skip to content

Commit

Permalink
Add test for math userData
Browse files Browse the repository at this point in the history
  • Loading branch information
khaledhosny committed Feb 12, 2024
1 parent 6da9753 commit 3b2b23e
Show file tree
Hide file tree
Showing 2 changed files with 1,224 additions and 0 deletions.
181 changes: 181 additions & 0 deletions tests/builder/lib_and_user_data_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@
FONT_CUSTOM_PARAM_PREFIX,
UFO2FT_FEATURE_WRITERS_KEY,
DEFAULT_FEATURE_WRITERS,
GLYPHS_MATH_CONSTANTS_KEY,
GLYPHS_MATH_EXTENDED_SHAPE_KEY,
GLYPHS_MATH_VARIANTS_KEY,
)
from glyphsLib import to_glyphs, to_ufos, to_designspace

Expand Down Expand Up @@ -261,6 +264,184 @@ def test_glyph_user_data_into_ufo_lib():
assert font.glyphs["a"].userData["glyphUserDataKey"] == "glyphUserDataValue"


def test_math_user_data_into_ufo_lib(datadir):
font = classes.GSFont(str(datadir.join("Math.glyphs")))

ufos = to_ufos(font)

for ufo in ufos:
assert ufo.lib[GLYPHS_MATH_EXTENDED_SHAPE_KEY] == ["parenleft", "parenright"]
assert ufo.lib[GLYPHS_MATH_VARIANTS_KEY] == {
"parenleft": {
"vVariants": [
"parenleft",
"parenleft.size1",
"parenleft.size2",
"parenleft.size3",
"parenleft.size4",
]
},
"parenright": {
"vVariants": [
"parenright",
"parenright.size1",
"parenright.size2",
"parenright.size3",
"parenright.size4",
]
},
}

parenleft = ufo["parenleft"]
parenright = ufo["parenright"]
if ufo.info.styleName == "Regular":
assert parenleft.lib[GLYPHS_MATH_VARIANTS_KEY] == {
"vAssembly": [
["parenleft.bot", 0, 0, 314],
["parenleft.ext", 1, 630, 630],
["parenleft.top", 0, 314, 0],
]
}
assert parenright.lib[GLYPHS_MATH_VARIANTS_KEY] == {
"vAssembly": [
["parenright.bot", 0, 0, 314],
["parenright.ext", 1, 630, 630],
["parenright.top", 0, 314, 0],
]
}
assert ufo.lib[GLYPHS_MATH_CONSTANTS_KEY] == {
"AccentBaseHeight": 449,
"AxisHeight": 250,
"DelimitedSubFormulaMinHeight": 1010,
"DisplayOperatorMinHeight": 2260,
"FlattenedAccentBaseHeight": 656,
"FractionDenomDisplayStyleGapMin": 137,
"FractionDenominatorDisplayStyleShiftDown": 685,
"FractionDenominatorGapMin": 45,
"FractionDenominatorShiftDown": 345,
"FractionNumDisplayStyleGapMin": 137,
"FractionNumeratorDisplayStyleShiftUp": 677,
"FractionNumeratorGapMin": 45,
"FractionNumeratorShiftUp": 394,
"FractionRuleThickness": 45,
"LowerLimitBaselineDropMin": 600,
"LowerLimitGapMin": 166,
"MinConnectorOverlap": 20,
"OverbarExtraAscender": 45,
"OverbarRuleThickness": 45,
"OverbarVerticalGap": 137,
"RadicalDegreeBottomRaisePercent": 60,
"RadicalDisplayStyleVerticalGap": 158,
"RadicalExtraAscender": 70,
"RadicalKernAfterDegree": -400,
"RadicalKernBeforeDegree": 277,
"RadicalRuleThickness": 45,
"RadicalVerticalGap": 57,
"ScriptPercentScaleDown": 70,
"ScriptScriptPercentScaleDown": 50,
"SkewedFractionHorizontalGap": 400,
"SkewedFractionVerticalGap": 60,
"SpaceAfterScript": 50,
"StackBottomDisplayStyleShiftDown": 685,
"StackBottomShiftDown": 345,
"StackDisplayStyleGapMin": 321,
"StackGapMin": 137,
"StackTopDisplayStyleShiftUp": 677,
"StackTopShiftUp": 444,
"StretchStackBottomShiftDown": 600,
"StretchStackGapAboveMin": 111,
"StretchStackGapBelowMin": 166,
"StretchStackTopShiftUp": 199,
"SubSuperscriptGapMin": 183,
"SubscriptBaselineDropMin": 50,
"SubscriptShiftDown": 149,
"SubscriptTopMax": 359,
"SuperscriptBaselineDropMax": 385,
"SuperscriptBottomMaxWithSubscript": 359,
"SuperscriptBottomMin": 112,
"SuperscriptShiftUp": 362,
"SuperscriptShiftUpCramped": 289,
"UnderbarExtraDescender": 45,
"UnderbarRuleThickness": 45,
"UnderbarVerticalGap": 137,
"UpperLimitBaselineRiseMin": 199,
"UpperLimitGapMin": 111,
}
else:
assert parenleft.lib[GLYPHS_MATH_VARIANTS_KEY] == {
"vAssembly": [
["parenleft.bot", 0, 0, 314],
["parenleft.ext", 1, 1000, 1000],
["parenleft.top", 0, 314, 0],
]
}
assert parenright.lib[GLYPHS_MATH_VARIANTS_KEY] == {
"vAssembly": [
["parenright.bot", 0, 0, 314],
["parenright.ext", 1, 1000, 1000],
["parenright.top", 0, 314, 0],
]
}
assert ufo.lib[GLYPHS_MATH_CONSTANTS_KEY] == {
"AccentBaseHeight": 449,
"AxisHeight": 250,
"DelimitedSubFormulaMinHeight": 1010,
"DisplayOperatorMinHeight": 2260,
"FlattenedAccentBaseHeight": 658,
"FractionDenomDisplayStyleGapMin": 137,
"FractionDenominatorDisplayStyleShiftDown": 685,
"FractionDenominatorGapMin": 45,
"FractionDenominatorShiftDown": 345,
"FractionNumDisplayStyleGapMin": 137,
"FractionNumeratorDisplayStyleShiftUp": 677,
"FractionNumeratorGapMin": 45,
"FractionNumeratorShiftUp": 394,
"FractionRuleThickness": 45,
"LowerLimitBaselineDropMin": 600,
"LowerLimitGapMin": 166,
"MinConnectorOverlap": 20,
"OverbarExtraAscender": 45,
"OverbarRuleThickness": 45,
"OverbarVerticalGap": 137,
"RadicalDegreeBottomRaisePercent": 60,
"RadicalDisplayStyleVerticalGap": 158,
"RadicalExtraAscender": 70,
"RadicalKernAfterDegree": -400,
"RadicalKernBeforeDegree": 277,
"RadicalRuleThickness": 90,
"RadicalVerticalGap": 57,
"ScriptPercentScaleDown": 70,
"ScriptScriptPercentScaleDown": 50,
"SkewedFractionHorizontalGap": 400,
"SkewedFractionVerticalGap": 120,
"SpaceAfterScript": 50,
"StackBottomDisplayStyleShiftDown": 685,
"StackBottomShiftDown": 345,
"StackDisplayStyleGapMin": 321,
"StackGapMin": 137,
"StackTopDisplayStyleShiftUp": 677,
"StackTopShiftUp": 444,
"StretchStackBottomShiftDown": 600,
"StretchStackGapAboveMin": 111,
"StretchStackGapBelowMin": 166,
"StretchStackTopShiftUp": 199,
"SubSuperscriptGapMin": 183,
"SubscriptBaselineDropMin": 50,
"SubscriptShiftDown": 149,
"SubscriptTopMax": 359,
"SuperscriptBaselineDropMax": 385,
"SuperscriptBottomMaxWithSubscript": 359,
"SuperscriptBottomMin": 112,
"SuperscriptShiftUp": 362,
"SuperscriptShiftUpCramped": 289,
"UnderbarExtraDescender": 45,
"UnderbarRuleThickness": 45,
"UnderbarVerticalGap": 137,
"UpperLimitBaselineRiseMin": 199,
"UpperLimitGapMin": 111,
}


def test_glif_lib_equivalent_to_layer_user_data(ufo_module):
ufo = ufo_module.Font()
# This glyph is in the `public.default` layer
Expand Down
Loading

0 comments on commit 3b2b23e

Please sign in to comment.