Completed
Push — master ( 1c21ee...11708c )
by Bengt
01:50
created

PublicApiTests   A

Complexity

Total Complexity 30

Size/Duplication

Total Lines 66
Duplicated Lines 51.52 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
dl 34
loc 66
rs 10
c 1
b 0
f 0
wmc 30

6 Methods

Rating   Name   Duplication   Size   Complexity  
C test_microbar_floats() 17 17 11
A test_instanciation_bars_type() 0 7 2
A test_instanciation_min_value() 0 6 2
A test_instanciation_max_value() 0 6 2
C test_microbar_ints() 17 17 11
A test_instanciation_min_max() 0 6 2

How to fix   Duplicated Code   

Duplicated Code

Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.

Common duplication problems, and corresponding solutions are:

1
from __future__ import absolute_import
2
from __future__ import division
3
from __future__ import print_function
4
from __future__ import unicode_literals
5
6
from unittest.case import TestCase
7
8
from microbar.microbar import MicroBar
9
10
11
class PublicApiTests(TestCase):
12
13
    def test_instanciation_min_value(self):
14
        minimum = '0'
15
        maximum = 9
16
17
        with self.assertRaises(TypeError):
18
            MicroBar(minimum=minimum, maximum=maximum)
19
20
    def test_instanciation_max_value(self):
21
        minimum = 0
22
        maximum = '9'
23
24
        with self.assertRaises(TypeError):
25
            MicroBar(minimum=minimum, maximum=maximum)
26
27
    def test_instanciation_min_max(self):
28
        minimum = 9
29
        maximum = 0
30
31
        with self.assertRaises(ValueError):
32
            MicroBar(minimum=minimum, maximum=maximum)
33
34
    def test_instanciation_bars_type(self):
35
        minimum = 0
36
        maximum = 9
37
        bars = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
38
39
        with self.assertRaises(TypeError):
40
            MicroBar(minimum=minimum, maximum=maximum, bars=bars)
41
42 View Code Duplication
    def test_microbar_ints(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
43
        minimum = 0
44
        maximum = 9
45
        bars = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
46
47
        microbar = MicroBar(minimum=minimum, maximum=maximum, bars=bars)
48
49
        assert microbar.get_bar(value=0) == '0'
50
        assert microbar.get_bar(value=1) == '1'
51
        assert microbar.get_bar(value=2) == '2'
52
        assert microbar.get_bar(value=3) == '3'
53
        assert microbar.get_bar(value=4) == '4'
54
        assert microbar.get_bar(value=5) == '5'
55
        assert microbar.get_bar(value=6) == '6'
56
        assert microbar.get_bar(value=7) == '7'
57
        assert microbar.get_bar(value=8) == '8'
58
        assert microbar.get_bar(value=9) == '9'
59
60 View Code Duplication
    def test_microbar_floats(self):
0 ignored issues
show
Duplication introduced by
This code seems to be duplicated in your project.
Loading history...
61
        minimum = 0.0
62
        maximum = 0.9
63
        bars = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9')
64
65
        microbar = MicroBar(minimum=minimum, maximum=maximum, bars=bars)
66
67
        assert microbar.get_bar(value=0.0) == '0'
68
        assert microbar.get_bar(value=0.1) == '1'
69
        assert microbar.get_bar(value=0.2) == '2'
70
        assert microbar.get_bar(value=0.3) == '3'
71
        assert microbar.get_bar(value=0.4) == '4'
72
        assert microbar.get_bar(value=0.5) == '5'
73
        assert microbar.get_bar(value=0.6) == '6'
74
        assert microbar.get_bar(value=0.7) == '7'
75
        assert microbar.get_bar(value=0.8) == '8'
76
        assert microbar.get_bar(value=0.9) == '9'
77