code: def test_thunk(self):
      x, y, z = inputs()
      e = mul(add(x, y), div(x, y))
      fn, i, o = perform_linker(
          FunctionGraph([x, y, z], [e])
      ).make_thunk()
      i[0].data = 1
      assert i[0].data == 1
      i[1].data = 2
      assert i[1].data == 2
      fn()
      assert o[0].data == 1.5
  
imports: from copy import deepcopy
  from typing import Callable
  import numpy
  import pytensor
  from pytensor.graph import fg
  from pytensor.graph.basic import Apply, Constant, Variable, clone
  from pytensor.graph.op import Op
  from pytensor.graph.type import Type
  from pytensor.link.basic import Container, Linker, PerformLinker, WrapLinker
  from pytensor.tensor.type import scalar
  from pytensor.utils import to_return_values
label_desc: Use image node_id 1 for calling the TestPerformLinker obj's underlying member method code with example usage: obj.test_thunk() without return types