code: def test_forward_fft(self, dtype):
      t = dtype
      idtype = odtype = edtype = cupy.dtype(t)
      shape = self.shape
      length = cupy._core.internal.prod(shape[1:])
  
      a = testing.shaped_random(shape, cupy, dtype)
      out = cupy.empty_like(a)
  
      plan = cufft.XtPlanNd(
          shape[1:],
          shape[1:],
          1,
          length,
          idtype,
          shape[1:],
          1,
          length,
          odtype,
          shape[0],
          edtype,
          order="C",
          last_axis=-1,
          last_size=None,
      )
      plan.fft(a, out, cufft.CUFFT_FORWARD)
  
      if len(shape) <= 2:
          out_cp = cupy.fft.fft(a)
      else:
          out_cp = cupy.fft.fftn(a, axes=(-1, -2))
      testing.assert_allclose(out, out_cp)
  
imports: import pickle
  import unittest
  import numpy
  import pytest
  import cupy
  from cupy import testing
  from cupy.cuda import cufft
  from cupy.fft import config
  from cupy.fft._fft import _convert_fft_type
  from ..fft_tests.test_fft import multi_gpu_config, _skip_multi_gpu_bug
label_desc: Use image node_id 1 for calling the TestXtPlanNd obj's underlying member method code with example usage: obj.test_forward_fft(dtype) without return types