code: def test_dropout(
      *,
      data,
      test_flags,
      backend_fw,
      fn_name,
      on_device,
  ):
      (
          (x_dtype, x),
          noise_shape,
          seed,
          dtype,
          prob,
          scale,
          training,
      ) = data
      if not training or prob == 0:
          helpers.test_function(
              input_dtypes=x_dtype,
              test_flags=test_flags,
              backend_to_test=backend_fw,
              fn_name=fn_name,
              on_device=on_device,
              x=x[0],
              prob=prob,
              scale=scale,
              noise_shape=noise_shape,
              dtype=dtype[0],
              training=training,
              seed=seed,
          )
      else:
          ret, gt_ret = helpers.test_function(
              input_dtypes=x_dtype,
              test_flags=test_flags,
              backend_to_test=backend_fw,
              fn_name=fn_name,
              on_device=on_device,
              test_values=False,
              x=x[0],
              prob=prob,
              scale=scale,
              noise_shape=noise_shape,
              dtype=dtype[0],
              training=training,
              seed=seed,
          )
          ret = helpers.flatten_and_to_np(ret=ret, backend=backend_fw)
          gt_ret = helpers.flatten_and_to_np(
              ret=gt_ret, backend=test_flags.ground_truth_backend
          )
          for u, v, w in zip(ret, gt_ret, x):
              # cardinality test
              assert u.shape == v.shape == w.shape
  
imports: from hypothesis import strategies, assume
  import ivy
  import numpy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test
  from ivy.functional.ivy.layers import _deconv_length, _pack_padded_sequence
label_desc: Use image node_id 24 for calling a global function with example usage: test_dropout() without return types