AssertEqual не выдает ошибку, даже если значения разные - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть этот код в Python

import unittest



class AES_TEST(unittest.TestCase):


    def test_encryption(self):
        print('Encryption : ')
        plaintext = 0x3243f6a8885a308d313198a2e0370734
        encrypted = 75960790320075369159181001580855561010
        print(encrypted)
        print('0x3925841d02dc09fbdc118597196a0b32')

        self.assertEqual(encrypted, 0x3925841d02dc09fbdc118597196a0b32)

    def test_decryption(self):
        print('Decryption : ')
        ciphertext = 0x3925841d02dc09fbdc118597196a0b32
        decrypted = self.AES.decrypt(ciphertext)
        decrypted = 66814286504060421741230023322616923956
        print(decrypted)
        print('0x3243f6a8885a308d313198a2e0370734')


        self.assertEqual(decrypted, 0x3243f6a8885a308d313198a2e0370734)

if __name__ == '__main__':
    unittest.main()

Почему не выдает ошибку? Почему переменная encrypted равна 0x3925841d02dc09fbdc118597196a0b32, хотя на самом деле они имеют разные значения? Такое же поведение наблюдается и в переменной decryption.

1 Ответ

0 голосов
/ 05 ноября 2018

Они равны.

0x перед числом означает, что представление является основанием 16 (шестнадцатеричное). Если вы используете калькулятор для преобразования 0x3925841d02dc09fbdc118597196a0b32 в десятичный формат, вы увидите, что это то же значение, которое присвоено ему в этом блоке кода.

...