code: def test_combined_sanity(self, dtype, idx_dtype, axis, sorted):
      x = vector(name="x", dtype=dtype)
      yv, yi = topk_and_argtopk(
          x, 1, axis=axis, sorted=sorted, idx_dtype=idx_dtype
      )
      fn = pytensor.function([x], [yv, yi], 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)
      yvval, yival = fn(xval)
      assert yival == np.asarray([0], dtype=idx_dtype)
      utt.assert_allclose(xval, yvval)
      assert yvval.dtype == xval.dtype
      assert yival.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 4 for calling the TestTopK obj's underlying member method code with example usage: obj.test_combined_sanity(dtype, idx_dtype, axis, sorted) without return types