code: def test_samplers(bs_setup):
      """
      Test all three implementations are identical
      """
      indices = np.array(
          bs_setup.rng.randint(0, 1000, 1000), dtype=np.int64
      )
      u = bs_setup.rng.random_sample(1000)
      p = 0.1
      indices_orig = indices.copy()
  
      numba = stationary_bootstrap_sample(indices, u, p)
      indices = indices_orig.copy()
      python = stationary_bootstrap_sample_python(indices, u, p)
      indices = indices_orig.copy()
      cython = stationary_bootstrap_sample_cython(indices, u, p)
      assert_equal(numba, cython)
      assert_equal(numba, python)
  
imports: from __future__ import annotations
  import copy
  from typing import Callable, NamedTuple
  import warnings
  import numpy
  from numpy.random import RandomState
  from numpy.testing import assert_allclose, assert_equal
  import pandas
  from pandas.testing import assert_frame_equal, assert_series_equal
  import pytest
  import scipy.stats
  from arch.bootstrap import CircularBlockBootstrap, IIDBootstrap, IndependentSamplesBootstrap, MovingBlockBootstrap, StationaryBootstrap
  from arch.bootstrap._samplers_python import stationary_bootstrap_sample
  from arch.bootstrap._samplers_python import stationary_bootstrap_sample_python
  from arch.bootstrap.base import _loo_jackknife
  from arch.utility.exceptions import StudentizationError
label_desc: Use image node_id 24 for calling a global function with example usage: test_samplers(bs_setup) without return types