code: def test_pend_grads(self):
      def pend(_np, y, _, m, g):
          theta, omega = y
          return [omega, -m * omega - g * _np.sin(theta)]
  
      y0 = [np.pi - 0.1, 0.0]
      ts = np.linspace(0.0, 1.0, 11)
      args = (0.25, 9.8)
      tol = 1e-1 if jtu.num_float_bits(np.float64) == 32 else 1e-3
  
      self.check_against_scipy(pend, y0, ts, *args, tol=tol)
  
      integrate = partial(odeint, partial(pend, jnp))
      jtu.check_grads(
          integrate,
          (y0, ts, *args),
          modes=["rev"],
          order=2,
          atol=tol,
          rtol=tol,
      )
  
imports: from functools import partial
  from absl.testing import absltest
  import numpy
  import jax
  from jax._src import test_util
  import jax.numpy
  from jax.experimental.ode import odeint
  from jax.tree_util import tree_map
  import scipy.integrate
  from jax import config
label_desc: Use image node_id 2 for calling the ODETest obj's underlying member method code with example usage: obj.test_pend_grads() and returns: list