Passed
Push — master ( 09536f...eb37ad )
by Ken M.
01:39 queued 41s
created

test_letter_queue.Tests.test_Extra()   A

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 letter_queue import letter_queue
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            {
10
                "input": [
11
                    "PUSH A",
12
                    "POP",
13
                    "POP",
14
                    "PUSH Z",
15
                    "PUSH D",
16
                    "PUSH O",
17
                    "POP",
18
                    "PUSH T",
19
                ],
20
                "answer": "DOT",
21
                "explanation": "",
22
            },
23
            {"input": ["POP", "POP"], "answer": "", "explanation": ""},
24
            {"input": ["PUSH H", "PUSH I"], "answer": "HI", "explanation": ""},
25
            {"input": [], "answer": "", "explanation": ""},
26
        ],
27
        "Edge": [
28
            {"input": ["POP"], "answer": ""},
29
            {"input": ["PUSH Z"], "answer": "Z"},
30
            {
31
                "input": [
32
                    'PUSH A',
33
                    'PUSH B',
34
                    'PUSH C',
35
                    'PUSH D',
36
                    'PUSH E',
37
                    'PUSH F',
38
                    'PUSH G',
39
                    'PUSH H',
40
                    'PUSH I',
41
                    'PUSH J',
42
                    'PUSH K',
43
                    'PUSH L',
44
                    'PUSH M',
45
                    'PUSH N',
46
                    'PUSH O',
47
                    'PUSH P',
48
                    'PUSH Q',
49
                    'PUSH R',
50
                    'PUSH S',
51
                    'PUSH T',
52
                    'PUSH U',
53
                    'PUSH V',
54
                    'PUSH W',
55
                    'PUSH X',
56
                    'PUSH Y',
57
                    'PUSH Z',
58
                ],
59
                "answer": "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
60
            },
61
            {
62
                "input": [
63
                    'PUSH A',
64
                    'PUSH B',
65
                    'PUSH C',
66
                    'PUSH D',
67
                    "POP",
68
                    'PUSH E',
69
                    'PUSH F',
70
                    'PUSH G',
71
                    'PUSH H',
72
                    "POP",
73
                    'PUSH I',
74
                    'PUSH J',
75
                    'PUSH K',
76
                    'PUSH L',
77
                    "POP",
78
                    "POP",
79
                    'PUSH M',
80
                    'PUSH N',
81
                    'PUSH O',
82
                    'PUSH P',
83
                    'PUSH Q',
84
                    'PUSH R',
85
                    'PUSH S',
86
                    'PUSH T',
87
                    'PUSH U',
88
                    'PUSH V',
89
                    'PUSH W',
90
                    'PUSH X',
91
                    'PUSH Y',
92
                    'PUSH Z',
93
                ],
94
                "answer": "EFGHIJKLMNOPQRSTUVWXYZ",
95
            },
96
        ],
97
        "Extra": [
98
            {
99
                "input": [
100
                    'PUSH X',
101
                    'POP',
102
                    'POP',
103
                    'POP',
104
                    'POP',
105
                    'PUSH J',
106
                    'PUSH V',
107
                    'PUSH J',
108
                    'PUSH H',
109
                    'POP',
110
                    'PUSH H',
111
                    'PUSH M',
112
                    'POP',
113
                    'PUSH K',
114
                    'PUSH T',
115
                ],
116
                "answer": "JHHMKT",
117
            },
118
            {"input": ['PUSH C', 'PUSH B'], "answer": "CB"},
119
            {
120
                "input": [
121
                    'POP',
122
                    'PUSH S',
123
                    'POP',
124
                    'PUSH X',
125
                    'PUSH U',
126
                    'POP',
127
                    'POP',
128
                    'PUSH X',
129
                    'POP',
130
                    'POP',
131
                    'PUSH Z',
132
                    'PUSH G',
133
                    'POP',
134
                    'PUSH F',
135
                    'PUSH M',
136
                    'PUSH I',
137
                    'POP',
138
                    'POP',
139
                    'POP',
140
                    'PUSH S',
141
                    'POP',
142
                    'POP',
143
                    'PUSH S',
144
                    'PUSH E',
145
                    'POP',
146
                    'POP',
147
                    'PUSH E',
148
                ],
149
                "answer": "E",
150
            },
151
            {
152
                "input": [
153
                    'PUSH U',
154
                    'POP',
155
                    'PUSH B',
156
                    'PUSH O',
157
                    'PUSH G',
158
                    'POP',
159
                    'POP',
160
                    'PUSH R',
161
                    'POP',
162
                    'POP',
163
                    'POP',
164
                    'PUSH J',
165
                    'PUSH N',
166
                    'PUSH D',
167
                    'PUSH V',
168
                    'POP',
169
                    'PUSH S',
170
                    'POP',
171
                    'PUSH P',
172
                ],
173
                "answer": "DVSP",
174
            },
175
            {
176
                "input": [
177
                    'PUSH B',
178
                    'PUSH H',
179
                    'PUSH H',
180
                    'PUSH U',
181
                    'PUSH G',
182
                    'POP',
183
                    'PUSH S',
184
                    'POP',
185
                    'PUSH O',
186
                    'POP',
187
                    'PUSH C',
188
                    'POP',
189
                    'PUSH L',
190
                    'PUSH A',
191
                    'POP',
192
                    'PUSH C',
193
                ],
194
                "answer": "SOCLAC",
195
            },
196
            {
197
                "input": [
198
                    'POP',
199
                    'POP',
200
                    'PUSH B',
201
                    'POP',
202
                    'POP',
203
                    'PUSH Q',
204
                    'PUSH S',
205
                    'POP',
206
                    'POP',
207
                    'POP',
208
                    'POP',
209
                    'POP',
210
                    'PUSH Y',
211
                    'PUSH T',
212
                    'PUSH P',
213
                    'PUSH Y',
214
                    'PUSH O',
215
                    'PUSH N',
216
                    'POP',
217
                    'POP',
218
                    'PUSH M',
219
                    'PUSH U',
220
                    'POP',
221
                    'PUSH N',
222
                    'PUSH P',
223
                    'PUSH R',
224
                    'PUSH U',
225
                    'PUSH J',
226
                    'PUSH X',
227
                ],
228
                "answer": "YONMUNPRUJX",
229
            },
230
        ],
231
    }
232
233
    def test_Basics(self):
234
        for i in self.TESTS['Basics']:
235
            assert letter_queue(i['input']) == i['answer']
236
237
    def test_Extra(self):
238
        for i in self.TESTS['Edge']:
239
            assert letter_queue(i['input']) == i['answer']
240
241
    def test_Extra(self):
242
        for i in self.TESTS['Extra']:
243
            assert letter_queue(i['input']) == i['answer']
244
245
246
if __name__ == "__main__":  # pragma: no cover
247
    unittest.main()
248