Beispiel #1
0
 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>')
Beispiel #2
0
 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>",
     ]
Beispiel #3
0
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())
Beispiel #4
0
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())
Beispiel #5
0
 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
Beispiel #6
0
 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>')
Beispiel #8
0
 def test_buildLigCaretList_None(self):
     assert builder.buildLigCaretList(None, None, self.GLYPHMAP) is None
Beispiel #9
0
 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))