Skip to content

Commit a7fb3b0

Browse files
filippo-biondindem0
authored andcommitted
Added testing for reading OpenFOAM mesh in binary format
1 parent afd28df commit a7fb3b0

File tree

1 file changed

+42
-24
lines changed

1 file changed

+42
-24
lines changed

tests/test_openfoamhandler.py

+42-24
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,20 @@
11
from unittest import TestCase
22
import unittest
3+
import pytest
34
import numpy as np
45
from smithers.io.openfoam import OpenFoamHandler, FoamMesh
56

67
openfoam_mesh_path = "tests/test_datasets/openfoam_mesh"
8+
openfoam_mesh_binary_path = "tests/test_datasets/openfoam_mesh_binary"
79
notime_openfoam_mesh_path = "tests/test_datasets/notime_openfoam_mesh"
8-
handler = OpenFoamHandler()
9-
mesh = handler.read(openfoam_mesh_path)
10+
notime_openfoam_mesh_binary_path = "tests/test_datasets/notime_openfoam_mesh_binary"
11+
mesh_ascii = OpenFoamHandler().read(openfoam_mesh_path)
12+
mesh_binary = OpenFoamHandler().read(openfoam_mesh_binary_path)
1013
truth_mesh = FoamMesh(openfoam_mesh_path)
1114

1215

13-
def test_read():
16+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
17+
def test_read(mesh):
1418
assert type(mesh) == dict
1519

1620
assert "points" in mesh["0"]
@@ -19,7 +23,8 @@ def test_read():
1923
assert "cells" in mesh["0"]
2024

2125

22-
def test_read_boundary_names():
26+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
27+
def test_read_boundary_names(mesh):
2328
assert set(mesh["0"]["boundary"].keys()) == set(
2429
[
2530
b"inlet",
@@ -32,19 +37,23 @@ def test_read_boundary_names():
3237
)
3338

3439

35-
def test_read_points():
40+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
41+
def test_read_points(mesh):
3642
np.testing.assert_almost_equal(mesh["0"]["points"], truth_mesh.points)
3743

3844

39-
def test_read_faces():
45+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
46+
def test_read_faces(mesh):
4047
np.testing.assert_almost_equal(mesh["0"]["faces"], truth_mesh.faces)
4148

4249

43-
def test_read_cells():
50+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
51+
def test_read_cells(mesh):
4452
assert len(mesh["0"]["cells"]) == len(truth_mesh.cell_faces)
4553

4654

47-
def test_read_cell_faces():
55+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
56+
def test_read_cell_faces(mesh):
4857
a_key = list(mesh["0"]["cells"].keys())[0]
4958
smithers_cell = mesh["0"]["cells"][a_key]
5059

@@ -53,15 +62,17 @@ def test_read_cell_faces():
5362
)
5463

5564

56-
def test_read_cell_neighbors():
65+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
66+
def test_read_cell_neighbors(mesh):
5767
a_key = list(mesh["0"]["cells"].keys())[-1]
5868
smithers_cell = mesh["0"]["cells"][a_key]
5969
np.testing.assert_almost_equal(
6070
smithers_cell["neighbours"], truth_mesh.cell_neighbour[a_key]
6171
)
6272

6373

64-
def test_read_cell_points():
74+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
75+
def test_read_cell_points(mesh):
6576
a_key = list(mesh["0"]["cells"].keys())[-1]
6677
smithers_cell = mesh["0"]["cells"][a_key]
6778

@@ -74,7 +85,8 @@ def test_read_cell_points():
7485
np.testing.assert_almost_equal(smithers_cell["points"], faces_points)
7586

7687

77-
def test_boundary():
88+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
89+
def test_boundary(mesh):
7890
ofpp_obstacle = truth_mesh.boundary[b"obstacle"]
7991
smithers_obstacle = mesh["0"]["boundary"][b"obstacle"]
8092

@@ -104,40 +116,46 @@ def test_boundary():
104116
)
105117

106118

107-
def test_read_fields_time_instants_all():
108-
all_numeric_mesh = handler.read(
109-
openfoam_mesh_path, time_instants="all_numeric"
119+
@pytest.mark.parametrize("path", [openfoam_mesh_path, openfoam_mesh_binary_path])
120+
def test_read_fields_time_instants_all(path):
121+
all_numeric_mesh = OpenFoamHandler().read(
122+
path, time_instants="all_numeric"
110123
)
111124
assert set(all_numeric_mesh.keys()) == set(["0", "1088", "4196"])
112125

113126

114-
def test_read_fields_time_instants_first():
127+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
128+
def test_read_fields_time_instants_first(mesh):
115129
assert set(mesh.keys()) == set(["0"])
116130

117131

118-
def test_read_fields_time_instants_list():
119-
handler = OpenFoamHandler()
120-
time_list_mesh = handler.read(openfoam_mesh_path, time_instants=["1088"])
132+
@pytest.mark.parametrize("path", [openfoam_mesh_path, openfoam_mesh_binary_path])
133+
def test_read_fields_time_instants_list(path):
134+
time_list_mesh = OpenFoamHandler().read(path, time_instants=["1088"])
121135
assert set(time_list_mesh.keys()) == set(["1088"])
122136

123137

124-
def test_read_fields_all():
138+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
139+
def test_read_fields_all(mesh):
125140
for tdc in mesh.values():
126141
assert set(tdc["fields"].keys()) == set(["U", "p"])
127142

128143

129-
def test_read_fields_list():
130-
fields_list_mesh = handler.read(openfoam_mesh_path, field_names=["p"])
144+
@pytest.mark.parametrize("path", [openfoam_mesh_path, openfoam_mesh_binary_path])
145+
def test_read_fields_list(path):
146+
fields_list_mesh = OpenFoamHandler().read(path, field_names=["p"])
131147
for tdc in fields_list_mesh.values():
132148
assert set(tdc["fields"].keys()) == set(["p"])
133149

134150

135-
def test_no_time_instants():
151+
@pytest.mark.parametrize("path", [notime_openfoam_mesh_path, notime_openfoam_mesh_binary_path])
152+
def test_no_time_instants(path):
136153
# assert that this doesn't raise anything
137-
handler.read(notime_openfoam_mesh_path)
154+
OpenFoamHandler().read(path)
138155

139156

140-
def test_area():
157+
@pytest.mark.parametrize("mesh", [mesh_ascii, mesh_binary])
158+
def test_area(mesh):
141159
np.testing.assert_almost_equal(
142160
mesh["0"]["boundary"][b"obstacle"]["faces"]["area"][100],
143161
0.039269502373542965,

0 commit comments

Comments
 (0)