"""Tests based off of round-tripping randomly generated examples."""

from hypothesis import given
from hypothesis.strategies import integers
import proquint


def test_round_trip_16():
    for val in range(0, 1<<16):
        assert proquint.Proquint.decode(proquint.Proquint.encode(val, 16)) == val


@given(integers(min_value=1<<16, max_value=1 << 32 - 1))
def test_round_trip_32(val):
    assert proquint.Proquint.decode(proquint.Proquint.encode(val, 32)) == val


@given(integers(min_value=1<<16, max_value=1 << 64 - 1))
def test_round_trip_64(val):
    assert proquint.Proquint.decode(proquint.Proquint.encode(val, 64)) == val


@given(integers(min_value=1<<16, max_value=1 << 512 - 1))
def test_round_trip_512(val):
    assert proquint.Proquint.decode(proquint.Proquint.encode(val, 512)) == val

