Passed
Push — master ( ce962b...ffd958 )
by Ken M.
01:12
created

test_multiplication_table   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 607
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 478
dl 0
loc 607
rs 10
c 0
b 0
f 0
wmc 6

3 Methods

Rating   Name   Duplication   Size   Complexity  
A Tests.test_Basics() 0 3 2
A Tests.test_Extra2() 0 3 2
A Tests.test_Extra() 0 3 2
1
import unittest
2
3
from multiplication_table import checkio
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "0. Basics": [
9
            {
10
                'input': [4, 6],
11
                'answer': 38,
12
                'explanation': [
13
                    [6, 19, 13],
14
                    [
15
                        ['1', '1', '0'],
16
                        ['1', '1', '1', '0', 6],
17
                        ['0', '0', '0', '0', 0],
18
                        ['0', '0', '0', '0', 0],
19
                        6,
20
                    ],
21
                    [
22
                        ['1', '1', '0'],
23
                        ['1', '1', '1', '1', 7],
24
                        ['0', '1', '1', '0', 6],
25
                        ['0', '1', '1', '0', 6],
26
                        19,
27
                    ],
28
                    [
29
                        ['1', '1', '0'],
30
                        ['1', '0', '0', '1', 1],
31
                        ['0', '1', '1', '0', 6],
32
                        ['0', '1', '1', '0', 6],
33
                        13,
34
                    ],
35
                ],
36
            },
37
            {
38
                'input': [2, 7],
39
                'answer': 28,
40
                'explanation': [
41
                    [7, 14, 7],
42
                    [
43
                        ['1', '1', '1'],
44
                        ['1', '1', '1', '1', 7],
45
                        ['0', '0', '0', '0', 0],
46
                        7,
47
                    ],
48
                    [
49
                        ['1', '1', '1'],
50
                        ['1', '1', '1', '1', 7],
51
                        ['0', '1', '1', '1', 7],
52
                        14,
53
                    ],
54
                    [
55
                        ['1', '1', '1'],
56
                        ['1', '0', '0', '0', 0],
57
                        ['0', '1', '1', '1', 7],
58
                        7,
59
                    ],
60
                ],
61
            },
62
            {
63
                'input': [7, 2],
64
                'answer': 18,
65
                'explanation': [
66
                    [6, 9, 3],
67
                    [
68
                        ['1', '0'],
69
                        ['1', '1', '0', 2],
70
                        ['1', '1', '0', 2],
71
                        ['1', '1', '0', 2],
72
                        6,
73
                    ],
74
                    [
75
                        ['1', '0'],
76
                        ['1', '1', '1', 3],
77
                        ['1', '1', '1', 3],
78
                        ['1', '1', '1', 3],
79
                        9,
80
                    ],
81
                    [
82
                        ['1', '0'],
83
                        ['1', '0', '1', 1],
84
                        ['1', '0', '1', 1],
85
                        ['1', '0', '1', 1],
86
                        3,
87
                    ],
88
                ],
89
            },
90
        ],
