root / ase / test / vtk_pipeline.py @ 13
Historique | Voir | Annoter | Télécharger (16,39 ko)
1 | 1 | tkerber | #!/usr/bin/env python
|
---|---|---|---|
2 | 1 | tkerber | |
3 | 1 | tkerber | from ase.visualize.vtk import requirevtk |
4 | 1 | tkerber | |
5 | 1 | tkerber | requirevtk() |
6 | 1 | tkerber | |
7 | 1 | tkerber | import sys, unittest |
8 | 1 | tkerber | from ase.test import CustomTestCase, CustomTextTestRunner |
9 | 1 | tkerber | |
10 | 1 | tkerber | from vtk import vtkContourFilter, vtkPolyDataNormals, \ |
11 | 1 | tkerber | vtkLinearSubdivisionFilter, vtkPolyDataMapper |
12 | 1 | tkerber | from ase.visualize.vtk.pipeline import vtkPolyDataPipeline |
13 | 1 | tkerber | |
14 | 1 | tkerber | # -------------------------------------------------------------------
|
15 | 1 | tkerber | |
16 | 1 | tkerber | class UTPipeline(CustomTestCase): |
17 | 1 | tkerber | """
|
18 | 1 | tkerber | Abstract test case class - TODO."""
|
19 | 1 | tkerber | |
20 | 1 | tkerber | def assertConnected(self, vtk_one, vtk_two, port=0): |
21 | 1 | tkerber | self.assertEqual(vtk_two.GetNumberOfInputConnections(port), 1) |
22 | 1 | tkerber | self.assertEqual(vtk_one.GetOutputPort(),
|
23 | 1 | tkerber | vtk_two.GetInputConnection(port, 0))
|
24 | 1 | tkerber | |
25 | 1 | tkerber | def assertNotConnected(self, vtk_one, vtk_two, port=0): |
26 | 1 | tkerber | self.assertEqual(vtk_two.GetNumberOfInputConnections(port), 0) |
27 | 1 | tkerber | |
28 | 1 | tkerber | |
29 | 1 | tkerber | # -------------------------------------------------------------------
|
30 | 1 | tkerber | |
31 | 1 | tkerber | class UTPolyDataPipeline(UTPipeline): |
32 | 1 | tkerber | """
|
33 | 1 | tkerber | TODO"""
|
34 | 1 | tkerber | |
35 | 1 | tkerber | def setUp(self): |
36 | 1 | tkerber | self.vtk_iso = vtkContourFilter()
|
37 | 1 | tkerber | #self.vtk_iso.SetInput(...)
|
38 | 1 | tkerber | |
39 | 1 | tkerber | self.vtk_dnorm = vtkPolyDataNormals()
|
40 | 1 | tkerber | self.vtk_subdiv = vtkLinearSubdivisionFilter()
|
41 | 1 | tkerber | self.vtk_dmap = vtkPolyDataMapper()
|
42 | 1 | tkerber | |
43 | 1 | tkerber | def tearDown(self): |
44 | 1 | tkerber | del self.vtk_dmap |
45 | 1 | tkerber | del self.vtk_subdiv |
46 | 1 | tkerber | del self.vtk_dnorm |
47 | 1 | tkerber | del self.vtk_iso |
48 | 1 | tkerber | |
49 | 1 | tkerber | # -------------------------------------------------------------------
|
50 | 1 | tkerber | |
51 | 1 | tkerber | class UTPolyDataPipeline_PureVTK(UTPolyDataPipeline): |
52 | 1 | tkerber | """
|
53 | 1 | tkerber | Consistency tests for pure-VTK objects with the purpose
|
54 | 1 | tkerber | of ultimately mapping the polygonal data within the pipeline."""
|
55 | 1 | tkerber | |
56 | 1 | tkerber | # =================================
|
57 | 1 | tkerber | |
58 | 1 | tkerber | def test_consistent_data_oninit(self): |
59 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
60 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
61 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
62 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
63 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
64 | 1 | tkerber | |
65 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
66 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
67 | 1 | tkerber | |
68 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
69 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
70 | 1 | tkerber | |
71 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
72 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
73 | 1 | tkerber | |
74 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
75 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
76 | 1 | tkerber | |
77 | 1 | tkerber | def test_consistent_data_direct(self): |
78 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
79 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
80 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
81 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
82 | 1 | tkerber | |
83 | 1 | tkerber | pipeline.set_data(self.vtk_iso)
|
84 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
85 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
86 | 1 | tkerber | |
87 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
88 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
89 | 1 | tkerber | |
90 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
91 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
92 | 1 | tkerber | |
93 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
94 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
95 | 1 | tkerber | |
96 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
97 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
98 | 1 | tkerber | |
99 | 1 | tkerber | def test_consistent_data_postponed(self): |
100 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
101 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
102 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
103 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
104 | 1 | tkerber | |
105 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
106 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
107 | 1 | tkerber | self.assertNotConnected(self.vtk_iso, self.vtk_dnorm) |
108 | 1 | tkerber | |
109 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
110 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
111 | 1 | tkerber | |
112 | 1 | tkerber | pipeline.set_data(self.vtk_iso)
|
113 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
114 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
115 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
116 | 1 | tkerber | |
117 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
118 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
119 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
120 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
121 | 1 | tkerber | |
122 | 1 | tkerber | def test_consistent_data_onclose(self): |
123 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
124 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
125 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
126 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
127 | 1 | tkerber | |
128 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
129 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
130 | 1 | tkerber | self.assertNotConnected(self.vtk_iso, self.vtk_dnorm) |
131 | 1 | tkerber | |
132 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
133 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
134 | 1 | tkerber | |
135 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
136 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
137 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
138 | 1 | tkerber | |
139 | 1 | tkerber | pipeline.set_data(self.vtk_iso)
|
140 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
141 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
142 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
143 | 1 | tkerber | |
144 | 1 | tkerber | # =================================
|
145 | 1 | tkerber | |
146 | 1 | tkerber | def test_failure_duplicate_data(self): |
147 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
148 | 1 | tkerber | self.assertRaises(ValueError, pipeline.append, self.vtk_iso) |
149 | 1 | tkerber | |
150 | 1 | tkerber | def test_failure_duplicate_mixed(self): |
151 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
152 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
153 | 1 | tkerber | self.assertRaises(ValueError, pipeline.append, self.vtk_iso) |
154 | 1 | tkerber | |
155 | 1 | tkerber | def test_failure_duplicate_cyclic(self): |
156 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
157 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
158 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
159 | 1 | tkerber | self.assertRaises(ValueError, pipeline.append, self.vtk_dnorm) |
160 | 1 | tkerber | |
161 | 1 | tkerber | def test_failure_duplicate_filter(self): |
162 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
163 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
164 | 1 | tkerber | self.assertRaises(ValueError, pipeline.append, self.vtk_dnorm) |
165 | 1 | tkerber | |
166 | 1 | tkerber | # =================================
|
167 | 1 | tkerber | |
168 | 1 | tkerber | def test_failure_output_missing(self): |
169 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
170 | 1 | tkerber | self.assertRaises(RuntimeError, pipeline.get_output_port) |
171 | 1 | tkerber | |
172 | 1 | tkerber | def test_failure_output_closed(self): |
173 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
174 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
175 | 1 | tkerber | self.assertRaises(RuntimeError, pipeline.append, self.vtk_dnorm) |
176 | 1 | tkerber | |
177 | 1 | tkerber | # -------------------------------------------------------------------
|
178 | 1 | tkerber | |
179 | 1 | tkerber | class UTPolyDataPipeline_PipelineVTK(UTPolyDataPipeline): |
180 | 1 | tkerber | """
|
181 | 1 | tkerber | Consistency tests for mixed VTK objects and pipelines with the purpose
|
182 | 1 | tkerber | of ultimately mapping the polygonal data through embedded pipelines."""
|
183 | 1 | tkerber | |
184 | 1 | tkerber | # =================================
|
185 | 1 | tkerber | |
186 | 1 | tkerber | def get_consistent_datapipe(self): |
187 | 1 | tkerber | datapipe = vtkPolyDataPipeline(self.vtk_iso)
|
188 | 1 | tkerber | self.assertTrue(datapipe.hasdata())
|
189 | 1 | tkerber | self.assertTrue(self.vtk_iso in datapipe) |
190 | 1 | tkerber | self.assertEqual(datapipe.vtkish_data, self.vtk_iso) |
191 | 1 | tkerber | self.assertFalse(datapipe.hasfilters())
|
192 | 1 | tkerber | self.assertFalse(datapipe.isclosed())
|
193 | 1 | tkerber | |
194 | 1 | tkerber | return datapipe
|
195 | 1 | tkerber | |
196 | 1 | tkerber | def test_consistent_datapipe_oninit(self): |
197 | 1 | tkerber | datapipe = self.get_consistent_datapipe()
|
198 | 1 | tkerber | |
199 | 1 | tkerber | pipeline = vtkPolyDataPipeline(datapipe) |
200 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
201 | 1 | tkerber | self.assertTrue(datapipe in pipeline) |
202 | 1 | tkerber | self.assertTrue(self.vtk_iso in pipeline) |
203 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, datapipe)
|
204 | 1 | tkerber | self.assertRaises(RuntimeError, datapipe.isclosed) |
205 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
206 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
207 | 1 | tkerber | |
208 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
209 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
210 | 1 | tkerber | |
211 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
212 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
213 | 1 | tkerber | |
214 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
215 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
216 | 1 | tkerber | |
217 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
218 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
219 | 1 | tkerber | |
220 | 1 | tkerber | def test_consistent_datapipe_direct(self): |
221 | 1 | tkerber | datapipe = self.get_consistent_datapipe()
|
222 | 1 | tkerber | |
223 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
224 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
225 | 1 | tkerber | self.assertFalse(datapipe in pipeline) |
226 | 1 | tkerber | self.assertFalse(self.vtk_iso in pipeline) |
227 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
228 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
229 | 1 | tkerber | |
230 | 1 | tkerber | pipeline.set_data(datapipe) |
231 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
232 | 1 | tkerber | self.assertTrue(datapipe in pipeline) |
233 | 1 | tkerber | self.assertTrue(self.vtk_iso in pipeline) |
234 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, datapipe)
|
235 | 1 | tkerber | self.assertRaises(RuntimeError, datapipe.isclosed) |
236 | 1 | tkerber | |
237 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
238 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
239 | 1 | tkerber | |
240 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
241 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
242 | 1 | tkerber | |
243 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
244 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
245 | 1 | tkerber | |
246 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
247 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
248 | 1 | tkerber | |
249 | 1 | tkerber | def test_consistent_datapipe_postponed(self): |
250 | 1 | tkerber | datapipe = self.get_consistent_datapipe()
|
251 | 1 | tkerber | |
252 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
253 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
254 | 1 | tkerber | self.assertFalse(datapipe in pipeline) |
255 | 1 | tkerber | self.assertFalse(self.vtk_iso in pipeline) |
256 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
257 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
258 | 1 | tkerber | |
259 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
260 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
261 | 1 | tkerber | self.assertNotConnected(self.vtk_iso, self.vtk_dnorm) |
262 | 1 | tkerber | |
263 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
264 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
265 | 1 | tkerber | |
266 | 1 | tkerber | pipeline.set_data(datapipe) |
267 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
268 | 1 | tkerber | self.assertTrue(datapipe in pipeline) |
269 | 1 | tkerber | self.assertTrue(self.vtk_iso in pipeline) |
270 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, datapipe)
|
271 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
272 | 1 | tkerber | self.assertTrue(datapipe.isclosed())
|
273 | 1 | tkerber | |
274 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
275 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
276 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
277 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
278 | 1 | tkerber | |
279 | 1 | tkerber | def test_consistent_datapipe_onclose(self): |
280 | 1 | tkerber | datapipe = self.get_consistent_datapipe()
|
281 | 1 | tkerber | |
282 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
283 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
284 | 1 | tkerber | self.assertFalse(datapipe in pipeline) |
285 | 1 | tkerber | self.assertFalse(self.vtk_iso in pipeline) |
286 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
287 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
288 | 1 | tkerber | |
289 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
290 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
291 | 1 | tkerber | self.assertNotConnected(self.vtk_iso, self.vtk_dnorm) |
292 | 1 | tkerber | |
293 | 1 | tkerber | pipeline.append(self.vtk_subdiv)
|
294 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
295 | 1 | tkerber | |
296 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
297 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
298 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
299 | 1 | tkerber | |
300 | 1 | tkerber | pipeline.set_data(datapipe) |
301 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
302 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, datapipe)
|
303 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
304 | 1 | tkerber | self.assertTrue(datapipe.isclosed())
|
305 | 1 | tkerber | |
306 | 1 | tkerber | # =================================
|
307 | 1 | tkerber | |
308 | 1 | tkerber | def get_consistent_filterpipe(self): |
309 | 1 | tkerber | filterpipe = vtkPolyDataPipeline() |
310 | 1 | tkerber | self.assertFalse(filterpipe.hasdata())
|
311 | 1 | tkerber | self.assertFalse(self.vtk_iso in filterpipe) |
312 | 1 | tkerber | self.assertFalse(filterpipe.hasfilters())
|
313 | 1 | tkerber | self.assertFalse(filterpipe.isclosed())
|
314 | 1 | tkerber | |
315 | 1 | tkerber | filterpipe.append(self.vtk_dnorm)
|
316 | 1 | tkerber | self.assertTrue(filterpipe.hasfilters())
|
317 | 1 | tkerber | self.assertNotConnected(self.vtk_iso, self.vtk_dnorm) |
318 | 1 | tkerber | |
319 | 1 | tkerber | filterpipe.append(self.vtk_subdiv)
|
320 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
321 | 1 | tkerber | |
322 | 1 | tkerber | return filterpipe
|
323 | 1 | tkerber | |
324 | 1 | tkerber | def test_consistent_filterpipe_oninit(self): |
325 | 1 | tkerber | filterpipe = self.get_consistent_filterpipe()
|
326 | 1 | tkerber | |
327 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
328 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
329 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
330 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
331 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
332 | 1 | tkerber | |
333 | 1 | tkerber | pipeline.append(filterpipe) |
334 | 1 | tkerber | self.assertRaises(RuntimeError, filterpipe.isclosed) |
335 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
336 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
337 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
338 | 1 | tkerber | |
339 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
340 | 1 | tkerber | self.assertTrue(filterpipe.isclosed())
|
341 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
342 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
343 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
344 | 1 | tkerber | |
345 | 1 | tkerber | def test_consistent_filterpipe_direct(self): |
346 | 1 | tkerber | filterpipe = self.get_consistent_filterpipe()
|
347 | 1 | tkerber | |
348 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
349 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
350 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
351 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
352 | 1 | tkerber | |
353 | 1 | tkerber | pipeline.set_data(self.vtk_iso)
|
354 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
355 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
356 | 1 | tkerber | |
357 | 1 | tkerber | pipeline.append(filterpipe) |
358 | 1 | tkerber | self.assertRaises(RuntimeError, filterpipe.isclosed) |
359 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
360 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
361 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
362 | 1 | tkerber | |
363 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
364 | 1 | tkerber | self.assertTrue(filterpipe.isclosed())
|
365 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
366 | 1 | tkerber | self.assertTrue(pipeline.hasfilters())
|
367 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
368 | 1 | tkerber | |
369 | 1 | tkerber | def test_consistent_filterpipe_postponed(self): |
370 | 1 | tkerber | filterpipe = self.get_consistent_filterpipe()
|
371 | 1 | tkerber | |
372 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
373 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
374 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
375 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
376 | 1 | tkerber | |
377 | 1 | tkerber | pipeline.append(filterpipe) |
378 | 1 | tkerber | self.assertRaises(RuntimeError, filterpipe.isclosed) |
379 | 1 | tkerber | self.assertNotConnected(self.vtk_iso, self.vtk_dnorm) |
380 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
381 | 1 | tkerber | |
382 | 1 | tkerber | pipeline.set_data(self.vtk_iso)
|
383 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
384 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
385 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
386 | 1 | tkerber | |
387 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
388 | 1 | tkerber | self.assertTrue(filterpipe.isclosed())
|
389 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
390 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
391 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
392 | 1 | tkerber | |
393 | 1 | tkerber | def test_consistent_filterdata_onclose(self): |
394 | 1 | tkerber | filterpipe = self.get_consistent_filterpipe()
|
395 | 1 | tkerber | |
396 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
397 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
398 | 1 | tkerber | self.assertFalse(pipeline.hasfilters())
|
399 | 1 | tkerber | self.assertFalse(pipeline.isclosed())
|
400 | 1 | tkerber | |
401 | 1 | tkerber | pipeline.append(filterpipe) |
402 | 1 | tkerber | self.assertRaises(RuntimeError, filterpipe.isclosed) |
403 | 1 | tkerber | self.assertNotConnected(self.vtk_iso, self.vtk_dnorm) |
404 | 1 | tkerber | self.assertConnected(self.vtk_dnorm, self.vtk_subdiv) |
405 | 1 | tkerber | |
406 | 1 | tkerber | pipeline.append(self.vtk_dmap)
|
407 | 1 | tkerber | self.assertTrue(filterpipe.isclosed())
|
408 | 1 | tkerber | self.assertConnected(self.vtk_subdiv, self.vtk_dmap) |
409 | 1 | tkerber | self.assertFalse(pipeline.hasdata())
|
410 | 1 | tkerber | self.assertTrue(pipeline.isclosed())
|
411 | 1 | tkerber | |
412 | 1 | tkerber | pipeline.set_data(self.vtk_iso)
|
413 | 1 | tkerber | self.assertTrue(pipeline.hasdata())
|
414 | 1 | tkerber | self.assertEqual(pipeline.vtkish_data, self.vtk_iso) |
415 | 1 | tkerber | self.assertConnected(self.vtk_iso, self.vtk_dnorm) |
416 | 1 | tkerber | |
417 | 1 | tkerber | # =================================
|
418 | 1 | tkerber | |
419 | 1 | tkerber | def test_failure_recursive_data(self): |
420 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
421 | 1 | tkerber | self.assertRaises(ValueError, pipeline.set_data, pipeline) |
422 | 1 | tkerber | |
423 | 1 | tkerber | def test_failure_recursive_mixed(self): |
424 | 1 | tkerber | pipeline = vtkPolyDataPipeline(self.vtk_iso)
|
425 | 1 | tkerber | pipeline.append(self.vtk_dnorm)
|
426 | 1 | tkerber | self.assertRaises(ValueError, pipeline.append, pipeline) |
427 | 1 | tkerber | |
428 | 1 | tkerber | def test_failure_recursive_filter(self): |
429 | 1 | tkerber | pipeline = vtkPolyDataPipeline() |
430 | 1 | tkerber | self.assertRaises(ValueError, pipeline.append, pipeline) |
431 | 1 | tkerber | |
432 | 1 | tkerber | |
433 | 1 | tkerber | # -------------------------------------------------------------------
|
434 | 1 | tkerber | |
435 | 1 | tkerber | if __name__ in ['__main__', '__builtin__']: |
436 | 1 | tkerber | # We may have been imported by test.py, if so we should redirect to logfile
|
437 | 1 | tkerber | if __name__ == '__builtin__': |
438 | 1 | tkerber | testrunner = CustomTextTestRunner('vtk_pipeline.log', verbosity=2) |
439 | 1 | tkerber | else:
|
440 | 1 | tkerber | testrunner = unittest.TextTestRunner(stream=sys.stdout, verbosity=2)
|
441 | 1 | tkerber | |
442 | 1 | tkerber | testcases = [UTPolyDataPipeline_PureVTK, UTPolyDataPipeline_PipelineVTK] |
443 | 1 | tkerber | |
444 | 1 | tkerber | for test in testcases: |
445 | 1 | tkerber | info = '\n' + test.__name__ + '\n' + test.__doc__.strip('\n') + '\n' |
446 | 1 | tkerber | testsuite = unittest.defaultTestLoader.loadTestsFromTestCase(test) |
447 | 1 | tkerber | testrunner.stream.writeln(info) |
448 | 1 | tkerber | testresult = testrunner.run(testsuite) |
449 | 1 | tkerber | # Provide feedback on failed tests if imported by test.py
|
450 | 1 | tkerber | if __name__ == '__builtin__' and not testresult.wasSuccessful(): |
451 | 1 | tkerber | raise SystemExit('Test failed. Check vtk_pipeline.log for details.') |