code: def test_transinv_to_invtrans():
      X = matrix("X")
      Y = matrix_inverse(X)
      Z = Y.transpose()
      f = pytensor.function([X], Z)
      if config.mode != "FAST_COMPILE":
          for node in f.maker.fgraph.toposort():
              if isinstance(node.op, MatrixInverse):
                  assert isinstance(node.inputs[0].owner.op, DimShuffle)
              if isinstance(node.op, DimShuffle):
                  assert node.inputs[0].name == "X"
  
imports: from functools import partial
  import numpy
  import pytest
  import scipy.linalg
  from numpy.testing import assert_allclose
  import pytensor
  from pytensor import function
  from pytensor import tensor
  from pytensor.compile import get_default_mode
  from pytensor.configdefaults import config
  from pytensor.tensor import swapaxes
  from pytensor.tensor.blockwise import Blockwise
  from pytensor.tensor.elemwise import DimShuffle
  from pytensor.tensor.math import _allclose, dot, matmul
  from pytensor.tensor.nlinalg import Det, MatrixInverse, matrix_inverse
  from pytensor.tensor.rewriting.linalg import inv_as_solve
  from pytensor.tensor.slinalg import Cholesky, Solve, SolveBase, SolveTriangular, cho_solve, cholesky, solve, solve_triangular
  from pytensor.tensor.type import dmatrix, matrix, tensor, vector
  from tests import unittest_tools
  from tests.test_rop import break_op
label_desc: Use image node_id 2 for calling a global function with example usage: test_transinv_to_invtrans() without return types