code: def test_output_type_check(self):
      class Model(chainer.Chain):
          def __init__(self, out_kind):
              super().__init__()
              self.out_kind = out_kind
  
          def __call__(self, x):
              if self.out_kind == "array":
                  return x.array
              elif self.out_kind == "array_in_tuple":
                  return x, x.array
              elif self.out_kind == "list_in_tuple":
                  return (([x]),)
              else:
                  assert self.out_kind == "var"
                  return x
  
      model = Model(self.out_kind)
      x = np.ones((1, 3, 4, 5), dtype=np.float32)
  
      if self.out_kind == "var":
          export(model, (x,))  # should be no error
      elif self.out_kind == "array":
          with self.assertRaises(RuntimeError) as e:
              export(model, (x,))
          assert "Unexpected output type".find(e.exception.args[0])
      else:
          with self.assertRaises(ValueError) as e:
              export(model, (x,))
          assert "must be Chainer Variable".find(e.exception.args[0])
  
imports: import unittest
  import chainer
  import chainer.functions
  import chainer.links
  from chainer import testing
  import numpy
  import pytest
  from onnx_chainer import export
  from onnx_chainer.export import RetainInputHook
  from onnx_chainer.testing import input_generator
  from onnx_chainer_tests.helper import ONNXModelTest
label_desc: Use image node_id 1 for calling the TestOutputTypeCheck obj's underlying member method code with example usage: obj.test_output_type_check() and returns: x, x,  x, list, x