code: def test_multiple_output_call_count(self):
      x = chainer.Variable(np.array([1, 2], np.float32))
  
      f = chainer.FunctionNode()
      f.forward = mock.MagicMock(
          side_effect=lambda xs: tuple(x * 2 for x in xs)
      )
      f.backward = mock.MagicMock(
          side_effect=lambda _, gys: tuple(gy * 2 for gy in gys)
      )
  
      (h,) = f.apply((x,))
      y0 = h * 3
      y1 = h * 4
      y0.grad = np.array([1, 10], np.float32)
      y1.grad = np.array([100, 1000], np.float32)
      chainer.backward([y0, y1])
      testing.assert_allclose(x.grad, np.array([806, 8060], np.float32))
      assert f.backward.call_count == 1
  
imports: import unittest
  import mock
  import numpy
  import pytest
  import chainer
  from chainer.backends import cuda
  from chainer import testing
  from chainer.testing import attr
  import chainerx
label_desc: Use image node_id 9 for calling the TestBackward obj's underlying member method code with example usage: obj.test_multiple_output_call_count() without return types