code: def test_full_graph(self):
      # Test `is_same_graph` with more complex graphs.
  
      x, y, z = vectors("x", "y", "z")
      t = x * y
      self.check(
          [
              (x * 2, x * 2, (({}, True),)),
              (
                  x * 2,
                  y * 2,
                  (
                      ({}, False),
                      ({y: x}, True),
                  ),
              ),
              (
                  x * 2,
                  y * 2,
                  (
                      ({}, False),
                      ({x: y}, True),
                  ),
              ),
              (
                  x * 2,
                  y * 3,
                  (
                      ({}, False),
                      ({y: x}, False),
                  ),
              ),
              (
                  t * 2,
                  z * 2,
                  (
                      ({}, False),
                      ({t: z}, True),
                  ),
              ),
              (
                  t * 2,
                  z * 2,
                  (
                      ({}, False),
                      ({z: t}, True),
                  ),
              ),
              (x * (y * z), (x * y) * z, (({}, False),)),
          ]
      )
  
file_path: pytensor/tests/graph/rewriting/test_utils.py
imports: from pytensor.graph.fg import FunctionGraph
  from pytensor.graph.rewriting.basic import graph_rewriter
  from pytensor.graph.rewriting.utils import is_same_graph, rewrite_graph
  from pytensor.tensor.math import neg
  from pytensor.tensor.type import vectors
label_desc: Use image node_id 3 for calling the TestIsSameGraph obj's underlying member method code with example usage: obj.test_full_graph() without return types