code: def test_argtopk_sanity(self, dtype, idx_dtype, axis, sorted):
      x = vector(name="x", dtype=dtype)
      fn = pytensor.function(
          [x],
          argtopk(x, 1, axis=axis, sorted=sorted, idx_dtype=idx_dtype),
          mode=self.mode,
      )
      assert any(
          isinstance(n.op, self.op_class)
          for n in fn.maker.fgraph.apply_nodes
      )
      xval = np.asarray([1]).astype(dtype)
      yval = fn(xval)
      assert yval == np.asarray([0], dtype=idx_dtype)
      assert yval.dtype == np.dtype(idx_dtype)
  
imports: from functools import reduce
  from itertools import chain, product
  import numpy
  import pytest
  import pytensor
  from pytensor.compile.mode import Mode
  from pytensor.tensor.sort import ArgSortOp, SortOp, TopKOp, argsort, argtopk, sort, topk, topk_and_argtopk
  from pytensor.tensor.type import dmatrix, dvector, float_dtypes, integer_dtypes, lscalar, matrix, scalar, tensor, vector
  from tests import unittest_tools
label_desc: Use image node_id 2 for calling the TestTopK obj's underlying member method code with example usage: obj.test_argtopk_sanity(dtype, idx_dtype, axis, sorted) without return types