code: def test_soft_copy_param_scalar(self):
      a = chainer.Chain()
      with a.init_scope():
          a.p = chainer.Parameter(np.array(0.5))
      b = chainer.Chain()
      with b.init_scope():
          b.p = chainer.Parameter(np.array(1))
  
      # a = (1 - tau) * a + tau * b
      copy_param.soft_copy_param(target_link=a, source_link=b, tau=0.1)
  
      np.testing.assert_almost_equal(a.p.array, 0.55)
      np.testing.assert_almost_equal(b.p.array, 1.0)
  
      copy_param.soft_copy_param(target_link=a, source_link=b, tau=0.1)
  
      np.testing.assert_almost_equal(a.p.array, 0.595)
      np.testing.assert_almost_equal(b.p.array, 1.0)
  
file_path: chainerrl/tests/misc_tests/test_copy_param.py
imports: import unittest
  import chainer
  from chainer import functions
  from chainer import links
  import numpy
  from chainerrl.misc import copy_param
label_desc: Use image node_id 5 for calling the TestCopyParam obj's underlying member method code with example usage: obj.test_soft_copy_param_scalar() without return types