|
|
|
@ -5,17 +5,14 @@ import onetimepad as OT
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TestOneTimePad(unittest.TestCase):
|
|
|
|
|
pad = 'THISISMYONETIMEPADANDITISNOTESPECIALLYBIG' \
|
|
|
|
|
'BUTITISBIGENOUGHFORMYUSESIFYOUDONTMINDTHX'
|
|
|
|
|
|
|
|
|
|
def test_encode(self):
|
|
|
|
|
enc = OT.encode(IN_MSG, self.pad)
|
|
|
|
|
self.assertEqual(EXPECTED_ENCODED, enc)
|
|
|
|
|
def test_mk_as_alpha_excludes_j(self):
|
|
|
|
|
self.assertTrue('J' not in OT._AS_ALPHA.values())
|
|
|
|
|
|
|
|
|
|
def test_decode(self):
|
|
|
|
|
dec = OT.decode(EXPECTED_ENCODED, self.pad)
|
|
|
|
|
self.assertEqual(IN_MSG, dec)
|
|
|
|
|
def test_mk_as_alpha_dict_has_25_members(self):
|
|
|
|
|
self.assertEqual(25, len(OT._AS_ALPHA.items()))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
IN_MSG = 'TWOBYFOURBOARDSONEHUNDREDCOUNTLENGTHEIGHTFEET'
|
|
|
|
|
EXPECTED_ENCODED = 'huteshusoahutseohusoaeutoaehusoat'
|
|
|
|
|
def test_creates_pad_of_desired_length(self):
|
|
|
|
|
for width in (72, 33, 99, 111):
|
|
|
|
|
pad = OT.create_pad(2000, width=width)
|
|
|
|
|
self.assertEqual(2000, len((''.join(pad.split())).strip('.')))
|
|
|
|
|