def test_example_6(self): Parser.continue_parsing(True) parse(r""" % define basis [t, r, \theta, \phi]; \begin{align} R^\alpha{}_{\beta\mu\nu} &= \partial_\mu \Gamma^\alpha_{\beta\nu} - \partial_\nu \Gamma^\alpha_{\beta\mu} + \Gamma^\alpha_{\mu\gamma}\Gamma^\gamma_{\beta\nu} - \Gamma^\alpha_{\nu\sigma}\Gamma^\sigma_{\beta\mu} \\ R^{\alpha\beta\mu\nu} &= g^{\beta a} g^{\mu b} g^{\nu c} R^\alpha_{a b c} \\ R_{\alpha\beta\mu\nu} &= g_{\alpha a} R^a_{\beta\mu\nu} \\ K &= R^{\alpha\beta\mu\nu} R_{\alpha\beta\mu\nu} \\ R_{\beta\nu} &= R^\alpha_{\beta\alpha\nu} \\ R &= g^{\beta\nu} R_{\beta\nu} \\ G_{\beta\nu} &= R_{\beta\nu} - \frac{1}{2}g_{\beta\nu}R \end{align} """) self.assertEqual(0, simplify(GammaUDD[0][0][1] - GammaUDD[0][1][0])) self.assertEqual(str(GammaUDD[0][0][1]), '-G*M/(r**2*(2*G*M/r - 1))') self.assertEqual(str(GammaUDD[1][0][0]), 'G*M*(-2*G*M/r + 1)/r**2') self.assertEqual(str(GammaUDD[1][1][1]), '-G*M/(r**2*(-2*G*M/r + 1))') self.assertEqual(str(GammaUDD[1][3][3]), '-r*(-2*G*M/r + 1)*sin(theta)**2') self.assertEqual(0, simplify(GammaUDD[2][1][2] - GammaUDD[2][2][1])) self.assertEqual(str(GammaUDD[2][1][2]), '1/r') self.assertEqual(str(GammaUDD[2][3][3]), '-sin(theta)*cos(theta)') self.assertEqual(0, simplify(GammaUDD[2][1][3] - GammaUDD[2][3][1])) self.assertEqual(str(GammaUDD[3][1][3]), '1/r') self.assertEqual(0, simplify(GammaUDD[3][2][3] - GammaUDD[3][3][2])) self.assertEqual(str(GammaUDD[3][2][3]), 'cos(theta)/sin(theta)') self.assertEqual(str(simplify(K)), '48*G**2*M**2/r**6') self.assertEqual(simplify(R), 0) self.assertEqual( True, all(component == 0 for component in (row for row in simplify(Matrix(GDD)))))
def setUp(self): self.maxDiff = None Parser.continue_parsing(False) Parser.ignore_override()