def test_cmp(self): is_greater = lambda a, b, axes=None: self.assertEqual(pu.pcmp(a, b, axes=axes), 1) is_equal = lambda a, b, axes=None: self.assertEqual(pu.pcmp(a, b, axes=axes), 0) is_less = lambda a, b, axes=None: self.assertEqual(pu.pcmp(a, b, axes=axes), -1) is_equal((0, 0, 1), (0, 0, 1.0)) is_greater((4.001, -2.0, 1), (4, -2, 1.0)) is_greater((4, -2, 1), (4, -3, 1)) is_greater((4, -2, 1), (4, -2, -1)) is_less((4, -2, -1.1), (4, -2, -1))
def test_near(self): is_near = lambda a, b, axes=None: self.assertTrue(pu.pnear(a, b, axes=axes)) is_far = lambda a, b, axes=None: self.assertFalse(pu.pnear(a, b, axes=axes)) is_near((0, 0, 1), (0, 0, 1.0)) is_near((4.0, -2.0, 1), (4, -2, 1.0)) is_far((12, 3, -3), (12, 3, 3)) is_far((4, -2, 1), (4, -2, -1.0001)) is_near((4, -2, 1), (4, -2, -1.0001), axes=(0, 1)) is_far((4, -2, 1), (4, -2, -1.0001), axes=(1, 2)) is_far((4, -2, 1), (4, -2, -1.0001), axes=(2, ))
def test_normalized(self): norm_test = lambda vector, result: \ self.assert_vector_equal(pu.pnormalized(vector), result) norm_test((1.0, 0.0, 0.0), (1, 0, 0)) norm_test((1, 0, 0), (1, 0, 0)) norm_test((0, 1, 0), (0, 1, 0)) norm_test((0, 0, 1), (0, 0, 1)) norm_test((-1, 0, 0), (-1, 0, 0)) norm_test((0, -1, 0), (0, -1, 0)) norm_test((0, 0, -1), (0, 0, -1)) norm_test((0, -7, 0), (0, -1, 0)) norm_test((1, -1, 0), (1/ROOT_2, -1/ROOT_2, 0)) norm_test((1, 1, -1), (1/ROOT_3, 1/ROOT_3, -1/ROOT_3)) norm_test((3, -4, 2), (0.55708601453, -0.7427813527, 0.37139067635)) # normalized zero-length vector returns None self.assertIsNone(pu.pnormalized((0, 0, 0)))
def dist_test(a, b, result, axes=None): self.assertAlmostEqual(pu.pdist(a, b, axes=axes), result) self.assertAlmostEqual(pu.pdist_sq(a, b, axes=axes), result**2)
def norm_test(vector, result): self.assertAlmostEqual(pu.pnorm(vector), result) self.assertAlmostEqual(pu.pnormsq(vector), result**2)