import pytest from cryptography_s_des_exploring.sdes.blocks import encode, decode, encode_bytes, decode_bytes @pytest.mark.parametrize("message, expected_message", [ # ab -> b'YWI=' ('ab', ['01011001', '01010111', '01001001', '00111101']), # bc -> b'YmM=' ('bc', ['01011001', '01101101', '01001101', '00111101']), # абвґд -> b'0LDQsdCy0pHQtA==' ('абвґд', ['00110000', '01001100', '01000100', '01010001', '01110011', '01100100', '01000011', '01111001', '00110000', '01110000', '01001000', '01010001', '01110100', '01000001', '00111101', '00111101']), # їґєі -> b'0ZfSkdGU0ZY=' ('їґєі', ['00110000', '01011010', '01100110', '01010011', '01101011', '01100100', '01000111', '01010101', '00110000', '01011010', '01011001', '00111101']), ]) def test_encode(message, expected_message): result = list(encode(message)) assert expected_message == result @pytest.mark.parametrize("expected_message, encoded_message", [ # ab -> b'YWI=' ('ab', ['01011001', '01010111', '01001001', '00111101']), # bc -> b'YmM=' ('bc', ['01011001', '01101101', '01001101', '00111101']), # абвґд -> b'0LDQsdCy0pHQtA==' ('абвґд', ['00110000', '01001100', '01000100', '01010001', '01110011', '01100100', '01000011', '01111001', '00110000', '01110000', '01001000', '01010001', '01110100', '01000001', '00111101', '00111101']), # їґєі -> b'0ZfSkdGU0ZY=' ('їґєі', ['00110000', '01011010', '01100110', '01010011', '01101011', '01100100', '01000111', '01010101', '00110000', '01011010', '01011001', '00111101']), ]) def test_decode(expected_message, encoded_message): result = decode(encoded_message) assert expected_message == result @pytest.mark.parametrize("bytes, expected_message", [ (['01011001', '01010111', '01001001', '00111101'], b'WVdJPQ=='), (['01011001', '01010111', '00000000', '00111101'], b'WVcAPQ==') ]) def test_encode_bytes(bytes, expected_message): result = encode_bytes(bytes) assert expected_message == result @pytest.mark.parametrize("expected_bytes, message", [ (['01011001', '01010111', '01001001', '00111101'], 'WVdJPQ=='), (['01011001', '01010111', '00000000', '00111101'], 'WVcAPQ==') ]) def test_encode_bytes(expected_bytes, message): result = list(decode_bytes(message)) assert expected_bytes == result