class_docstr: Tests for LAX-backed scipy.stats implementations
code: def testFFTConvolution(self, xshape, yshape, dtype, mode, pass_axes):
      if pass_axes:
          # unspecified axes effectively act as batch dimensions, so their shape
          # must be equal
          axes = (
              tuple(
                  i
                  for i in range(len(xshape))
                  if xshape[i] != yshape[i]
              )
              or 0
          )
      else:
          axes = None
      rng = jtu.rand_default(self.rng())
      args_maker = lambda: [rng(xshape, dtype), rng(yshape, dtype)]
      osp_fun = partial(osp_signal.fftconvolve, mode=mode, axes=axes)
      jsp_fun = partial(jsp_signal.fftconvolve, mode=mode, axes=axes)
      tol = {
          np.float16: 1e-2,
          np.float32: 1e-2,
          np.float64: 1e-6,
          np.complex64: 1e-2,
          np.complex128: 1e-6,
      }
      self._CheckAgainstNumpy(
          osp_fun, jsp_fun, args_maker, check_dtypes=False, tol=tol
      )
      self._CompileAndCheck(jsp_fun, args_maker, tol=tol)
  
imports: from functools import partial
  import unittest
  from absl.testing import absltest
  import numpy
  import scipy.signal
  from jax import lax
  import jax.numpy
  from jax._src import dtypes
  from jax._src import test_util
  import jax.scipy.signal
  from jax import config
label_desc: Use image node_id 2 for calling the LaxBackedScipySignalTests obj's underlying member method code with example usage: obj.testFFTConvolution(xshape, yshape, dtype, mode, pass_axes) without return types