code: def test_shuffle_on_ndim_equals_three():
      def to_tuple(A):  # to make the inner arrays hashable
          return tuple(tuple(tuple(C) for C in B) for B in A)
  
      A = np.array(
          [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
      )  # A.shape = (2,2,2)
      S = set(to_tuple(A))
      shuffle(A)  # shouldn't raise a ValueError for dim = 3
      assert set(to_tuple(A)) == S
  
imports: import string
  import timeit
  import warnings
  from copy import copy
  from itertools import chain
  import numpy
  import pytest
  from sklearn import config_context
  from sklearn.utils import _approximate_mode, _determine_key_type, _get_column_indices, _is_polars_df, _message_with_time, _print_elapsed_time, _safe_assign, _safe_indexing, _to_object_array, check_random_state, column_or_1d, deprecated, gen_even_slices, get_chunk_n_rows, is_scalar_nan, resample, safe_mask, shuffle
  from sklearn.utils._mocking import MockDataFrame
  from sklearn.utils._testing import _convert_container, assert_allclose_dense_sparse, assert_array_equal, assert_no_warnings
  from sklearn.utils.fixes import CSC_CONTAINERS, CSR_CONTAINERS
label_desc: Use image node_id 30 for calling a global function with example usage: test_shuffle_on_ndim_equals_three() and returns: tuple