MCPcopy Create free account
hub / github.com/NCAR/wrf-python / test

Function test

test/utests.py:61–150  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

59# dynamically-generating-python-test-cases
60def make_test(varname, dir, pattern, referent, multi=False, pynio=False):
61 def test(self):
62 try:
63 from netCDF4 import Dataset as NetCDF
64 except ImportError:
65 pass
66
67 try:
68 import Nio
69 except ImportError:
70 pass
71
72 timeidx = 0 if not multi else None
73 pat = os.path.join(dir, pattern)
74 wrf_files = glob.glob(pat)
75 wrf_files.sort()
76
77 wrfin = []
78 for fname in wrf_files:
79 if not pynio:
80 f = NetCDF(fname)
81 try:
82 f.set_always_mask(False)
83 except AttributeError:
84 pass
85 wrfin.append(f)
86 else:
87 if not fname.endswith(".nc"):
88 _fname = fname + ".nc"
89 else:
90 _fname = fname
91 f = Nio.open_file(_fname)
92 wrfin.append(f)
93
94 refnc = NetCDF(referent)
95 try:
96 refnc.set_auto_mask(False)
97 except AttributeError:
98 pass
99
100 # These have a left index that defines the product type
101 multiproduct = varname in ("uvmet", "uvmet10", "wspd_wdir",
102 "wspd_wdir10", "uvmet_wspd_wdir",
103 "uvmet10_wspd_wdir",
104 "cape_2d", "cape_3d", "cfrac")
105 multi2d = ("uvmet10", "wspd_wdir10", "uvmet10_wspd_wdir",
106 "cape_2d", "cfrac")
107 multi3d = ("uvmet", "wspd_wdir", "uvmet_wspd_wdir", "cape_3d")
108
109 # These varnames don't have NCL functions to test against
110 ignore_referent = ("zstag", "geopt_stag")
111
112 if varname not in ignore_referent:
113 if not multi:
114 if varname in multi2d:
115 ref_vals = refnc.variables[varname][..., 0, :, :]
116 elif varname in multi3d:
117 ref_vals = refnc.variables[varname][..., 0, :, :, :]
118 else:

Callers

nothing calls this directly

Calls 14

getvarFunction · 0.90
to_npFunction · 0.90
interplevelFunction · 0.90
CoordPairClass · 0.90
vertcrossFunction · 0.90
ll_pointsFunction · 0.90
interplineFunction · 0.90
vinterpFunction · 0.90
ll_to_xyFunction · 0.90
ll_to_xy_projFunction · 0.90
xy_to_llFunction · 0.90
xy_to_ll_projFunction · 0.90

Tested by

no test coverage detected