code: def _mode_dot_data(draw):
      shape_t1 = draw(helpers.get_shape(min_num_dims=2, max_num_dims=5))
      mode = draw(
          helpers.ints(min_value=0, max_value=len(shape_t1) - 1)
      )
      mode_dimsize = shape_t1[mode]
      t1_dtype, t1 = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("float"),
              shape=shape_t1,
              large_abs_safety_factor=20,
              small_abs_safety_factor=20,
              safety_factor_scale="log",
          )
      )
      t2_rows = draw(helpers.ints(min_value=1, max_value=4))
      shape_t2 = draw(
          st.sampled_from([(mode_dimsize,), (t2_rows, mode_dimsize)])
      )
      t2_dtype, t2 = draw(
          helpers.dtype_and_values(
              available_dtypes=helpers.get_dtypes("float"),
              shape=shape_t2,
              large_abs_safety_factor=20,
              small_abs_safety_factor=20,
              safety_factor_scale="log",
          )
      )
      return t1_dtype + t2_dtype, t1[0], t2[0], mode
  
imports: import math
  from hypothesis import strategies
  from hypothesis import assume
  import numpy
  import pytest
  import itertools
  import ivy_tests.test_ivy.helpers
  from ivy_tests.test_ivy.helpers import handle_test, BackendHandler
  import ivy
label_desc: Use image node_id 14 for calling a global function with example usage: _mode_dot_data(draw) and returns: unknown,  t1,  t2,  mode