code: def test_covar_deriv():
      ch = metric_to_Christoffel_2nd(
          TP(R2.dx, R2.dx) + TP(R2.dy, R2.dy)
      )
      cvd = BaseCovarDerivativeOp(R2_r, 0, ch)
      assert cvd(R2.x) == 1
      # This line fails if the cache is disabled:
      assert cvd(R2.x * R2.e_x) == R2.e_x
      cvd = CovarDerivativeOp(R2.x * R2.e_x, ch)
      assert cvd(R2.x) == R2.x
      assert cvd(R2.x * R2.e_x) == R2.x * R2.e_x
  
imports: from sympy.core import Lambda, Symbol, symbols
  from sympy.diffgeom.rn import R2, R2_p, R2_r, R3_r, R3_c, R3_s, R2_origin
  from sympy.diffgeom import Manifold, Patch, CoordSystem, Commutator, Differential, TensorProduct, WedgeProduct, BaseCovarDerivativeOp, CovarDerivativeOp, LieDerivative, covariant_order, contravariant_order, twoform_to_matrix, metric_to_Christoffel_1st, metric_to_Christoffel_2nd, metric_to_Riemann_components, metric_to_Ricci_components, intcurve_diffequ, intcurve_series
  from sympy.simplify import trigsimp, simplify
  from sympy.functions import sqrt, atan2, sin
  from sympy.matrices import Matrix
  from sympy.testing.pytest import raises, nocache_fail
  from sympy.testing.pytest import warns_deprecated_sympy
label_desc: Use image node_id 10 for calling a global function with example usage: test_covar_deriv() without return types