test_einstein_problem   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 257
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 215
dl 0
loc 257
rs 10
c 0
b 0
f 0
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A Tests.test_Basics() 0 3 2
A Tests.test_Extra() 0 3 2
1
import unittest
2
3
from einstein_problem import answer
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basic": [
9
            {
10
                "input": (
11
                    (
12
                        'Norwegian-Dunhill',
13
                        'Marlboro-blue',
14
                        'Brit-3',
15
                        'German-coffee',
16
                        'beer-white',
17
                        'cat-water',
18
                        'horse-2',
19
                        'milk-3',
20
                        '4-Rothmans',
21
                        'dog-Swede',
22
                        'Norwegian-1',
23
                        'horse-Marlboro',
24
                        'bird-Brit',
25
                        '4-green',
26
                        'Winfield-beer',
27
                        'Dane-blue',
28
                        '5-dog',
29
                        'blue-horse',
30
                        'yellow-cat',
31
                        'Winfield-Swede',
32
                        'tea-Marlboro',
33
                    ),
34
                    'fish-color',
35
                ),
36
                "answer": 'green',
37
            },
38
            {
39
                "input": (
40
                    (
41
                        'Norwegian-Dunhill',
42
                        'Marlboro-blue',
43
                        'Brit-3',
44
                        'German-coffee',
45
                        'beer-white',
46
                        'cat-water',
47
                        'horse-2',
48
                        'milk-3',
49
                        '4-Rothmans',
50
                        'dog-Swede',
51
                        'Norwegian-1',
52
                        'horse-Marlboro',
53
                        'bird-Brit',
54
                        '4-green',
55
                        'Winfield-beer',
56
                        'Dane-blue',
57
                        '5-dog',
58
                        'blue-horse',
59
                        'yellow-cat',
60
                        'Winfield-Swede',
61
                        'tea-Marlboro',
62
                    ),
63
                    'tea-number',
64
                ),
65
                "answer": '2',
66
            },
67
            {
68
                "input": (
69
                    (
70
                        'Norwegian-Dunhill',
71
                        'Marlboro-blue',
72
                        'Brit-3',
73
                        'German-coffee',
74
                        'beer-white',
75
                        'cat-water',
76
                        'horse-2',
77
                        'milk-3',
78
                        '4-Rothmans',
79
                        'dog-Swede',
80
                        'Norwegian-1',
81
                        'horse-Marlboro',
82
                        'bird-Brit',
83
                        '4-green',
84
                        'Winfield-beer',
85
                        'Dane-blue',
86
                        '5-dog',
87
                        'blue-horse',
88
                        'yellow-cat',
89
                        'Winfield-Swede',
90
                        'tea-Marlboro',
91
                    ),
92
                    'Norwegian-beverage',
93
                ),
94
                "answer": 'water',
95
            },
96
        ],
97
        "Extra": [
98
            {
99
                "input": (
100
                    [
101
                        'Norwegian-Dunhill',
102
                        'Marlboro-blue',
103
                        'Brit-3',
104
                        'German-coffee',
105
                        'beer-white',
106
                        'cat-water',
107
                        'horse-2',
108
                        'milk-3',
109
                        '4-Rothmans',
110
                        'dog-Swede',
111
                        'Norwegian-1',
112
                        'horse-Marlboro',
113
                        'bird-Brit',
114
                        '4-green',
115
                        'Winfield-beer',
116
                        'Dane-blue',
117
                        '5-dog',
118
                        'blue-horse',
119
                        'yellow-cat',
120
                        'Winfield-Swede',
121
                        'tea-Marlboro',
122
                    ],
123
                    'horse-cigarettes',
124
                ),
125
                "answer": 'Marlboro',
126
            },
127
            {
128
                "input": (
129
                    [
130
                        'Norwegian-Dunhill',
131
                        'Marlboro-blue',
132
                        'Brit-3',
133
                        'German-coffee',
134
                        'beer-white',
135
                        'cat-water',
136
                        'horse-2',
137
                        'milk-3',
138
                        '4-Rothmans',
139
                        'dog-Swede',
140
                        'Norwegian-1',
141
                        'horse-Marlboro',
142
                        'bird-Brit',
143
                        '4-green',
144
                        'Winfield-beer',
145
                        'Dane-blue',
146
                        '5-dog',
147
                        'blue-horse',
148
                        'yellow-cat',
149
                        'Winfield-Swede',
150
                        'tea-Marlboro',
151
                    ],
152
                    'green-number',
153
                ),
154
                "answer": '4',
155
            },
156
            {
157
                "input": (
158
                    [
159
                        'Norwegian-Dunhill',
160
                        'Marlboro-blue',
161
                        'Brit-3',
162
                        'German-coffee',
163
                        'beer-white',
164
                        'cat-water',
165
                        'horse-2',
166
                        'milk-3',
167
                        '4-Rothmans',
168
                        'dog-Swede',
169
                        'Norwegian-1',
170
                        'horse-Marlboro',
171
                        'bird-Brit',
172
                        '4-green',
173
                        'Winfield-beer',
174
                        'Dane-blue',
175
                        '5-dog',
176
                        'blue-horse',
177
                        'yellow-cat',
178
                        'Winfield-Swede',
179
                        'tea-Marlboro',
180
                    ],
181
                    'milk-color',
182
                ),
183
                "answer": 'red',
184
            },
185
            {
186
                "input": (
187
                    [
188
                        'Norwegian-Dunhill',
189
                        'Marlboro-blue',
190
                        'Brit-3',
191
                        'German-coffee',
192
                        'beer-white',
193
                        'cat-water',
194
                        'horse-2',
195
                        'milk-3',
196
                        '4-Rothmans',
197
                        'dog-Swede',
198
                        'Norwegian-1',
199
                        'horse-Marlboro',
200
                        'bird-Brit',
201
                        '4-green',
202
                        'Winfield-beer',
203
                        'Dane-blue',
204
                        '5-dog',
205
                        'blue-horse',
206
                        'yellow-cat',
207
                        'Winfield-Swede',
208
                        'tea-Marlboro',
209
                    ],
210
                    'Winfield-nationality',
211
                ),
212
                "answer": 'Swede',
213
            },
214
            {
215
                "input": (
216
                    [
217
                        'Norwegian-Dunhill',
218
                        'Marlboro-blue',
219
                        'Brit-3',
220
                        'German-coffee',
221
                        'beer-white',
222
                        'cat-water',
223
                        'horse-2',
224
                        'milk-3',
225
                        '4-Rothmans',
226
                        'dog-Swede',
227
                        'Norwegian-1',
228
                        'horse-Marlboro',
229
                        'bird-Brit',
230
                        '4-green',
231
                        'Winfield-beer',
232
                        'Dane-blue',
233
                        '5-dog',
234
                        'blue-horse',
235
                        'yellow-cat',
236
                        'Winfield-Swede',
237
                        'tea-Marlboro',
238
                    ],
239
                    'yellow-pet',
240
                ),
241
                "answer": 'cat',
242
            },
243
        ],
244
    }
245
246
    def test_Basics(self):
247
        for i in self.TESTS['Basic']:
248
            assert answer(*i['input']) == i['answer']
249
250
    def test_Extra(self):
251
        for i in self.TESTS['Extra']:
252
            assert answer(*i['input']) == i['answer']
253
254
255
if __name__ == "__main__":  # pragma: no cover
256
    unittest.main()
257