Example #1
0
 def test_fromFrame(self):
     p1 = Plane.fromFrame((0.,0.,0.), (-1.,0.,0.), (0.,-1.,0.))
     
     self.assertTrue(p1.origin == Point(0.,0.,0.))
     self.assertTrue(p1.xaxis == Vector(-1.,0.,0.))
     self.assertTrue(p1.yaxis == Vector(0.,-1.,0.))
     self.assertTrue(p1.zaxis == Vector(0.,0.,1.))
     
     self.assertTrue(p1.a == 0.)
     self.assertTrue(p1.b == 0.)
     self.assertTrue(p1.c == 1.)
     self.assertTrue(p1.d == 0.)
Example #2
0
    def test_imul(self):
        eq = self.assertAlmostEqual

        q1 = Quaternion.fromAngleAxis(math.radians(90.), Vector(0., 0., 1.))
        q2 = Quaternion.fromAngleAxis(math.radians(-90.), Vector(0., 0., 1.))

        q1 *= q2

        eq(q1.w, 1.)
        eq(q1.x, 0.)
        eq(q1.y, 0.)
        eq(q1.z, 0.)
Example #3
0
 def test_init_and_accessors(self):
     eq = self.almostEqual
     p = Vector(1., 2., 3.)
     eq((p.x, p.y, p.z), (1., 2., 3.))
     
     p.x, p.y, p.z = -1., -2., -3.
     eq((p.x, p.y, p.z), (-1., -2., -3.))
     
     eq(Vector(1., 2.), (1., 2., 0.))
     
     eq(Vector(), (0., 0., 0))
     
     eq(Vector((1., 2., 3.)), (1., 2., 3.))
     
     eq(Vector((1., 2.)), (1., 2., 0.))
     
     eq(Vector(()), (0., 0., 0))
Example #4
0
    def test_imap(self):
        eq = self.assertAlmostEqual

        q = Quaternion.fromAngleAxis(math.radians(90.), Vector(0., 0., 1.))

        p = q.imap((1., 0., 0.))

        eq(p[0], 0.)
        eq(p[1], -1.)
        eq(p[2], 0.)
Example #5
0
 def test_isPerpendicular(self):
     self.assertTrue(
         isPerpendicular(Vector(1., 0., 0.), Vector(0., 1., 0.)) == True)
     self.assertTrue(
         isPerpendicular(Vector(0., 1., 0.), Vector(0., 0., 1.)) == True)
     self.assertTrue(
         isPerpendicular(Vector(1., 2., 3.), Vector(1., 2., 3.)) == False)
Example #6
0
    def test_transform(self):
        eq = self.assertAlmostEqual

        q = Quaternion.fromAngleAxis(math.radians(90.), Vector(0., 0., 1.))

        a = q.map((1., 0., 0.))

        tr = q.transform
        b = tr.map((1., 0., 0.))

        eq(a[0], b[0])
        eq(a[1], b[1])
        eq(a[2], b[2])
Example #7
0
    def test_hasPlane(self):
        eq = self.assertEqual
        aeq = self.almostEqual

        e5 = Edge().createCircle(center=(0., 0., 0.),
                                 normal=(0., 0., 1.),
                                 radius=1.)
        eq(e5.hasPlane(), True)

        pnt = Point(-1., -1., -1.)
        vec = Vector(-1., -1., -1.)
        e5.hasPlane(pnt, vec)
        aeq(pnt, (0., 0., 0.))
        aeq(vec, (0., 0., 1.))
Example #8
0
    def test_init_and_accessors(self):
        eq = self.almostEqual
        p = Vector(1., 2., 3.)
        eq((p.x, p.y, p.z), (1., 2., 3.))

        p.x, p.y, p.z = -1., -2., -3.
        eq((p.x, p.y, p.z), (-1., -2., -3.))

        eq(Vector(1., 2.), (1., 2., 0.))

        eq(Vector(), (0., 0., 0))

        eq(Vector((1., 2., 3.)), (1., 2., 3.))

        eq(Vector((1., 2.)), (1., 2., 0.))

        eq(Vector(()), (0., 0., 0))
Example #9
0
 def test_cross(self):
     eq = self.almostEqual
     eq(cross(Vector(1., 2., 3.), Vector(4., 5., 6.)),
        (2. * 6. - 5. * 3., 3. * 4. - 6. * 1., 1. * 5. - 4. * 2.))
Example #10
0
 def test___getitem__(self):
     eq = self.almostEqual
     p = Vector(1., 2., 3.)
     eq((p[0], p[1], p[2]), (1., 2., 3.))
     p.x, p.y, p.z = -1., -2., -3.
     eq((p.x, p.y, p.z), (-1., -2., -3.))
Example #11
0
    def test_set(self):
        eq = self.almostEqual
        p = Vector(1., 2., 3.)
        p.set(4., 5., 6.)
        eq(p, (4., 5., 6.))

        p = Vector(1., 2., 3.)
        p.set(4., 5.)
        eq(p, (4., 5., 3.))

        p = Vector(1., 2., 3.)
        p.set(4.)
        eq(p, (4., 2., 3.))

        p = Vector(1., 2., 3.)
        p.set()
        eq(p, (1., 2., 3.))

        p = Vector(1., 2., 3.)
        p.set((4., 5., 6.))
        eq(p, (4., 5., 6.))

        p = Vector(1., 2., 3.)
        p.set((4., 5.))
        eq(p, (4., 5., 3.))

        p = Vector(1., 2., 3.)
        p.set((4., ))
        eq(p, (4., 2., 3.))

        p = Vector(1., 2., 3.)
        p.set(())
        eq(p, (1., 2., 3.))
