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 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
#!/usr/bin/env python
import unittest
from Box2D import (b2Vec2, b2Vec3)
class testVector (unittest.TestCase):
def test_vec2_zero(self):
v2 = b2Vec2()
self.assertAlmostEqual(v2.x, 0.0)
self.assertAlmostEqual(v2.y, 0.0)
def test_vec2(self):
x, y = 1.0, 2.0
v = b2Vec2(x, y)
v += (0.1, 0.1)
self.assertAlmostEqual(v.x, x + 0.1, places=2)
self.assertAlmostEqual(v.y, y + 0.1, places=2)
v -= (0.1, 0.1)
self.assertAlmostEqual(v.x, x, places=2)
self.assertAlmostEqual(v.y, y, places=2)
v = b2Vec2(x, y)
v /= 2.0
self.assertAlmostEqual(v.x, x / 2.0)
self.assertAlmostEqual(v.y, y / 2.0)
v *= 2.0
self.assertAlmostEqual(v.x, x)
self.assertAlmostEqual(v.y, y)
v2 = b2Vec2(x, y)
v = v2 + v2
self.assertAlmostEqual(v.x, x * 2)
self.assertAlmostEqual(v.y, y * 2)
v = v2 - v2
self.assertAlmostEqual(v.x, 0)
self.assertAlmostEqual(v.y, 0)
v = v2 / 2.0
self.assertAlmostEqual(v.x, x / 2)
self.assertAlmostEqual(v.y, y / 2)
v = v2 * 2.0
self.assertAlmostEqual(v.x, x * 2)
self.assertAlmostEqual(v.y, y * 2)
v = 0.5 * v2
self.assertAlmostEqual(v.x, x * 0.5)
self.assertAlmostEqual(v.y, y * 0.5)
v = 2.0 * v2
self.assertAlmostEqual(v.x, x * 2)
self.assertAlmostEqual(v.y, y * 2)
def test_vec3_zero(self):
v3 = b2Vec3()
self.assertAlmostEqual(v3.x, 0.0)
self.assertAlmostEqual(v3.y, 0.0)
self.assertAlmostEqual(v3.z, 0.0)
def test_vec3(self):
x, y, z = 1.0, 2.0, 3.0
v3 = b2Vec3(x, y, z)
v = v3 + v3
self.assertAlmostEqual(v.x, x * 2)
self.assertAlmostEqual(v.y, y * 2)
self.assertAlmostEqual(v.z, z * 2)
v = v3 - v3
self.assertAlmostEqual(v.x, 0)
self.assertAlmostEqual(v.y, 0)
self.assertAlmostEqual(v.z, 0)
v = v3 / 2.0
self.assertAlmostEqual(v.x, x / 2)
self.assertAlmostEqual(v.y, y / 2)
self.assertAlmostEqual(v.z, z / 2)
v = v3 * 2.0
self.assertAlmostEqual(v.x, x * 2)
self.assertAlmostEqual(v.y, y * 2)
self.assertAlmostEqual(v.z, z * 2)
v = 0.5 * v3
self.assertAlmostEqual(v.x, x * 0.5)
self.assertAlmostEqual(v.y, y * 0.5)
self.assertAlmostEqual(v.z, z * 0.5)
v = 2.0 * v3
self.assertAlmostEqual(v.x, x * 2)
self.assertAlmostEqual(v.y, y * 2)
self.assertAlmostEqual(v.z, z * 2)
v = b2Vec3(x, y, z)
v += (0.1, 0.1, 0.1)
self.assertAlmostEqual(v.x, x + 0.1, places=2)
self.assertAlmostEqual(v.y, y + 0.1, places=2)
self.assertAlmostEqual(v.z, z + 0.1, places=2)
v -= (0.1, 0.1, 0.1)
self.assertAlmostEqual(v.x, x, places=2)
self.assertAlmostEqual(v.y, y, places=2)
self.assertAlmostEqual(v.z, z, places=2)
v /= 1
self.assertAlmostEqual(v.x, x, places=2)
self.assertAlmostEqual(v.y, y, places=2)
self.assertAlmostEqual(v.z, z, places=2)
v *= 1
self.assertAlmostEqual(v.x, x, places=2)
self.assertAlmostEqual(v.y, y, places=2)
self.assertAlmostEqual(v.z, z, places=2)
if __name__ == '__main__':
unittest.main()
|