test_inside_block   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 178
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 115
dl 0
loc 178
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 inside_block import is_inside
4
5
6
class Tests(unittest.TestCase):
7
    TESTS = {
8
        "Basics": [
9
            # From examples
10
            {"input": [[[1, 1], [1, 3], [3, 3], [3, 1]], [2, 2]], "answer": True},
11
            {"input": [[[1, 1], [1, 3], [3, 3], [3, 1]], [4, 2]], "answer": False},
12
            {"input": [[[1, 1], [4, 1], [2, 3]], [3, 2]], "answer": True},
13
            {"input": [[[1, 1], [4, 1], [1, 3]], [3, 3]], "answer": False},
14
            {
15
                "input": [[[2, 1], [4, 1], [5, 3], [3, 4], [1, 3]], [4, 3]],
16
                "answer": True,
17
            },
18
            {
19
                "input": [[[2, 1], [4, 1], [3, 2], [3, 4], [1, 3]], [4, 3]],
20
                "answer": False,
21
            },
22
            {
23
                "input": [
24
                    [[1, 1], [3, 2], [5, 1], [4, 3], [5, 5], [3, 4], [1, 5], [2, 3]],
25
                    [3, 3],
26
                ],
27
                "answer": True,
28
            },
29
            {
30
                "input": [
31
                    [[1, 1], [1, 5], [5, 5], [5, 4], [2, 4], [2, 2], [5, 2], [5, 1]],
32
                    [4, 3],
33
                ],
34
                "answer": False,
35
            },
36
        ],
37
        "Extra": [
38
            {"input": [[[3, 4], [4, 2], [2, 1], [1, 3]], [2, 2]], "answer": True},
39
            {"input": [[[5, 1], [4, 4], [2, 4], [1, 1]], [3, 5]], "answer": False},
40
            {"input": [[[2, 5], [2, 2], [5, 2], [1, 1]], [3, 3]], "answer": False},
41
            {"input": [[[1, 1], [1, 3], [3, 3], [3, 1]], [1, 1]], "answer": True},
42
            {"input": [[[1, 1], [1, 3], [3, 3], [3, 1]], [3, 2]], "answer": True},
43
            {"input": [[[1, 1], [2, 6], [3, 1]], [2, 2]], "answer": True},
44
            {
45
                "input": [[[1, 1], [1, 3], [2, 4], [4, 4], [4, 3], [2, 1]], [2, 3]],
46
                "answer": True,
47
            },
48
            {
49
                "input": [[[1, 1], [1, 3], [2, 4], [4, 4], [4, 3], [2, 1]], [3, 1]],
50
                "answer": False,
51
            },
52
            {
53
                "input": [
54
                    [[1, 1], [2, 3], [1, 3], [3, 4], [5, 3], [4, 3], [3, 1]],
55
                    [2, 2],
56
                ],
57
                "answer": True,
58
            },
59
            {
60
                "input": [
61
                    [[1, 1], [2, 3], [1, 3], [3, 4], [5, 3], [4, 3], [3, 1]],
62
                    [1, 2],
63
                ],
64
                "answer": False,
65
            },
66
            {
67
                "input": [
68
                    [[1, 1], [2, 4], [5, 4], [4, 1], [3, 1], [4, 3], [3, 3], [2, 1]],
69
                    [2, 2],
70
                ],
71
                "answer": True,
72
            },
73
            {
74
                "input": [
75
                    [[1, 1], [2, 4], [5, 4], [4, 1], [3, 1], [4, 3], [3, 3], [2, 1]],
76
                    [3, 2],
77
                ],
78
                "answer": False,
79
            },
80
            {"input": [[[1, 1], [1, 3], [3, 3], [3, 1]], [1, 1]], "answer": True},
81
            {"input": [[[0, 0], [0, 2], [2, 2], [2, 0]], [1, 0]], "answer": True},
82
            {"input": [[[0, 0], [0, 2], [2, 2], [2, 0]], [0, 1]], "answer": True},
83
            {"input": [[[0, 1], [1, 2], [2, 1], [1, 0]], [1, 1]], "answer": True},
84
            {
85
                "input": [[[4, 2], [2, 4], [0, 3], [2, 3], [3, 2], [3, 0]], [3, 3]],
86
                "answer": True,
87
            },
88
            {
89
                "input": [
90
                    [[0, 0], [1, 1], [0, 2], [1, 3], [0, 4], [2, 4], [2, 0]],
91
                    [1, 2],
92
                ],
93
                "answer": True,
94
            },
95
            {
96
                "input": [
97
                    [[0, 0], [0, 4], [2, 4], [1, 3], [2, 2], [1, 1], [2, 0]],
98
                    [1, 2],
99
                ],
100
                "answer": True,
101
            },
102
            {
103
                "input": [
104
                    [[0, 0], [1, 1], [2, 0], [3, 1], [4, 0], [4, 2], [0, 2]],
105
                    [2, 1],
106
                ],
107
                "answer": True,
108
            },
109
            {
110
                "input": [
111
                    [[0, 0], [4, 0], [4, 2], [3, 1], [2, 2], [1, 1], [0, 2]],
112
                    [2, 1],
113
                ],
114
                "answer": True,
115
            },
116
            {
117
                "input": [
118
                    [
119
                        [1, 1],
120
                        [2, 3],
121
                        [1, 3],
122
                        [2, 5],
123
                        [1, 5],
124
                        [3, 8],
125
                        [5, 5],
126
                        [4, 5],
127
                        [5, 3],
128
                        [4, 3],
129
                        [5, 1],
130
                        [3, 3],
131
                    ],
132
                    [3, 7],
133
                ],
134
                "answer": True,
135
            },
136
            {
137
                "input": [
138
                    [
139
                        [1, 1],
140
                        [2, 3],
141
                        [1, 3],
142
                        [2, 5],
143
                        [1, 5],
144
                        [3, 8],
145
                        [5, 5],
146
                        [4, 5],
147
                        [5, 3],
148
                        [4, 3],
149
                        [5, 1],
150
                        [3, 3],
151
                    ],
152
                    [3, 2],
153
                ],
154
                "answer": False,
155
            },
156
            {
157
                "input": [[[5, 1], [1, 5], [5, 9], [9, 5], [5, 5]], [5, 5]],
158
                "answer": True,
159
            },
160
            {
161
                "input": [[[5, 1], [1, 5], [5, 9], [9, 5], [5, 5]], [6, 4]],
162
                "answer": False,
163
            },
164
        ],
165
    }
166
167
    def test_Basics(self):
168
        for i in self.TESTS['Basics']:
169
            assert is_inside(i['input'][0], i['input'][1]) == i['answer']
170
171
    def test_Extra(self):
172
        for i in self.TESTS['Extra']:
173
            assert is_inside(i['input'][0], i['input'][1]) == i['answer']
174
175
176
if __name__ == "__main__":  # pragma: no cover
177
    unittest.main()
178