def test_buildMarkArray(self): markArray = builder.buildMarkArray( { "acute": (7, builder.buildAnchor(300, 800)), "grave": (2, builder.buildAnchor(10, 80)), }, self.GLYPHMAP, ) assert self.GLYPHMAP["grave"] < self.GLYPHMAP["acute"] assert getXML(markArray.toXML) == [ "<MarkArray>", " <!-- MarkCount=2 -->", ' <MarkRecord index="0">', ' <Class value="2"/>', ' <MarkAnchor Format="1">', ' <XCoordinate value="10"/>', ' <YCoordinate value="80"/>', " </MarkAnchor>", " </MarkRecord>", ' <MarkRecord index="1">', ' <Class value="7"/>', ' <MarkAnchor Format="1">', ' <XCoordinate value="300"/>', ' <YCoordinate value="800"/>', " </MarkAnchor>", " </MarkRecord>", "</MarkArray>", ]
def test_buildMarkArray(self): markArray = builder.buildMarkArray( { "acute": (7, builder.buildAnchor(300, 800)), "grave": (2, builder.buildAnchor(10, 80)) }, self.GLYPHMAP) self.assertLess(self.GLYPHMAP["grave"], self.GLYPHMAP["acute"]) self.assertEqual( getXML(markArray.toXML), '<MarkArray>' ' <!-- MarkCount=2 -->' ' <MarkRecord index="0">' ' <Class value="2"/>' ' <MarkAnchor Format="1">' ' <XCoordinate value="10"/>' ' <YCoordinate value="80"/>' ' </MarkAnchor>' ' </MarkRecord>' ' <MarkRecord index="1">' ' <Class value="7"/>' ' <MarkAnchor Format="1">' ' <XCoordinate value="300"/>' ' <YCoordinate value="800"/>' ' </MarkAnchor>' ' </MarkRecord>' '</MarkArray>')
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])
def test_buildMarkArray(self): markArray = builder.buildMarkArray({ "acute": (7, builder.buildAnchor(300, 800)), "grave": (2, builder.buildAnchor(10, 80)) }, self.GLYPHMAP) self.assertLess(self.GLYPHMAP["grave"], self.GLYPHMAP["acute"]) self.assertEqual(getXML(markArray.toXML), '<MarkArray>' ' <!-- MarkCount=2 -->' ' <MarkRecord index="0">' ' <Class value="2"/>' ' <MarkAnchor Format="1">' ' <XCoordinate value="10"/>' ' <YCoordinate value="80"/>' ' </MarkAnchor>' ' </MarkRecord>' ' <MarkRecord index="1">' ' <Class value="7"/>' ' <MarkAnchor Format="1">' ' <XCoordinate value="300"/>' ' <YCoordinate value="800"/>' ' </MarkAnchor>' ' </MarkRecord>' '</MarkArray>')