Exemple #1
0
 def test_compilePoints(self):
     compilePoints = lambda p: TupleVariation.compilePoints(
         set(p), numPointsInGlyph=999)
     self.assertEqual("00", hexencode(compilePoints(
         range(999))))  # all points in glyph
     self.assertEqual("01 00 07", hexencode(compilePoints([7])))
     self.assertEqual("01 80 FF FF", hexencode(compilePoints([65535])))
     self.assertEqual("02 01 09 06", hexencode(compilePoints([9, 15])))
     self.assertEqual("06 05 07 01 F7 02 01 F2",
                      hexencode(compilePoints([7, 8, 255, 257, 258, 500])))
     self.assertEqual("03 01 07 01 80 01 EC",
                      hexencode(compilePoints([7, 8, 500])))
     self.assertEqual("04 01 07 01 81 BE E7 0C 0F",
                      hexencode(compilePoints([7, 8, 0xBEEF, 0xCAFE])))
     self.maxDiff = None
     self.assertEqual(
         "81 2C" +  # 300 points (0x12c) in total
         " 7F 00" +
         (127 * " 01") +  # first run, contains 128 points: [0 .. 127]
         " 7F" +
         (128 * " 01") +  # second run, contains 128 points: [128 .. 255]
         " 2B" +
         (44 * " 01"),  # third run, contains 44 points: [256 .. 299]
         hexencode(compilePoints(range(300))))
     self.assertEqual(
         "81 8F" +  # 399 points (0x18f) in total
         " 7F 00" +
         (127 * " 01") +  # first run, contains 128 points: [0 .. 127]
         " 7F" +
         (128 * " 01") +  # second run, contains 128 points: [128 .. 255]
         " 7F" +
         (128 * " 01") +  # third run, contains 128 points: [256 .. 383]
         " 0E" +
         (15 * " 01"),  # fourth run, contains 15 points: [384 .. 398]
         hexencode(compilePoints(range(399))))
	def test_decompilePoints_roundTrip(self):
		numPointsInGlyph = 500  # greater than 255, so we also exercise code path for 16-bit encoding
		compile = lambda points: TupleVariation.compilePoints(points, numPointsInGlyph)
		decompile = lambda data: set(TupleVariation.decompilePoints_(numPointsInGlyph, data, 0, "gvar")[0])
		for i in range(50):
			points = set(random.sample(range(numPointsInGlyph), 30))
			self.assertSetEqual(points, decompile(compile(points)),
					    "failed round-trip decompile/compilePoints; points=%s" % points)
		allPoints = set(range(numPointsInGlyph))
		self.assertSetEqual(allPoints, decompile(compile(allPoints)))
Exemple #3
0
	def test_decompilePoints_roundTrip(self):
		numPointsInGlyph = 500  # greater than 255, so we also exercise code path for 16-bit encoding
		compile = lambda points: TupleVariation.compilePoints(points, numPointsInGlyph)
		decompile = lambda data: set(TupleVariation.decompilePoints_(numPointsInGlyph, data, 0, "gvar")[0])
		for i in range(50):
			points = set(random.sample(range(numPointsInGlyph), 30))
			self.assertSetEqual(points, decompile(compile(points)),
					    "failed round-trip decompile/compilePoints; points=%s" % points)
		allPoints = set(range(numPointsInGlyph))
		self.assertSetEqual(allPoints, decompile(compile(allPoints)))
	def test_compilePoints(self):
		compilePoints = lambda p: TupleVariation.compilePoints(set(p), numPointsInGlyph=999)
		self.assertEqual("00", hexencode(compilePoints(range(999))))  # all points in glyph
		self.assertEqual("01 00 07", hexencode(compilePoints([7])))
		self.assertEqual("01 80 FF FF", hexencode(compilePoints([65535])))
		self.assertEqual("02 01 09 06", hexencode(compilePoints([9, 15])))
		self.assertEqual("06 05 07 01 F7 02 01 F2", hexencode(compilePoints([7, 8, 255, 257, 258, 500])))
		self.assertEqual("03 01 07 01 80 01 EC", hexencode(compilePoints([7, 8, 500])))
		self.assertEqual("04 01 07 01 81 BE E7 0C 0F", hexencode(compilePoints([7, 8, 0xBEEF, 0xCAFE])))
		self.maxDiff = None
		self.assertEqual("81 2C" +  # 300 points (0x12c) in total
				 " 7F 00" + (127 * " 01") +  # first run, contains 128 points: [0 .. 127]
				 " 7F" + (128 * " 01") +  # second run, contains 128 points: [128 .. 255]
				 " 2B" + (44 * " 01"),  # third run, contains 44 points: [256 .. 299]
				 hexencode(compilePoints(range(300))))
		self.assertEqual("81 8F" +  # 399 points (0x18f) in total
				 " 7F 00" + (127 * " 01") +  # first run, contains 128 points: [0 .. 127]
				 " 7F" + (128 * " 01") +  # second run, contains 128 points: [128 .. 255]
				 " 7F" + (128 * " 01") +  # third run, contains 128 points: [256 .. 383]
				 " 0E" + (15 * " 01"),  # fourth run, contains 15 points: [384 .. 398]
				 hexencode(compilePoints(range(399))))