diff --git a/tests/unit/utils/test_byte_to_bits.py b/tests/unit/utils/test_byte_to_bits.py new file mode 100644 index 0000000..227667a --- /dev/null +++ b/tests/unit/utils/test_byte_to_bits.py @@ -0,0 +1,28 @@ +from src.jeb_utils.utils import byte_to_bits +import pytest + +@pytest.mark.parametrize('b,expected', [ + (b'\x00', (0, 0, 0, 0, 0, 0, 0, 0)), + (b'\x01', (0, 0, 0, 0, 0, 0, 0, 1)), + (b'\x80', (1, 0, 0, 0, 0, 0, 0, 0)), + (b'\xf0', (1, 1, 1, 1, 0, 0, 0, 0)), + (b'\xff', (1, 1, 1, 1, 1, 1, 1, 1)), +]) +def test_byte_to_bits(b, expected): + assert byte_to_bits(b) == expected + +@pytest.mark.parametrize('b,expected_exception', [ + (b'\x00\x00', ValueError), + (b'\x00\x01', ValueError), + (b'\x01\x00', ValueError), + (b'\xff\xff', ValueError), + (b'\xff\x00', ValueError), + (b'\x00\xff', ValueError), + (b'\x42\x2a', ValueError), + (b'\x00\x42\x2a', ValueError), + (b'\x25\x42\x2a', ValueError), + (b'Hello, World!', ValueError), +]) +def test_byte_to_bits(b, expected_exception): + with pytest.raises(expected_exception): + byte_to_bits(b) \ No newline at end of file