91
        "1. Extra": [
92
            {
93
                'answer': 2,
94
                'explanation': [
95
                    [1, 1, 0],
96
                    [['1'], ['1', '1', 1], 1],
97
                    [['1'], ['1', '1', 1], 1],
98
                    [['1'], ['1', '0', 0], 0],
99
                ],
100
                'input': [1, 1],
101
            },
102
            {
103
                'answer': 10,
104
                'explanation': [
105
                    [2, 5, 3],
106
                    [['1', '0'], ['1', '1', '0', 2], ['0', '0', '0', 0], 2],
107
                    [['1', '0'], ['1', '1', '1', 3], ['0', '1', '0', 2], 5],
108
                    [['1', '0'], ['1', '0', '1', 1], ['0', '1', '0', 2], 3],
109
                ],
110
                'input': [2, 2],
111
            },
112
            {
113
                'answer': 60,
114
                'explanation': [
115
                    [18, 30, 12],
116
                    [
117
                        ['1', '0', '0', '1'],
118
                        ['1', '1', '0', '0', '1', 9],
119
                        ['1', '1', '0', '0', '1', 9],
120
                        18,
121
                    ],
122
                    [
123
                        ['1', '0', '0', '1'],
124
                        ['1', '1', '1', '1', '1', 15],
125
                        ['1', '1', '1', '1', '1', 15],
126
                        30,
127
                    ],
128
                    [
129
                        ['1', '0', '0', '1'],
130
                        ['1', '0', '1', '1', '0', 6],
131
                        ['1', '0', '1', '1', '0', 6],
132
                        12,
133
                    ],
134
                ],
135
                'input': [3, 9],
136
            },
137
            {
138
                'answer': 84,
139
                'explanation': [
140
                    [9, 42, 33],
141
                    [
142
                        ['1', '0', '0', '1'],
143
                        ['1', '1', '0', '0', '1', 9],
144
                        ['0', '0', '0', '0', '0', 0],
145
                        ['0', '0', '0', '0', '0', 0],
146
                        ['0', '0', '0', '0', '0', 0],
147
                        9,
148
                    ],
149
                    [
150
                        ['1', '0', '0', '1'],
151
                        ['1', '1', '1', '1', '1', 15],
152
                        ['0', '1', '0', '0', '1', 9],
153
                        ['0', '1', '0', '0', '1', 9],
154
                        ['0', '1', '0', '0', '1', 9],
155
                        42,
156
                    ],
157
                    [
158
                        ['1', '0', '0', '1'],
159
                        ['1', '0', '1', '1', '0', 6],
160
                        ['0', '1', '0', '0', '1', 9],
161
                        ['0', '1', '0', '0', '1', 9],
162
                        ['0', '1', '0', '0', '1', 9],
163
                        33,
164
                    ],
165
                ],
166
                'input': [8, 9],
167
            },
168
            {
169
                'answer': 92,
170
                'explanation': [
171
                    [16, 46, 30],
172
                    [
173
                        ['1', '0', '0', '0'],
174
                        ['1', '1', '0', '0', '0', 8],
175
                        ['0', '0', '0', '0', '0', 0],
176
                        ['0', '0', '0', '0', '0', 0],
177
                        ['1', '1', '0', '0', '0', 8],
178
                        16,
179
                    ],
180
                    [
181
                        ['1', '0', '0', '0'],
182
                        ['1', '1', '1', '1', '1', 15],
183
                        ['0', '1', '0', '0', '0', 8],
184
                        ['0', '1', '0', '0', '0', 8],
185
                        ['1', '1', '1', '1', '1', 15],
186
                        46,
187
                    ],
188
                    [
189
                        ['1', '0', '0', '0'],
190
                        ['1', '0', '1', '1', '1', 7],
191
                        ['0', '1', '0', '0', '0', 8],
192
                        ['0', '1', '0', '0', '0', 8],
193
                        ['1', '0', '1', '1', '1', 7],
194
                        30,
195
                    ],
196
                ],
197
                'input': [9, 8],
198
            },
199
            {
200
                'answer': 28,
201
                'explanation': [
202
                    [8, 14, 6],
203
                    [
204
                        ['1', '0', '0'],
205
                        ['1', '1', '0', '0', 4],
206
                        ['1', '1', '0', '0', 4],
207
                        8,
208
                    ],
209
                    [
210
                        ['1', '0', '0'],
211
                        ['1', '1', '1', '1', 7],
212
                        ['1', '1', '1', '1', 7],
213
                        14,
214
                    ],
215
                    [
216
                        ['1', '0', '0'],
217
                        ['1', '0', '1', '1', 3],
218
                        ['1', '0', '1', '1', 3],
219
                        6,
220
                    ],
221
                ],
222
                'input': [3, 4],
223
            },
224
            {
225
                'answer': 36,
226
                'explanation': [
227
                    [8, 18, 10],
228
                    [
229
                        ['1', '0', '0'],
230
                        ['1', '1', '0', '0', 4],
231
                        ['0', '0', '0', '0', 0],
232
                        ['1', '1', '0', '0', 4],
233
                        8,
234
                    ],
235
                    [
236
                        ['1', '0', '0'],
237
                        ['1', '1', '1', '1', 7],
238
                        ['0', '1', '0', '0', 4],
239
                        ['1', '1', '1', '1', 7],
240
                        18,
241
                    ],
242
                    [
243
                        ['1', '0', '0'],
244
                        ['1', '0', '1', '1', 3],
245
                        ['0', '1', '0', '0', 4],
246
                        ['1', '0', '1', '1', 3],
247
                        10,
248
                    ],
249
                ],
250
                'input': [5, 4],
251
            },
252
            {
253
                'answer': 90,
254
                'explanation': [
255
                    [24, 45, 21],
256
                    [
257
                        ['1', '0', '0', '0'],
258
                        ['1', '1', '0', '0', '0', 8],
259
                        ['1', '1', '0', '0', '0', 8],
260
                        ['1', '1', '0', '0', '0', 8],
261
                        24,
262
                    ],
263
                    [
264
                        ['1', '0', '0', '0'],
265
                        ['1', '1', '1', '1', '1', 15],
266
                        ['1', '1', '1', '1', '1', 15],
267
                        ['1', '1', '1', '1', '1', 15],
268
                        45,
269
                    ],
270
                    [
271
                        ['1', '0', '0', '0'],
272
                        ['1', '0', '1', '1', '1', 7],
273
                        ['1', '0', '1', '1', '1', 7],
274
                        ['1', '0', '1', '1', '1', 7],
275
                        21,
276
                    ],
277
                ],
278
                'input': [7, 8],
279
            },
280
            {
281
                'answer': 12,
282
                'explanation': [
283
                    [4, 6, 2],
284
                    [['1', '0'], ['1', '1', '0', 2], ['1', '1', '0', 2], 4],
285
                    [['1', '0'], ['1', '1', '1', 3], ['1', '1', '1', 3], 6],
286
                    [['1', '0'], ['1', '0', '1', 1], ['1', '0', '1', 1], 2],
287
                ],
288
                'input': [3, 2],
289
            },
290
        ],
