Example #1
0
 def testArithmetic(self):
     v = Vector3d(1, 2, 3)
     m = Matrix3d(1, -1, 0, 1, 1, 0, 0, 0, 1)
     n = Matrix3d(1, 1, 0, -1, 1, 0, 0, 0, 1)
     self.assertEqual(n * (m * v), Vector3d(2, 4, 3))
     self.assertEqual(m + m, m * Matrix3d(2))
     self.assertEqual(m, m * Matrix3d(2) - m)
Example #2
0
 def testInner(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 8, 9)
     i = Matrix3d(1)
     self.assertEqual(m.inner(i), i.inner(m))
     self.assertEqual(m.inner(i), 15.0)
Example #3
0
 def testInverse(self):
     m = Matrix3d(4, 4, 4, -1, 1, 0, 1, -1, -1)
     n = Matrix3d(0.125, 0, 0.5, 0.125, 1, 0.5, 0, -1, -1)
     i = m.inverse()
     self.assertEqual(i, n)
     self.assertEqual(i.inverse(), m)
     self.assertEqual(i * m, Matrix3d(1))
     self.assertEqual(m * i, Matrix3d(1))
Example #4
0
 def testTranspose(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 8, 9)
     n = Matrix3d(1, 4, 7,
                  2, 5, 8,
                  3, 6, 9)
     self.assertEqual(m.transpose(), n)
     self.assertEqual(m.transpose().transpose(), m)
Example #5
0
 def testAccess(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 8, 9)
     self.assertEqual(len(m), 3)
     self.assertEqual(m[0], Vector3d(1, 2, 3))
     self.assertEqual(m[1], Vector3d(4, 5, 6))
     self.assertEqual(m[2], Vector3d(7, 8, 9))
     self.assertEqual(m[0], m.getRow(0))
     self.assertEqual(m[1], m.getRow(1))
     self.assertEqual(m[2], m.getRow(2))
     n = m.transpose()
     self.assertEqual(m.getColumn(0), n[0])
     self.assertEqual(m.getColumn(1), n[1])
     self.assertEqual(m.getColumn(2), n[2])
     for r in range(3):
         for c in range(3):
             self.assertEqual(m[r, c], r*3 + c + 1)
     for i in (-4, 3):
         with self.assertRaises(IndexError):
             m.getRow(i)
         with self.assertRaises(IndexError):
             m.getColumn(i)
     for i in [-4, 3, (-4, 1), (3, 1), (1, -4), (1, 3)]:
         with self.assertRaises(IndexError):
             m[i]
Example #6
0
 def testIter(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 8, 9)
     r = 0
     for row in m:
         self.assertEqual(row, Vector3d(*range(r*3 + 1, r*3 + 4)))
         r += 1
Example #7
0
 def testString(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 8, 9)
     self.assertEqual(str(m), '[[1.0, 2.0, 3.0],\n'
                              ' [4.0, 5.0, 6.0],\n'
                              ' [7.0, 8.0, 9.0]]')
     self.assertEqual(repr(m), 'Matrix3d(1.0, 2.0, 3.0,\n'
                               '         4.0, 5.0, 6.0,\n'
                               '         7.0, 8.0, 9.0)')
     self.assertEqual(m, eval(repr(m), dict(Matrix3d=Matrix3d)))
Example #8
0
 def testNorm(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 0, 2)
     self.assertEqual(m.getSquaredNorm(), 144.0)
     self.assertEqual(m.getNorm(), 12.0)
Example #9
0
 def testComparison(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 8, 9)
     self.assertEqual(m, m)
     self.assertNotEqual(m, Matrix3d(2))
Example #10
0
 def testConstruction(self):
     self.assertEqual(Matrix3d().getSquaredNorm(), 0)
     self.assertEqual(Matrix3d(1, 0, 0,
                               0, 1, 0,
                               0, 0, 1),
                      Matrix3d(1))
Example #11
0
 def testPickle(self):
     m = Matrix3d(1, 2, 3,
                  4, 5, 6,
                  7, 8, 9)
     n = pickle.loads(pickle.dumps(m))
     self.assertEqual(m, n)
Example #12
0
 def testCwiseProduct(self):
     m = Matrix3d(1, 2, 3,
                  4, 1, 6,
                  7, 8, 1)
     self.assertEqual(m.cwiseProduct(Matrix3d(2)), Matrix3d(2))