rustpy 0.3.0

Bindings of Rust programming language primitives.
Documentation
from contextlib import suppress
from typing import Tuple

from hypothesis import given

from rustpy.primitive import bool_
from tests.utils import (Integer,
                         equivalence)
from . import strategies


@given(strategies.signed_integers)
def test_basic(integer: Integer) -> None:
    result = integer.is_negative()

    assert isinstance(result, bool_)


@given(strategies.signed_integers_with_zeros)
def test_connection_with___neg__(
        integer_with_zero: Tuple[Integer, Integer]
) -> None:
    integer, zero = integer_with_zero

    with suppress(OverflowError):
        assert equivalence(integer.is_negative() == (-integer).is_negative(),
                           integer == zero)


@given(strategies.signed_integers_with_zeros)
def test_alternatives(
        integer_with_zero: Tuple[Integer, Integer]
) -> None:
    integer, zero = integer_with_zero

    assert equivalence(integer.is_negative(),
                       not integer.is_positive() and integer != zero)