code: def _test_randomness(self, xp):
      x = xp.random.standard_normal((10, 6)).astype(numpy.float32)
      y1 = self.linear(x).array
      y2 = self.linear(x).array
      d = float(xp.mean(xp.square(y1 - y2)))
  
      # The parameter name suggests that
      # xp.sqrt(d / 2) is approx to sigma_scale = 0.4
      # In fact, (for each element _[i, j],) it holds:
      # \E[(y2 - y1) ** 2] = 2 * \Var(y) = (4 / pi) * sigma_scale ** 2
  
      target = (0.4**2) * 2
      if self.nobias:
          target *= 2 / numpy.pi
      else:
          target *= (
              2 / numpy.pi + numpy.sqrt(2 / numpy.pi) / y1.shape[1]
          )
  
      self.assertGreater(d, target / 3.0)
      self.assertLess(d, target * 3.0)
  
imports: import unittest
  import chainer
  from chainer import cuda
  from chainer import testing
  from chainer.testing import attr
  from chainer.testing import condition
  import numpy
  from chainerrl.links import noisy_linear
label_desc: Use image node_id 6 for calling the TestFactorizedNoisyLinear obj's underlying member method code with example usage: obj._test_randomness(xp) without return types