code: def test_specialize_mem_copy():
      a, _, m, n, p, q = mem_copy.params
      # fully specialized
      func = mem_copy.specialize(
          {
              a: tvm.tir.decl_buffer(
                  (16, 16), strides=[8, 1], elem_offset=4
              )
          }
      )
      assert_structural_equal_ignore_global_symbol(
          func, mem_copy_16_16_8_4
      )
      func = mem_copy.specialize({n: 16, m: 16, p: 8, q: 4})
      assert_structural_equal_ignore_global_symbol(
          func, mem_copy_16_16_8_4
      )
      # partially specialized
      func = mem_copy.specialize({q: n})
      assert_structural_equal_ignore_global_symbol(
          func, mem_copy_m_n_p_n
      )
  
imports: import tvm
  from tvm.script import tir
  from tvm.tir.schedule.testing import assert_structural_equal_ignore_global_symbol
label_desc: Use image node_id 14 for calling a global function with example usage: test_specialize_mem_copy() without return types