2
2
import cv2
3
3
import numpy as np
4
4
5
+ import itertools
6
+
5
7
6
8
# create image fixture
7
9
@pytest .fixture
@@ -28,170 +30,46 @@ def template() -> np.ndarray:
28
30
return template
29
31
30
32
# array of test cases
33
+ angles = [0 , 45 , - 90 ]
34
+ sort_brightest_options = [False , True ]
35
+ reverse_sort_options = [False , True ]
36
+ thresholds = [1 , 0.5 , - 0.5 ]
37
+ template_angles = [0 , 45 , - 90 ]
38
+ template_scales = [0.5 , 1.5 ]
39
+
31
40
contrast_test_case = [
32
41
{
33
- "angle" : 0 ,
34
- "threshold" : 1 ,
35
- "sort_brightest" : False ,
36
- "reverse_sort" : False
37
- },
38
- {
39
- "angle" : 45 ,
40
- "threshold" : 1 ,
41
- "sort_brightest" : False ,
42
- "reverse_sort" : False
43
- },
44
- {
45
- "angle" : 90 ,
46
- "threshold" : 1 ,
47
- "sort_brightest" : False ,
48
- "reverse_sort" : False
49
- },
50
- {
51
- "angle" : 135 ,
52
- "threshold" : 1 ,
53
- "sort_brightest" : False ,
54
- "reverse_sort" : False
55
- },
56
- {
57
- "angle" : 180 ,
58
- "threshold" : 1 ,
59
- "sort_brightest" : False ,
60
- "reverse_sort" : False
61
- },
62
- {
63
- "angle" : 225 ,
64
- "threshold" : 1 ,
65
- "sort_brightest" : False ,
66
- "reverse_sort" : False
67
- },
68
- {
69
- "angle" : 270 ,
70
- "threshold" : 1 ,
71
- "sort_brightest" : False ,
72
- "reverse_sort" : False
73
- },
74
- {
75
- "angle" : 315 ,
76
- "threshold" : 1 ,
77
- "sort_brightest" : False ,
78
- "reverse_sort" : False
79
- },
80
- {
81
- "angle" : 0 ,
82
- "threshold" : 0.5 ,
83
- "sort_brightest" : False ,
84
- "reverse_sort" : False
85
- },
86
- {
87
- "angle" : 0 ,
88
- "threshold" : 0 ,
89
- "sort_brightest" : False ,
90
- "reverse_sort" : False
91
- },
92
- {
93
- "angle" : 0 ,
94
- "threshold" : - 0.5 ,
95
- "sort_brightest" : False ,
96
- "reverse_sort" : False
97
- },
98
- {
99
- "angle" : 0 ,
100
- "threshold" : 1 ,
101
- "sort_brightest" : True ,
102
- "reverse_sort" : False
103
- },
104
- {
105
- "angle" : 0 ,
106
- "threshold" : 1 ,
107
- "sort_brightest" : False ,
108
- "reverse_sort" : True
109
- },
110
- {
111
- "angle" : 0 ,
112
- "threshold" : 1 ,
113
- "sort_brightest" : True ,
114
- "reverse_sort" : True
115
- },
116
- {
117
- "angle" : 0 ,
118
- "threshold" : 1 ,
119
- "sort_brightest" : False ,
120
- "reverse_sort" : False
121
- },
122
- {
123
- "angle" : 0 ,
124
- "threshold" : 1 ,
125
- "sort_brightest" : False ,
126
- "reverse_sort" : False
127
- },
128
- {
129
- "angle" : 0 ,
130
- "threshold" : 1 ,
131
- "sort_brightest" : False ,
132
- "reverse_sort" : False
133
- }
42
+ "angle" : angle ,
43
+ "sort_brightest" : sort_brightest ,
44
+ "reverse_sort" : reverse_sort ,
45
+ "threshold" : threshold ,
46
+ } for angle , sort_brightest , reverse_sort , threshold in itertools .product (
47
+ angles ,
48
+ sort_brightest_options ,
49
+ reverse_sort_options ,
50
+ thresholds
51
+ )
134
52
]
135
53
136
54
template_test_case = [
137
55
{
138
- "angle" : 0 ,
139
- "sort_brightest" : False ,
140
- "reverse_sort" : False
141
- },
142
- {
143
- "angle" : 45 ,
144
- "sort_brightest" : False ,
145
- "reverse_sort" : False
146
- },
147
- {
148
- "angle" : 90 ,
149
- "sort_brightest" : False ,
150
- "reverse_sort" : False
151
- },
152
- {
153
- "angle" : 135 ,
154
- "sort_brightest" : False ,
155
- "reverse_sort" : False
156
- },
157
- {
158
- "angle" : 180 ,
159
- "sort_brightest" : False ,
160
- "reverse_sort" : False
161
- },
162
- {
163
- "angle" : 225 ,
164
- "sort_brightest" : False ,
165
- "reverse_sort" : False
166
- },
167
- {
168
- "angle" : 270 ,
169
- "sort_brightest" : False ,
170
- "reverse_sort" : False
171
- },
172
- {
173
- "angle" : 315 ,
174
- "sort_brightest" : False ,
175
- "reverse_sort" : False
176
- },
177
- {
178
- "angle" : 0 ,
179
- "sort_brightest" : True ,
180
- "reverse_sort" : False
181
- },
182
- {
183
- "angle" : 0 ,
184
- "sort_brightest" : False ,
185
- "reverse_sort" : True
186
- },
187
- {
188
- "angle" : 0 ,
189
- "sort_brightest" : True ,
190
- "reverse_sort" : True
191
- },
192
- {
193
- "angle" : 0 ,
194
- "sort_brightest" : False ,
195
- "reverse_sort" : False
196
- },
56
+ "angle" : angle ,
57
+ "sort_brightest" : sort_brightest ,
58
+ "reverse_sort" : reverse_sort ,
59
+ "template_angle" : template_angle ,
60
+ "template_scale" : template_scale
61
+ }
62
+ for angle , sort_brightest , reverse_sort , template_angle , template_scale in itertools .product (
63
+ angles ,
64
+ sort_brightest_options ,
65
+ reverse_sort_options ,
66
+ template_angles ,
67
+ template_scales
68
+ )
197
69
]
70
+
71
+ if __name__ == "__main__" :
72
+ print (f"contract_test_case: { len (contrast_test_case )} " )
73
+ print (f"template_test_case: { len (template_test_case )} " )
74
+ print (contrast_test_case [:10 ])
75
+ print (template_test_case [:10 ])
0 commit comments