def test_buildMark2Record(self): a = builder.buildAnchor rec = builder.buildMark2Record([a(500, -20), None, a(300, -15)]) self.assertEqual(getXML(rec.toXML), '<Mark2Record>' ' <Mark2Anchor index="0" Format="1">' ' <XCoordinate value="500"/>' ' <YCoordinate value="-20"/>' ' </Mark2Anchor>' ' <Mark2Anchor index="1" empty="1"/>' ' <Mark2Anchor index="2" Format="1">' ' <XCoordinate value="300"/>' ' <YCoordinate value="-15"/>' ' </Mark2Anchor>' '</Mark2Record>')
def build(self): markClasses = self.buildMarkClasses_(self.marks) markClassList = sorted(markClasses.keys(), key=markClasses.get) marks = {mark: (markClasses[mc], anchor) for mark, (mc, anchor) in self.marks.items()} st = otTables.MarkMarkPos() st.Format = 1 st.ClassCount = len(markClasses) st.Mark1Coverage = otl.buildCoverage(marks, self.glyphMap) st.Mark2Coverage = otl.buildCoverage(self.baseMarks, self.glyphMap) st.Mark1Array = otl.buildMarkArray(marks, self.glyphMap) st.Mark2Array = otTables.Mark2Array() st.Mark2Array.Mark2Count = len(st.Mark2Coverage.glyphs) st.Mark2Array.Mark2Record = [] for base in st.Mark2Coverage.glyphs: anchors = [self.baseMarks[base].get(mc) for mc in markClassList] st.Mark2Array.Mark2Record.append(otl.buildMark2Record(anchors)) return self.buildLookup_([st])