@@ -49,6 +49,24 @@ def Delete(particle, fieldset, time): # pragma: no cover
4949 assert pset [0 ].time == fieldset .U .time [0 ].values + np .timedelta64 (4 , "s" )
5050
5151
52+ @pytest .mark .parametrize ("with_delete" , [True , False ])
53+ def test_pset_multi_execute (fieldset , with_delete , npart = 10 , n = 5 ):
54+ pset = ParticleSet (fieldset , lon = np .linspace (0 , 1 , npart ), lat = np .zeros (npart ))
55+
56+ def AddLat (particle , fieldset , time ): # pragma: no cover
57+ particle_dlat += 0.1 # noqa
58+
59+ k_add = pset .Kernel (AddLat )
60+ for _ in range (n + 1 ):
61+ pset .execute (k_add , runtime = np .timedelta64 (1 , "s" ), dt = np .timedelta64 (1 , "s" ))
62+ if with_delete :
63+ pset .remove_indices (len (pset ) - 1 )
64+ if with_delete :
65+ assert np .allclose (pset .lat , n * 0.1 , atol = 1e-12 )
66+ else :
67+ assert np .allclose ([p .lat - n * 0.1 for p in pset ], np .zeros (npart ), rtol = 1e-12 )
68+
69+
5270@pytest .mark .parametrize ("verbose_progress" , [True , False ])
5371def test_uxstommelgyre_pset_execute (verbose_progress ):
5472 ds = datasets_unstructured ["stommel_gyre_delaunay" ]
0 commit comments