def test_decompileTupleVariationStore_empty(self): self.assertEqual( decompileTupleVariationStore(tableTag="gvar", axisTags=[], tupleVariationCount=0, pointCount=5, sharedTuples=[], data=b"", pos=4, dataPos=4), [])
def test_compileTupleVariationStore_roundTrip_gvar(self): deltas = [(1, 1), (2, 2), (3, 3), (4, 4)] variations = [ TupleVariation({ "wght": (0.5, 1.0, 1.0), "wdth": (1.0, 1.0, 1.0) }, deltas), TupleVariation({ "wght": (1.0, 1.0, 1.0), "wdth": (1.0, 1.0, 1.0) }, deltas) ] tupleVariationCount, tuples, data = compileTupleVariationStore( variations, pointCount=4, axisTags=["wght", "wdth"], sharedTupleIndices={}) self.assertEqual( decompileTupleVariationStore("gvar", ["wght", "wdth"], tupleVariationCount, pointCount=4, sharedTuples={}, data=(tuples + data), pos=0, dataPos=len(tuples)), variations)
def test_decompileTupleVariationStore_Skia_I(self): tvar = decompileTupleVariationStore( tableTag="gvar", axisTags=["wght", "wdth"], tupleVariationCount=8, pointCount=18, sharedTuples=SKIA_GVAR_SHARED_TUPLES, data=SKIA_GVAR_I_DATA, pos=4, dataPos=36) self.assertEqual(len(tvar), 8) self.assertEqual(tvar[0].axes, {"wght": (0.0, 1.0, 1.0)}) self.assertEqual( " ".join(["%d,%d" % c for c in tvar[0].coordinates]), "257,0 -127,0 -128,58 -130,90 -130,62 -130,67 -130,32 -127,0 " "257,0 259,14 260,64 260,21 260,69 258,124 0,0 130,0 0,0 0,0")
def decompile(self, data, ttFont): axisTags = [axis.axisTag for axis in ttFont["fvar"].axes] header = {} sstruct.unpack(CVAR_HEADER_FORMAT, data[0:CVAR_HEADER_SIZE], header) self.majorVersion = header["majorVersion"] self.minorVersion = header["minorVersion"] assert self.majorVersion == 1, self.majorVersion self.variations = decompileTupleVariationStore( tableTag=self.tableTag, axisTags=axisTags, tupleVariationCount=header["tupleVariationCount"], pointCount=len(ttFont["cvt "].values), sharedTuples=None, data=data, pos=CVAR_HEADER_SIZE, dataPos=header["offsetToData"])
def test_compileTupleVariationStore_roundTrip_gvar(self): deltas = [(1,1), (2,2), (3,3), (4,4)] variations = [ TupleVariation({"wght": (0.5, 1.0, 1.0), "wdth": (1.0, 1.0, 1.0)}, deltas), TupleVariation({"wght": (1.0, 1.0, 1.0), "wdth": (1.0, 1.0, 1.0)}, deltas) ] tupleVariationCount, tuples, data = compileTupleVariationStore( variations, pointCount=4, axisTags=["wght", "wdth"], sharedTupleIndices={}) self.assertEqual( decompileTupleVariationStore("gvar", ["wght", "wdth"], tupleVariationCount, pointCount=4, sharedTuples={}, data=(tuples + data), pos=0, dataPos=len(tuples)), variations)