Skip to content

Commit 9e53548

Browse files
Add a unit test that breaks when concatenating kernels with ParcelsRandom functions in scipy
Error is `Error: name 'ParcelsRandom' is not defined`
1 parent 9872f1e commit 9e53548

1 file changed

Lines changed: 19 additions & 0 deletions

File tree

tests/test_kernel_language.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,25 @@ class TestParticle(ptype[mode]):
294294
assert np.allclose(pset.p, series, atol=1e-9)
295295

296296

297+
@pytest.mark.parametrize('mode', ['scipy', 'jit'])
298+
@pytest.mark.parametrize('concat', [False, True])
299+
def test_random_kernel_concat(fieldset, mode, concat):
300+
class TestParticle(ptype[mode]):
301+
p = Variable('p', dtype=np.float32)
302+
303+
pset = ParticleSet(fieldset, pclass=TestParticle, lon=0, lat=0)
304+
305+
def RandomKernel(particle, fieldset, time):
306+
particle.p += ParcelsRandom.uniform(0, 1)
307+
308+
def AddOne(particle, fieldset, time):
309+
particle.p += 1.
310+
311+
kernels = pset.Kernel(RandomKernel)+pset.Kernel(AddOne) if concat else RandomKernel
312+
pset.execute(kernels, dt=0)
313+
assert pset.p > 1 if concat else pset.p < 1
314+
315+
297316
@pytest.mark.parametrize('mode', ['scipy', 'jit'])
298317
@pytest.mark.parametrize('c_inc', ['str', 'file'])
299318
def test_c_kernel(fieldset, mode, c_inc):

0 commit comments

Comments
 (0)