def test_vector_damp(self): damp1 = (self.v1 / self.f2) damp2 = (self.v2 / self.f2) damp3 = (self.v3 / self.f2) self.assertVectorClose(damp1.eval(self.t1), Vector(0.5, 0, 0)) self.assertVectorClose(damp2.eval(self.t1), Vector(0, 0.5, 0)) self.assertVectorClose(damp3.eval(self.t1), Vector(0, 0, 0.5))
class TestVector(vrendtest.VrendTestCase): def setUp(self): self.ones = Vector(1, 1, 1) self.zeros = Vector(0, 0, 0) self.tricky = Vector(1,2,3) self.x = Vector(1, 0, 0) self.y = Vector(0, 1, 0) self.z = Vector(0, 0, 1) def test_add(self): a = self.zeros + self.ones b = self.x + self.y + self.z self.assertTrue(a.equals(self.ones)) self.assertTrue(b.equals(self.ones)) def test_subtract(self): a = self.tricky - self.ones b = self.zeros - self.ones self.assertTrue(a.equals(Vector(0,1,2))) self.assertTrue(b.equals(Vector(-1,-1,-1))) def test_rotate(self): xx = self.y.rotate(self.z, math.pi / 2) yy = self.x.rotate(self.z, -math.pi / 2) zz = self.y.rotate(self.x, -math.pi / 2) self.assertVectorClose(xx, self.x) self.assertVectorClose(yy, self.y) self.assertVectorClose(zz, self.z) def test_dot(self): self.assertEqual(self.tricky * self.ones, 6) self.assertEqual(self.tricky * self.zeros, 0) def test_cross(self): xx = self.y ^ self.z yy = self.z ^ self.x zz = self.x ^ self.y self.assertTrue(xx.equals(self.x)) self.assertTrue(yy.equals(self.y)) self.assertTrue(zz.equals(self.z)) def test_normalize(self): tricky = Vector(self.tricky) ones = Vector(self.ones) trickyMag = tricky.length() onesMag = ones.length() tricky.normalize() ones.normalize() self.assertClose(tricky.length(), 1.0) self.assertClose(ones.length(), 1.0) self.assertVectorClose(tricky * trickyMag, self.tricky) self.assertVectorClose(ones * onesMag, self.ones)
def test_vector_amplify(self): amp1 = (self.v1 * self.f2) amp2 = (self.v2 * self.f2) amp3 = (self.v3 * self.f2) self.assertVectorClose(amp1.eval(self.t1), Vector(2, 0, 0)) self.assertVectorClose(amp2.eval(self.t1), Vector(0, 2, 0)) self.assertVectorClose(amp3.eval(self.t1), Vector(0, 0, 2))
def test_vector_difference(self): diff1 = (self.v1 - self.v2) diff2 = (self.v2 - self.v3) diff3 = (self.v1 - self.v3) self.assertVectorClose(diff1.eval(self.t1), Vector(1, -1, 0)) self.assertVectorClose(diff2.eval(self.t1), Vector(0, 1, -1)) self.assertVectorClose(diff3.eval(self.t1), Vector(1, 0, -1))
def test_vector_sum(self): sum1 = (self.v1 + self.v2) sum2 = (self.v2 + self.v3) sum3 = (self.v1 + self.v3) self.assertVectorClose(sum1.eval(self.t1), Vector(1, 1, 0)) self.assertVectorClose(sum2.eval(self.t1), Vector(0, 1, 1)) self.assertVectorClose(sum3.eval(self.t1), Vector(1, 0, 1))
class TestVector(vrendtest.VrendTestCase): def setUp(self): self.ones = Vector(1, 1, 1) self.zeros = Vector(0, 0, 0) self.tricky = Vector(1, 2, 3) self.x = Vector(1, 0, 0) self.y = Vector(0, 1, 0) self.z = Vector(0, 0, 1) def test_add(self): a = self.zeros + self.ones b = self.x + self.y + self.z self.assertTrue(a.equals(self.ones)) self.assertTrue(b.equals(self.ones)) def test_subtract(self): a = self.tricky - self.ones b = self.zeros - self.ones self.assertTrue(a.equals(Vector(0, 1, 2))) self.assertTrue(b.equals(Vector(-1, -1, -1))) def test_rotate(self): xx = self.y.rotate(self.z, math.pi / 2) yy = self.x.rotate(self.z, -math.pi / 2) zz = self.y.rotate(self.x, -math.pi / 2) self.assertVectorClose(xx, self.x) self.assertVectorClose(yy, self.y) self.assertVectorClose(zz, self.z) def test_dot(self): self.assertEqual(self.tricky * self.ones, 6) self.assertEqual(self.tricky * self.zeros, 0) def test_cross(self): xx = self.y ^ self.z yy = self.z ^ self.x zz = self.x ^ self.y self.assertTrue(xx.equals(self.x)) self.assertTrue(yy.equals(self.y)) self.assertTrue(zz.equals(self.z)) def test_normalize(self): tricky = Vector(self.tricky) ones = Vector(self.ones) trickyMag = tricky.length() onesMag = ones.length() tricky.normalize() ones.normalize() self.assertClose(tricky.length(), 1.0) self.assertClose(ones.length(), 1.0) self.assertVectorClose(tricky * trickyMag, self.tricky) self.assertVectorClose(ones * onesMag, self.ones)
def setUp(self): self.a = Matrix(1,2,3,4,5,6,7,8,9) self.b = Matrix(1,1,1,1,1,1,1,1,1) self.c = Matrix(1,1,1,2,3,2,3,2,1) self.invc = Matrix(0.5, -0.5, 0.5, -2, 1, 0, 2.5, -0.5, -0.5) self.eye = Matrix.EYE self.ones = Vector(1, 1, 1) self.zeros = Vector(0, 0, 0)
def setUp(self): self.ones = Vector(1, 1, 1) self.zeros = Vector(0, 0, 0) self.tricky = Vector(1,2,3) self.x = Vector(1, 0, 0) self.y = Vector(0, 1, 0) self.z = Vector(0, 0, 1)
def test_scalar_product(self): p1 = self.f0 * self.f1 p2 = self.f1 * self.f0 p3 = self.f2 * self.f3 self.assertEqual(p1.eval(self.t1), 0) self.assertEqual(p2.eval(self.t1), 0) self.assertEqual(p3.eval(self.t1), 6) self.assertVectorClose(p1.grad(self.t1), Vector(0, 0, 0)) self.assertVectorClose(p2.grad(self.t1), Vector(0, 0, 0)) self.assertVectorClose(p3.grad(self.t1), Vector(0, 0, 0))
def setUp(self): self.v1 = atomize(Vector(1, 0, 0), const=True) self.v2 = atomize(Vector(0, 1, 0), const=True) self.v3 = atomize(Vector(0, 0, 1), const=True) self.f0 = atomize(0, const=True) self.f1 = atomize(1, const=True) self.f2 = atomize(2, const=True) self.f3 = atomize(3, const=True) self.t1 = Vector(0, 0, 0) self.t2 = Vector(1, 1, 1)
def test_gridspace(self): llc = self.unit.llc() res = self.unit.length() / 20 lower = Vector(0, 0, 0) upper = Vector(1, 1, 1) for k in range(20): for j in range(20): for i in range(20): dv = Vector(i * res.x(), j * res.y(), k * res.z()) p = llc + dv result = self.unit.gridSpace(p) self.assertVectorBetween(result, upper, lower)
def test_normalize(self): tricky = Vector(self.tricky) ones = Vector(self.ones) trickyMag = tricky.length() onesMag = ones.length() tricky.normalize() ones.normalize() self.assertClose(tricky.length(), 1.0) self.assertClose(ones.length(), 1.0) self.assertVectorClose(tricky * trickyMag, self.tricky) self.assertVectorClose(ones * onesMag, self.ones)
def setUp(self): self.ones = Vector(1, 1, 1) self.zeros = Vector(0, 0, 0) self.tricky = Vector(1, 2, 3) self.x = Vector(1, 0, 0) self.y = Vector(0, 1, 0) self.z = Vector(0, 0, 1)
def test_worldspace(self): llc = self.unit.llc() urc = self.unit.urc() for k in range(21): for j in range(21): for i in range(21): ijk = (x / float(20) for x in (i, j, k)) gp = Vector(*ijk) p = self.unit.worldSpace(gp) self.assertVectorBetween(p, urc, llc)
def test_subtract(self): a = self.tricky - self.ones b = self.zeros - self.ones self.assertTrue(a.equals(Vector(0, 1, 2))) self.assertTrue(b.equals(Vector(-1, -1, -1)))