Skip to content

Commit

Permalink
fix(tab files): fixed searching for tab file packages (#1337) (#1344)
Browse files Browse the repository at this point in the history
Added lake tab file back in to t504 tests (#1337). Modified lak test to test tab files in different folders.
Changed lakeex1b.lak test file path to contain mac-style forward slash path

Co-authored-by: Scott Paulinski <spaulinski@usgs.gov>

closes #1337
  • Loading branch information
scottrp committed Feb 16, 2022
1 parent 8e3edd9 commit b59f1fe
Show file tree
Hide file tree
Showing 4 changed files with 105 additions and 89 deletions.
160 changes: 79 additions & 81 deletions autotest/t504_test.py
Expand Up @@ -538,87 +538,84 @@ def test006_gwf3():
return


# def test045_lake1ss_table():
# # init paths
# test_ex_name = "test045_lake1ss_table"
# model_name = "lakeex1b"
#
# pth = os.path.join("..", "examples", "data", "mf6", test_ex_name)
# run_folder = f"{base_dir}_{test_ex_name}"
# save_folder = f"{run_folder}_save"
# test_setup = flopyTest(verbose=True)
# test_setup.add_test_dir([run_folder, save_folder])
#
# expected_output_folder = os.path.join(pth, "expected_output")
# expected_head_file_a = os.path.join(
# expected_output_folder, "lakeex1b_unch.hds"
# )
# expected_head_file_b = os.path.join(
# expected_output_folder, "lakeex1b_adj.hds"
# )
#
# # load simulation
# sim = MFSimulation.load(
# sim_name=model_name,
# exe_name=exe_name,
# sim_ws=pth,
# verify_data=True,
# )
#
# # make temp folder to save simulation
# sim.set_sim_path(run_folder)
#
# # write simulation to new location
# sim.write_simulation()
#
# if run:
# # run simulation
# success, buff = sim.run_simulation()
# assert success, f"simulation {sim.name} did not run"
#
# # compare output to expected results
# head_new = os.path.join(run_folder, "lakeex1b.hds")
# outfile = os.path.join(run_folder, "headcompare_a.txt")
# success = pymake.compare_heads(
# None,
# None,
# files1=expected_head_file_a,
# files2=head_new,
# outfile=outfile,
# )
# assert success
#
# # change some settings
# model = sim.get_model(model_name)
# laktbl = model.get_package("tab").table
# laktbl_data = laktbl.get_data()
# laktbl_data[-1][0] = 700.0
# laktbl.set_data(laktbl_data)
#
# # write simulation again
# sim.set_sim_path(save_folder)
# sim.write_simulation()
#
# if run:
# # run simulation
# success, buff = sim.run_simulation()
# assert success, f"simulation {sim.name} rerun did not run"
#
# # compare output to expected results
# head_new = os.path.join(save_folder, "lakeex1b.hds")
# outfile = os.path.join(run_folder, "headcompare_b.txt")
# success = pymake.compare_heads(
# None,
# None,
# files1=expected_head_file_b,
# files2=head_new,
# outfile=outfile,
# )
# assert success
#
#
#
# return
def test045_lake1ss_table():
# init paths
test_ex_name = "test045_lake1ss_table"
model_name = "lakeex1b"

pth = os.path.join("..", "examples", "data", "mf6", test_ex_name)
run_folder = f"{base_dir}_{test_ex_name}"
save_folder = f"{run_folder}_save"
test_setup = FlopyTestSetup(verbose=True)
test_setup.add_test_dir([run_folder, save_folder])

expected_output_folder = os.path.join(pth, "expected_output")
expected_head_file_a = os.path.join(
expected_output_folder, "lakeex1b_unch.hds"
)
expected_head_file_b = os.path.join(
expected_output_folder, "lakeex1b_adj.hds"
)

# load simulation
sim = MFSimulation.load(
sim_name=model_name,
exe_name=exe_name,
sim_ws=pth,
verify_data=True,
)

# make temp folder to save simulation
sim.set_sim_path(run_folder)

# write simulation to new location
sim.write_simulation()

if run:
# run simulation
success, buff = sim.run_simulation()
assert success, f"simulation {sim.name} did not run"

# compare output to expected results
head_new = os.path.join(run_folder, "lakeex1b.hds")
outfile = os.path.join(run_folder, "headcompare_a.txt")
success = pymake.compare_heads(
None,
None,
files1=expected_head_file_a,
files2=head_new,
outfile=outfile,
)
assert success

# change some settings
model = sim.get_model(model_name)
laktbl = model.get_package("laktab").table
laktbl_data = laktbl.get_data()
laktbl_data[-1][0] = 700.0
laktbl.set_data(laktbl_data)
# write simulation again
sim.set_sim_path(save_folder)
sim.write_simulation()

if run:
# run simulation
success, buff = sim.run_simulation()
assert success, f"simulation {sim.name} rerun did not run"

# compare output to expected results
head_new = os.path.join(save_folder, "lakeex1b.hds")
outfile = os.path.join(run_folder, "headcompare_b.txt")
success = pymake.compare_heads(
None,
None,
files1=expected_head_file_b,
files2=head_new,
outfile=outfile,
)
assert success

return


def test006_2models_mvr():
Expand Down Expand Up @@ -1302,6 +1299,7 @@ def test_mf6_output_add_observation():
test006_gwf3()
test027_timeseriestest()
test036_twrihfb()
test045_lake1ss_table()
test045_lake2tr()
test_mf6_output()
test_mf6_output_add_observation()
2 changes: 1 addition & 1 deletion examples/data/mf6/test045_lake1ss_table/lakeex1b.lak
Expand Up @@ -75,7 +75,7 @@ BEGIN connectiondata
END connectiondata

BEGIN tables
1 TAB6 FILEIN lakeex1b_table.ref
1 TAB6 FILEIN lt/lakeex1b_table.ref
END tables

BEGIN period 1
Expand Down
Expand Up @@ -4,7 +4,7 @@ BEGIN dimensions
END dimensions

BEGIN table
97.0 0.0 2250000.0
97.0 3045000.0 2250000.0
99.6867 6045000.0 2250000.0
102.373 12090000.0 2250000.0
105.06 18135000.0 2250000.0
Expand Down
30 changes: 24 additions & 6 deletions flopy/mf6/mfpackage.py
Expand Up @@ -1150,10 +1150,23 @@ def _get_package_info(self, dataset):
item_name = data_item.name
package_type = item_name[:-1]
model_type = self._model_or_sim.structure.model_type
if (
PackageContainer.package_factory(package_type, model_type)
is not None
):
# not all packages have the same naming convention
# try different naming conventions to find the appropriate
# package
package_types = [
package_type,
f"{self._container_package.package_type}"
f"{package_type}",
]
package_type_found = None
for ptype in package_types:
if (
PackageContainer.package_factory(ptype, model_type)
is not None
):
package_type_found = ptype
break
if package_type_found is not None:
try:
data = dataset.get_data()
except MFDataException as mfde:
Expand All @@ -1173,9 +1186,14 @@ def _get_package_info(self, dataset):
file_location = data
package_info_list = []
file_path, file_name = os.path.split(file_location)
dict_package_name = f"{package_type}_{self.path[-2]}"
dict_package_name = f"{package_type_found}_{self.path[-2]}"
package_info_list.append(
(package_type, file_name, file_path, dict_package_name)
(
package_type_found,
file_name,
file_path,
dict_package_name,
)
)
return package_info_list
return None
Expand Down

0 comments on commit b59f1fe

Please sign in to comment.