code: def test_sanity_0(self):
      r1, r2 = MyType(1)(), MyType(2)()
      node = MyOp.make_node(r1, r2)
      # Are the inputs what I provided?
      assert [x for x in node.inputs] == [r1, r2]
      # Are the outputs what I expect?
      assert [x.type for x in node.outputs] == [MyType(3)]
      assert (
          node.outputs[0].owner is node and node.outputs[0].index == 0
      )
  
imports: from __future__ import absolute_import, print_function, division
  import unittest
  from nose.plugins.skip import SkipTest
  import numpy
  import theano
  import theano.gof.op
  from six import string_types
  from theano.gof.type import Type, Generic
  from theano.gof.graph import Apply, Variable
  import theano.tensor
  from theano import scalar
  from theano import shared
label_desc: Use image node_id 1 for calling the TestOp obj's underlying member method code with example usage: obj.test_sanity_0() without return types