code: def get_bounds(draw, *, dtype):
      """Draws two numbers; low and high, for a given data type such that low <
      high.
  
      Parameters
      ----------
      draw
          special function that draws data randomly (but is reproducible) from a given
          data-set (ex. list).
      dtype
          data type.
  
      Returns
      -------
          A strategy that draws a list of two numbers.
      """
      if "int" in dtype:
          values = draw(
              array_helpers.array_values(dtype=dtype, shape=2)
          )
          values[0], values[1] = abs(values[0]), abs(values[1])
          low, high = min(values), max(values)
          if low == high:
              return draw(get_bounds(dtype=dtype))
      else:
          none_or_float = number_helpers.floats(dtype=dtype) | st.none()
          values = draw(
              array_helpers.list_of_size(x=none_or_float, size=2)
          )
          if values[0] is not None and values[1] is not None:
              low, high = min(values), max(values)
          else:
              low, high = values[0], values[1]
          if ivy.default(low, 0.0) >= ivy.default(high, 1.0):
              return draw(get_bounds(dtype=dtype))
      return [low, high]
  
imports: from hypothesis import assume, strategies
  from typing import Tuple
  from functools import lru_cache
  import math
  import numpy
  import ivy
  from .None import array_helpers, number_helpers, dtype_helpers
  from ..pipeline_helper import WithBackendContext
  from ivy.functional.ivy.layers import _deconv_length
  from ..globals import mod_backend
label_desc: Use image node_id 11 for calling a global function with example usage: get_bounds(draw) and returns: list, draw, draw