source/projects/proquint/test/test_examples.py

63 lines
1.9 KiB
Python
Raw Permalink Normal View History

2021-08-04 01:04:23 +00:00
"""Tests based off of known examples."""
import proquint
import pytest
examples = [
# Various single-bit data
(1, 32, "babab-babad"),
(2, 32, "babab-babaf"),
(4, 32, "babab-babah"),
(8, 32, "babab-babam"),
(16, 32, "babab-babib"),
(32, 32, "babab-babob"),
(64, 32, "babab-badab"),
(128, 32, "babab-bafab"),
(256, 32, "babab-bahab"),
(512, 32, "babab-bamab"),
(1024, 32, "babab-bibab"),
(2048, 32, "babab-bobab"),
(4096, 32, "babab-dabab"),
(8192, 32, "babab-fabab"),
(16384, 32, "babab-habab"),
(32768, 32, "babab-mabab"),
(65536, 32, "babad-babab"),
(131072, 32, "babaf-babab"),
(262144, 32, "babah-babab"),
(524288, 32, "babam-babab"),
(1048576, 32, "babib-babab"),
(2097152, 32, "babob-babab"),
(4194304, 32, "badab-babab"),
(8388608, 32, "bafab-babab"),
(16777216, 32, "bahab-babab"),
(33554432, 32, "bamab-babab"),
(67108864, 32, "bibab-babab"),
(134217728, 32, "bobab-babab"),
(268435456, 32, "dabab-babab"),
(536870912, 32, "fabab-babab"),
(1073741824, 32, "habab-babab"),
(2147483648, 32, "mabab-babab"),
# A random value
(3232235536, 32, "safom-babib"),
]
2021-08-04 06:17:20 +00:00
@pytest.mark.parametrize("val,width,qint", examples)
2021-08-04 01:04:23 +00:00
def test_decode_examples(val, width, qint):
assert proquint.Proquint.decode(qint) == val, f"qint {qint} did not decode"
2021-08-04 06:17:20 +00:00
@pytest.mark.parametrize("val,width,qint", examples)
2021-08-04 01:04:23 +00:00
def test_encode_examples(val, width, qint):
encoded_qint = proquint.Proquint.encode(val, width)
decoded_val = proquint.Proquint.decode(encoded_qint)
2021-09-03 04:10:35 +00:00
assert (
encoded_qint == qint
), f"did not encode {val} to {qint}; got {encoded_qint} ({decoded_val})"
2023-06-05 05:53:00 +00:00
# Previously failed test values -
# 4294967296
# 18446744073709551616
# 13407807929942597099574024998205846127479365820592393377723561443721764030073546976801874298166903427690031858186486050853753882811946569946433649006084096