code: def test_basic_usage(self):
      rf = RandomFunction(np.random.RandomState.uniform, tensor.dvector)
      assert not rf.inplace
      assert getattr(rf, "destroy_map", {}) == {}
  
      rng_R = random_state_type()
  
      # If calling RandomFunction directly, all args have to be specified,
      # because shape will have to be moved to the end
      post_r, out = rf(rng_R, (4,), 0.0, 1.0)
  
      assert out.type == tensor.dvector
  
      f = compile.function([rng_R], out)
  
      rng_state0 = np.random.RandomState(utt.fetch_seed())
  
      f_0 = f(rng_state0)
      f_1 = f(rng_state0)
  
      assert np.all(f_0 == f_1)
  
imports: from __future__ import absolute_import, print_function, division
  import numpy
  import pickle
  from theano.tests import unittest_tools
  from theano.tensor.raw_random import *
  from theano.tensor import raw_random, ivector, dvector, iscalar, dcol, dtensor3
  from theano import tensor
  from theano import compile, config, gof
label_desc: Use image node_id 2 for calling the T_random_function obj's underlying member method code with example usage: obj.test_basic_usage() without return types