def test_buildLigCaretList(self): carets = builder.buildLigCaretList( {"f_f_i": [300, 600]}, {"c_t": [42]}, self.GLYPHMAP) self.assertEqual(getXML(carets.toXML), '<LigCaretList>' ' <Coverage>' ' <Glyph value="f_f_i"/>' ' <Glyph value="c_t"/>' ' </Coverage>' ' <!-- LigGlyphCount=2 -->' ' <LigGlyph index="0">' ' <!-- CaretCount=2 -->' ' <CaretValue index="0" Format="1">' ' <Coordinate value="300"/>' ' </CaretValue>' ' <CaretValue index="1" Format="1">' ' <Coordinate value="600"/>' ' </CaretValue>' ' </LigGlyph>' ' <LigGlyph index="1">' ' <!-- CaretCount=1 -->' ' <CaretValue index="0" Format="2">' ' <CaretValuePoint value="42"/>' ' </CaretValue>' ' </LigGlyph>' '</LigCaretList>')
def test_buildLigCaretList(self): carets = builder.buildLigCaretList({"f_f_i": [300, 600]}, {"c_t": [42]}, self.GLYPHMAP) assert getXML(carets.toXML) == [ "<LigCaretList>", " <Coverage>", ' <Glyph value="f_f_i"/>', ' <Glyph value="c_t"/>', " </Coverage>", " <!-- LigGlyphCount=2 -->", ' <LigGlyph index="0">', " <!-- CaretCount=2 -->", ' <CaretValue index="0" Format="1">', ' <Coordinate value="300"/>', " </CaretValue>", ' <CaretValue index="1" Format="1">', ' <Coordinate value="600"/>', " </CaretValue>", " </LigGlyph>", ' <LigGlyph index="1">', " <!-- CaretCount=1 -->", ' <CaretValue index="0" Format="2">', ' <CaretValuePoint value="42"/>', " </CaretValue>", " </LigGlyph>", "</LigCaretList>", ]
def parseCaretList(lines, font): carets = {} with lines.between('carets'): for line in lines: glyph = makeGlyph(line[0]) assert glyph not in carets, glyph num = int(line[1]) thisCarets = [int(i) for i in line[2:]] assert num == len(thisCarets), line carets[glyph] = thisCarets return otl.buildLigCaretList(carets, {}, font.getReverseGlyphMap())
def buildGDEF(self): gdef = otTables.GDEF() gdef.GlyphClassDef = self.buildGDEFGlyphClassDef_() gdef.AttachList = otl.buildAttachList(self.attachPoints_, self.glyphMap) gdef.LigCaretList = otl.buildLigCaretList(self.ligCaretCoords_, self.ligCaretPoints_, self.glyphMap) gdef.MarkAttachClassDef = self.buildGDEFMarkAttachClassDef_() gdef.MarkGlyphSetsDef = self.buildGDEFMarkGlyphSetsDef_() gdef.Version = 0x00010002 if gdef.MarkGlyphSetsDef else 1.0 if any( (gdef.GlyphClassDef, gdef.AttachList, gdef.LigCaretList, gdef.MarkAttachClassDef, gdef.MarkGlyphSetsDef) ): result = getTableClass("GDEF")() result.table = gdef return result else: return None
def buildGDEF(self): gdef = otTables.GDEF() gdef.GlyphClassDef = self.buildGDEFGlyphClassDef_() gdef.AttachList = \ otl.buildAttachList(self.attachPoints_, self.glyphMap) gdef.LigCaretList = \ otl.buildLigCaretList(self.ligCaretCoords_, self.ligCaretPoints_, self.glyphMap) gdef.MarkAttachClassDef = self.buildGDEFMarkAttachClassDef_() gdef.MarkGlyphSetsDef = self.buildGDEFMarkGlyphSetsDef_() gdef.Version = 0x00010002 if gdef.MarkGlyphSetsDef else 1.0 if any((gdef.GlyphClassDef, gdef.AttachList, gdef.LigCaretList, gdef.MarkAttachClassDef, gdef.MarkGlyphSetsDef)): result = getTableClass("GDEF")() result.table = gdef return result else: return None
def test_buildLigCaretList_bothCoordsAndPointsForSameGlyph(self): carets = builder.buildLigCaretList( {"f_f_i": [300]}, {"f_f_i": [7]}, self.GLYPHMAP) self.assertEqual(getXML(carets.toXML), '<LigCaretList>' ' <Coverage>' ' <Glyph value="f_f_i"/>' ' </Coverage>' ' <!-- LigGlyphCount=1 -->' ' <LigGlyph index="0">' ' <!-- CaretCount=2 -->' ' <CaretValue index="0" Format="1">' ' <Coordinate value="300"/>' ' </CaretValue>' ' <CaretValue index="1" Format="2">' ' <CaretValuePoint value="7"/>' ' </CaretValue>' ' </LigGlyph>' '</LigCaretList>')
def test_buildLigCaretList_None(self): assert builder.buildLigCaretList(None, None, self.GLYPHMAP) is None
def test_buildLigCaretList_empty(self): assert builder.buildLigCaretList({}, {}, self.GLYPHMAP) is None
def test_buildLigCaretList_None(self): self.assertIsNone(builder.buildLigCaretList(None, None, self.GLYPHMAP))
def test_buildLigCaretList_empty(self): self.assertIsNone(builder.buildLigCaretList({}, {}, self.GLYPHMAP))