code: def test_function_signatures(doc):
      assert doc(kw_func0) == "kw_func0(arg0: int, arg1: int) -> str"
      assert doc(kw_func1) == "kw_func1(x: int, y: int) -> str"
      assert doc(kw_func2) == "kw_func2(x: int=100, y: int=200) -> str"
      assert (
          doc(kw_func3) == "kw_func3(data: str='Hello world!') -> None"
      )
      assert (
          doc(kw_func4) == "kw_func4(myList: List[int]=[13, 17]) -> str"
      )
      assert (
          doc(kw_func_udl) == "kw_func_udl(x: int, y: int=300) -> str"
      )
      assert (
          doc(kw_func_udl_z) == "kw_func_udl_z(x: int, y: int=0) -> str"
      )
      assert doc(args_function) == "args_function(*args) -> tuple"
      assert (
          doc(args_kwargs_function)
          == "args_kwargs_function(*args, **kwargs) -> tuple"
      )
      assert (
          doc(KWClass.foo0)
          == "foo0(self: m.KWClass, arg0: int, arg1: float) -> None"
      )
      assert (
          doc(KWClass.foo1)
          == "foo1(self: m.KWClass, x: int, y: float) -> None"
      )
  
imports: import pytest
  from pybind11_tests import kw_func0, kw_func1, kw_func2, kw_func3, kw_func4, args_function, args_kwargs_function, kw_func_udl, kw_func_udl_z, KWClass
label_desc: Use image node_id 1 for calling a global function with example usage: test_function_signatures(doc) without return types