コード例 #1
0
 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))
コード例 #2
0
ファイル: test_vector.py プロジェクト: OEP/pyfx
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)
コード例 #3
0
 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))
コード例 #4
0
 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))
コード例 #5
0
 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))
コード例 #6
0
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)
コード例 #7
0
ファイル: test_matrix.py プロジェクト: TANG-Kai/pyfx
  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)
コード例 #8
0
ファイル: test_vector.py プロジェクト: OEP/pyfx
  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)
コード例 #9
0
 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))
コード例 #10
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)
コード例 #11
0
    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)
コード例 #12
0
ファイル: test_vector.py プロジェクト: OEP/pyfx
  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)
コード例 #13
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)
コード例 #14
0
    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)
コード例 #15
0
    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)
コード例 #16
0
 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)))