def parseSinglePos(lines, font, _lookupMap=None): values = {} for line in lines: assert len(line) == 3, line w = line[0].title().replace(' ', '') assert w in valueRecordFormatDict g = makeGlyph(line[1]) v = int(line[2]) if g not in values: values[g] = ValueRecord() assert not hasattr(values[g], w), (g, w) setattr(values[g], w, v) return otl.buildSinglePosSubtable(values, font.getReverseGlyphMap())
def test_buildSinglePosSubtable_format1(self): subtable = builder.buildSinglePosSubtable({ "one": builder.buildValue({"XPlacement": 777}), "two": builder.buildValue({"XPlacement": 777}), }, self.GLYPHMAP) self.assertEqual(getXML(subtable.toXML), '<SinglePos Format="1">' ' <Coverage>' ' <Glyph value="one"/>' ' <Glyph value="two"/>' ' </Coverage>' ' <ValueFormat value="1"/>' ' <Value XPlacement="777"/>' '</SinglePos>')
def test_buildSinglePosSubtable_format1(self): subtable = builder.buildSinglePosSubtable( { "one": builder.buildValue({"XPlacement": 777}), "two": builder.buildValue({"XPlacement": 777}), }, self.GLYPHMAP) self.assertEqual( getXML(subtable.toXML), '<SinglePos Format="1">' ' <Coverage>' ' <Glyph value="one"/>' ' <Glyph value="two"/>' ' </Coverage>' ' <ValueFormat value="1"/>' ' <Value XPlacement="777"/>' '</SinglePos>')
def test_buildSinglePosSubtable_format2(self): subtable = builder.buildSinglePosSubtable({ "one": builder.buildValue({"XPlacement": 777}), "two": builder.buildValue({"YPlacement": -888}), }, self.GLYPHMAP) self.assertEqual(getXML(subtable.toXML), '<SinglePos Format="2">' ' <Coverage>' ' <Glyph value="one"/>' ' <Glyph value="two"/>' ' </Coverage>' ' <ValueFormat value="3"/>' ' <!-- ValueCount=2 -->' ' <Value index="0" XPlacement="777"/>' ' <Value index="1" YPlacement="-888"/>' '</SinglePos>')