test_cipher_map.Tests.test_Edge()   A
last analyzed

Complexity

Conditions 2

Size

Total Lines 3
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nop 1
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
import unittest
2
3
from cipher_map import recall_password
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            {
10
                "input": [
11
                    ["X...", "..X.", "X..X", "...."],
12
                    ["itdf", "gdce", "aton", "qrdi"],
13
                ],
14
                "answer": "icantforgetiddqd",
15
            },
16
            {
17
                "input": [
18
                    ["....", "X..X", ".X..", "...X"],
19
                    ["xhwc", "rsqx", "xqzz", "fyzr"],
20
                ],
21
                "answer": "rxqrwsfzxqxzhczy",
22
            },
23
        ],
24
        "Edge": [
25
            {
26
                "input": [
27
                    ["X...", ".X..", "..X.", "...X"],
28
                    ["aaaa", "aaaa", "aaaa", "aaaa"],
29
                ],
30
                "answer": "aaaaaaaaaaaaaaaa",
31
            },
32
            {
33
                "input": [
34
                    ["X..X", "....", "....", "X..X"],
35
                    ["abcd", "efgh", "ijkl", "mnop"],
36
                ],
37
                "answer": "admpadmpadmpadmp",
38
            },
39
            {
40
                "input": [
41
                    ["....", ".XX.", ".XX.", "...."],
42
                    ["abcd", "efgh", "ijkl", "mnop"],
43
                ],
44
                "answer": "fgjkfgjkfgjkfgjk",
45
            },
46
        ],
47
        "Extra": [
48
            {
49
                "input": [
50
                    ["X...", ".X..", "..X.", "...X"],
51
                    ["azbx", "azbx", "azbx", "azbx"],
52
                ],
53
                "answer": "azbxxbzaazbxxbza",
54
            },
55
            {
56
                "input": [
57
                    ["XXXX", "....", "....", "...."],
58
                    ["call", "rsqi", "epzn", "yeee"],
59
                ],
60
                "answer": "calllineyeeecrey",
61
            },
62
            {
63
                "input": [
64
                    ["X...", "X...", "X...", "X..."],
65
                    ["call", "rsqi", "epzn", "yeee"],
66
                ],
67
                "answer": "creycalllineyeee",
68
            },
69
            {
70
                "input": [
71
                    ["X...", "..X.", ".X..", "...X"],
72
                    ["name", "goto", "line", "nope"],
73
                ],
74
                "answer": "ntieeonnntieeonn",
75
            },
76
            {
77
                "input": [
78
                    ["XX..", "....", "....", "..XX"],
79
                    ["cree", "band", "test", "yepp"],
80
                ],
81
                "answer": "crppedtycrppedty",
82
            },
83
            {
84
                "input": [
85
                    ["....", "X..X", "X..X", "...."],
86
                    ["cree", "band", "test", "yepp"],
87
                ],
88
                "answer": "bdttreepbdttreep",
89
            },
90
            {
91
                "input": [
92
                    ["...X", "..X.", "..X.", "...X"],
93
                    ["aazz", "aazz", "aazz", "aazz"],
94
                ],
95
                "answer": "zzzzazazaaaaazaz",
96
            },
97
        ],
98
    }
99
100
    def test_Basics(self):
101
        for i in self.TESTS['Basics']:
102
            assert recall_password(i['input'][0], i['input'][1]) == i['answer']
103
104
    def test_Edge(self):
105
        for i in self.TESTS['Edge']:
106
            assert recall_password(i['input'][0], i['input'][1]) == i['answer']
107
108
    def test_Extra(self):
109
        for i in self.TESTS['Extra']:
110
            assert recall_password(i['input'][0], i['input'][1]) == i['answer']
111
112
113
if __name__ == "__main__":  # pragma: no cover
114
    unittest.main()
115