def test_nested_condition() -> None:
    'Test a nested condition. '

    @argcomb(Or(And('a', 'b'), And('c', 'd')))
    def f(a: Any=None, b: Any=None, c: Any=None, d: Any=None) -> None:
        ...
    f(a=1, b=1)
    f(c=1, d=1)
    f(a=1, b=1, c=1, d=1)
    with pytest.raises(InvalidArgumentCombination):
        f(a=1)
    with pytest.raises(InvalidArgumentCombination):
        f(a=1, c=1)
    with pytest.raises(InvalidArgumentCombination):
        f()
Test a nested condition.
def test_nested_condition() -> None:
    ' '

    @argcomb(Or(And('a', 'b'), And('c', 'd')))
    def f(a: Any=None, b: Any=None, c: Any=None, d: Any=None) -> None:
        ...
    f(a=1, b=1)
    f(c=1, d=1)
    f(a=1, b=1, c=1, d=1)
    with pytest.raises(InvalidArgumentCombination):
        f(a=1)
    with pytest.raises(InvalidArgumentCombination):
        f(a=1, c=1)
    with pytest.raises(InvalidArgumentCombination):
        f()