11from unittest import TestCase
22import unittest
3+ import pytest
34import numpy as np
45from smithers .io .openfoam import OpenFoamHandler , FoamMesh
56
67openfoam_mesh_path = "tests/test_datasets/openfoam_mesh"
8+ openfoam_mesh_binary_path = "tests/test_datasets/openfoam_mesh_binary"
79notime_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 )
1013truth_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