subset_test: add test for dropping 'rvrn' feature and all FeatureVariationRecords

Added a TODO for the partial dropping of FeatureVariationRecords
https://github.com/fonttools/fonttools/issues/1881#issuecomment-619415044
This commit is contained in:
Cosimo Lupo 2020-04-25 18:40:19 +01:00
parent 8825e19615
commit ec6205199e
No known key found for this signature in database
GPG Key ID: 179A8F0895A02F4F

View File

@ -733,7 +733,8 @@ class SubsetTest(unittest.TestCase):
self.assertEqual(ttf.flavor, None)
def test_subset_feature_variations():
@pytest.fixture
def featureVarsTestFont():
fb = FontBuilder(unitsPerEm=100)
fb.setupGlyphOrder([".notdef", "f", "f_f", "dollar", "dollar.rvrn"])
fb.setupCharacterMap({ord("f"): "f", ord("$"): "dollar"})
@ -753,7 +754,11 @@ def test_subset_feature_variations():
fb.save(buf)
buf.seek(0)
font = TTFont(buf)
return TTFont(buf)
def test_subset_feature_variations_keep_all(featureVarsTestFont):
font = featureVarsTestFont
options = subset.Options()
subsetter = subset.Subsetter(options)
@ -771,6 +776,30 @@ def test_subset_feature_variations():
assert "dollar.rvrn" in font.getGlyphOrder()
def test_subset_feature_variations_drop_all(featureVarsTestFont):
font = featureVarsTestFont
options = subset.Options()
options.layout_features.remove("rvrn") # drop 'rvrn'
subsetter = subset.Subsetter(options)
subsetter.populate(unicodes=[ord("f"), ord("$")])
subsetter.subset(font)
featureTags = {
r.FeatureTag for r in font["GSUB"].table.FeatureList.FeatureRecord
}
glyphs = set(font.getGlyphOrder())
assert "rvrn" not in featureTags
assert glyphs == {".notdef", "f", "dollar"}
# all FeatureVariationRecords were dropped
assert not font["GSUB"].table.FeatureVariations.FeatureVariationRecord
# TODO test_subset_feature_variations_drop_from_end_empty_records
# https://github.com/fonttools/fonttools/issues/1881#issuecomment-619415044
def test_subset_single_pos_format():
fb = FontBuilder(unitsPerEm=1000)
fb.setupGlyphOrder([".notdef", "a", "b", "c"])