def test_sta_cayley_tensor_scalar_scalar_scalar(self): cayley, cayley_inner, cayley_outer = get_cayley_tensor( sta_metric, sta_bases, sta_blades) # Scalar * Scalar -> Scalar self.assertEqual(cayley[0, 0, 0], 1) self.assertTrue(np.all(cayley[0, 0, 1:] == 0))
def test_sta_cayley_tensor_e12_e23_me13(self): cayley, cayley_inner, cayley_outer = get_cayley_tensor( sta_metric, sta_bases, sta_blades) # e12 * e23 -> -e13 e12_index = sta_blades.index("12") e23_index = sta_blades.index("23") e13_index = sta_blades.index("13") self.assertEqual(cayley[e12_index, e23_index, e13_index], -1) self.assertTrue(np.all(cayley[e12_index, e23_index, :e13_index] == 0)) self.assertTrue( np.all(cayley[e12_index, e23_index, e13_index + 1:] == 0))
def test_sta_cayley_tensor_e01_e23_e0123(self): cayley, cayley_inner, cayley_outer = get_cayley_tensor( sta_metric, sta_bases, sta_blades) # e01 * e23 -> e0123 e01_index = sta_blades.index("01") e23_index = sta_blades.index("23") e0123_index = sta_blades.index("0123") self.assertEqual(cayley[e01_index, e23_index, e0123_index], 1) self.assertTrue(np.all(cayley[e01_index, e23_index, :e0123_index] == 0)) self.assertTrue( np.all(cayley[e01_index, e23_index, e0123_index + 1:] == 0))
def test_cayley_tensor_correct(self): cayley, cayley_inner, cayley_outer = get_cayley_tensor(dual_metric, dual_bases, dual_blades) self.assertSequenceEqual(cayley.shape, [2, 2, 2]) # Scalar * Scalar -> Scalar self.assertEqual(cayley[0, 0, 0], 1) self.assertEqual(cayley[0, 0, 1], 0) # Scalar * Dual -> Dual self.assertEqual(cayley[0, 1, 0], 0) self.assertEqual(cayley[0, 1, 1], 1) # Dual * Scalar -> Dual self.assertEqual(cayley[1, 0, 0], 0) self.assertEqual(cayley[1, 0, 1], 1) # Dual * Dual -> Zero self.assertEqual(cayley[1, 1, 0], 0) self.assertEqual(cayley[1, 1, 1], 0)