code: def test_signature():
      s = signature(bar)
      assert s == (
          ("x", "y", "z", "a", "b"),
          {"a": 1, "b": 2},
          "args",
          "",
      )
  
      # a partial with a 'fixed' x, thus x is 'unsettable' as a keyword
      p = partial(bar, 0)
      s = signature(p)
      assert s == (
          ("y", "z", "a", "b"),
          {"a": 1, "!x": 0, "b": 2},
          "args",
          "",
      )
      """
      >>> p(0,1)  
          4
      >>> p(0,1,2,3,4,5)
          6
      """
      # a partial where y is 'unsettable' as a positional argument
      p = partial(bar, y=10)
      s = signature(p)
      assert s == (
          ("x", "!y", "z", "a", "b"),
          {"a": 1, "y": 10, "b": 2},
          "args",
          "",
      )
      """
      >>> p(0,1,2)
          Traceback (most recent call last):
            File "<stdin>", line 1, in <module>
          TypeError: bar() got multiple values for keyword argument 'y'
      >>> p(0,z=2)
          15
      >>> p(0,y=1,z=2)
          6
      """
  
file_path: klepto/klepto/tests/test_ignore.py
imports: import sys
  from functools import partial
  from klepto.keymaps import hashmap
  from klepto import NULL
  from klepto import signature, keygen
  from klepto import _keygen, isvalid
  from klepto.tools import IS_PYPY
label_desc: Use image node_id 2 for calling a global function with example usage: test_signature() without return types