code: def test_normal(self):
      # Test that RandomStreams.normal generates the same results as numpy
      # Check over two calls to see if the random state is correctly updated.
  
      random = RandomStreams(utt.fetch_seed())
      fn = function([], random.normal((2, 2), -1, 2))
      fn_val0 = fn()
      fn_val1 = fn()
  
      rng_seed = np.random.RandomState(utt.fetch_seed()).randint(
          2**30
      )
      rng = np.random.RandomState(int(rng_seed))  # int() is for 32bit
      numpy_val0 = rng.normal(-1, 2, size=(2, 2))
      numpy_val1 = rng.normal(-1, 2, size=(2, 2))
  
      assert np.allclose(fn_val0, numpy_val0)
      assert np.allclose(fn_val1, numpy_val1)
  
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 9 for calling the T_SharedRandomStreams obj's underlying member method code with example usage: obj.test_normal() without return types