code: def test_gpu_aamp_self_join_KNN(T_A, T_B):
      m = 3
      zone = int(np.ceil(m / 4))
      for k in range(2, 4):
          for p in [1.0, 2.0, 3.0]:
              ref_mp = naive.aamp(T_B, m, exclusion_zone=zone, p=p, k=k)
              comp_mp = gpu_aamp(T_B, m, ignore_trivial=True, p=p, k=k)
              naive.replace_inf(ref_mp)
              naive.replace_inf(comp_mp)
              npt.assert_almost_equal(ref_mp, comp_mp)
  
              comp_mp = gpu_aamp(
                  pd.Series(T_B), m, ignore_trivial=True, p=p, k=k
              )
              naive.replace_inf(comp_mp)
              npt.assert_almost_equal(ref_mp, comp_mp)
  
imports: from unittest.mock import patch
  import numpy
  import numpy.testing
  import pandas
  from numba import cuda
  from stumpy import config, gpu_aamp
  import naive
  import pytest
label_desc: Use image node_id 15 for calling a global function with example usage: test_gpu_aamp_self_join_KNN(T_A, T_B) without return types