File: test_color.py

package info (click to toggle)
python-box2d 2.3.2~dfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 3,596 kB
  • ctags: 5,116
  • sloc: python: 14,384; cpp: 13,393; makefile: 9
file content (54 lines) | stat: -rw-r--r-- 1,872 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import unittest
from Box2D import b2Color

class testColor (unittest.TestCase):
    def checkAlmostEqual(self, v1, v2, msg, places=3):
        for i, (a, b) in enumerate(zip(v1, v2)):
            self.assertAlmostEqual(a, b, places=places, 
                    msg="(index %d) %s, a=%f b=%f from %s, %s" % (i, msg, a, b, v1, v2))

    def test_color(self):
        x, y, z = 1.0, 2.0, 3.0
        c1 = b2Color(x, y, z)
        c2 = b2Color(z, y, x)

        c = c1 + c2
        self.checkAlmostEqual(c, (x+z, y+y, z+x), msg='b2Color +')
        c = c1 - c2
        self.checkAlmostEqual(c, (x-z, y-y, z-x), msg='b2Color -')
        c = 2.0 * c1
        self.checkAlmostEqual(c, (x+x, y+y, z+z), msg='float * b2Color')
        c = c1 * 2.0
        self.checkAlmostEqual(c, (x+x, y+y, z+z), msg='b2Color * float')
        c = c1 / 2.0
        self.checkAlmostEqual(c, (x/2.0, y/2.0, z/2.0), msg='b2Color / float')

        c = c1.copy()
        c *= 2.0
        self.checkAlmostEqual(c, (x+x, y+y, z+z), msg='b2Color *= float')
        c = b2Color(c1)
        c /= 2.0
        self.checkAlmostEqual(c, (x/2.0, y/2.0, z/2.0), msg='b2Color /= float')
        c1 += (1.0, 1.0, 1.0)
        self.checkAlmostEqual(c1, (x+1, y+1, z+1), msg='b2Color +=')
        c1 -= (1.0, 1.0, 1.0)
        self.checkAlmostEqual(c1, (x, y, z), msg='b2Color -=')

        bytes=b2Color(1, 1, 1).bytes
        self.assertEqual(bytes, [255,255,255], msg='bytes (1,1,1)=>%s'%bytes)
        bytes=b2Color(0, 0, 0).bytes
        self.assertEqual(bytes, [0,0,0], msg='bytes (1,1,1)=>%s'%bytes)

        self.assertEqual(c1[0], x)
        self.assertEqual(c1[1], y)
        self.assertEqual(c1[2], z)

        c1.list = (x*2, y*2, z*2)
        self.checkAlmostEqual(c1, (x+x, y+y, z+z), msg='b2Color.list')

if __name__ == '__main__':
    unittest.main()