def test_coord_set_weights(self):
		from lepton.texturizer import SpriteTexturizer
		coord_set1 = ((0.5,0.5), (1,0.5), (1,1), (0.5,1))
		coord_set2 = (0,0.5, 0.5,0.5, 0.5,1, 0,1)
		coord_set3 = (0.5,0, 1,0, 1,0.5, 0.5,0.5)
		tex = SpriteTexturizer(0, 
			coords=(coord_set1, coord_set2, coord_set3), weights=(20, 30, 50))
		coord_sets = tex.tex_coords
		self.assertEqual(coord_sets, (
			(0.5,0.5, 1,0.5, 1,1, 0.5,1),
			(0,0.5, 0.5,0.5, 0.5,1, 0,1),
			(0.5,0, 1,0, 1,0.5, 0.5,0.5))
			)
		self.assertEqual(len(tex.weights), 3)
		self.assertAlmostEqual(tex.weights[0], 0.20)
		self.assertAlmostEqual(tex.weights[1], 0.30)
		self.assertAlmostEqual(tex.weights[2], 0.50)
		group = self._make_group(1000)
		coords = tuple(tex.generate_tex_coords(group))
		self.failUnless(len(coords) >= 8000, (len(coords), len(group)))
		counts = {coord_sets[0]: 0, coord_sets[1]: 0, coord_sets[2]: 0}
		for i in range(1000):
			cset = coords[i*8:i*8+8]
			self.failUnless(cset in counts, cset)
			counts[cset] += 1
		self.assertEqual(sum(counts.values()), 1000)
		self.failUnless(250 > counts[coord_sets[0]] > 150, counts[coord_sets[0]])
		self.failUnless(375 > counts[coord_sets[1]] > 225, counts[coord_sets[1]])
		self.failUnless(600 > counts[coord_sets[2]] > 400, counts[coord_sets[2]])
