def test_and() -> None:
    'Test ``And`` condition. '

    @argcomb(And('a', 'b'))
    def f(a: Any=None, b: Any=None, c: Any=None) -> None:
        ...
    f(a=1, b=2)
    f(a=1, b=2, c=3)
    with pytest.raises(InvalidArgumentCombination):
        f(a=1)
    with pytest.raises(InvalidArgumentCombination):
        f(b=1)
    with pytest.raises(InvalidArgumentCombination):
        f(a=1, b=None)
    with pytest.raises(InvalidArgumentCombination):
        f(a=None, b=1)
    with pytest.raises(InvalidArgumentCombination):
        f(a=1, c=1)
    with pytest.raises(InvalidArgumentCombination):
        f(b=1, c=1)
    with pytest.raises(InvalidArgumentCombination):
        f(c=1)
    with pytest.raises(InvalidArgumentCombination):
        f()
Test ``And`` condition.
def test_and() -> None:
    ' '

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