test_feed_pigeons   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 792
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 729
dl 0
loc 792
rs 9.871
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 feed_pigeons import checkio
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            {'answer': 1, 'input': 1, 'explanation': [1]},
10
            {'answer': 2, 'input': 3, 'explanation': [2, 1, 0]},
11
            {'answer': 3, 'input': 5, 'explanation': [3, 1, 1, 0, 0, 0]},
12
            {'answer': 6, 'input': 10, 'explanation': [3, 2, 2, 1, 1, 1]},
13
        ],
14
        "Extra": [
15
            {'answer': 8, 'input': 18, 'explanation': [4, 3, 3, 2, 2, 2, 1, 1, 0, 0]},
16
            {
17
                'answer': 10,
18
                'input': 27,
19
                'explanation': [5, 4, 4, 3, 3, 3, 2, 1, 1, 1, 0, 0, 0, 0, 0],
20
            },
21
            {
22
                'answer': 15,
23
                'input': 40,
24
                'explanation': [
25
                    6,
26
                    5,
27
                    5,
28
                    4,
29
                    4,
30
                    3,
31
                    2,
32
                    2,
33
                    2,
34
                    2,
35
                    1,
36
                    1,
37
                    1,
38
                    1,
39
                    1,
40
                    0,
41
                    0,
42
                    0,
43
                    0,
44
                    0,
45
                    0,
46
                ],
47
            },
48
            {
49
                'answer': 15,
50
                'input': 40,
51
                'explanation': [
52
                    6,
53
                    5,
54
                    5,
55
                    4,
56
                    4,
57
                    3,
58
                    2,
59
                    2,
60
                    2,
61
                    2,
62
                    1,
63
                    1,
64
                    1,
65
                    1,
66
                    1,
67
                    0,
68
                    0,
69
                    0,
70
                    0,
71
                    0,
72
                    0,
73
                ],
74
            },
75
            {
76
                'answer': 18,
77
                'input': 53,
78
                'explanation': [
79
                    6,
80
                    5,
81
                    5,
82
                    4,
83
                    4,
84
                    4,
85
                    3,
86
                    3,
87
                    3,
88
                    3,
89
                    2,
90
                    2,
91
                    2,
92
                    2,
93
                    2,
94
                    1,
95
                    1,
96
                    1,
97
                    0,
98
                    0,
99
                    0,
100
                ],
101
            },
102
            {
103
                'answer': 21,
104
                'input': 64,
105
                'explanation': [
106
                    7,
107
                    6,
108
                    6,
109
                    5,
110
                    5,
111
                    5,
112
                    4,
113
                    4,
114
                    3,
115
                    3,
116
                    2,
117
                    2,
118
                    2,
119
                    2,
120
                    2,
121
                    1,
122
                    1,
123
                    1,
124
                    1,
125
                    1,
126
                    1,
127
                    0,
128
                    0,
129
                    0,
130
                    0,
131
                    0,
132
                    0,
133
                    0,
134
                ],
135
            },
136
            {
137
                'answer': 21,
138
                'input': 74,
139
                'explanation': [
140
                    7,
141
                    6,
142
                    6,
143
                    5,
144
                    5,
145
                    5,
146
                    4,
147
                    4,
148
                    4,
149
                    4,
150
                    3,
151
                    3,
152
                    3,
153
                    3,
154
                    3,
155
                    2,
156
                    2,
157
                    2,
158
                    1,
159
                    1,
160
                    1,
161
                    0,
162
                    0,
163
                    0,
164
                    0,
165
                    0,
166
                    0,
167
                    0,
168
                ],
169
            },
170
            {
171
                'answer': 28,
172
                'input': 85,
173
                'explanation': [
174
                    8,
175
                    6,
176
                    6,
177
                    5,
178
                    5,
179
                    5,
180
                    4,
181
                    4,
182
                    4,
183
                    4,
184
                    3,
185
                    3,
186
                    3,
187
                    3,
188
                    3,
189
                    2,
190
                    2,
191
                    2,
192
                    2,
193
                    2,
194
                    2,
195
                    1,
196
                    1,
197
                    1,
198
                    1,
199
                    1,
200
                    1,
201
                    1,
202
                    0,
203
                    0,
204
                    0,
205
                    0,
206
                    0,
207
                    0,
208
                    0,
209
                    0,
210
                ],
211
            },
212
            {
213
                'answer': 28,
214
                'input': 90,
215
                'explanation': [
216
                    8,
217
                    7,
218
                    7,
219
                    6,
220
                    6,
221
                    6,
222
                    4,
223
                    4,
224
                    4,
225
                    4,
226
                    3,
227
                    3,
228
                    3,
229
                    3,
230
                    3,
231
                    2,
232
                    2,
233
                    2,
234
                    2,
235
                    2,
236
                    2,
237
                    1,
238
                    1,
239
                    1,
240
                    1,
241
                    1,
242
                    1,
243
                    1,
244
                    0,
245
                    0,
246
                    0,
247
                    0,
248
                    0,
249
                    0,
250
                    0,
251
                    0,
252
                ],
253
            },
254
            {
255
                'answer': 28,
256
                'input': 102,
257
                'explanation': [
258
                    8,
259
                    7,
260
                    7,
261
                    6,
262
                    6,
263
                    6,
264
                    5,
265
                    5,
266
                    5,
267
                    5,
268
                    4,
269
                    4,
270
                    4,
271
                    4,
272
                    4,
273
                    3,
274
                    3,
275
                    3,
276
                    2,
277
                    2,
278
                    2,
279
                    1,
280
                    1,
281
                    1,
282
                    1,
283
                    1,
284
                    1,
285
                    1,
286
                    0,
287
                    0,
288
                    0,
289
                    0,
290
                    0,
291
                    0,
292
                    0,
293
                    0,
294
                ],
295
            },
296
            {
297
                'answer': 33,
298
                'input': 117,
299
                'explanation': [
300
                    8,
301
                    7,
302
                    7,
303
                    6,
304
                    6,
305
                    6,
306
                    5,
307
                    5,
308
                    5,
309
                    5,
310
                    4,
311
                    4,
312
                    4,
313
                    4,
314
                    4,
315
                    3,
316
                    3,
317
                    3,
318
                    3,
319
                    3,
320
                    3,
321
                    2,
322
                    2,
323
                    2,
324
                    2,
325
                    2,
326
                    2,
327
                    2,
328
                    1,
329
                    1,
330
                    1,
331
                    1,
332
                    1,
333
                    0,
334
                    0,
335
                    0,
336
                ],
337
            },
338
            {
339
                'answer': 36,
340
                'input': 124,
341
                'explanation': [
342
                    9,
343
                    8,
344
                    8,
345
                    7,
346
                    6,
347
                    6,
348
                    5,
349
                    5,
350
                    5,
351
                    5,
352
                    4,
353
                    4,
354
                    4,
355
                    4,
356
                    4,
357
                    3,
358
                    3,
359
                    3,
360
                    3,
361
                    3,
362
                    3,
363
                    2,
364
                    2,
365
                    2,
366
                    2,
367
                    2,
368
                    2,
369
                    2,
370
                    1,
371
                    1,
372
                    1,
373
                    1,
374
                    1,
375
                    1,
376
                    1,
377
                    1,
378
                    0,
379
                    0,
380
                    0,
381
                    0,
382
                    0,
383
                    0,
384
                    0,
385
                    0,
386
                    0,
387
                ],
388
            },
389
            {
390
                'answer': 36,
391
                'input': 134,
392
                'explanation': [
393
                    9,
394
                    8,
395
                    8,
396
                    7,
397
                    7,
398
                    7,
399
                    6,
400
                    6,
401
                    6,
402
                    6,
403
                    5,
404
                    5,
405
                    5,
406
                    5,
407
                    4,
408
                    3,
409
                    3,
410
                    3,
411
                    3,
412
                    3,
413
                    3,
414
                    2,
415
                    2,
416
                    2,
417
                    2,
418
                    2,
419
                    2,
420
                    2,
421
                    1,
422
                    1,
423
                    1,
424
                    1,
425
                    1,
426
                    1,
427
                    1,
428
                    1,
429
                    0,
430
                    0,
431
                    0,
432
                    0,
433
                    0,
434
                    0,
435
                    0,
436
                    0,
437
                    0,
438
                ],
439
            },
440
            {
441
                'answer': 36,
442
                'input': 148,
443
                'explanation': [
444
                    9,
445
                    8,
446
                    8,
447
                    7,
448
                    7,
449
                    7,
450
                    6,
451
                    6,
452
                    6,
453
                    6,
454
                    5,
455
                    5,
456
                    5,
457
                    5,
458
                    5,
459
                    4,
460
                    4,
461
                    4,
462
                    4,
463
                    4,
464
                    4,
465
                    3,
466
                    3,
467
                    3,
468
                    3,
469
                    3,
470
                    3,
471
                    3,
472
                    1,
473
                    1,
474
                    1,
475
                    1,
476
                    1,
477
                    1,
478
                    1,
479
                    1,
480
                    0,
481
                    0,
482
                    0,
483
                    0,
484
                    0,
485
                    0,
486
                    0,
487
                    0,
488
                    0,
489
                ],
490
            },
491
            {
492
                'answer': 36,
493
                'input': 152,
494
                'explanation': [
495
                    9,
496
                    8,
497
                    8,
498
                    7,
499
                    7,
500
                    7,
501
                    6,
502
                    6,
503
                    6,
504
                    6,
505
                    5,
506
                    5,
507
                    5,
508
                    5,
509
                    5,
510
                    4,
511
                    4,
512
                    4,
513
                    4,
514
                    4,
515
                    4,
516
                    3,
517
                    3,
518
                    3,
519
                    3,
520
                    3,
521
                    3,
522
                    3,
523
                    2,
524
                    2,
525
                    2,
526
                    2,
527
                    1,
528
                    1,
529
                    1,
530
                    1,
531
                    0,
532
                    0,
533
                    0,
534
                    0,
535
                    0,
536
                    0,
537
                    0,
538
                    0,
539
                    0,
540
                ],
541
            },
542
            {
543
                'answer': 41,
544
                'input': 161,
545
                'explanation': [
546
                    9,
547
                    8,
548
                    8,
549
                    7,
550
                    7,
551
                    7,
552
                    6,
553
                    6,
554
                    6,
555
                    6,
556
                    5,
557
                    5,
558
                    5,
559
                    5,
560
                    5,
561
                    4,
562
                    4,
563
                    4,
564
                    4,
565
                    4,
566
                    4,
567
                    3,
568
                    3,
569
                    3,
570
                    3,
571
                    3,
572
                    3,
573
                    3,
574
                    2,
575
                    2,
576
                    2,
577
                    2,
578
                    2,
579
                    2,
580
                    2,
581
                    2,
582
                    1,
583
                    1,
584
                    1,
585
                    1,
586
                    1,
587
                    0,
588
                    0,
589
                    0,
590
                    0,
591
                ],
592
            },
593
            {
594
                'answer': 45,
595
                'input': 179,
596
                'explanation': [
597
                    10,
598
                    9,
599
                    9,
600
                    8,
601
                    8,
602
                    8,
603
                    7,
604
                    7,
605
                    7,
606
                    7,
607
                    6,
608
                    6,
609
                    6,
610
                    6,
611
                    5,
612
                    4,
613
                    4,
614
                    4,
615
                    4,
616
                    4,
617
                    4,
618
                    3,
619
                    3,
620
                    3,
621
                    3,
622
                    3,
623
                    3,
624
                    3,
625
                    2,
626
                    2,
627
                    2,
628
                    2,
629
                    2,
630
                    2,
631
                    2,
632
                    2,
633
                    1,
634
                    1,
635
                    1,
636
                    1,
637
                    1,
638
                    1,
639
                    1,
640
                    1,
641
                    1,
642
                    0,
643
                    0,
644
                    0,
645
                    0,
646
                    0,
647
                    0,
648
                    0,
649
                    0,
650
                    0,
651
                    0,
652
                ],
653
            },
654
            {
655
                'answer': 45,
656
                'input': 190,
657
                'explanation': [
658
                    10,
659
                    9,
660
                    9,
661
                    8,
662
                    8,
663
                    8,
664
                    7,
665
                    7,
666
                    7,
667
                    7,
668
                    6,
669
                    6,
670
                    6,
671
                    6,
672
                    6,
673
                    5,
674
                    5,
675
                    5,
676
                    5,
677
                    5,
678
                    5,
679
                    4,
680
                    4,
681
                    4,
682
                    4,
683
                    3,
684
                    3,
685
                    3,
686
                    2,
687
                    2,
688
                    2,
689
                    2,
690
                    2,
691
                    2,
692
                    2,
693
                    2,
694
                    1,
695
                    1,
696
                    1,
697
                    1,
698
                    1,
699
                    1,
700
                    1,
701
                    1,
702
                    1,
703
                    0,
704
                    0,
705
                    0,
706
                    0,
707
                    0,
708
                    0,
709
                    0,
710
                    0,
711
                    0,
712
                    0,
713
                ],
714
            },
715
            {
716
                'answer': 45,
717
                'input': 198,
718
                'explanation': [
719
                    10,
720
                    9,
721
                    9,
722
                    8,
723
                    8,
724
                    8,
725
                    7,
726
                    7,
727
                    7,
728
                    7,
729
                    6,
730
                    6,
731
                    6,
732
                    6,
733
                    6,
734
                    5,
735
                    5,
736
                    5,
737
                    5,
738
                    5,
739
                    5,
740
                    4,
741
                    4,
742
                    4,
743
                    4,
744
                    4,
745
                    4,
746
                    4,
747
                    3,
748
                    3,
749
                    3,
750
                    3,
751
                    3,
752
                    2,
753
                    2,
754
                    2,
755
                    1,
756
                    1,
757
                    1,
758
                    1,
759
                    1,
760
                    1,
761
                    1,
762
                    1,
763
                    1,
764
                    0,
765
                    0,
766
                    0,
767
                    0,
768
                    0,
769
                    0,
770
                    0,
771
                    0,
772
                    0,
773
                    0,
774
                ],
775
            },
776
            {'answer': 741, 'input': 10000},
777
            {'answer': 3486, 'input': 99999},
778
        ],
779
    }
780
781
    def test_Basics(self):
782
        for i in self.TESTS['Basics']:
783
            assert checkio(i['input']) == i['answer']
784
785
    def test_Extra(self):
786
        for i in self.TESTS['Extra']:
787
            assert checkio(i['input']) == i['answer']
788
789
790
if __name__ == "__main__":  # pragma: no cover
791
    unittest.main()
792