code: def test_scraamp_self_join_KNN(T_A, T_B, percentages):
      m = 3
      zone = int(np.ceil(m / 4))
  
      for k in range(2, 4):
          for p in [1.0, 2.0, 3.0]:
              for percentage in percentages:
                  seed = np.random.randint(100000)
  
                  np.random.seed(seed)
                  ref_P, ref_I, ref_left_I, ref_right_I = naive.scraamp(
                      T_B,
                      m,
                      T_B,
                      percentage,
                      zone,
                      False,
                      None,
                      p=p,
                      k=k,
                  )
  
                  np.random.seed(seed)
                  approx = scraamp(
                      T_B,
                      m,
                      ignore_trivial=True,
                      percentage=percentage,
                      pre_scraamp=False,
                      p=p,
                      k=k,
                  )
                  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 naive
  import numpy
  import numpy.testing
  import pytest
  from stumpy import aamp, config, scraamp
  from stumpy.scraamp import prescraamp
label_desc: Use image node_id 26 for calling a global function with example usage: test_scraamp_self_join_KNN(T_A, T_B, percentages) without return types