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:
parent
8825e19615
commit
ec6205199e
@ -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"])
|
||||
|
Loading…
x
Reference in New Issue
Block a user