code: def test_shared_constructor_borrow(self):
      rng = np.random.RandomState(123)
      s_rng_default = shared(rng)
      s_rng_True = shared(rng, borrow=True)
      s_rng_False = shared(rng, borrow=False)
  
      # test borrow contract: that False means a copy must have been made
      assert s_rng_default.container.storage[0] is not rng
      assert s_rng_False.container.storage[0] is not rng
  
      # test current implementation: that True means a copy was not made
      assert s_rng_True.container.storage[0] is rng
  
      # ensure that all the random number generators are in the same state
      v = rng.randn()
      v0 = s_rng_default.container.storage[0].randn()
      v1 = s_rng_False.container.storage[0].randn()
      assert v == v0 == v1
  
imports: from __future__ import absolute_import, print_function, division
  import sys
  import unittest
  import numpy
  from theano.tensor import raw_random
  from theano.tensor.shared_randomstreams import RandomStreams
  from theano import function, shared
  from theano import tensor
  from theano import compile, config, gof
  from theano.tests import unittest_tools
label_desc: Use image node_id 30 for calling the T_SharedRandomStreams obj's underlying member method code with example usage: obj.test_shared_constructor_borrow() without return types