code: def test_axes_subset_with_shape(self, op):
      x = random((16, 8, 4))
      axes = [(0, 1, 2), (0, 2, 1), (1, 2, 0)]
      for a in axes:
          # different shape on the first two axes
          shape = tuple(
              [
                  2 * x.shape[ax] if ax in a[:2] else x.shape[ax]
                  for ax in range(x.ndim)
              ]
          )
          # transform only the first two axes
          op_tr = op(np.transpose(x, a), s=shape[:2], axes=(0, 1))
          tr_op = np.transpose(op(x, s=shape[:2], axes=a[:2]), a)
          assert_array_almost_equal(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_array_equal, assert_allclose
  from pytest import raises
  import scipy.fft
label_desc: Use image node_id 21 for calling the TestFFT1D obj's underlying member method code with example usage: obj.test_axes_subset_with_shape(op) without return types