Sha256: 883bc698d0504e10941898e660b44e361db4effaabc7e64907fcb74c96246d38

Contents?: true

Size: 1.51 KB

Versions: 130

Compression:

Stored size: 1.51 KB

Contents

import unittest

import rotational_cipher


# test cases adapted from `x-common//canonical-data.json` @ version: 1.0.0

class RotationalCipher(unittest.TestCase):
    def test_rotate_a_by_1(self):
        self.assertEqual(rotational_cipher.rotate('a', 1), 'b')

    def test_rotate_a_by_26(self):
        self.assertEqual(rotational_cipher.rotate('a', 26), 'a')

    def test_rotate_a_by_0(self):
        self.assertEqual(rotational_cipher.rotate('a', 0), 'a')

    def test_rotate_m_by_13(self):
        self.assertEqual(rotational_cipher.rotate('m', 13), 'z')

    def test_rotate_n_by_13_with_wrap_around_alphabet(self):
        self.assertEqual(rotational_cipher.rotate('n', 13), 'a')

    def test_rotate_capital_letters(self):
        self.assertEqual(rotational_cipher.rotate('OMG', 5), 'TRL')

    def test_rotate_spaces(self):
        self.assertEqual(rotational_cipher.rotate('O M G', 5), 'T R L')

    def test_rotate_numbers(self):
        self.assertEqual(
            rotational_cipher.rotate('Testing 1 2 3 testing', 4),
            'Xiwxmrk 1 2 3 xiwxmrk')

    def test_rotate_punctuation(self):
        self.assertEqual(
            rotational_cipher.rotate("Let's eat, Grandma!", 21),
            "Gzo'n zvo, Bmviyhv!")

    def test_rotate_all_letters(self):
        self.assertEqual(
            rotational_cipher.rotate("The quick brown fox jumps"
                                     " over the lazy dog.", 13),
            "Gur dhvpx oebja sbk whzcf bire gur ynml qbt.")


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

Version data entries

130 entries across 130 versions & 1 rubygems

Version Path
trackler-2.1.0.34 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.33 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.32 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.31 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.30 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.29 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.28 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.27 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.26 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.25 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.24 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.23 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.22 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.21 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.20 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.19 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.18 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.17 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.16 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py
trackler-2.1.0.15 tracks/python/exercises/rotational-cipher/rotational_cipher_test.py