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_compileTupleVariationStore_allVariationsRedundant(self): axes = {"wght": (0.3, 0.4, 0.5), "opsz": (0.7, 0.8, 0.9)} variations = [ TupleVariation(axes, [None] * 4), TupleVariation(axes, [None] * 4), TupleVariation(axes, [None] * 4) ] self.assertEqual( compileTupleVariationStore(variations, pointCount=8, axisTags=["wght", "opsz"], sharedTupleIndices={}), (0, b"", b""))
def test_compileTupleVariationStore_allVariationsRedundant(self): axes = {"wght": (0.3, 0.4, 0.5), "opsz": (0.7, 0.8, 0.9)} variations = [ TupleVariation(axes, [None] * 4), TupleVariation(axes, [None] * 4), TupleVariation(axes, [None] * 4) ] self.assertEqual( compileTupleVariationStore(variations, pointCount=8, axisTags=["wght", "opsz"], sharedTupleIndices={}), (0, b"", b""))
def compile(self, ttFont): tupleVariationCount, tuples, data = compileTupleVariationStore( variations=[v for v in self.variations if v.hasImpact()], pointCount=len(ttFont["cvt "].values), axisTags=[axis.axisTag for axis in ttFont["fvar"].axes], sharedTupleIndices={}) header = { "majorVersion": self.majorVersion, "minorVersion": self.minorVersion, "tupleVariationCount": tupleVariationCount, "offsetToData": CVAR_HEADER_SIZE + len(tuples), } return bytesjoin( [sstruct.pack(CVAR_HEADER_FORMAT, header), tuples, data])
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 compile(self, ttFont): tupleVariationCount, tuples, data = compileTupleVariationStore( variations=[v for v in self.variations if v.hasImpact()], pointCount=len(ttFont["cvt "].values), axisTags=[axis.axisTag for axis in ttFont["fvar"].axes], sharedTupleIndices={}) header = { "majorVersion": self.majorVersion, "minorVersion": self.minorVersion, "tupleVariationCount": tupleVariationCount, "offsetToData": CVAR_HEADER_SIZE + len(tuples), } return bytesjoin([ sstruct.pack(CVAR_HEADER_FORMAT, header), tuples, data ])
def test_compileTupleVariationStore_noVariations(self): self.assertEqual( compileTupleVariationStore(variations=[], pointCount=8, axisTags=["wght", "opsz"], sharedTupleIndices={}), (0, b"", b""))
def test_compileTupleVariationStore_noVariations(self): self.assertEqual( compileTupleVariationStore(variations=[], pointCount=8, axisTags=["wght", "opsz"], sharedTupleIndices={}), (0, b"", b""))