|
|
@ -5,6 +5,7 @@ import onetimepad as OT
|
|
|
|
class TestOneTimePad(unittest.TestCase):
|
|
|
|
class TestOneTimePad(unittest.TestCase):
|
|
|
|
msg = ('HOWMUCHCHUCKCOULDAWOODCHUCKCHUCKIFA'
|
|
|
|
msg = ('HOWMUCHCHUCKCOULDAWOODCHUCKCHUCKIFA'
|
|
|
|
'WOODCHUCKCOULDCHUCKWOOD' * 50)
|
|
|
|
'WOODCHUCKCOULDCHUCKWOOD' * 50)
|
|
|
|
|
|
|
|
_padsize = 2000
|
|
|
|
|
|
|
|
|
|
|
|
def test_mk_as_alpha_excludes_j(self):
|
|
|
|
def test_mk_as_alpha_excludes_j(self):
|
|
|
|
self.assertTrue('J' not in OT._AS_ALPHA.values())
|
|
|
|
self.assertTrue('J' not in OT._AS_ALPHA.values())
|
|
|
@ -14,13 +15,17 @@ class TestOneTimePad(unittest.TestCase):
|
|
|
|
|
|
|
|
|
|
|
|
def test_creates_pad_of_desired_length(self):
|
|
|
|
def test_creates_pad_of_desired_length(self):
|
|
|
|
for width in (72, 33, 99, 111):
|
|
|
|
for width in (72, 33, 99, 111):
|
|
|
|
pad = OT.create_pad(2000, width=width)
|
|
|
|
pad = OT.create_pad(self._padsize, width=width)
|
|
|
|
lines = [line.strip('.') for line in pad.split('\n\n\n')]
|
|
|
|
lines = [line.strip('.') for line in pad.split()]
|
|
|
|
self.assertEqual(2000, len(''.join(lines)))
|
|
|
|
actual = len(''.join(lines))
|
|
|
|
|
|
|
|
self.assertEqual(self._padsize, len(''.join(lines)),
|
|
|
|
|
|
|
|
'pad of {0} chars created at width '
|
|
|
|
|
|
|
|
'{1}, actual={2}'.format(self._padsize,
|
|
|
|
|
|
|
|
width, actual))
|
|
|
|
|
|
|
|
|
|
|
|
def test_two_out_of_every_three_lines_are_empty_on_new_pad(self):
|
|
|
|
def test_two_out_of_every_three_lines_are_empty_on_new_pad(self):
|
|
|
|
pad = OT.create_pad(2000)
|
|
|
|
pad = OT.create_pad_lines(2000)
|
|
|
|
for lineno, line in enumerate(pad.splitlines()):
|
|
|
|
for lineno, line in enumerate(pad):
|
|
|
|
line = line.strip()
|
|
|
|
line = line.strip()
|
|
|
|
if OT._is_padline(lineno):
|
|
|
|
if OT._is_padline(lineno):
|
|
|
|
self.assertTrue(bool(len(line)),
|
|
|
|
self.assertTrue(bool(len(line)),
|
|
|
|