291
        "2. Extra": [
292
            {
293
                'explanation': [
294
                    [4, 10, 6],
295
                    [
296
                        ['1', '0'],
297
                        ['1', '1', '0', 2],
298
                        ['0', '0', '0', 0],
299
                        ['1', '1', '0', 2],
300
                        ['0', '0', '0', 0],
301
                        4,
302
                    ],
303
                    [
304
                        ['1', '0'],
305
                        ['1', '1', '1', 3],
306
                        ['0', '1', '0', 2],
307
                        ['1', '1', '1', 3],
308
                        ['0', '1', '0', 2],
309
                        10,
310
                    ],
311
                    [
312
                        ['1', '0'],
313
                        ['1', '0', '1', 1],
314
                        ['0', '1', '0', 2],
315
                        ['1', '0', '1', 1],
316
                        ['0', '1', '0', 2],
317
                        6,
318
                    ],
319
                ],
320
                'answer': 20,
321
                'input': [10, 2],
322
            },
323
            {
324
                'explanation': [
325
                    [10, 25, 15],
326
                    [
327
                        ['1', '0', '1', '0'],
328
                        ['1', '1', '0', '1', '0', 10],
329
                        ['0', '0', '0', '0', '0', 0],
330
                        10,
331
                    ],
332
                    [
333
                        ['1', '0', '1', '0'],
334
                        ['1', '1', '1', '1', '1', 15],
335
                        ['0', '1', '0', '1', '0', 10],
336
                        25,
337
                    ],
338
                    [
339
                        ['1', '0', '1', '0'],
340
                        ['1', '0', '1', '0', '1', 5],
341
                        ['0', '1', '0', '1', '0', 10],
342
                        15,
343
                    ],
344
                ],
345
                'answer': 50,
346
                'input': [2, 10],
347
            },
348
            {
349
                'explanation': [
350
                    [36, 57, 21],
351
                    [
352
                        ['1', '1', '0', '0'],
353
                        ['1', '1', '1', '0', '0', 12],
354
                        ['0', '0', '0', '0', '0', 0],
355
                        ['1', '1', '1', '0', '0', 12],
356
                        ['1', '1', '1', '0', '0', 12],
357
                        36,
358
                    ],
359
                    [
360
                        ['1', '1', '0', '0'],
361
                        ['1', '1', '1', '1', '1', 15],
362
                        ['0', '1', '1', '0', '0', 12],
363
                        ['1', '1', '1', '1', '1', 15],
364
                        ['1', '1', '1', '1', '1', 15],
365
                        57,
366
                    ],
367
                    [
368
                        ['1', '1', '0', '0'],
369
                        ['1', '0', '0', '1', '1', 3],
370
                        ['0', '1', '1', '0', '0', 12],
371
                        ['1', '0', '0', '1', '1', 3],
372
                        ['1', '0', '0', '1', '1', 3],
373
                        21,
374
                    ],
375
                ],
376
                'answer': 114,
377
                'input': [11, 12],
378
            },
379
            {
380
                'explanation': [
381
                    [4, 23, 19],
382
                    [
383
                        ['1', '0', '0'],
384
                        ['1', '1', '0', '0', 4],
385
                        ['0', '0', '0', '0', 0],
386
                        ['0', '0', '0', '0', 0],
387
                        ['0', '0', '0', '0', 0],
388
                        ['0', '0', '0', '0', 0],
389
                        4,
390
                    ],
391
                    [
392
                        ['1', '0', '0'],
393
                        ['1', '1', '1', '1', 7],
394
                        ['0', '1', '0', '0', 4],
395
                        ['0', '1', '0', '0', 4],
396
                        ['0', '1', '0', '0', 4],
397
                        ['0', '1', '0', '0', 4],
398
                        23,
399
                    ],
400
                    [
401
                        ['1', '0', '0'],
402
                        ['1', '0', '1', '1', 3],
403
                        ['0', '1', '0', '0', 4],
404
                        ['0', '1', '0', '0', 4],
405
                        ['0', '1', '0', '0', 4],
406
                        ['0', '1', '0', '0', 4],
407
                        19,
408
                    ],
409
                ],
410
                'answer': 46,
411
                'input': [16, 4],
412
            },
413
            {
414
                'explanation': [
415
                    [8, 30, 22],
416
                    [
417
                        ['1', '0', '0'],
418
                        ['1', '1', '0', '0', 4],
419
                        ['0', '0', '0', '0', 0],
420
                        ['0', '0', '0', '0', 0],
421
                        ['0', '0', '0', '0', 0],
422
                        ['0', '0', '0', '0', 0],
423
                        ['1', '1', '0', '0', 4],
424
                        8,
425
                    ],
426
                    [
427
                        ['1', '0', '0'],
428
                        ['1', '1', '1', '1', 7],
429
                        ['0', '1', '0', '0', 4],
430
                        ['0', '1', '0', '0', 4],
431
                        ['0', '1', '0', '0', 4],
432
                        ['0', '1', '0', '0', 4],
433
                        ['1', '1', '1', '1', 7],
434
                        30,
435
                    ],
436
                    [
437
                        ['1', '0', '0'],
438
                        ['1', '0', '1', '1', 3],
439
                        ['0', '1', '0', '0', 4],
440
                        ['0', '1', '0', '0', 4],
441
                        ['0', '1', '0', '0', 4],
442
                        ['0', '1', '0', '0', 4],
443
                        ['1', '0', '1', '1', 3],
444
                        22,
445
                    ],
446
                ],
447
                'answer': 60,
448
                'input': [33, 4],
449
            },
450
            {
451
                'explanation': [
452
                    [32, 94, 62],
453
                    [
454
                        ['1', '0', '0', '0', '0'],
455
                        ['1', '1', '0', '0', '0', '0', 16],
456
                        ['1', '1', '0', '0', '0', '0', 16],
457
                        ['0', '0', '0', '0', '0', '0', 0],
458
                        ['0', '0', '0', '0', '0', '0', 0],
459
                        32,
460
                    ],
461
                    [
462
                        ['1', '0', '0', '0', '0'],
463
                        ['1', '1', '1', '1', '1', '1', 31],
464
                        ['1', '1', '1', '1', '1', '1', 31],
465
                        ['0', '1', '0', '0', '0', '0', 16],
466
                        ['0', '1', '0', '0', '0', '0', 16],
467
                        94,
468
                    ],
469
                    [
470
                        ['1', '0', '0', '0', '0'],
471
                        ['1', '0', '1', '1', '1', '1', 15],
472
                        ['1', '0', '1', '1', '1', '1', 15],
473
                        ['0', '1', '0', '0', '0', '0', 16],
474
                        ['0', '1', '0', '0', '0', '0', 16],
475
                        62,
476
                    ],
477
                ],
478
                'answer': 188,
479
                'input': [12, 16],
480
            },
481
            {
482
                'explanation': [
483
                    [30, 75, 45],
484
                    [
485
                        ['1', '1', '1', '1'],
486
                        ['1', '1', '1', '1', '1', 15],
487
                        ['0', '0', '0', '0', '0', 0],
488
                        ['0', '0', '0', '0', '0', 0],
489
                        ['1', '1', '1', '1', '1', 15],
490
                        ['0', '0', '0', '0', '0', 0],
491
                        30,
492
                    ],
493
                    [
494
                        ['1', '1', '1', '1'],
495
                        ['1', '1', '1', '1', '1', 15],
496
                        ['0', '1', '1', '1', '1', 15],
497
                        ['0', '1', '1', '1', '1', 15],
498
                        ['1', '1', '1', '1', '1', 15],
499
                        ['0', '1', '1', '1', '1', 15],
500
                        75,
501
                    ],
502
                    [
503
                        ['1', '1', '1', '1'],
504
                        ['1', '0', '0', '0', '0', 0],
505
                        ['0', '1', '1', '1', '1', 15],
506
                        ['0', '1', '1', '1', '1', 15],
507
                        ['1', '0', '0', '0', '0', 0],
508
                        ['0', '1', '1', '1', '1', 15],
509
                        45,
510
                    ],
511
                ],
512
                'answer': 150,
513
                'input': [18, 15],
514
            },
515
            {
516
                'explanation': [
517
                    [16, 95, 79],
518
                    [
519
                        ['1', '0', '0', '0', '0'],
520
                        ['1', '1', '0', '0', '0', '0', 16],
521
                        ['0', '0', '0', '0', '0', '0', 0],
522
                        ['0', '0', '0', '0', '0', '0', 0],
523
                        ['0', '0', '0', '0', '0', '0', 0],
524
                        ['0', '0', '0', '0', '0', '0', 0],
525
                        16,
526
                    ],
527
                    [
528
                        ['1', '0', '0', '0', '0'],
529
                        ['1', '1', '1', '1', '1', '1', 31],
530
                        ['0', '1', '0', '0', '0', '0', 16],
531
                        ['0', '1', '0', '0', '0', '0', 16],
532
                        ['0', '1', '0', '0', '0', '0', 16],
533
                        ['0', '1', '0', '0', '0', '0', 16],
534
                        95,
535
                    ],
536
                    [
537
                        ['1', '0', '0', '0', '0'],
538
                        ['1', '0', '1', '1', '1', '1', 15],
539
                        ['0', '1', '0', '0', '0', '0', 16],
540
                        ['0', '1', '0', '0', '0', '0', 16],
541
                        ['0', '1', '0', '0', '0', '0', 16],
542
                        ['0', '1', '0', '0', '0', '0', 16],
543
                        79,
544
                    ],
545
                ],
546
                'answer': 190,
547
                'input': [16, 16],
548
            },
549
            {
550
                'explanation': [
551
                    [3, 21, 18],
552
                    [
553
                        ['1', '1'],
554
                        ['1', '1', '1', 3],
555
                        ['0', '0', '0', 0],
556
                        ['0', '0', '0', 0],
557
                        ['0', '0', '0', 0],
558
                        ['0', '0', '0', 0],
559
                        ['0', '0', '0', 0],
560
                        ['0', '0', '0', 0],
561
                        3,
562
                    ],
563
                    [
564
                        ['1', '1'],
565
                        ['1', '1', '1', 3],
566
                        ['0', '1', '1', 3],
567
                        ['0', '1', '1', 3],
568
                        ['0', '1', '1', 3],
569
                        ['0', '1', '1', 3],
570
                        ['0', '1', '1', 3],
571
                        ['0', '1', '1', 3],
572
                        21,
573
                    ],
574
                    [
575
                        ['1', '1'],
576
                        ['1', '0', '0', 0],
577
                        ['0', '1', '1', 3],
578
                        ['0', '1', '1', 3],
579
                        ['0', '1', '1', 3],
580
                        ['0', '1', '1', 3],
581
                        ['0', '1', '1', 3],
582
                        ['0', '1', '1', 3],
583
                        18,
584
                    ],
585
                ],
586
                'answer': 42,
587
                'input': [64, 3],
588
            },
589
        ],
590
    }
591
592
    def test_Basics(self):
593
        for i in self.TESTS['0. Basics']:
594
            assert checkio(*i['input']) == i['answer']
595
596
    def test_Extra(self):
597
        for i in self.TESTS['1. Extra']:
598
            assert checkio(*i['input']) == i['answer']
599
600
    def test_Extra2(self):
601
        for i in self.TESTS['2. Extra']:
602
            assert checkio(*i['input']) == i['answer']
603
604
605
if __name__ == "__main__":  # pragma: no cover
606
    unittest.main()
607