|
3 | 3 |
|
4 | 4 | import pytest
|
5 | 5 |
|
| 6 | +from hydrolib.core.dflowfm.ext.models import SourceSink |
6 | 7 | from hydrolib.core.dflowfm.extold.models import ExtOldForcing, ExtOldQuantity
|
7 | 8 | from hydrolib.tools.ext_old_to_new.converters import SourceSinkConverter
|
8 | 9 |
|
@@ -156,6 +157,33 @@ def test_parse_tim_model_with_mdu(
|
156 | 157 | assert data == expected_data
|
157 | 158 |
|
158 | 159 |
|
| 160 | +def compare_data(new_quantity_block: SourceSink): |
| 161 | + # check the converted bc_forcing |
| 162 | + bc_forcing = new_quantity_block.bc_forcing |
| 163 | + forcing_bases = bc_forcing.forcing |
| 164 | + assert [forcing_bases[i].quantityunitpair[1].quantity for i in range(4)] == [ |
| 165 | + "discharge", |
| 166 | + "salinitydelta", |
| 167 | + "temperaturedelta", |
| 168 | + "initialtracer_anyname", |
| 169 | + ] |
| 170 | + assert [forcing_bases[i].quantityunitpair[1].unit for i in range(4)] == [ |
| 171 | + "m3/s", |
| 172 | + "ppt", |
| 173 | + "C", |
| 174 | + "Unknown", |
| 175 | + ] |
| 176 | + # check the values of the data block |
| 177 | + # initialtracer_anyname |
| 178 | + assert forcing_bases[3].datablock[1] == [4.0, 4.0, 4.0, 4.0, 4.0] |
| 179 | + # temperature |
| 180 | + assert forcing_bases[2].datablock[1] == [3.0, 3.0, 3.0, 3.0, 3.0] |
| 181 | + # salinity |
| 182 | + assert forcing_bases[1].datablock[1] == [2.0, 2.0, 2.0, 2.0, 2.0] |
| 183 | + # discharge |
| 184 | + assert forcing_bases[0].datablock[1] == [1.0, 1.0, 1.0, 1.0, 1.0] |
| 185 | + |
| 186 | + |
159 | 187 | class TestSourceSinkConverter:
|
160 | 188 |
|
161 | 189 | def test_default(self):
|
@@ -238,29 +266,7 @@ def test_default(self):
|
238 | 266 | assert new_quantity_block.zsource == [-3]
|
239 | 267 |
|
240 | 268 | # check the converted bc_forcing
|
241 |
| - bc_forcing = new_quantity_block.bc_forcing |
242 |
| - forcing_bases = bc_forcing.forcing |
243 |
| - assert [forcing_bases[i].quantityunitpair[1].quantity for i in range(4)] == [ |
244 |
| - "discharge", |
245 |
| - "salinitydelta", |
246 |
| - "temperaturedelta", |
247 |
| - "initialtracer_anyname", |
248 |
| - ] |
249 |
| - assert [forcing_bases[i].quantityunitpair[1].unit for i in range(4)] == [ |
250 |
| - "m3/s", |
251 |
| - "ppt", |
252 |
| - "C", |
253 |
| - "Unknown", |
254 |
| - ] |
255 |
| - # check the values of the data block |
256 |
| - # initialtracer_anyname |
257 |
| - assert forcing_bases[3].datablock[1] == [4.0, 4.0, 4.0, 4.0, 4.0] |
258 |
| - # temperature |
259 |
| - assert forcing_bases[2].datablock[1] == [3.0, 3.0, 3.0, 3.0, 3.0] |
260 |
| - # salinity |
261 |
| - assert forcing_bases[1].datablock[1] == [2.0, 2.0, 2.0, 2.0, 2.0] |
262 |
| - # discharge |
263 |
| - assert forcing_bases[0].datablock[1] == [1.0, 1.0, 1.0, 1.0, 1.0] |
| 269 | + compare_data(new_quantity_block) |
264 | 270 |
|
265 | 271 | def test_4_5_columns_polyline(self):
|
266 | 272 | """
|
@@ -319,29 +325,7 @@ def test_4_5_columns_polyline(self):
|
319 | 325 | assert new_quantity_block.zsource == [-3, -2.90]
|
320 | 326 |
|
321 | 327 | # check the converted bc_forcing
|
322 |
| - bc_forcing = new_quantity_block.bc_forcing |
323 |
| - forcing_bases = bc_forcing.forcing |
324 |
| - assert [forcing_bases[i].quantityunitpair[1].quantity for i in range(4)] == [ |
325 |
| - "discharge", |
326 |
| - "salinitydelta", |
327 |
| - "temperaturedelta", |
328 |
| - "initialtracer_anyname", |
329 |
| - ] |
330 |
| - assert [forcing_bases[i].quantityunitpair[1].unit for i in range(4)] == [ |
331 |
| - "m3/s", |
332 |
| - "ppt", |
333 |
| - "C", |
334 |
| - "Unknown", |
335 |
| - ] |
336 |
| - # check the values of the data block |
337 |
| - # initialtracer_anyname |
338 |
| - assert forcing_bases[3].datablock[1] == [4.0, 4.0, 4.0, 4.0, 4.0] |
339 |
| - # temperature |
340 |
| - assert forcing_bases[2].datablock[1] == [3.0, 3.0, 3.0, 3.0, 3.0] |
341 |
| - # salinity |
342 |
| - assert forcing_bases[1].datablock[1] == [2.0, 2.0, 2.0, 2.0, 2.0] |
343 |
| - # discharge |
344 |
| - assert forcing_bases[0].datablock[1] == [1.0, 1.0, 1.0, 1.0, 1.0] |
| 328 | + compare_data(new_quantity_block) |
345 | 329 |
|
346 | 330 | def test_no_temperature_no_salinity(self):
|
347 | 331 | """
|
|
0 commit comments