code: def _check_axes(self, op, xp):
      x = xp.asarray(random((30, 20, 10)))
      axes = [
          (0, 1, 2),
          (0, 2, 1),
          (1, 0, 2),
          (1, 2, 0),
          (2, 0, 1),
          (2, 1, 0),
      ]
      xp_test = array_namespace(x)
      for a in axes:
          op_tr = op(xp_test.permute_dims(x, axes=a))
          tr_op = xp_test.permute_dims(op(x, axes=a), axes=a)
          xp_assert_close(op_tr, tr_op)
  
imports: import queue
  import threading
  import multiprocessing
  import numpy
  import pytest
  from numpy.random import random
  from numpy.testing import assert_array_almost_equal, assert_allclose
  from pytest import raises
  import scipy.fft
  from scipy.conftest import array_api_compatible, skip_if_array_api_backend
  from scipy._lib._array_api import array_namespace, size, xp_assert_close, xp_assert_equal
label_desc: Use image node_id 20 for calling the TestFFT1D obj's underlying member method code with example usage: obj._check_axes(op, xp) without return types