code: def test_aliased_outputs_ok(self):
      # here aliased outputs is ok because they are both aliased to an input
      # as well
      class CustomOp(gof.Op):
          view_map = {0: [0], 1: [0]}
  
          def make_node(self, a, b):
              c = a.type()
              d = a.type()
              return gof.Apply(self, [a, b], [c, d])
  
          def perform(self, node, inp, out):
              a, b = inp
              c, d = out
              c[0] = a
              d[0] = a[1:]
  
      x = theano.tensor.dvector("x")
      y = theano.tensor.dvector("y")
      f = theano.function([x, y], CustomOp()(x, y), mode="DEBUG_MODE")
  
      r0, r1 = f([1, 2, 3, 4], [5, 6, 7, 8])
  
      assert np.all(r0 == [1, 2, 3, 4])
      assert np.all(r1 == [2, 3, 4])
  
imports: from __future__ import absolute_import, print_function, division
  import sys
  import unittest
  from nose.plugins.skip import SkipTest
  import numpy
  from six import reraise
  from theano import config
  from theano import gof
  import theano
  from theano.compat import exc_message
  from theano.compile import debugmode
  import theano.tensor
  from theano.tests import unittest_tools
label_desc: Use image node_id 5 for calling the Test_ViewMap obj's underlying member method code with example usage: obj.test_aliased_outputs_ok() and returns: gof