code: def test_rebuild_strict(self):
      # Test fix for error reported at
      # https://groups.google.com/d/topic/theano-users/BRK0UEB72XA/discussion
      w = imatrix()
      x, y = ivectors("x", "y")
      z = x * y
      f = function([w, y], z, givens=[(x, w)], rebuild_strict=False)
      z_val = f(
          np.ones((3, 5), dtype="int32"), np.arange(5, dtype="int32")
      )
      assert z_val.ndim == 2
      assert np.all(z_val == np.ones((3, 5)) * np.arange(5))
  
imports: import numpy
  import pytest
  import pytensor.tensor
  from pytensor.compile import UnusedInputError, get_mode
  from pytensor.compile.function import function, pfunc
  from pytensor.compile.function.pfunc import rebuild_collect_shared
  from pytensor.compile.io import In
  from pytensor.compile.sharedvalue import shared
  from pytensor.configdefaults import config
  from pytensor.graph.utils import MissingInputError
  from pytensor.misc.safe_asarray import _asarray
  from pytensor.tensor.math import sum
  from pytensor.tensor.type import bscalar, bvector, dmatrices, dmatrix, dscalar, dvector, fscalar, fvector, imatrix, iscalar, ivector, ivectors, lscalar, wvector
  from pytensor.utils import PYTHON_INT_BITWIDTH
label_desc: Use image node_id 1 for calling the TestRebuildStrict obj's underlying member method code with example usage: obj.test_rebuild_strict() without return types