Example #12
0
    def test_arithmeticops(self):
        eq = self.almostEqual
        # __abs__
        eq(Vector(1., 2., 3.), abs(Vector(-1., -2., -3.)))

        # __neg__
        eq(-Vector(1., 2., 3.), Vector(-1., -2., -3.))

        # __pos__
        eq(+Vector(1., 2., -3.), Vector(1., 2., -3.))

        # __add__
        eq(Vector(1., 2., 3.) + Vector(-1., -2., -3.), Vector(0., 0., 0.))

        # __iadd__
        p1 = Vector(1., 2., 3.)
        p1 += Vector(-1., -2., -3.)
        eq(p1, Vector(0., 0., 0.))

        # __sub__
        self.assertTrue(
            Vector(1., 2., 3.) - Vector(-1., -2., -3.) == Vector(2., 4., 6.))

        # __isub__
        p1 = Vector(1., 2., 3.)
        p1 -= Vector(1., 2., 3.)
        self.assertTrue(p1 == Vector(0., 0., 0.))

        # __mul__
        eq(Vector(1., 2., 3.) * 2., Vector(2.0, 4.0, 6.0))
        eq(2. * Vector(1., 2., 3.), Vector(2.0, 4.0, 6.0))

        p = Vector(1., 2., 3.)
        m = Transform().translate(3., 2., 1.)
        q = p * m
        eq(q, Vector(4., 4., 4.))

        self.assertAlmostEqual(
            Vector(1., 2., 3.) * Vector(4, 5, 6), 1. * 4. + 2. * 5. + 3. * 6.)

        # __rmul__
        eq(2. * Vector(1., 2., 3.), Vector(2.0, 4.0, 6.0))

        # __imul__
        p1 = Vector(1., 2., 3.)
        p1 *= 2.
        eq(p1, Vector(2., 4., 6.))

        # __div__
        eq(Vector(1., 2., 3.) / 2., Vector(1. / 2., 2. / 2., 3. / 2.))

        # __idiv__
        p1 = Vector(1., 2., 3.)
        p1 /= 2.
        eq(p1, Vector(1. / 2., 2. / 2., 3. / 2.))

        # __rdiv__
        eq(1. / Vector(1., 2., 3.), Vector(1. / 1., 1. / 2., 1. / 3.))
Example #13
0
 def test___getitem__(self):
     eq = self.almostEqual
     p = Vector(1., 2., 3.)
     eq((p[0], p[1], p[2]), (1., 2., 3.))
     p.x, p.y, p.z = -1., -2., -3.
     eq((p.x, p.y, p.z), (-1., -2., -3.))
Example #14
0
 def test__str__(self):
     assert str(Vector()).startswith(Vector().__class__.__name__)
Example #15
0
 def test__repr__(self):
     eq = self.almostEqual
     p = Vector(eval(repr(Vector(1, 2, 3))))
     eq((p.x, p.y, p.z), (1., 2., 3.))
Example #16
0
 def test_maximumCoordinateIndex(self):
     self.assertTrue(Vector(0., 4., 2.).maximumCoordinateIndex() == 1)
Example #17
0
 def test_isZero(self):
     self.assertTrue(Vector(0., 0., 0.).isZero())
     self.assertTrue(not Vector(1., 2., 3.).isZero())
Example #18
0
 def test_maximumCoordinate(self):
     eq = self.assertAlmostEqual
     eq(Vector(0., 4., 2.).maximumCoordinate(), 4.)
Example #19
0
 def test_dot(self):
     eq = self.assertAlmostEqual
     eq(dot(Vector(1., 2., 3.), Vector(4, 5, 6)),
        1. * 4. + 2. * 5. + 3. * 6.)
Example #20
0
 def test_unit(self):
     eq = self.assertAlmostEqual
     p = Vector(1., 2., 3.).unit()
     eq(p.x**2 + p.y**2 + p.z**2, 1.)
Example #21
0
 def test_lengthSquared(self):
     eq = self.assertAlmostEqual
     eq(Vector(1., 2., 3.).lengthSquared, 1.**2 + 2.**2 + 3.**2)
Example #22
0
 def test_length(self):
     eq = self.assertAlmostEqual
     eq(Vector(1., 2., 3.).length, sqrt(1.**2 + 2.**2 + 3.**2))
Example #23
0
 def test_isParallell(self):
     self.assertTrue(
         isParallell(Vector(1., 2., 3.), Vector(1., 2., 3.)) == True)
     self.assertTrue(
         isParallell(Vector(2., 2., 1.), Vector(1., 2., 3.)) == False)
Example #24
0
 def test_set(self):
     eq = self.almostEqual
     p = Vector(1., 2., 3.)
     p.set(4., 5., 6.)
     eq(p, (4., 5., 6.))
     
     p = Vector(1., 2., 3.)
     p.set(4., 5.)
     eq(p, (4., 5., 3.))
     
     p = Vector(1., 2., 3.)
     p.set(4.)
     eq(p, (4., 2., 3.))
     
     p = Vector(1., 2., 3.)
     p.set()
     eq(p, (1., 2., 3.))
     
     p = Vector(1., 2., 3.)
     p.set((4., 5., 6.))
     eq(p, (4., 5., 6.))
     
     p = Vector(1., 2., 3.)
     p.set((4., 5.))
     eq(p, (4., 5., 3.))
     
     p = Vector(1., 2., 3.)
     p.set((4.,))
     eq(p, (4., 2., 3.))
     
     p = Vector(1., 2., 3.)
     p.set(())
     eq(p, (1., 2., 3.))