code: def test_multiple_out(self):
      x1 = tensor.vector("x1", dtype=self.dtype)
      x2 = tensor.vector("x2", dtype=self.dtype)
      y1 = tensor.vector("y1", dtype=self.dtype)
      y2 = tensor.vector("y2", dtype=self.dtype)
      c = tensor.iscalar("c")
      z = ifelse(c, (x1, x2), (y1, y2))
      f = theano.function([c, x1, x2, y1, y2], z, mode=self.mode)
      self.assertFunctionContains1(f, self.get_ifelse(2))
  
      ifnode = [
          x
          for x in f.maker.fgraph.toposort()
          if isinstance(x.op, IfElse)
      ][0]
      assert len(ifnode.outputs) == 2
  
      rng = np.random.RandomState(utt.fetch_seed())
  
      x1len = rng.randint(200)
      x2len = rng.randint(200)
      y1len = rng.randint(200)
      y2len = rng.randint(200)
  
      vx1 = np.asarray(rng.uniform(size=(x1len,)), self.dtype)
      vx2 = np.asarray(rng.uniform(size=(x2len,)), self.dtype)
      vy1 = np.asarray(rng.uniform(size=(y1len,)), self.dtype)
      vy2 = np.asarray(rng.uniform(size=(y2len,)), self.dtype)
  
      ovx1, ovx2 = f(1, vx1, vx2, vy1, vy2)
      ovy1, ovy2 = f(0, vx1, vx2, vy1, vy2)
      assert np.allclose(vx1, ovx1)
      assert np.allclose(vy1, ovy1)
      assert np.allclose(vx2, ovx2)
      assert np.allclose(vy2, ovy2)
  
imports: from __future__ import absolute_import, print_function, division
  import unittest
  import numpy
  from nose.plugins.skip import SkipTest
  from six.moves import reduce
  import theano
  from theano import tensor
  import theano.ifelse
  from theano.ifelse import IfElse, ifelse
  from theano.tests import unittest_tools
label_desc: Use image node_id 8 for calling the test_ifelse obj's underlying member method code with example usage: obj.test_multiple_out() without return types