forked from pyvista/pyvista
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_examples.py
441 lines (328 loc) · 11.9 KB
/
test_examples.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
import os
from subprocess import PIPE, Popen
import numpy as np
import pytest
import vtk
import pyvista
from pyvista import examples
from pyvista.plotting import system_supports_plotting
TEST_DOWNLOADS = False
try:
if os.environ['TEST_DOWNLOADS'].lower() == 'true':
TEST_DOWNLOADS = True
except KeyError:
pass
@pytest.mark.skipif(not system_supports_plotting(), reason="Requires system to support plotting")
def test_docexample_advancedplottingwithnumpy():
import pyvista
import numpy as np
# Make a grid
x, y, z = np.meshgrid(np.linspace(-5, 5, 20),
np.linspace(-5, 5, 20),
np.linspace(-5, 5, 5))
points = np.empty((x.size, 3))
points[:, 0] = x.ravel('F')
points[:, 1] = y.ravel('F')
points[:, 2] = z.ravel('F')
# Compute a direction for the vector field
direction = np.sin(points)**3
# plot using the plotting class
plotter = pyvista.Plotter(off_screen=True)
plotter.add_arrows(points, direction, 0.5)
plotter.set_background([0, 0, 0]) # RGB set to black
plotter.show(auto_close=False)
np.any(plotter.screenshot())
plotter.close()
@pytest.mark.skipif(not system_supports_plotting(), reason="Requires system to support plotting")
def test_creatingagifmovie(tmpdir, off_screen=True):
if tmpdir:
filename = str(tmpdir.mkdir("tmpdir").join('wave.gif'))
else:
filename = '/tmp/wave.gif'
x = np.arange(-10, 10, 0.25)
y = np.arange(-10, 10, 0.25)
x, y = np.meshgrid(x, y)
r = np.sqrt(x**2 + y**2)
z = np.sin(r)
# Create and structured surface
grid = pyvista.StructuredGrid(x, y, z)
# Make copy of points
pts = grid.points.copy()
# Start a plotter object and set the scalars to the Z height
plotter = pyvista.Plotter(off_screen=off_screen)
plotter.add_mesh(grid, scalars=z.ravel())
plotter.show(auto_close=False)
# Open a gif
plotter.open_gif(filename)
# Update Z and write a frame for each updated position
nframe = 5
for phase in np.linspace(0, 2*np.pi, nframe + 1)[:nframe]:
z = np.sin(r + phase)
pts[:, -1] = z.ravel()
plotter.update_coordinates(pts)
plotter.update_scalars(z.ravel())
plotter.write_frame()
# Close movie and delete object
plotter.close()
@pytest.mark.skipif(not system_supports_plotting(), reason="Requires system to support plotting")
def test_plot_wave():
points = examples.plot_wave(wavetime=0.1, off_screen=True)
assert isinstance(points, np.ndarray)
@pytest.mark.skipif(not system_supports_plotting(), reason="Requires system to support plotting")
def test_beam_example():
examples.beam_example(off_screen=True)
@pytest.mark.skipif(not system_supports_plotting(), reason="Requires system to support plotting")
def test_plot_ants_plane():
examples.plot_ants_plane(off_screen=True)
def test_load_ant():
""" Load ply ant mesh """
mesh = examples.load_ant()
assert mesh.n_points
def test_load_airplane():
""" Load ply airplane mesh """
mesh = examples.load_airplane()
assert mesh.n_points
def test_load_sphere():
""" Loads sphere ply mesh """
mesh = examples.load_sphere()
assert mesh.n_points
def test_load_channels():
""" Loads geostat training image """
mesh = examples.load_channels()
assert mesh.n_points
if TEST_DOWNLOADS:
def test_download_masonry_texture():
data = examples.download_masonry_texture()
assert isinstance(data, vtk.vtkTexture)
def test_download_usa_texture():
data = examples.download_usa_texture()
assert isinstance(data, vtk.vtkTexture)
def test_download_usa():
data = examples.download_usa()
assert np.any(data.points)
def test_download_st_helens():
data = examples.download_st_helens()
assert data.n_points
def test_download_bunny():
data = examples.download_bunny()
assert data.n_points
def test_download_cow():
data = examples.download_cow()
assert data.n_points
def test_download_faults():
data = examples.download_faults()
assert data.n_points
def test_download_tensors():
data = examples.download_tensors()
assert data.n_points
def test_download_head():
data = examples.download_head()
assert data.n_points
def test_download_bolt_nut():
data = examples.download_bolt_nut()
assert isinstance(data, pyvista.MultiBlock)
def test_download_clown():
data = examples.download_clown()
assert data.n_points
def test_download_exodus():
data = examples.download_exodus()
assert data.n_blocks
def test_download_nefertiti():
data = examples.download_nefertiti()
assert data.n_cells
def test_download_blood_vessels():
"""Tests the parallel VTU reader"""
data = examples.download_blood_vessels()
assert isinstance(data, pyvista.UnstructuredGrid)
def test_download_bunny_coarse():
data = examples.download_bunny_coarse()
assert data.n_cells
def test_download_cow_head():
data = examples.download_cow_head()
assert data.n_cells
def test_download_knee_full():
data = examples.download_knee_full()
assert data.n_cells
def test_download_iron_pot():
data = examples.download_iron_pot()
assert data.n_cells
def test_download_tetrahedron():
data = examples.download_tetrahedron()
assert data.n_cells
def test_download_saddle_surface():
data = examples.download_saddle_surface()
assert data.n_cells
def test_download_foot_bones():
data = examples.download_foot_bones()
assert data.n_cells
def test_download_guitar():
data = examples.download_guitar()
assert data.n_cells
def test_download_quadratic_pyramid():
data = examples.download_quadratic_pyramid()
assert data.n_cells
def test_download_quadratic_pyramid():
data = examples.download_quadratic_pyramid()
assert data.n_cells
def test_download_bird():
data = examples.download_bird()
assert data.n_cells
def test_download_bird_texture():
data = examples.download_bird_texture()
assert isinstance(data, vtk.vtkTexture)
def test_download_office():
data = examples.download_office()
assert data.n_cells
def test_download_horse_points():
data = examples.download_horse_points()
assert data.n_points
def test_download_horse():
data = examples.download_horse()
assert data.n_cells
def test_download_cake_easy():
data = examples.download_cake_easy()
assert data.n_cells
def test_download_cake_easy_texture():
data = examples.download_cake_easy_texture()
assert isinstance(data, vtk.vtkTexture)
def test_download_rectilinear_grid():
data = examples.download_rectilinear_grid()
assert data.n_cells
def test_download_gourds():
data = examples.download_gourds()
assert data.n_cells
data = examples.download_gourds(zoom=True)
assert data.n_cells
def test_download_gourds_texture():
data = examples.download_gourds_texture()
assert isinstance(data, vtk.vtkTexture)
data = examples.download_gourds_texture(zoom=True)
assert isinstance(data, vtk.vtkTexture)
def test_download_unstructured_grid():
data = examples.download_unstructured_grid()
assert data.n_cells
def test_download_letter_k():
data = examples.download_letter_k()
assert data.n_cells
def test_download_letter_a():
data = examples.download_letter_a()
assert data.n_cells
def test_download_poly_line():
data = examples.download_poly_line()
assert data.n_cells
def test_download_cad_model():
data = examples.download_cad_model()
assert data.n_cells
def test_download_frog():
data = examples.download_frog()
assert data.n_cells
def test_download_prostate():
data = examples.download_prostate()
assert data.n_cells
def test_download_filled_contours():
data = examples.download_filled_contours()
assert data.n_cells
def test_download_doorman():
data = examples.download_doorman()
assert data.n_cells
def test_download_mug():
data = examples.download_mug()
assert data.n_blocks
def test_download_oblique_cone():
data = examples.download_oblique_cone()
assert data.n_cells
def test_download_emoji():
data = examples.download_emoji()
assert data.n_cells
def test_download_emoji_texture():
data = examples.download_emoji_texture()
assert isinstance(data, vtk.vtkTexture)
def test_download_teapot():
data = examples.download_teapot()
assert data.n_cells
def test_download_brain():
data = examples.download_brain()
assert data.n_cells
def test_download_structured_grid():
data = examples.download_structured_grid()
assert data.n_cells
def test_download_structured_grid_two():
data = examples.download_structured_grid_two()
assert data.n_cells
def test_download_trumpet():
data = examples.download_trumpet()
assert data.n_cells
def test_download_face():
data = examples.download_face()
assert data.n_cells
def test_download_sky_box_nz():
data = examples.download_sky_box_nz()
assert data.n_cells
def test_download_sky_box_nz_texture():
data = examples.download_sky_box_nz_texture()
assert isinstance(data, vtk.vtkTexture)
def test_download_disc_quads():
data = examples.download_disc_quads()
assert data.n_cells
def test_download_honolulu():
data = examples.download_honolulu()
assert data.n_cells
def test_download_motor():
data = examples.download_motor()
assert data.n_cells
def test_download_tri_quadratic_hexahedron():
data = examples.download_tri_quadratic_hexahedron()
assert data.n_cells
def test_download_human():
data = examples.download_human()
assert data.n_cells
def test_download_vtk():
data = examples.download_vtk()
assert data.n_cells
def test_download_spider():
data = examples.download_spider()
assert data.n_cells
def test_download_carotid():
data = examples.download_carotid()
assert data.n_cells
def test_download_blow():
data = examples.download_blow()
assert data.n_cells
def test_download_shark():
data = examples.download_shark()
assert data.n_cells
def test_download_dragon():
data = examples.download_dragon()
assert data.n_cells
def test_download_armadillo():
data = examples.download_armadillo()
assert data.n_cells
def test_download_gears():
data = examples.download_gears()
assert data.n_cells
def test_download_torso():
data = examples.download_torso()
assert data.n_cells
def test_download_kitchen():
data = examples.download_kitchen()
assert data.n_cells
def test_download_kitchen_split():
data = examples.download_kitchen(split=True)
assert data.n_blocks
# def test_download_topo_global():
# data = examples.download_topo_global()
# assert data.n_cells
#
# def test_download_topo_land():
# data = examples.download_topo_land()
# assert data.n_cells
def test_download_coastlines():
data = examples.download_coastlines()
assert data.n_cells
def test_download_knee():
data = examples.download_knee()
assert data.n_cells
def test_download_lidar():
data = examples.download_lidar()
assert data.n_cells
# End of download tests