code: def test_scrump_constant_subsequence_self_join(percentages):
      T = np.concatenate(
          (np.zeros(20, dtype=np.float64), np.ones(5, dtype=np.float64))
      )
  
      m = 3
      zone = int(np.ceil(m / 4))
  
      for percentage in percentages:
          seed = np.random.randint(100000)
  
          np.random.seed(seed)
          ref_P, ref_I, ref_left_I, ref_right_I = naive.scrump(
              T, m, T, percentage, zone, False, None
          )
  
          np.random.seed(seed)
          approx = scrump(
              T,
              m,
              ignore_trivial=True,
              percentage=percentage,
              pre_scrump=False,
          )
          approx.update()
          comp_P = approx.P_
          comp_I = approx.I_
          comp_left_I = approx.left_I_
          comp_right_I = approx.right_I_
  
          naive.replace_inf(ref_P)
          naive.replace_inf(comp_P)
  
          npt.assert_almost_equal(ref_P, comp_P)
          npt.assert_almost_equal(ref_I, comp_I)
          npt.assert_almost_equal(ref_left_I, comp_left_I)
          npt.assert_almost_equal(ref_right_I, comp_right_I)
  
imports: import functools
  import naive
  import numpy
  import numpy.testing
  import pytest
  from stumpy import config, scrump, stump
  from stumpy.scrump import prescrump
label_desc: Use image node_id 21 for calling a global function with example usage: test_scrump_constant_subsequence_self_join(percentages) without return types