Skip to content

Commit 9ec6eaf

Browse files
committed
Merge pull request strawlab#66 from larsmans/cosmit
cosmetics: make tests pep8 and pyflakes-clean
2 parents 2e46583 + 0dfe7e0 commit 9ec6eaf

File tree

2 files changed

+116
-100
lines changed

2 files changed

+116
-100
lines changed

tests/test.py

Lines changed: 99 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -10,36 +10,35 @@
1010
from numpy.testing import assert_array_almost_equal, assert_array_equal
1111

1212

13-
_data = [(i,2*i,3*i+0.2) for i in range(5)]
14-
_DATA = \
15-
"""0.0, 0.0, 0.2;
16-
1.0, 2.0, 3.2;
17-
2.0, 4.0, 6.2;
18-
3.0, 6.0, 9.2;
19-
4.0, 8.0, 12.2"""
13+
_data = [(i, 2 * i, 3 * i + 0.2) for i in range(5)]
14+
_DATA = """0.0, 0.0, 0.2;
15+
1.0, 2.0, 3.2;
16+
2.0, 4.0, 6.2;
17+
3.0, 6.0, 9.2;
18+
4.0, 8.0, 12.2"""
2019

21-
class TestListIO(unittest.TestCase):
2220

21+
class TestListIO(unittest.TestCase):
2322
def setUp(self):
2423
self.p = pcl.PointCloud(_data)
2524

2625
def testFromList(self):
27-
for i,d in enumerate(_data):
26+
for i, d in enumerate(_data):
2827
pt = self.p[i]
2928
assert np.allclose(pt, _data[i])
3029

3130
def testToList(self):
3231
l = self.p.to_list()
3332
assert np.allclose(l, _data)
3433

35-
class TestNumpyIO(unittest.TestCase):
3634

35+
class TestNumpyIO(unittest.TestCase):
3736
def setUp(self):
3837
self.a = np.array(np.mat(_DATA, dtype=np.float32))
3938
self.p = pcl.PointCloud(self.a)
4039

4140
def testFromNumpy(self):
42-
for i,d in enumerate(_data):
41+
for i, d in enumerate(_data):
4342
pt = self.p[i]
4443
assert np.allclose(pt, _data[i])
4544

@@ -49,7 +48,7 @@ def testToNumpy(self):
4948

5049
def test_asarray(self):
5150
p = pcl.PointCloud(self.p) # copy
52-
old0 = p[0]
51+
# old0 = p[0]
5352
a = np.asarray(p) # view
5453
a[:] += 6
5554
assert_array_almost_equal(p[0], a[0])
@@ -61,43 +60,41 @@ def test_pickle(self):
6160
p = pickle.loads(s)
6261
self.assertTrue(np.all(self.a == p.to_array()))
6362

64-
#copy the output of seg
65-
SEGDATA = \
66-
"""0.352222 -0.151883 2;
67-
-0.106395 -0.397406 1;
68-
-0.473106 0.292602 1;
69-
-0.731898 0.667105 -2;
70-
0.441304 -0.734766 1;
71-
0.854581 -0.0361733 1;
72-
-0.4607 -0.277468 4;
73-
-0.916762 0.183749 1;
74-
0.968809 0.512055 1;
75-
-0.998983 -0.463871 1;
76-
0.691785 0.716053 1;
77-
0.525135 -0.523004 1;
78-
0.439387 0.56706 1;
79-
0.905417 -0.579787 1;
80-
0.898706 -0.504929 1"""
81-
82-
SEGINLIERS = \
83-
"""-0.106395 -0.397406 1;
84-
-0.473106 0.292602 1;
85-
0.441304 -0.734766 1;
86-
0.854581 -0.0361733 1;
87-
-0.916762 0.183749 1;
88-
0.968809 0.512055 1;
89-
-0.998983 -0.463871 1;
90-
0.691785 0.716053 1;
91-
0.525135 -0.523004 1;
92-
0.439387 0.56706 1;
93-
0.905417 -0.579787 1;
94-
0.898706 -0.504929 1"""
63+
# copy the output of seg
64+
SEGDATA = """ 0.352222 -0.151883 2;
65+
-0.106395 -0.397406 1;
66+
-0.473106 0.292602 1;
67+
-0.731898 0.667105 -2;
68+
0.441304 -0.734766 1;
69+
0.854581 -0.0361733 1;
70+
-0.4607 -0.277468 4;
71+
-0.916762 0.183749 1;
72+
0.968809 0.512055 1;
73+
-0.998983 -0.463871 1;
74+
0.691785 0.716053 1;
75+
0.525135 -0.523004 1;
76+
0.439387 0.56706 1;
77+
0.905417 -0.579787 1;
78+
0.898706 -0.504929 1"""
79+
80+
SEGINLIERS = """-0.106395 -0.397406 1;
81+
-0.473106 0.292602 1;
82+
0.441304 -0.734766 1;
83+
0.854581 -0.0361733 1;
84+
-0.916762 0.183749 1;
85+
0.968809 0.512055 1;
86+
-0.998983 -0.463871 1;
87+
0.691785 0.716053 1;
88+
0.525135 -0.523004 1;
89+
0.439387 0.56706 1;
90+
0.905417 -0.579787 1;
91+
0.898706 -0.504929 1"""
9592
SEGINLIERSIDX = [1, 2, 4, 5, 7, 8, 9, 10, 11, 12, 13, 14]
9693

