code: def _x_and_fft2(draw):
      min_fft2_points = 2
      dtype = draw(helpers.get_dtypes("float_and_complex", full=False))
      x_dim = draw(
          helpers.get_shape(
              min_dim_size=2,
              max_dim_size=100,
              min_num_dims=2,
              max_num_dims=4,
          )
      )
      x = draw(
          helpers.array_values(
              dtype=dtype[0],
              shape=tuple(x_dim),
              min_value=-1e5,
              max_value=1e5,
              allow_inf=False,
              large_abs_safety_factor=2.5,
              small_abs_safety_factor=2.5,
              safety_factor_scale="log",
          )
      )
      s = (
          draw(st.integers(min_fft2_points, 256)),
          draw(st.integers(min_fft2_points, 256)),
      )
      dim = draw(st.sampled_from([(0, 1), (-1, -2), (1, 0)]))
      norm = draw(st.sampled_from(["backward", "forward", "ortho"]))
      return dtype, x, s, dim, norm
  
imports: import numpy
  import torch
  from hypothesis import strategies, assume
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test, BackendHandler
label_desc: Use image node_id 8 for calling a global function with example usage: _x_and_fft2(draw) and returns: dtype,  x,  s,  dim,  norm