code: def _array_and_shape(
      draw,
      *,
      min_num_dims=1,
      max_num_dims=3,
      min_dim_size=1,
      max_dim_size=10,
  ):
      if isinstance(min_dim_size, st._internal.SearchStrategy):
          min_dim_size = draw(min_dim_size)
      if isinstance(max_dim_size, st._internal.SearchStrategy):
          max_dim_size = draw(max_dim_size)
  
      available_dtypes = draw(helpers.get_dtypes("numeric"))
      dtype = draw(
          helpers.array_dtypes(
              num_arrays=1,
              available_dtypes=available_dtypes,
          )
      )
      dtype.append("int32")
      shape = draw(
          st.shared(
              helpers.get_shape(
                  min_num_dims=min_num_dims,
                  max_num_dims=max_num_dims,
                  min_dim_size=min_dim_size,
                  max_dim_size=max_dim_size,
              ),
              key="shape",
          )
      )
      array = draw(
          helpers.array_values(
              dtype=dtype[0],
              shape=shape,
          )
      )
      to_shape = [(None if draw(st.booleans()) else _) for _ in shape]
  
      return dtype, [array, to_shape]
  
imports: from hypothesis import strategies, given, assume
  import numpy
  import tensorflow
  import ivy
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_frontend_method, BackendHandler
  from ivy_tests.test_ivy.test_frontends.test_tensorflow.test_raw_ops import _pow_helper_shared_dtype
  from ivy.functional.frontends.tensorflow import EagerTensor
label_desc: Use image node_id 1 for calling a global function with example usage: _array_and_shape(draw) and returns: dtype,  list