1+ import os
2+ import flopy
3+ import platform
4+ import shutil
5+ import numpy as np
6+
7+
8+ mpth = os .path .join ('..' , 'examples' , 'data' , 'ag_test' )
9+ opth = os .path .join ('temp' , 't071' )
10+ if not os .path .exists (opth ):
11+ os .makedirs (opth )
12+
13+
14+ def test_empty_ag_package ():
15+ ml = flopy .modflow .Modflow ("agtest" , version = 'mfnwt' )
16+ ag = flopy .modflow .ModflowAg (ml )
17+
18+ if not isinstance (ag , flopy .pakbase .Package ):
19+ raise Exception
20+
21+
22+ def test_load_write_agwater ():
23+ agfile = "Agwater1.ag"
24+ ml = flopy .modflow .Modflow ("Agwater1" , version = 'mfnwt' )
25+ ag1 = flopy .modflow .ModflowAg .load (os .path .join (mpth , agfile ),
26+ ml , nper = 49 , ext_unit_dict = {})
27+
28+ loaded = False
29+ for pak in ml .packagelist :
30+ if isinstance (pak , flopy .modflow .ModflowAg ):
31+ loaded = True
32+ break
33+
34+ if not loaded :
35+ raise AssertionError ("ModflowAg package not loaded" )
36+
37+ ml .change_model_ws (opth )
38+ ag1 .write_file ()
39+
40+ ml2 = flopy .modflow .Modflow ("Agwater1" , version = 'mfnwt' , model_ws = opth )
41+ ag2 = flopy .modflow .ModflowAg .load (os .path .join (opth , agfile ),
42+ ml2 , nper = 49 )
43+
44+ if repr (ag1 ) != repr (ag2 ):
45+ raise AssertionError ("Ag package comparison failed" )
46+
47+ def test_load_write_agwater_uzf ():
48+ uzffile = "Agwater1.uzf"
49+ ml = flopy .modflow .Modflow ("Agwater1" , version = 'mfnwt' )
50+ dis = flopy .modflow .ModflowDis (ml , nlay = 1 , nrow = 15 , ncol = 10 , nper = 49 )
51+ uzf1 = flopy .modflow .ModflowUzf1 .load (os .path .join (mpth , uzffile ), ml )
52+
53+ loaded = False
54+ for pak in ml .packagelist :
55+ if isinstance (pak , flopy .modflow .ModflowUzf1 ):
56+ loaded = True
57+ break
58+
59+ if not loaded :
60+ raise AssertionError ("ModflowUzf1 package not loaded" )
61+
62+ ml .change_model_ws (opth )
63+ uzf1 .write_file ()
64+
65+ ml2 = flopy .modflow .Modflow ("Agwater1" , version = 'mfnwt' , model_ws = opth )
66+ dis2 = flopy .modflow .ModflowDis (ml2 , nlay = 1 , nrow = 15 , ncol = 10 , nper = 49 )
67+ uzf2 = flopy .modflow .ModflowUzf1 .load (os .path .join (opth , uzffile ), ml2 )
68+
69+ if not np .allclose (uzf1 .air_entry .array , uzf2 .air_entry .array ):
70+ raise AssertionError ("Air entry pressure array comparison failed" )
71+
72+ if not np .allclose (uzf1 .hroot .array , uzf2 .hroot .array ):
73+ raise AssertionError ("root pressure array comparison failed" )
74+
75+ if not np .allclose (uzf1 .rootact .array , uzf2 .rootact .array ):
76+ raise AssertionError ("root activity array comparison failed" )
77+
78+
79+ if __name__ == "__main__" :
80+ test_empty_ag_package ()
81+ test_load_write_agwater ()
82+ test_load_write_agwater_uzf ()
0 commit comments