2727
2828dataDir = os .path .join (os .path .split (__file__ )[0 ], "data" )
2929
30+
3031def vec2np (v ):
3132 ans = np .empty (3 , dtype = float )
3233 ans [0 ] = v .x
3334 ans [1 ] = v .y
3435 ans [2 ] = v .z
3536 return ans
3637
38+
3739class TestPolyDataGenerator :
3840 def test_regression (self , tmpdir ):
3941 """Generate a gmy from a stored profile and check that the output is
@@ -65,7 +67,9 @@ def test_regression(self, tmpdir):
6567 test_dom = test_ldr .Domain
6668
6769 # Per-block data length must be identical
68- assert np .all (ref_ldr .BlockUncompressedDataLength == test_ldr .BlockUncompressedDataLength )
70+ assert np .all (
71+ ref_ldr .BlockUncompressedDataLength == test_ldr .BlockUncompressedDataLength
72+ )
6973 # Same for fluid site counts
7074 assert np .all (ref_dom .BlockFluidSiteCounts == test_dom .BlockFluidSiteCounts )
7175 nblocks = len (ref_dom .BlockFluidSiteCounts )
@@ -90,7 +94,12 @@ def test_regression(self, tmpdir):
9094 if rs .IntersectionDistance is None :
9195 assert ts .IntersectionDistance is None
9296 else :
93- assert np .allclose (rs .IntersectionDistance , ts .IntersectionDistance , rtol = 0 , atol = 5e-5 )
97+ assert np .allclose (
98+ rs .IntersectionDistance ,
99+ ts .IntersectionDistance ,
100+ rtol = 0 ,
101+ atol = 5e-5 ,
102+ )
94103
95104 assert np .all (rs .IOletIndex == ts .IOletIndex )
96105 assert rs .WallNormalAvailable == ts .WallNormalAvailable
@@ -104,21 +113,21 @@ def test_regression(self, tmpdir):
104113 def test_cube (self , tmpdir ):
105114 """Generate a gmy from a simple cubic profile and check the output"""
106115 cube = fixtures .cube (tmpdir )
107- cube .VoxelSize = 0.23
108116 cube .StlFileUnitId = 0
117+ cube .VoxelSize = 0.11
109118 generator = OutputGeneration .GmyPolyDataGenerator (cube )
110119 generator .Execute ()
111120 # Load back the resulting geometry file and assert things are as
112121 # expected
113122 checker = CubeTestingGmyParser (cube .OutputXmlFile , cube .VoxelSize )
114123 checker .Load ()
115124
116- fluid_sites = sum ( checker .Domain .BlockFluidSiteCounts )
125+ fluid_sites = checker .Domain .BlockFluidSiteCounts . sum ( )
117126 block_count = len (checker .Domain .Blocks )
118127 block_size = checker .Domain .BlockSize
119128 sites = block_count * block_size ** 3
120- # assert( sites== 4096)
121- # assert( fluid_sites== 729)
129+ assert sites == 4096
130+ assert fluid_sites == 729
122131 assert sites != fluid_sites
123132 # # Now, turn on the skip-non-intersecting-blocks optimisation, and
124133 # # assert same result
@@ -168,47 +177,52 @@ def test_cube_normals(self, tmpdir):
168177 checker .Load ()
169178
170179 def test_cylinder (self , tmpdir ):
171- """Generate a gmy from a simple cylinder profile and check the output"""
172- cylinder = fixtures .cylinder (tmpdir )
173- cylinder .VoxelSize = 0.23
174- cylinder .StlFileUnitId = 0
180+ """Generate a gmy from a cylinder and check the output.
175181
176- """ The default VTK cylinder is 1 length unit long, aligned with the
182+ The cylinder is 1 length unit long, radius 0.5, aligned with the
177183 y-axis, and centred at the origin of coordinates.
178184 """
185+ dx = 0.11
186+ cylinder = fixtures .cylinder (tmpdir )
187+ cylinder .VoxelSize = dx
188+ cylinder .StlFileUnitId = 0
189+
179190 inlet = Iolet (
180191 Name = "inlet" ,
181- Centre = Vector (0.0 , - 0.5 , 0.0 ),
192+ Centre = Vector (0.0 , - 0.45 , 0.0 ),
182193 Normal = Vector (0.0 , - 1.0 , 0.0 ),
183- Radius = 1 ,
194+ Radius = 1.0 ,
184195 )
185196 outlet = Iolet (
186197 Name = "outlet" ,
187- Centre = Vector (0.0 , 0.5 , 0.0 ),
198+ Centre = Vector (0.0 , 0.45 , 0.0 ),
188199 Normal = Vector (0.0 , 1.0 , 0.0 ),
189- Radius = 1 ,
200+ Radius = 1.0 ,
190201 )
191202 cylinder .Iolets = [inlet , outlet ]
203+ L = 0.9
204+ R = 0.5
192205
193206 generator = OutputGeneration .GmyPolyDataGenerator (cylinder )
207+
194208 generator .Execute ()
195209 # Load back the resulting geometry file and assert things are as
196210 # expected
197211 checker = CylinderTestingGmyParser (
198212 cylinder .OutputXmlFile ,
199213 cylinder .VoxelSize ,
200214 np .array ([0.0 , 1.0 , 0.0 ]),
201- 1.0 ,
202- 0.5 ,
215+ L ,
216+ R ,
203217 )
204218 checker .Load ()
205219
206- fluid_sites = sum ( checker .Domain .BlockFluidSiteCounts )
220+ fluid_sites = checker .Domain .BlockFluidSiteCounts . sum ( )
207221 block_count = len (checker .Domain .Blocks )
208222 block_size = checker .Domain .BlockSize
209223 sites = block_count * block_size ** 3
210224 # assert(sites==4096)
211- # assert( fluid_sites== 621)
225+ assert fluid_sites == 621
212226 assert sites != fluid_sites
213227 # # Now, turn on the skip-non-intersecting-blocks optimisation, and
214228 # # assert same result
0 commit comments