code: def test_multiple_params_multiple_variants() -> None:
      @required_args(["a", "b"], ["c"])
      def foo(
          *,
          a: str | None = None,
          b: str | None = None,
          c: str | None = None,
      ) -> str | None:
          if a is not None:
              return a
          if b is not None:
              return b
          return c
  
      error_message = r"Missing required arguments; Expected either \('a' and 'b'\) or \('c'\) arguments to be given"
  
      with pytest.raises(TypeError, match=error_message):
          foo(a="foo")
  
      with pytest.raises(TypeError, match=error_message):
          foo(b="bar")
  
      with pytest.raises(TypeError, match=error_message):
          foo()
  
      assert foo(a=None, b="bar") == "bar"
      assert foo(c=None) is None
      assert foo(c="foo") == "foo"
  
file_path: openai-python/tests/test_required_args.py
imports: from __future__ import annotations
  import pytest
  from openai._utils import required_args
label_desc: Use image node_id 6 for calling a global function with example usage: test_multiple_params_multiple_variants() and returns: c, a, b