code: def test_op_struct(self):
      if not theano.config.cxx:
          raise SkipTest(
              "G++ not available, so we need to skip this test."
          )
      sop = StructOp()
      c = sop(theano.tensor.constant(0))
      mode = None
      if theano.config.mode == "FAST_COMPILE":
          mode = "FAST_RUN"
      f = theano.function([], c, mode=mode)
      rval = f()
      assert rval == 0
      rval = f()
      assert rval == 1
  
      c2 = sop(theano.tensor.constant(1))
      f2 = theano.function([], [c, c2], mode=mode)
      rval = f2()
      assert rval == [0, 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 4 for calling the TestOp obj's underlying member method code with example usage: obj.test_op_struct() without return types