code: def test_no_perform(self):
      if not theano.config.cxx:
          raise SkipTest(
              "G++ not available, so we need to skip this test."
          )
  
      orig_compute_test_value = theano.config.compute_test_value
      try:
          theano.config.compute_test_value = "raise"
  
          i = scalar.int32("i")
          i.tag.test_value = 3
  
          # Class IncOneC is defined outside of the TestComputeTestValue
          # so it can be pickled and unpickled
          o = IncOneC()(i)
  
          # Check that the perform function is not implemented
          self.assertRaises(
              (NotImplementedError, utils.MethodNotDefined),
              o.owner.op.perform,
              o.owner,
              0,
              [None],
          )
  
          assert hasattr(o.tag, "test_value")
          assert o.tag.test_value == 4
  
      finally:
          theano.config.compute_test_value = orig_compute_test_value
  
imports: from __future__ import absolute_import, print_function, division
  import os
  import sys
  import traceback
  import warnings
  import numpy
  from nose.plugins.skip import SkipTest
  import unittest
  import theano
  from theano import config
  from theano import scalar
  from theano import tensor
  from theano.gof import Apply, Op
  from theano.gof import utils
  from theano.tensor.basic import _allclose
label_desc: Use image node_id 14 for calling the TestComputeTestValue obj's underlying member method code with example usage: obj.test_no_perform() without return types