Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/mingw32/Python27/Lib/site-packages/numpy/lib/tests/test_arraypad.py @ 87:2a2c65a20a8b
Add Python libs and headers
author | Chris Cannam |
---|---|
date | Wed, 25 Feb 2015 14:05:22 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
86:413a9d26189e | 87:2a2c65a20a8b |
---|---|
1 """Tests for the pad functions. | |
2 | |
3 """ | |
4 from __future__ import division, absolute_import, print_function | |
5 | |
6 from numpy.testing import TestCase, run_module_suite, assert_array_equal | |
7 from numpy.testing import assert_raises, assert_array_almost_equal | |
8 import numpy as np | |
9 from numpy.lib import pad | |
10 | |
11 | |
12 class TestStatistic(TestCase): | |
13 def test_check_mean_stat_length(self): | |
14 a = np.arange(100).astype('f') | |
15 a = pad(a, ((25, 20), ), 'mean', stat_length=((2, 3), )) | |
16 b = np.array( | |
17 [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, | |
18 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, | |
19 0.5, 0.5, 0.5, 0.5, 0.5, | |
20 | |
21 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., | |
22 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., | |
23 20., 21., 22., 23., 24., 25., 26., 27., 28., 29., | |
24 30., 31., 32., 33., 34., 35., 36., 37., 38., 39., | |
25 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., | |
26 50., 51., 52., 53., 54., 55., 56., 57., 58., 59., | |
27 60., 61., 62., 63., 64., 65., 66., 67., 68., 69., | |
28 70., 71., 72., 73., 74., 75., 76., 77., 78., 79., | |
29 80., 81., 82., 83., 84., 85., 86., 87., 88., 89., | |
30 90., 91., 92., 93., 94., 95., 96., 97., 98., 99., | |
31 | |
32 98., 98., 98., 98., 98., 98., 98., 98., 98., 98., | |
33 98., 98., 98., 98., 98., 98., 98., 98., 98., 98. | |
34 ]) | |
35 assert_array_equal(a, b) | |
36 | |
37 def test_check_maximum_1(self): | |
38 a = np.arange(100) | |
39 a = pad(a, (25, 20), 'maximum') | |
40 b = np.array( | |
41 [99, 99, 99, 99, 99, 99, 99, 99, 99, 99, | |
42 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, | |
43 99, 99, 99, 99, 99, | |
44 | |
45 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
46 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
47 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, | |
48 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
49 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
50 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, | |
51 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, | |
52 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
53 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, | |
54 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | |
55 | |
56 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, | |
57 99, 99, 99, 99, 99, 99, 99, 99, 99, 99] | |
58 ) | |
59 assert_array_equal(a, b) | |
60 | |
61 def test_check_maximum_2(self): | |
62 a = np.arange(100) + 1 | |
63 a = pad(a, (25, 20), 'maximum') | |
64 b = np.array( | |
65 [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, | |
66 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, | |
67 100, 100, 100, 100, 100, | |
68 | |
69 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, | |
70 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, | |
71 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, | |
72 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, | |
73 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, | |
74 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, | |
75 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, | |
76 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, | |
77 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, | |
78 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, | |
79 | |
80 100, 100, 100, 100, 100, 100, 100, 100, 100, 100, | |
81 100, 100, 100, 100, 100, 100, 100, 100, 100, 100] | |
82 ) | |
83 assert_array_equal(a, b) | |
84 | |
85 def test_check_minimum_1(self): | |
86 a = np.arange(100) | |
87 a = pad(a, (25, 20), 'minimum') | |
88 b = np.array( | |
89 [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
90 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
91 0, 0, 0, 0, 0, | |
92 | |
93 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
94 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
95 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, | |
96 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
97 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
98 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, | |
99 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, | |
100 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
101 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, | |
102 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | |
103 | |
104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
105 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] | |
106 ) | |
107 assert_array_equal(a, b) | |
108 | |
109 def test_check_minimum_2(self): | |
110 a = np.arange(100) + 2 | |
111 a = pad(a, (25, 20), 'minimum') | |
112 b = np.array( | |
113 [2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
115 2, 2, 2, 2, 2, | |
116 | |
117 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, | |
118 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, | |
119 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, | |
120 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, | |
121 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, | |
122 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, | |
123 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, | |
124 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, | |
125 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, | |
126 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, | |
127 | |
128 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, | |
129 2, 2, 2, 2, 2, 2, 2, 2, 2, 2] | |
130 ) | |
131 assert_array_equal(a, b) | |
132 | |
133 def test_check_median(self): | |
134 a = np.arange(100).astype('f') | |
135 a = pad(a, (25, 20), 'median') | |
136 b = np.array( | |
137 [49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, | |
138 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, | |
139 49.5, 49.5, 49.5, 49.5, 49.5, | |
140 | |
141 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., | |
142 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., | |
143 20., 21., 22., 23., 24., 25., 26., 27., 28., 29., | |
144 30., 31., 32., 33., 34., 35., 36., 37., 38., 39., | |
145 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., | |
146 50., 51., 52., 53., 54., 55., 56., 57., 58., 59., | |
147 60., 61., 62., 63., 64., 65., 66., 67., 68., 69., | |
148 70., 71., 72., 73., 74., 75., 76., 77., 78., 79., | |
149 80., 81., 82., 83., 84., 85., 86., 87., 88., 89., | |
150 90., 91., 92., 93., 94., 95., 96., 97., 98., 99., | |
151 | |
152 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, | |
153 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5] | |
154 ) | |
155 assert_array_equal(a, b) | |
156 | |
157 def test_check_median_01(self): | |
158 a = np.array([[3, 1, 4], [4, 5, 9], [9, 8, 2]]) | |
159 a = pad(a, 1, 'median') | |
160 b = np.array( | |
161 [[4, 4, 5, 4, 4], | |
162 | |
163 [3, 3, 1, 4, 3], | |
164 [5, 4, 5, 9, 5], | |
165 [8, 9, 8, 2, 8], | |
166 | |
167 [4, 4, 5, 4, 4]] | |
168 ) | |
169 assert_array_equal(a, b) | |
170 | |
171 def test_check_median_02(self): | |
172 a = np.array([[3, 1, 4], [4, 5, 9], [9, 8, 2]]) | |
173 a = pad(a.T, 1, 'median').T | |
174 b = np.array( | |
175 [[5, 4, 5, 4, 5], | |
176 | |
177 [3, 3, 1, 4, 3], | |
178 [5, 4, 5, 9, 5], | |
179 [8, 9, 8, 2, 8], | |
180 | |
181 [5, 4, 5, 4, 5]] | |
182 ) | |
183 assert_array_equal(a, b) | |
184 | |
185 def test_check_mean_shape_one(self): | |
186 a = [[4, 5, 6]] | |
187 a = pad(a, (5, 7), 'mean', stat_length=2) | |
188 b = np.array( | |
189 [[4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
190 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
191 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
192 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
193 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
194 | |
195 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
196 | |
197 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
198 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
199 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
200 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
201 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
202 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6], | |
203 [4, 4, 4, 4, 4, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6]] | |
204 ) | |
205 assert_array_equal(a, b) | |
206 | |
207 def test_check_mean_2(self): | |
208 a = np.arange(100).astype('f') | |
209 a = pad(a, (25, 20), 'mean') | |
210 b = np.array( | |
211 [49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, | |
212 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, | |
213 49.5, 49.5, 49.5, 49.5, 49.5, | |
214 | |
215 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., | |
216 10., 11., 12., 13., 14., 15., 16., 17., 18., 19., | |
217 20., 21., 22., 23., 24., 25., 26., 27., 28., 29., | |
218 30., 31., 32., 33., 34., 35., 36., 37., 38., 39., | |
219 40., 41., 42., 43., 44., 45., 46., 47., 48., 49., | |
220 50., 51., 52., 53., 54., 55., 56., 57., 58., 59., | |
221 60., 61., 62., 63., 64., 65., 66., 67., 68., 69., | |
222 70., 71., 72., 73., 74., 75., 76., 77., 78., 79., | |
223 80., 81., 82., 83., 84., 85., 86., 87., 88., 89., | |
224 90., 91., 92., 93., 94., 95., 96., 97., 98., 99., | |
225 | |
226 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, | |
227 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5, 49.5] | |
228 ) | |
229 assert_array_equal(a, b) | |
230 | |
231 | |
232 class TestConstant(TestCase): | |
233 def test_check_constant(self): | |
234 a = np.arange(100) | |
235 a = pad(a, (25, 20), 'constant', constant_values=(10, 20)) | |
236 b = np.array( | |
237 [10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |
238 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, | |
239 10, 10, 10, 10, 10, | |
240 | |
241 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
242 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
243 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, | |
244 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
245 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
246 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, | |
247 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, | |
248 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
249 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, | |
250 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | |
251 | |
252 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, | |
253 20, 20, 20, 20, 20, 20, 20, 20, 20, 20] | |
254 ) | |
255 assert_array_equal(a, b) | |
256 | |
257 | |
258 class TestLinearRamp(TestCase): | |
259 def test_check_simple(self): | |
260 a = np.arange(100).astype('f') | |
261 a = pad(a, (25, 20), 'linear_ramp', end_values=(4, 5)) | |
262 b = np.array( | |
263 [4.00, 3.84, 3.68, 3.52, 3.36, 3.20, 3.04, 2.88, 2.72, 2.56, | |
264 2.40, 2.24, 2.08, 1.92, 1.76, 1.60, 1.44, 1.28, 1.12, 0.96, | |
265 0.80, 0.64, 0.48, 0.32, 0.16, | |
266 | |
267 0.00, 1.00, 2.00, 3.00, 4.00, 5.00, 6.00, 7.00, 8.00, 9.00, | |
268 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, | |
269 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, | |
270 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, | |
271 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, | |
272 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, | |
273 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, | |
274 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, | |
275 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, | |
276 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, | |
277 | |
278 94.3, 89.6, 84.9, 80.2, 75.5, 70.8, 66.1, 61.4, 56.7, 52.0, | |
279 47.3, 42.6, 37.9, 33.2, 28.5, 23.8, 19.1, 14.4, 9.7, 5.] | |
280 ) | |
281 assert_array_almost_equal(a, b, decimal=5) | |
282 | |
283 | |
284 class TestReflect(TestCase): | |
285 def test_check_simple(self): | |
286 a = np.arange(100) | |
287 a = pad(a, (25, 20), 'reflect') | |
288 b = np.array( | |
289 [25, 24, 23, 22, 21, 20, 19, 18, 17, 16, | |
290 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, | |
291 5, 4, 3, 2, 1, | |
292 | |
293 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
294 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
295 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, | |
296 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
297 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
298 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, | |
299 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, | |
300 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
301 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, | |
302 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | |
303 | |
304 98, 97, 96, 95, 94, 93, 92, 91, 90, 89, | |
305 88, 87, 86, 85, 84, 83, 82, 81, 80, 79] | |
306 ) | |
307 assert_array_equal(a, b) | |
308 | |
309 def test_check_large_pad(self): | |
310 a = [[4, 5, 6], [6, 7, 8]] | |
311 a = pad(a, (5, 7), 'reflect') | |
312 b = np.array( | |
313 [[7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7], | |
314 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
315 [7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7], | |
316 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
317 [7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7], | |
318 | |
319 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
320 [7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7], | |
321 | |
322 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
323 [7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7], | |
324 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
325 [7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7], | |
326 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
327 [7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7, 8, 7, 6, 7], | |
328 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5]] | |
329 ) | |
330 assert_array_equal(a, b) | |
331 | |
332 def test_check_shape(self): | |
333 a = [[4, 5, 6]] | |
334 a = pad(a, (5, 7), 'reflect') | |
335 b = np.array( | |
336 [[5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
337 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
338 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
339 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
340 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
341 | |
342 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
343 | |
344 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
345 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
346 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
347 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
348 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
349 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5], | |
350 [5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5, 6, 5, 4, 5]] | |
351 ) | |
352 assert_array_equal(a, b) | |
353 | |
354 def test_check_01(self): | |
355 a = pad([1, 2, 3], 2, 'reflect') | |
356 b = np.array([3, 2, 1, 2, 3, 2, 1]) | |
357 assert_array_equal(a, b) | |
358 | |
359 def test_check_02(self): | |
360 a = pad([1, 2, 3], 3, 'reflect') | |
361 b = np.array([2, 3, 2, 1, 2, 3, 2, 1, 2]) | |
362 assert_array_equal(a, b) | |
363 | |
364 def test_check_03(self): | |
365 a = pad([1, 2, 3], 4, 'reflect') | |
366 b = np.array([1, 2, 3, 2, 1, 2, 3, 2, 1, 2, 3]) | |
367 assert_array_equal(a, b) | |
368 | |
369 | |
370 class TestWrap(TestCase): | |
371 def test_check_simple(self): | |
372 a = np.arange(100) | |
373 a = pad(a, (25, 20), 'wrap') | |
374 b = np.array( | |
375 [75, 76, 77, 78, 79, 80, 81, 82, 83, 84, | |
376 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, | |
377 95, 96, 97, 98, 99, | |
378 | |
379 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
380 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, | |
381 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, | |
382 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, | |
383 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, | |
384 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, | |
385 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, | |
386 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, | |
387 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, | |
388 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | |
389 | |
390 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, | |
391 10, 11, 12, 13, 14, 15, 16, 17, 18, 19] | |
392 ) | |
393 assert_array_equal(a, b) | |
394 | |
395 def test_check_large_pad(self): | |
396 a = np.arange(12) | |
397 a = np.reshape(a, (3, 4)) | |
398 a = pad(a, (10, 12), 'wrap') | |
399 b = np.array( | |
400 [[10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
401 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
402 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
403 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
404 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
405 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
406 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
407 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
408 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
409 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
410 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
411 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
412 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
413 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
414 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
415 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
416 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
417 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
418 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
419 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
420 | |
421 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
422 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
423 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
424 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
425 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
426 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
427 | |
428 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
429 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
430 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
431 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
432 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
433 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
434 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
435 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
436 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
437 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
438 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
439 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
440 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
441 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
442 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
443 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
444 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
445 11, 8, 9, 10, 11, 8, 9, 10, 11], | |
446 [2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, | |
447 3, 0, 1, 2, 3, 0, 1, 2, 3], | |
448 [6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, 7, 4, 5, 6, | |
449 7, 4, 5, 6, 7, 4, 5, 6, 7], | |
450 [10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, 11, 8, 9, 10, | |
451 11, 8, 9, 10, 11, 8, 9, 10, 11]] | |
452 ) | |
453 assert_array_equal(a, b) | |
454 | |
455 def test_check_01(self): | |
456 a = pad([1, 2, 3], 3, 'wrap') | |
457 b = np.array([1, 2, 3, 1, 2, 3, 1, 2, 3]) | |
458 assert_array_equal(a, b) | |
459 | |
460 def test_check_02(self): | |
461 a = pad([1, 2, 3], 4, 'wrap') | |
462 b = np.array([3, 1, 2, 3, 1, 2, 3, 1, 2, 3, 1]) | |
463 assert_array_equal(a, b) | |
464 | |
465 | |
466 class TestStatLen(TestCase): | |
467 def test_check_simple(self): | |
468 a = np.arange(30) | |
469 a = np.reshape(a, (6, 5)) | |
470 a = pad(a, ((2, 3), (3, 2)), mode='mean', stat_length=(3,)) | |
471 b = np.array( | |
472 [[6, 6, 6, 5, 6, 7, 8, 9, 8, 8], | |
473 [6, 6, 6, 5, 6, 7, 8, 9, 8, 8], | |
474 | |
475 [1, 1, 1, 0, 1, 2, 3, 4, 3, 3], | |
476 [6, 6, 6, 5, 6, 7, 8, 9, 8, 8], | |
477 [11, 11, 11, 10, 11, 12, 13, 14, 13, 13], | |
478 [16, 16, 16, 15, 16, 17, 18, 19, 18, 18], | |
479 [21, 21, 21, 20, 21, 22, 23, 24, 23, 23], | |
480 [26, 26, 26, 25, 26, 27, 28, 29, 28, 28], | |
481 | |
482 [21, 21, 21, 20, 21, 22, 23, 24, 23, 23], | |
483 [21, 21, 21, 20, 21, 22, 23, 24, 23, 23], | |
484 [21, 21, 21, 20, 21, 22, 23, 24, 23, 23]] | |
485 ) | |
486 assert_array_equal(a, b) | |
487 | |
488 | |
489 class TestEdge(TestCase): | |
490 def test_check_simple(self): | |
491 a = np.arange(12) | |
492 a = np.reshape(a, (4, 3)) | |
493 a = pad(a, ((2, 3), (3, 2)), 'edge') | |
494 b = np.array( | |
495 [[0, 0, 0, 0, 1, 2, 2, 2], | |
496 [0, 0, 0, 0, 1, 2, 2, 2], | |
497 | |
498 [0, 0, 0, 0, 1, 2, 2, 2], | |
499 [3, 3, 3, 3, 4, 5, 5, 5], | |
500 [6, 6, 6, 6, 7, 8, 8, 8], | |
501 [9, 9, 9, 9, 10, 11, 11, 11], | |
502 | |
503 [9, 9, 9, 9, 10, 11, 11, 11], | |
504 [9, 9, 9, 9, 10, 11, 11, 11], | |
505 [9, 9, 9, 9, 10, 11, 11, 11]] | |
506 ) | |
507 assert_array_equal(a, b) | |
508 | |
509 | |
510 class TestZeroPadWidth(TestCase): | |
511 def test_zero_pad_width(self): | |
512 arr = np.arange(30) | |
513 arr = np.reshape(arr, (6, 5)) | |
514 for pad_width in (0, (0, 0), ((0, 0), (0, 0))): | |
515 assert_array_equal(arr, pad(arr, pad_width, mode='constant')) | |
516 | |
517 | |
518 class ValueError1(TestCase): | |
519 def test_check_simple(self): | |
520 arr = np.arange(30) | |
521 arr = np.reshape(arr, (6, 5)) | |
522 kwargs = dict(mode='mean', stat_length=(3, )) | |
523 assert_raises(ValueError, pad, arr, ((2, 3), (3, 2), (4, 5)), | |
524 **kwargs) | |
525 | |
526 def test_check_negative_stat_length(self): | |
527 arr = np.arange(30) | |
528 arr = np.reshape(arr, (6, 5)) | |
529 kwargs = dict(mode='mean', stat_length=(-3, )) | |
530 assert_raises(ValueError, pad, arr, ((2, 3), (3, 2)), | |
531 **kwargs) | |
532 | |
533 def test_check_negative_pad_width(self): | |
534 arr = np.arange(30) | |
535 arr = np.reshape(arr, (6, 5)) | |
536 kwargs = dict(mode='mean', stat_length=(3, )) | |
537 assert_raises(ValueError, pad, arr, ((-2, 3), (3, 2)), | |
538 **kwargs) | |
539 | |
540 | |
541 class ValueError2(TestCase): | |
542 def test_check_simple(self): | |
543 arr = np.arange(30) | |
544 arr = np.reshape(arr, (6, 5)) | |
545 kwargs = dict(mode='mean', stat_length=(3, )) | |
546 assert_raises(ValueError, pad, arr, ((2, 3, 4), (3, 2)), | |
547 **kwargs) | |
548 | |
549 | |
550 class ValueError3(TestCase): | |
551 def test_check_simple(self): | |
552 arr = np.arange(30) | |
553 arr = np.reshape(arr, (6, 5)) | |
554 kwargs = dict(mode='mean', stat_length=(3, )) | |
555 assert_raises(ValueError, pad, arr, ((-2, 3), (3, 2)), | |
556 **kwargs) | |
557 | |
558 | |
559 if __name__ == "__main__": | |
560 run_module_suite() |