code: def test_scraamp_plus_plus_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 s in range(1, zone + 1):
                  for percentage in percentages:
                      seed = np.random.randint(100000)
  
                      np.random.seed(seed)
                      ref_P, ref_I = naive.prescraamp(
                          T_B,
                          m,
                          T_B,
                          s=s,
                          exclusion_zone=zone,
                          p=p,
                          k=k,
                      )
                      ref_P_aux, ref_I_aux, _, _ = naive.scraamp(
                          T_B,
                          m,
                          T_B,
                          percentage,
                          zone,
                          True,
                          s,
                          p=p,
                          k=k,
                      )
  
                      naive.merge_topk_PI(
                          ref_P, ref_P_aux, ref_I, ref_I_aux
                      )
  
                      np.random.seed(seed)
                      approx = scraamp(
                          T_B,
                          m,
                          ignore_trivial=True,
                          percentage=percentage,
                          pre_scraamp=True,
                          s=s,
                          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)
  
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 28 for calling a global function with example usage: test_scraamp_plus_plus_self_join_KNN(T_A, T_B, percentages) without return types