code: def test_matrix_dot():
      rng = np.random.default_rng(utt.fetch_seed())
      n = rng.integers(4) + 2
      rs = []
      xs = []
      for k in range(n):
          rs += [rng.standard_normal((4, 4)).astype(config.floatX)]
          xs += [matrix()]
      sol = matrix_dot(*xs)
  
      pytensor_sol = function(xs, sol)(*rs)
      numpy_sol = rs[0]
      for r in rs[1:]:
          numpy_sol = np.dot(numpy_sol, r)
  
      assert _allclose(numpy_sol, pytensor_sol)
  
imports: import numpy
  import numpy.linalg
  import pytest
  from numpy import inf
  from numpy.testing import assert_array_almost_equal
  import pytensor
  from pytensor import function
  from pytensor.configdefaults import config
  from pytensor.tensor.math import _allclose
  from pytensor.tensor.nlinalg import SVD, Eig, MatrixInverse, TensorInv, det, eig, eigh, lstsq, matrix_dot, matrix_inverse, matrix_power, norm, pinv, qr, slogdet, svd, tensorinv, tensorsolve, trace
  from pytensor.tensor.type import lmatrix, lscalar, matrix, scalar, tensor3, tensor4, vector
  from tests import unittest_tools
label_desc: Use image node_id 3 for calling a global function with example usage: test_matrix_dot() without return types