9794
SEGCOEFF = [0.0, 0.0, 1.0, -1.0]
9895

99-
class TestSegmentPlane(unittest.TestCase):
10096

97+
class TestSegmentPlane(unittest.TestCase):
10198
def setUp(self):
10299
self.a = np.array(np.mat(SEGDATA, dtype=np.float32))
103100
self.p = pcl.PointCloud()
@@ -111,15 +108,16 @@ def testLoad(self):
111108

112109
def testSegmentPlaneObject(self):
113110
seg = self.p.make_segmenter()
114-
seg.set_optimize_coefficients (True)
111+
seg.set_optimize_coefficients(True)
115112
seg.set_model_type(pcl.SACMODEL_PLANE)
116113
seg.set_method_type(pcl.SAC_RANSAC)
117-
seg.set_distance_threshold (0.01)
114+
seg.set_distance_threshold(0.01)
118115

119116
indices, model = seg.segment()
120117
self.assertListEqual(indices, SEGINLIERSIDX)
121118
self.assertListEqual(model, SEGCOEFF)
122119

120+
123121
def test_pcd_read():
124122
TMPL = """
125123
# .PCD v.7 - Point Cloud Data file format
@@ -137,15 +135,15 @@ def test_pcd_read():
137135

138136
a = np.array(np.mat(SEGDATA, dtype=np.float32))
139137
npts = a.shape[0]
140-
with open("/tmp/test.pcd","w") as f:
141-
f.write(TMPL % {"npts":npts,"data":SEGDATA.replace(";","")})
138+
with open("/tmp/test.pcd", "w") as f:
139+
f.write(TMPL % {"npts": npts, "data": SEGDATA.replace(";", "")})
142140

143141
p = pcl.load("/tmp/test.pcd")
144142

145143
assert p.width == npts
146144
assert p.height == 1
147145

148-
for i,row in enumerate(a):
146+
for i, row in enumerate(a):
149147
pt = np.array(p[i])
150148
ssd = sum((row - pt) ** 2)
151149
assert ssd < 1e-6
@@ -163,32 +161,35 @@ def test_copy():
163161
assert_array_equal(p2.to_array(), a)
164162

165163

166-
SEGCYLMOD = [0.0552167, 0.0547035, 0.757707, -0.0270852, -4.41026, -2.88995, 0.0387603]
164+
SEGCYLMOD = [0.0552167, 0.0547035, 0.757707,
165+
-0.0270852, -4.41026, -2.88995, 0.0387603]
167166
SEGCYLIN = 11462
168167

168+
169169
class TestSegmentCylinder(unittest.TestCase):
170170

171171
def setUp(self):
172172
self.p = pcl.load("tests/table_scene_mug_stereo_textured_noplane.pcd")
173173

174174
def testSegment(self):
175175
seg = self.p.make_segmenter_normals(50)
176-
seg.set_optimize_coefficients (True);
177-
seg.set_model_type (pcl.SACMODEL_CYLINDER)
178-
seg.set_method_type (pcl.SAC_RANSAC)
179-
seg.set_normal_distance_weight (0.1)
180-
seg.set_max_iterations (10000)
181-
seg.set_distance_threshold (0.05)
182-
seg.set_radius_limits (0, 0.1)
176+
seg.set_optimize_coefficients(True)
177+
seg.set_model_type(pcl.SACMODEL_CYLINDER)
178+
seg.set_method_type(pcl.SAC_RANSAC)
179+
seg.set_normal_distance_weight(0.1)
180+
seg.set_max_iterations(10000)
181+
seg.set_distance_threshold(0.05)
182+
seg.set_radius_limits(0, 0.1)
183183

184184
indices, model = seg.segment()
185185

186186
self.assertEqual(len(indices), SEGCYLIN)
187187

188-
npexp = np.array(SEGCYLMOD)
189-
npmod = np.array(model)
190-
ssd = sum((npexp - npmod) ** 2)
191-
#self.assertLess(ssd, 1e-6)
188+
# npexp = np.array(SEGCYLMOD)
189+
# npmod = np.array(model)
190+
# ssd = sum((npexp - npmod) ** 2)
191+
# self.assertLess(ssd, 1e-6)
192+
192193

193194
class TestSave(unittest.TestCase):
194195

@@ -206,6 +207,7 @@ def testSave(self):
206207
p = pcl.load(d)
207208
self.assertEqual(self.p.size, p.size)
208209

210+
209211
class TestFilter(unittest.TestCase):
210212

211213
def setUp(self):
@@ -217,28 +219,31 @@ def testFilter(self):
217219
mls.set_polynomial_order(2)
218220
mls.set_polynomial_fit(True)
219221
f = mls.process()
220-
#new instance is returned
222+
# new instance is returned
221223
self.assertNotEqual(self.p, f)
222-
#mls filter retains the same number of points
224+
# mls filter retains the same number of points
223225
self.assertEqual(self.p.size, f.size)
224226

227+
225228
class TestExtract(unittest.TestCase):
226229

227230
def setUp(self):
228231
self.p = pcl.load("tests/flydracyl.pcd")
229232

230233
def testExtractPos(self):
231-
p2 = self.p.extract([1,2,3],False)
232-
#new instance is returned
234+
p2 = self.p.extract([1, 2, 3], False)
235+
# new instance is returned
233236
self.assertNotEqual(self.p, p2)
234237
self.assertEqual(p2.size, 3)
235238

236239
def testExtractNeg(self):
237-
p2 = self.p.extract([1,2,3],True)
240+
p2 = self.p.extract([1, 2, 3], True)
238241
self.assertNotEqual(self.p, p2)
239242
self.assertEqual(p2.size, self.p.size - 3)
240243

244+
241245
class TestExceptions(unittest.TestCase):
246+
242247
def setUp(self):
243248
self.p = pcl.PointCloud(np.arange(9, dtype=np.float32).reshape(3, 3))
244249

@@ -252,6 +257,7 @@ def testResize(self):
252257
# better exceptions.
253258
self.assertRaises(MemoryError, self.p.resize, -1)
254259

260+
255261
class TestSegmenterNormal(unittest.TestCase):
256262

257263
def setUp(self):
@@ -271,17 +277,17 @@ def _tneg(self, c):
271277

272278
def testFilterPos(self):
273279
fil = self.p.make_statistical_outlier_filter()
274-
fil.set_mean_k (50)
280+
fil.set_mean_k(50)
275281
self.assertEqual(fil.k, 50)
276-
fil.set_std_dev_mul_thresh (1.0)
282+
fil.set_std_dev_mul_thresh(1.0)
277283
self.assertEqual(fil.stddev_mul_thresh, 1.0)
278284
c = fil.filter()
279285
self._tpos(c)
280286

281287
def testFilterNeg(self):
282288
fil = self.p.make_statistical_outlier_filter()
283-
fil.set_mean_k (50)
284-
fil.set_std_dev_mul_thresh (1.0)
289+
fil.set_mean_k(50)
290+
fil.set_std_dev_mul_thresh(1.0)
285291
self.assertEqual(fil.negative, False)
286292
fil.set_negative(True)
287293
self.assertEqual(fil.negative, True)
@@ -290,53 +296,58 @@ def testFilterNeg(self):
290296

291297
def testFilterPosNeg(self):
292298
fil = self.p.make_statistical_outlier_filter()
293-
fil.set_mean_k (50)
294-
fil.set_std_dev_mul_thresh (1.0)
299+
fil.set_mean_k(50)
300+
fil.set_std_dev_mul_thresh(1.0)
295301
c = fil.filter()
296302
self._tpos(c)
297303
fil.set_negative(True)
298304
c = fil.filter()
299305
self._tneg(c)
300306

307+
301308
class TestVoxelGridFilter(unittest.TestCase):
302309

303310
def setUp(self):
304311
self.p = pcl.load("tests/table_scene_mug_stereo_textured_noplane.pcd")
305312

306313
def testFilter(self):
307314
fil = self.p.make_voxel_grid_filter()
308-
fil.set_leaf_size(0.01,0.01,0.01)
315+
fil.set_leaf_size(0.01, 0.01, 0.01)
309316
c = fil.filter()
310317
self.assertTrue(c.size < self.p.size)
311318
self.assertEqual(c.size, 719)
312319

320+
313321
class TestPassthroughFilter(unittest.TestCase):
322+
314323
def setUp(self):
315324
self.p = pcl.load("tests/table_scene_mug_stereo_textured_noplane.pcd")
316325

317326
def testFilter(self):
318327
fil = self.p.make_passthrough_filter()
319-
fil.set_filter_field_name ("z")
320-
fil.set_filter_limits (0, 0.75)
328+
fil.set_filter_field_name("z")
329+
fil.set_filter_limits(0, 0.75)
321330
c = fil.filter()
322331
self.assertTrue(c.size < self.p.size)
323332
self.assertEqual(c.size, 7751)
324333

325334
def testFilterBoth(self):
326335
total = self.p.size
327336
fil = self.p.make_passthrough_filter()
328-
fil.set_filter_field_name ("z")
329-
fil.set_filter_limits (0, 0.75)
337+
fil.set_filter_field_name("z")
338+
fil.set_filter_limits(0, 0.75)
330339
front = fil.filter().size
331-
fil.set_filter_limits (0.75, 100)
340+
fil.set_filter_limits(0.75, 100)
332341
back = fil.filter().size
333-
self.assertEqual(total,front+back)
342+
self.assertEqual(total, front + back)
343+
334344

335345
class TestKdTree(unittest.TestCase):
346+
336347
def setUp(self):
337348
rng = np.random.RandomState(42)
338349
# Define two dense sets of points of sizes 30 and 170, resp.
339-
a = np.random.randn(100, 3).astype(np.float32)
350+
a = rng.randn(100, 3).astype(np.float32)
340351
a[:30] -= 42
341352

342353
self.pc = pcl.PointCloud(a)
@@ -363,7 +374,9 @@ def testKNN(self):
363374
for d in sqdist:
364375
self.assertGreaterEqual(d, 0)
365376

377+
366378
class TestOctreePointCloud(unittest.TestCase):
379+
367380
def setUp(self):
368381
self.t = pcl.OctreePointCloud(0.1)
369382

@@ -376,14 +389,17 @@ def testLoad(self):
376389
rs = self.t.is_voxel_occupied_at_point(good_point)
377390
self.assertTrue(rs)
378391
bad_point = (0.5, 0.5, 0.5)
379-
rs = self.t.is_voxel_occupied_at_point(bad_point)
392+
rs = self.t.is_voxel_occupied_at_point(bad_point)
380393
self.assertFalse(rs)
381394
voxels_len = 44
382395
self.assertEqual(len(self.t.get_occupied_voxel_centers()), voxels_len)
383396
self.t.delete_voxel_at_point(good_point)
384-
self.assertEqual(len(self.t.get_occupied_voxel_centers()), voxels_len - 1)
385-
397+
self.assertEqual(
398+
len(self.t.get_occupied_voxel_centers()), voxels_len - 1)
399+
400+
386401
class TestOctreePointCloudSearch(unittest.TestCase):
402+
387403
def setUp(self):
388404
self.t = pcl.OctreePointCloudSearch(0.1)
389405
pc = pcl.load("tests/table_scene_mug_stereo_textured_noplane.pcd")

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy