def test__makeMarkClassDefinitions_non_empty(self, FontClass): ufo = FontClass() ufo.newGlyph("a").appendAnchor({"name": "top", "x": 250, "y": 500}) ufo.newGlyph("c").appendAnchor({"name": "bottom", "x": 250, "y": -100}) ufo.newGlyph("grave").appendAnchor({ "name": "_top", "x": 100, "y": 200 }) ufo.newGlyph("cedilla").appendAnchor({ "name": "_bottom", "x": 100, "y": 0 }) ufo.features.text = dedent("""\ markClass cedilla <anchor 200 0> @MC_bottom; markClass grave <anchor 100 200> @MC_top; """) writer = MarkFeatureWriter() feaFile = parseLayoutFeatures(ufo) writer.setContext(ufo, feaFile) markClassDefs = writer._makeMarkClassDefinitions() assert len(markClassDefs) == 1 assert len(feaFile.markClasses) == 3 assert "MC_bottom" in feaFile.markClasses assert "MC_top" in feaFile.markClasses assert [str(mcd) for mcd in markClassDefs ] == ["markClass cedilla <anchor 100 0> @MC_bottom_1;"]
def test__makeMarkClassDefinitions_empty(self, FontClass): ufo = FontClass() ufo.newGlyph("a").appendAnchor({"name": "top", "x": 250, "y": 500}) ufo.newGlyph("c").appendAnchor({"name": "bottom", "x": 250, "y": -100}) ufo.newGlyph("grave").appendAnchor({ "name": "_top", "x": 100, "y": 200 }) ufo.newGlyph("cedilla").appendAnchor({ "name": "_bottom", "x": 100, "y": 0 }) writer = MarkFeatureWriter() feaFile = ast.FeatureFile() writer.setContext(ufo, feaFile) markClassDefs = writer._makeMarkClassDefinitions() assert len(feaFile.markClasses) == 2 assert [str(mcd) for mcd in markClassDefs] == [ "markClass cedilla <anchor 100 0> @MC_bottom;", "markClass grave <anchor 100 200> @MC_top;", ]