code: def check_backward(
      self, h_data, c_data, xs_data, gh_data, gc_data, gys_data
  ):
      def fun(*args):
          if self.hidden_none:
              h = c = None
              xs = args
          else:
              h, c = args[:2]
              xs = args[2:]
          hy, cy, ys = self.rnn(h, c, xs)
          return tuple([hy, cy] + list(ys))
  
      params = []
      for layer in self.rnn:
          for p in layer.params():
              params.append(p)
  
      if self.hidden_none:
          in_data = xs_data
      else:
          in_data = [h_data, c_data] + xs_data
      gradient_check.check_backward(
          fun,
          tuple(in_data),
          tuple([gh_data, gc_data] + gys_data),
          tuple(params),
          eps=1e-2,
          rtol=1e-3,
          atol=1e-3,
      )
  
imports: import unittest
  import numpy
  import chainer
  from chainer.backends import cuda
  from chainer import gradient_check
  from chainer import links
  from chainer import testing
  from chainer.testing import attr
label_desc: Use image node_id 10 for calling the TestNStepBiLSTM obj's underlying member method code with example usage: obj.check_backward(h_data, c_data, xs_data, gh_data, gc_data, gys_data) and returns: tuple