Ejemplo n.º 1
0
    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))
Ejemplo n.º 2
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))
Ejemplo n.º 3
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))
Ejemplo n.º 4
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)