Passed
Push — master ( f1be22...ae8339 )
by Ken M.
01:20
created

test_braille_translator.Tests.test_Basics()   A

Complexity

Conditions 2

Size

Total Lines 3
Code Lines 3

Duplication

Lines 3
Ratio 100 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nop 1
dl 3
loc 3
rs 10
c 0
b 0
f 0
1
import unittest
2
3
from digit_stack import digit_stack
4
5
6 View Code Duplication
class Tests(unittest.TestCase):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
7
    TESTS = {
8
        "Basics": [
9
            {
10
                "input": [
11
                    'PUSH 3',
12
                    'POP',
13
                    'POP',
14
                    'PUSH 4',
15
                    'PEEK',
16
                    'PUSH 9',
17
                    'PUSH 0',
18
                    'PEEK',
19
                    'POP',
20
                    'PUSH 1',
21
                    'PEEK',
22
                ],
23
                "answer": 8,
24
            },
25
            {"input": ['POP', 'POP'], "answer": 0},
26
            {"input": ['PUSH 9', 'PUSH 9', 'POP'], "answer": 9},
27
            {"input": [], "answer": 0},
28
        ],
29
        "Edge": [
30
            {
31
                "input": [
32
                    'PUSH 0',
33
                    'PUSH 1',
34
                    'PUSH 2',
35
                    'PUSH 3',
36
                    'PUSH 4',
37
                    'PUSH 5',
38
                    'PUSH 6',
39
                    'PUSH 7',
40
                    'PUSH 8',
41
                    'PUSH 9',
42
                ],
43
                "answer": 0,
44
            },
45
            {"input": ['PEEK'], "answer": 0},
46
            {"input": ['POP'], "answer": 0},
47
            {
48
                "input": [
49
                    'PUSH 0',
50
                    'PEEK',
51
                    'PUSH 1',
52
                    'PEEK',
53
                    'PUSH 2',
54
                    'PEEK',
55
                    'PUSH 3',
56
                    'PEEK',
57
                    'PUSH 4',
58
                    'PEEK',
59
                    'PUSH 5',
60
                    'PEEK',
61
                    'PUSH 6',
62
                    'PEEK',
63
                    'PUSH 7',
64
                    'PEEK',
65
                    'PUSH 8',
66
                    'PEEK',
67
                    'PUSH 9',
68
                    'PEEK',
69
                ],
70
                "answer": 45,
71
            },
72
        ],
73
        "Extra": [
74
            {
75
                "input": [
76
                    'PUSH 3',
77
                    'PUSH 3',
78
                    'PUSH 0',
79
                    'POP',
80
                    'PEEK',
81
                    'PUSH 0',
82
                    'PUSH 2',
83
                    'PUSH 5',
84
                    'PUSH 1',
85
                ],
86
                "answer": 3,
87
            },
88
            {
89
                "input": [
90
                    'PUSH 0',
91
                    'PUSH 5',
92
                    'POP',
93
                    'PUSH 9',
94
                    'PUSH 3',
95
                    'POP',
96
                    'PUSH 5',
97
                    'PUSH 6',
98
                    'PUSH 2',
99
                    'PUSH 7',
100
                    'POP',
101
                    'POP',
102
                    'PUSH 3',
103
                    'PUSH 0',
104
                    'PUSH 9',
105
                    'POP',
106
                ],
107
                "answer": 26,
108
            },
109
            {"input": ['POP', 'PUSH 1', 'POP', 'PUSH 8', 'PEEK', 'POP'], "answer": 17},
110
            {
111
                "input": [
112
                    'POP',
113
                    'PUSH 6',
114
                    'PEEK',
115
                    'POP',
116
                    'POP',
117
                    'PUSH 1',
118
                    'POP',
119
                    'PUSH 3',
120
                    'POP',
121
                    'POP',
122
                    'POP',
123
                    'PEEK',
124
                    'PUSH 5',
125
                    'PEEK',
126
                    'PUSH 3',
127
                    'PEEK',
128
                    'PEEK',
129
                    'POP',
130
                ],
131
                "answer": 30,
132
            },
133
            {
134
                "input": [
135
                    'PUSH 1',
136
                    'PEEK',
137
                    'PUSH 2',
138
                    'PUSH 1',
139
                    'PEEK',
140
                    'PUSH 1',
141
                    'PUSH 9',
142
                    'PEEK',
143
                    'PEEK',
144
                    'PUSH 8',
145
                ],
146
                "answer": 20,
147
            },
148
        ],
149
    }
150
151
    def test_Basics(self):
152
        for i in self.TESTS['Basics']:
153
            assert digit_stack(i['input']) == i['answer']
154
155
    def test_Edge(self):
156
        for i in self.TESTS['Edge']:
157
            assert digit_stack(i['input']) == i['answer']
158
159
    def test_Extra(self):
160
        for i in self.TESTS['Extra']:
161
            assert digit_stack(i['input']) == i['answer']
162
163
164
if __name__ == "__main__":  # pragma: no cover
165
    unittest.main()
166