def test_multi_slice_index(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything sub = multi[0:3] assert len(sub) == 3 for i in range(3): assert id(sub[i]) == id(multi[i]) assert sub.get_block_name(i) == multi.get_block_name(i) sub = multi[0:-1] assert len(sub) == len(multi) == multi.n_blocks for i in range(multi.n_blocks): assert id(sub[i]) == id(multi[i]) assert sub.get_block_name(i) == multi.get_block_name(i) sub = multi[0:-1:2] assert len(sub) == 3 for i in range(3): j = i * 2 assert id(sub[i]) == id(multi[j]) assert sub.get_block_name(i) == multi.get_block_name(j)
def test_multi_block_length(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(None) assert multi.length
def test_multi_block_repr(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(None) # Now check everything assert multi.n_blocks == 5 assert multi._repr_html_() is not None
def test_combine_filter(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything assert multi.n_blocks == 5 # Now apply the geometry filter to combine a plethora of data blocks geom = multi.combine() assert isinstance(geom, pyvista.UnstructuredGrid)
def test_multi_block_copy(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything newobj = multi.copy() assert multi.n_blocks == 5 == newobj.n_blocks assert id(multi[0]) != id(newobj[0]) assert id(multi[-1]) != id(newobj[-1]) return
def test_extract_geometry(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) nested = pyvista.MultiBlock() nested.append(ex.load_airplane()) nested.append(ex.load_globe()) multi.append(nested) # Now check everything assert multi.n_blocks == 4 # Now apply the geometry filter to combine a plethora of data blocks geom = multi.extract_geometry() assert isinstance(geom, pyvista.PolyData)
def test_multi_block_list_index(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything indices = [0, 3, 4] sub = multi[indices] assert len(sub) == len(indices) for i, j in enumerate(indices): assert id(sub[i]) == id(multi[j]) assert sub.get_block_name(i) == multi.get_block_name(j)
def test_multi_block_negative_index(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything assert id(multi[-1]) == id(multi[4]) assert id(multi[-2]) == id(multi[3]) assert id(multi[-3]) == id(multi[2]) assert id(multi[-4]) == id(multi[1]) assert id(multi[-5]) == id(multi[0]) with pytest.raises(IndexError): foo = multi[-6] return
def test_multi_block_io(extension, binary, tmpdir): filename = str(tmpdir.mkdir("tmpdir").join('tmp.%s' % extension)) multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything assert multi.n_blocks == 5 # Save it out multi.save(filename, binary) foo = pyvista.MultiBlock(filename) assert foo.n_blocks == multi.n_blocks foo = pyvista.read(filename) assert foo.n_blocks == multi.n_blocks
def test_export_multi(tmpdir): filename = str(tmpdir.mkdir("tmpdir").join('scene-multi')) multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_rectilinear()) # Create the scene plotter = pyvista.Plotter(off_screen=OFF_SCREEN) plotter.add_mesh(multi) plotter.export_vtkjs(filename, compress_arrays=True) cpos_out = plotter.show() # Export must be called before showing! plotter.close() # Now make sure the file is there assert os.path.isfile(f'{filename}.vtkjs')
def test_multi_block_append(): """This puts all of the example data objects into a a MultiBlock container""" multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_rectilinear()) # Now check everything assert multi.n_blocks == 5 assert multi.bounds is not None assert isinstance(multi[0], pyvista.PolyData) assert isinstance(multi[1], pyvista.PolyData) assert isinstance(multi[2], pyvista.UniformGrid) assert isinstance(multi[3], pyvista.PolyData) assert isinstance(multi[4], pyvista.RectilinearGrid) # Now overwrite a block multi[4] = pyvista.Sphere() assert isinstance(multi[4], pyvista.PolyData) multi[4] = vtk.vtkUnstructuredGrid() assert isinstance(multi[4], pyvista.UnstructuredGrid)
def test_multi_block_copy(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything newobj = multi.copy() assert multi.n_blocks == 5 == newobj.n_blocks assert id(multi[0]) != id(newobj[0]) assert id(multi[-1]) != id(newobj[-1]) for i in range(newobj.n_blocks): assert pyvista.is_pyvista_dataset(newobj.GetBlock(i)) # Now check shallow newobj = multi.copy(deep=False) assert multi.n_blocks == 5 == newobj.n_blocks assert id(multi[0]) == id(newobj[0]) assert id(multi[-1]) == id(newobj[-1]) for i in range(newobj.n_blocks): assert pyvista.is_pyvista_dataset(newobj.GetBlock(i)) return
def test_multi_block_list_index(): multi = pyvista.MultiBlock() # Add examples multi.append(ex.load_ant()) multi.append(ex.load_sphere()) multi.append(ex.load_uniform()) multi.append(ex.load_airplane()) multi.append(ex.load_globe()) # Now check everything indices = [0, 3, 4] sub = multi[indices] assert len(sub) == len(indices) for i, j in enumerate(indices): assert id(sub[i]) == id(multi[j]) assert sub.get_block_name(i) == multi.get_block_name(j) # check list of key names multi = pyvista.MultiBlock() multi["foo"] = pyvista.Sphere() multi["goo"] = pyvista.Box() multi["soo"] = pyvista.Cone() indices = ["goo", "foo"] sub = multi[indices] assert len(sub) == len(indices) assert isinstance(sub["foo"], pyvista.PolyData)
def test_load_sphere(): """ Loads sphere ply mesh """ mesh = examples.load_sphere() assert mesh.n_points
def sphere(): return examples.load_sphere()