code: def test1(self):
      # this is a quick test after the LazyLinker branch merge
      # to check that all the current modes can still be used.
      linker_classes_involved = []
  
      predef_modes = ["FAST_COMPILE", "FAST_RUN", "DEBUG_MODE"]
  
      # Linkers to use with regular Mode
      if theano.config.cxx:
          linkers = [
              "py",
              "c|py",
              "c|py_nogc",
              "vm",
              "vm_nogc",
              "cvm",
              "cvm_nogc",
          ]
      else:
          linkers = ["py", "c|py", "c|py_nogc", "vm", "vm_nogc"]
      modes = predef_modes + [
          Mode(linker, "fast_run") for linker in linkers
      ]
  
      for mode in modes:
          x = T.matrix()
          y = T.vector()
          f = theano.function([x, y], x + y, mode=mode)
          # test that it runs something
          f([[1, 2], [3, 4]], [5, 6])
          linker_classes_involved.append(f.maker.mode.linker.__class__)
          # print 'MODE:', mode, f.maker.mode.linker, 'stop'
  
      # regression check:
      # there should be
      # - VM_Linker
      # - OpWiseCLinker (FAST_RUN)
      # - PerformLinker (FAST_COMPILE)
      # - DebugMode's Linker  (DEBUG_MODE)
      assert 4 == len(set(linker_classes_involved))
  
file_path: Theano/theano/compile/tests/test_modes.py
imports: from __future__ import absolute_import, print_function, division
  import copy
  import unittest
  import theano
  import theano.tensor
  from theano.compile import Mode
label_desc: Use image node_id 1 for calling the T_bunch_of_modes obj's underlying member method code with example usage: obj.test1() without return types