code: def test_shared(self, cls_ofg):
      x, y, z = T.matrices("xyz")
      s = shared(np.random.rand(2, 2).astype(config.floatX))
      e = x + y * z + s
      op = cls_ofg([x, y, z], [e])
      # (1+3*5=array of 16) - (3+1*5=array of 8)
      f = op(x, y, z) - op(y, z, x)
  
      fn = function([x, y, z], f)
      xv = np.ones((2, 2), dtype=config.floatX)
      yv = np.ones((2, 2), dtype=config.floatX) * 3
      zv = np.ones((2, 2), dtype=config.floatX) * 5
      # print function, function.__module__
      # print fn.maker.fgraph.toposort()
      assert np.allclose(8.0, fn(xv, yv, zv))
      assert np.allclose(8.0, fn(xv, yv, zv))
  
imports: from __future__ import absolute_import, print_function, division
  from functools import partial
  import numpy
  import theano
  from theano import config, shared
  from theano.gradient import DisconnectedType
  from theano.gof.null_type import NullType
  from theano.compile import function
  from theano import tensor
  from theano.tensor.shared_randomstreams import RandomStreams
  from theano.compile.builders import OpFromGraph
  from theano.tests import unittest_tools
label_desc: Use image node_id 5 for calling the T_OpFromGraph obj's underlying member method code with example usage: obj.test_shared(cls_ofg) without return types