Skip to content

Commit

Permalink
Properly assert ESMF enums in test suite
Browse files Browse the repository at this point in the history
Enums should be compared by identity, not value.
Ref: https://docs.python.org/3/library/enum.html#comparisons
  • Loading branch information
JiaweiZhuang committed Aug 3, 2019
1 parent 4152b41 commit bce5bc3
Showing 1 changed file with 4 additions and 23 deletions.
27 changes: 4 additions & 23 deletions xesmf/tests/test_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,25 +41,6 @@
data4D_in = ds_in['data4D'].values


def test_flag():
# some shortcuts for ESMF flags
assert ESMF.StaggerLoc.CENTER == 0
assert ESMF.StaggerLoc.CORNER == 3

assert ESMF.CoordSys.CART == 0
assert ESMF.CoordSys.SPH_DEG == 1 # only use this!
assert ESMF.CoordSys.SPH_RAD == 2

assert ESMF.UnmappedAction.ERROR == 0
assert ESMF.UnmappedAction.IGNORE == 1 # only use this!

assert ESMF.RegridMethod.BILINEAR == 0
assert ESMF.RegridMethod.PATCH == 1
assert ESMF.RegridMethod.CONSERVE == 2
assert ESMF.RegridMethod.NEAREST_STOD == 3
assert ESMF.RegridMethod.NEAREST_DTOS == 4


def test_warn_f_on_array():
a = np.zeros([2, 2], order='C')
with pytest.warns(UserWarning):
Expand Down Expand Up @@ -94,7 +75,7 @@ def test_esmf_grid_with_corner():
# make sure meta data agree
assert not grid.has_corners # no corner yet!
assert grid.staggerloc == [True, False, False, False]
assert grid.coord_sys == 1
assert grid.coord_sys is ESMF.CoordSys.SPH_DEG
assert grid.rank == 2
assert_equal(grid.size[0], lon.T.shape)
assert_equal(grid.upper_bounds[0], lon.T.shape)
Expand All @@ -121,8 +102,8 @@ def test_esmf_build_bilinear():
grid_out = esmf_grid(lon_out.T, lat_out.T)

regrid = esmf_regrid_build(grid_in, grid_out, 'bilinear')
assert regrid.unmapped_action == 1
assert regrid.regrid_method == 0
assert regrid.unmapped_action is ESMF.UnmappedAction.IGNORE
assert regrid.regrid_method is ESMF.RegridMethod.BILINEAR

# they should share the same memory
regrid.srcfield.grid is grid_in
Expand Down Expand Up @@ -156,7 +137,7 @@ def test_regrid():
os.remove(filename)
regrid = esmf_regrid_build(grid_in, grid_out, 'conservative',
filename=filename)
assert regrid.regrid_method == 2
assert regrid.regrid_method is ESMF.RegridMethod.CONSERVE

# apply regridding using ESMPy's native method
data_out_esmpy = esmf_regrid_apply(regrid, data_in.T).T
Expand Down

0 comments on commit bce5bc3

Please sign in to comment.