def test_norm(self): r = randomElements() q1 = Quaternion(*r) q2 = Quaternion.random() self.assertEqual(q1.norm(), np.linalg.norm(np.array(r))) self.assertEqual(q1.magnitude(), np.linalg.norm(np.array(r))) # Multiplicative norm self.assertAlmostEqual((q1 * q2).norm(), q1.norm() * q2.norm(), ALMOST_EQUAL_TOLERANCE) # Scaled norm for s in [30.0, 0.3, -2, -4.7]: self.assertAlmostEqual((q1 * s).norm(), q1.norm() * abs(s), ALMOST_EQUAL_TOLERANCE)