Exemple #2
0
 def test_coord_set_weights(self):
     from lepton.texturizer import SpriteTexturizer
     coord_set1 = ((0.5, 0.5), (1, 0.5), (1, 1), (0.5, 1))
     coord_set2 = (0, 0.5, 0.5, 0.5, 0.5, 1, 0, 1)
     coord_set3 = (0.5, 0, 1, 0, 1, 0.5, 0.5, 0.5)
     tex = SpriteTexturizer(0,
                            coords=(coord_set1, coord_set2, coord_set3),
                            weights=(20, 30, 50))
     coord_sets = tex.tex_coords
     self.assertEqual(coord_sets, ((0.5, 0.5, 1, 0.5, 1, 1, 0.5, 1),
                                   (0, 0.5, 0.5, 0.5, 0.5, 1, 0, 1),
                                   (0.5, 0, 1, 0, 1, 0.5, 0.5, 0.5)))
     self.assertEqual(len(tex.weights), 3)
     self.assertAlmostEqual(tex.weights[0], 0.20)
     self.assertAlmostEqual(tex.weights[1], 0.30)
     self.assertAlmostEqual(tex.weights[2], 0.50)
     group = self._make_group(1000)
     coords = tuple(tex.generate_tex_coords(group))
     self.failUnless(len(coords) >= 8000, (len(coords), len(group)))
     counts = {coord_sets[0]: 0, coord_sets[1]: 0, coord_sets[2]: 0}
     for i in range(1000):
         cset = coords[i * 8:i * 8 + 8]
         self.failUnless(cset in counts, cset)
         counts[cset] += 1
     self.assertEqual(sum(counts.values()), 1000)
     self.failUnless(250 > counts[coord_sets[0]] > 150,
                     counts[coord_sets[0]])
     self.failUnless(375 > counts[coord_sets[1]] > 225,
                     counts[coord_sets[1]])
     self.failUnless(600 > counts[coord_sets[2]] > 400,
                     counts[coord_sets[2]])
	def test_single_coord_set(self):
		from lepton.texturizer import SpriteTexturizer
		coord_set = (0,0, 0.5,0, 0.5,0.5, 0,0.5)
		tex = SpriteTexturizer(0, coords=[coord_set])
		self.assertEqual(tex.tex_dimension, 2)
		self.assertEqual(tex.tex_coords, (coord_set,))
		self.assertEqual(tex.weights, None)
		group = self._make_group(4)
		coords = tex.generate_tex_coords(group)
		self.failUnless(len(coords) >= len(group) * 8, (len(coords), len(group)))
		self.assertEqual(tuple(coords), coord_set * (len(coords) // 8))
		return coord_set, tex, group
	def test_default_coords(self):
		from lepton.texturizer import SpriteTexturizer
		tex = SpriteTexturizer(0)
		self.assertEqual(tex.tex_dimension, 2)
		expected = (0,0, 1,0, 1,1, 0,1)
		self.assertEqual(tex.tex_coords, None)
		self.assertEqual(tex.weights, None)
		group = self._make_group(4)
		coords = tex.generate_tex_coords(group)
		self.failUnless(len(coords) >= len(group) * 8, (len(coords), len(group)))
		self.assertEqual(tuple(coords), expected * (len(coords) // 8))
		return tex, group
	def test_coord_set_weights_deterministic(self):
		from lepton.texturizer import SpriteTexturizer
		coord_set1 = ((0.5,0.5), (1,0.5), (1,1), (0.5,1))
		coord_set2 = (0,0.5, 0.5,0.5, 0.5,1, 0,1)
		coord_set3 = (0.5,0, 1,0, 1,0.5, 0.5,0.5)
		tex = SpriteTexturizer(0, 
			coords=(coord_set1, coord_set2, coord_set3), weights=(20, 70, 10))
		coord_sets = tex.tex_coords
		group = self._make_group(20)
		coords = [tuple(tex.generate_tex_coords(group)) for i in range(20)]
		for cs in coords:
			self.assertEqual(cs, coords[0])
Exemple #6
0
 def test_single_coord_set(self):
     from lepton.texturizer import SpriteTexturizer
     coord_set = (0, 0, 0.5, 0, 0.5, 0.5, 0, 0.5)
     tex = SpriteTexturizer(0, coords=[coord_set])
     self.assertEqual(tex.tex_dimension, 2)
     self.assertEqual(tex.tex_coords, (coord_set, ))
     self.assertEqual(tex.weights, None)
     group = self._make_group(4)
     coords = tex.generate_tex_coords(group)
     self.failUnless(
         len(coords) >= len(group) * 8, (len(coords), len(group)))
     self.assertEqual(tuple(coords), coord_set * (len(coords) // 8))
     return coord_set, tex, group
Exemple #7
0
 def test_default_coords(self):
     from lepton.texturizer import SpriteTexturizer
     tex = SpriteTexturizer(0)
     self.assertEqual(tex.tex_dimension, 2)
     expected = (0, 0, 1, 0, 1, 1, 0, 1)
     self.assertEqual(tex.tex_coords, None)
     self.assertEqual(tex.weights, None)
     group = self._make_group(4)
     coords = tex.generate_tex_coords(group)
     self.failUnless(
         len(coords) >= len(group) * 8, (len(coords), len(group)))
     self.assertEqual(tuple(coords), expected * (len(coords) // 8))
     return tex, group
Exemple #8
0
 def test_coord_set_weights_deterministic(self):
     from lepton.texturizer import SpriteTexturizer
     coord_set1 = ((0.5, 0.5), (1, 0.5), (1, 1), (0.5, 1))
     coord_set2 = (0, 0.5, 0.5, 0.5, 0.5, 1, 0, 1)
     coord_set3 = (0.5, 0, 1, 0, 1, 0.5, 0.5, 0.5)
     tex = SpriteTexturizer(0,
                            coords=(coord_set1, coord_set2, coord_set3),
                            weights=(20, 70, 10))
     coord_sets = tex.tex_coords
     group = self._make_group(20)
     coords = [tuple(tex.generate_tex_coords(group)) for i in range(20)]
     for cs in coords:
         self.assertEqual(cs, coords[0])
Exemple #9
0
 def test_mutiple_coord_sets(self):
     from lepton.texturizer import SpriteTexturizer
     coord_set1 = (0.5, 0.5, 1, 0.5, 1, 1, 0.5, 1)
     coord_set2 = ((0, 0.5), (0.5, 0.5), (0.5, 1), (0, 1))
     coord_set3 = (0.5, 0, 0, 1, 0, 0, 1, 0.5, 0, 0.5, 0.5, 0)
     tex = SpriteTexturizer(0, coords=[coord_set1, coord_set2, coord_set3])
     coord_sets = tex.tex_coords
     self.assertEqual(coord_sets, ((0.5, 0.5, 1, 0.5, 1, 1, 0.5, 1),
                                   (0, 0.5, 0.5, 0.5, 0.5, 1, 0, 1),
                                   (0.5, 0, 1, 0, 1, 0.5, 0.5, 0.5)))
     self.assertEqual(tex.weights, None)
     group = self._make_group(6)
     coords = tuple(tex.generate_tex_coords(group))
     self.failUnless(
         len(coords) >= len(group) * 8, (len(coords), len(group)))
     self.assertEqual(coords[:8], coord_sets[0])
     self.assertEqual(coords[8:16], coord_sets[1])
     self.assertEqual(coords[16:24], coord_sets[2])
     self.assertEqual(coords[24:32], coord_sets[0])
     self.assertEqual(coords[32:40], coord_sets[1])
     self.assertEqual(coords[40:48], coord_sets[2])
	def test_mutiple_coord_sets(self):
		from lepton.texturizer import SpriteTexturizer
		coord_set1 = (0.5,0.5, 1,0.5, 1,1, 0.5,1)
		coord_set2 = ((0,0.5), (0.5,0.5), (0.5,1), (0,1))
		coord_set3 = (0.5,0,0, 1,0,0, 1,0.5,0, 0.5,0.5,0)
		tex = SpriteTexturizer(0, coords=[coord_set1, coord_set2, coord_set3])
		coord_sets = tex.tex_coords
		self.assertEqual(coord_sets, (
			(0.5,0.5, 1,0.5, 1,1, 0.5,1),
			(0,0.5, 0.5,0.5, 0.5,1, 0,1),
			(0.5,0, 1,0, 1,0.5, 0.5,0.5))
			)
		self.assertEqual(tex.weights, None)
		group = self._make_group(6)
		coords = tuple(tex.generate_tex_coords(group))
		self.failUnless(len(coords) >= len(group) * 8, (len(coords), len(group)))
		self.assertEqual(coords[:8], coord_sets[0])
		self.assertEqual(coords[8:16], coord_sets[1])
		self.assertEqual(coords[16:24], coord_sets[2])
		self.assertEqual(coords[24:32], coord_sets[0])
		self.assertEqual(coords[32:40], coord_sets[1])
		self.assertEqual(coords[40:48], coord_sets[2])
Exemple #11
0
    def test_aspect_adjust(self):
        from lepton.texturizer import SpriteTexturizer
        coord_set1 = (0, 0, 1, 0, 1, 0.5, 0, 0.5)
        coord_set2 = (0, 0.5, 0.5, 0.5, 0.5, 1, 0, 1)
        tex = SpriteTexturizer(0, coords=(coord_set1, coord_set2))
        self.failIf(tex.aspect_adjust_width)
        self.failIf(tex.aspect_adjust_height)
        sizes = [
            (1, 1, 0),
            (2, 3, 0),
        ]
        group = self._make_group(2)
        for size, p in zip(sizes, group):
            p.size = size
        self.assertEqual([tuple(p.size) for p in group], sizes)
        tex.generate_tex_coords(group)
        self.assertEqual([tuple(p.size) for p in group], sizes)
        tex.aspect_adjust_width = True
        expected = [
            (2, 1, 0),
            (3, 3, 0),
        ]
        tex.generate_tex_coords(group)
        for p, b in zip(group, expected):
            self.assertVector(p.size, b)

        for size, p in zip(sizes, group):
            p.size = size
        self.assertEqual([tuple(p.size) for p in group], sizes)
        tex.aspect_adjust_width = False
        tex.aspect_adjust_height = True
        expected = [
            (1, 0.5, 0),
            (2, 2, 0),
        ]
        tex.generate_tex_coords(group)
        for p, b in zip(group, expected):
            self.assertVector(p.size, b)
	def test_aspect_adjust(self):
		from lepton.texturizer import SpriteTexturizer
		coord_set1 = (0,0, 1,0, 1,0.5, 0,0.5)
		coord_set2 = (0,0.5, 0.5,0.5, 0.5,1, 0,1)
		tex = SpriteTexturizer(0, coords=(coord_set1, coord_set2))
		self.failIf(tex.aspect_adjust_width)
		self.failIf(tex.aspect_adjust_height)
		sizes = [
			(1, 1, 0),
			(2, 3, 0),
		]
		group = self._make_group(2)
		for size, p in zip(sizes, group):
			p.size = size
		self.assertEqual([tuple(p.size) for p in group], sizes)
		tex.generate_tex_coords(group)
		self.assertEqual([tuple(p.size) for p in group], sizes)
		tex.aspect_adjust_width = True
		expected = [
			(2, 1, 0),
			(3, 3, 0),
		]
		tex.generate_tex_coords(group)
		for p, b in zip(group, expected):
			self.assertVector(p.size, b)

		for size, p in zip(sizes, group):
			p.size = size
		self.assertEqual([tuple(p.size) for p in group], sizes)
		tex.aspect_adjust_width = False
		tex.aspect_adjust_height = True
		expected = [
			(1, 0.5, 0),
			(2, 2, 0),
		]
		tex.generate_tex_coords(group)
		for p, b in zip(group, expected):
			self.assertVector(p.size, b)