aiming at testing each individual statement
This commit is contained in:
parent
2d98325fa4
commit
51da632108
|
@ -131,17 +131,19 @@ class VTK:
|
||||||
|
|
||||||
"""
|
"""
|
||||||
ext = Path(fname).suffix
|
ext = Path(fname).suffix
|
||||||
if ext == '.vtk' or dataset_type:
|
if ext == '.vtk' or dataset_type is not None:
|
||||||
reader = vtk.vtkGenericDataObjectReader()
|
reader = vtk.vtkGenericDataObjectReader()
|
||||||
reader.SetFileName(str(fname))
|
reader.SetFileName(str(fname))
|
||||||
reader.Update()
|
|
||||||
if dataset_type is None:
|
if dataset_type is None:
|
||||||
raise TypeError('Dataset type for *.vtk file not given.')
|
raise TypeError('Dataset type for *.vtk file not given.')
|
||||||
elif dataset_type.lower().endswith('rectilineargrid'):
|
elif dataset_type.lower().endswith('rectilineargrid'):
|
||||||
|
reader.Update()
|
||||||
geom = reader.GetRectilinearGridOutput()
|
geom = reader.GetRectilinearGridOutput()
|
||||||
elif dataset_type.lower().endswith('unstructuredgrid'):
|
elif dataset_type.lower().endswith('unstructuredgrid'):
|
||||||
|
reader.Update()
|
||||||
geom = reader.GetUnstructuredGridOutput()
|
geom = reader.GetUnstructuredGridOutput()
|
||||||
elif dataset_type.lower().endswith('polydata'):
|
elif dataset_type.lower().endswith('polydata'):
|
||||||
|
reader.Update()
|
||||||
geom = reader.GetPolyDataOutput()
|
geom = reader.GetPolyDataOutput()
|
||||||
else:
|
else:
|
||||||
raise TypeError(f'Unknown dataset type {dataset_type} for vtk file')
|
raise TypeError(f'Unknown dataset type {dataset_type} for vtk file')
|
||||||
|
@ -259,15 +261,15 @@ class VTK:
|
||||||
Data label.
|
Data label.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
celldata = self.geom.GetCellData()
|
cell_data = self.geom.GetCellData()
|
||||||
for a in range(celldata.GetNumberOfArrays()):
|
for a in range(cell_data.GetNumberOfArrays()):
|
||||||
if celldata.GetArrayName(a) == label:
|
if cell_data.GetArrayName(a) == label:
|
||||||
return vtk_to_np(celldata.GetArray(a))
|
return vtk_to_np(cell_data.GetArray(a))
|
||||||
|
|
||||||
pointdata = self.geom.GetPointData()
|
point_data = self.geom.GetPointData()
|
||||||
for a in range(celldata.GetNumberOfArrays()):
|
for a in range(point_data.GetNumberOfArrays()):
|
||||||
if pointdata.GetArrayName(a) == label:
|
if point_data.GetArrayName(a) == label:
|
||||||
return vtk_to_np(pointdata.GetArray(a))
|
return vtk_to_np(point_data.GetArray(a))
|
||||||
|
|
||||||
raise ValueError(f'array "{label}" not found')
|
raise ValueError(f'array "{label}" not found')
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,19 @@ def reference_dir(reference_dir_base):
|
||||||
"""Directory containing reference results."""
|
"""Directory containing reference results."""
|
||||||
return reference_dir_base/'VTK'
|
return reference_dir_base/'VTK'
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def default():
|
||||||
|
"""Simple VTK."""
|
||||||
|
grid = np.array([5,6,7],int)
|
||||||
|
size = np.array([.6,1.,.5])
|
||||||
|
return VTK.from_rectilinearGrid(grid,size)
|
||||||
|
|
||||||
class TestVTK:
|
class TestVTK:
|
||||||
|
|
||||||
|
@pytest.fixture(autouse=True)
|
||||||
|
def _execution_stamp(self, execution_stamp):
|
||||||
|
print('patched damask.util.execution_stamp')
|
||||||
|
|
||||||
def test_rectilinearGrid(self,tmp_path):
|
def test_rectilinearGrid(self,tmp_path):
|
||||||
grid = np.random.randint(5,10,3)*2
|
grid = np.random.randint(5,10,3)*2
|
||||||
size = np.random.random(3) + 1.0
|
size = np.random.random(3) + 1.0
|
||||||
|
@ -77,9 +88,33 @@ class TestVTK:
|
||||||
@pytest.mark.parametrize('name,dataset_type',[('this_file_does_not_exist.vtk', None),
|
@pytest.mark.parametrize('name,dataset_type',[('this_file_does_not_exist.vtk', None),
|
||||||
('this_file_does_not_exist.vtk','vtk'),
|
('this_file_does_not_exist.vtk','vtk'),
|
||||||
('this_file_does_not_exist.vtx', None)])
|
('this_file_does_not_exist.vtx', None)])
|
||||||
def test_invalid_dataset_type(self,dataset_type,name):
|
def test_invalid_dataset_type(self,name,dataset_type):
|
||||||
with pytest.raises(TypeError):
|
with pytest.raises(TypeError):
|
||||||
VTK.from_file('this_file_does_not_exist.vtk',dataset_type)
|
VTK.from_file(name,dataset_type)
|
||||||
|
|
||||||
|
def test_invalid_extension_write(self,default):
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
default.write('default.txt')
|
||||||
|
|
||||||
|
def test_invalid_get(self,default):
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
default.get('does_not_exist')
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('data,label',[(np.ones(3),'valid'),
|
||||||
|
(np.ones(3),None)])
|
||||||
|
def test_invalid_add(self,default,data,label):
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
default.add(np.ones(3),label)
|
||||||
|
|
||||||
|
def test_invalid_add_type(self,default):
|
||||||
|
with pytest.raises(TypeError):
|
||||||
|
default.add('invalid_type','label')
|
||||||
|
|
||||||
|
def test_comments(self,tmp_path,default):
|
||||||
|
default.add_comments(['this is a comment'])
|
||||||
|
default.write(tmp_path/'with_comments',parallel=False)
|
||||||
|
new = VTK.from_file(tmp_path/'with_comments.vtr')
|
||||||
|
assert new.get_comments() == ['this is a comment']
|
||||||
|
|
||||||
|
|
||||||
def test_compare_reference_polyData(self,update,reference_dir,tmp_path):
|
def test_compare_reference_polyData(self,update,reference_dir,tmp_path):
|
||||||
|
@ -90,7 +125,8 @@ class TestVTK:
|
||||||
polyData.write(reference_dir/'polyData')
|
polyData.write(reference_dir/'polyData')
|
||||||
else:
|
else:
|
||||||
reference = VTK.from_file(reference_dir/'polyData.vtp')
|
reference = VTK.from_file(reference_dir/'polyData.vtp')
|
||||||
assert polyData.__repr__() == reference.__repr__()
|
assert polyData.__repr__() == reference.__repr__() and \
|
||||||
|
np.allclose(polyData.get('coordinates'),points)
|
||||||
|
|
||||||
def test_compare_reference_rectilinearGrid(self,update,reference_dir,tmp_path):
|
def test_compare_reference_rectilinearGrid(self,update,reference_dir,tmp_path):
|
||||||
grid = np.array([5,6,7],int)
|
grid = np.array([5,6,7],int)
|
||||||
|
@ -104,5 +140,5 @@ class TestVTK:
|
||||||
rectilinearGrid.write(reference_dir/'rectilinearGrid')
|
rectilinearGrid.write(reference_dir/'rectilinearGrid')
|
||||||
else:
|
else:
|
||||||
reference = VTK.from_file(reference_dir/'rectilinearGrid.vtr')
|
reference = VTK.from_file(reference_dir/'rectilinearGrid.vtr')
|
||||||
assert rectilinearGrid.__repr__() == reference.__repr__()
|
assert rectilinearGrid.__repr__() == reference.__repr__() and \
|
||||||
|
np.allclose(rectilinearGrid.get('cell'),c)
|
||||||
|
|
Loading…
Reference in New Issue