code: def test_inputs_outputs(self):
      self.assertTrue(hasattr(self.tool, "inputs"))
      self.assertTrue(hasattr(self.tool, "outputs"))
  
      inputs = self.tool.inputs
      for _input in inputs:
          if isinstance(_input, list):
              for __input in _input:
                  self.assertTrue(__input in authorized_types)
          else:
              self.assertTrue(_input in authorized_types)
  
      outputs = self.tool.outputs
      for _output in outputs:
          self.assertTrue(_output in authorized_types)
  
file_path: transformers/tests/tools/test_tools_common.py
imports: from pathlib import Path
  from typing import List
  from transformers import is_torch_available, is_vision_available
  from transformers.testing_utils import get_tests_dir, is_tool_test
  from transformers.tools.agent_types import AGENT_TYPE_MAPPING, AgentAudio, AgentImage, AgentText
label_desc: Use image node_id 1 for calling the ToolTesterMixin obj's underlying member method code with example usage: obj.test_inputs_outputs() without return types