@@ -111,9 +111,6 @@ def test_avg_mode(ndim, io):
111111 with pytest .raises (ValueError ):
112112 # interp_order > space_order
113113 Function (name = "a" , grid = grid , interp_order = 8 , space_order = 4 )
114- with pytest .raises (ValueError ):
115- # interp_order < 1
116- Function (name = "a" , grid = grid , interp_order = 0 , space_order = 4 )
117114 with pytest .raises (TypeError ):
118115 # interp_order not int
119116 Function (name = "a" , grid = grid , interp_order = 2.5 , space_order = 4 )
@@ -152,3 +149,19 @@ def test_avg_mode(ndim, io):
152149 assert sympy .simplify (b_avg .args [0 ] - expected ) == 0
153150 assert isinstance (b_avg , SafeInv )
154151 assert b_avg .base == b
152+
153+
154+ def test_no_interp ():
155+ grid = Grid ((10 , 10 ))
156+ x = grid .dimensions [0 ]
157+ a = Function (name = "a" , grid = grid , staggered = NODE , interp_order = 0 )
158+ sa = Function (name = "as" , grid = grid , staggered = x )
159+
160+ assert a ._eval_at (sa ) == a
161+ assert sa ._eval_at (a ) == sa ._subs (x , x - x .spacing / 2 )
162+ assert (a * sa )._eval_at (sa ) == a * sa
163+ assert (a + sa )._eval_at (sa ) == a + sa
164+
165+ a_shift = a ._subs (x , x + x .spacing / 2 )
166+ # Should just do nearest grid point, so shift back to original
167+ assert a_shift .evaluate == a
0 commit comments