|
16 | 16 | from parcels._datasets.unstructured.generic import datasets as datasets_unstructured |
17 | 17 | from parcels.uxgrid import UxGrid |
18 | 18 | from parcels.xgrid import XGrid |
| 19 | +from tests.common_kernels import DoNothing |
19 | 20 |
|
20 | 21 |
|
21 | 22 | @pytest.fixture |
@@ -67,6 +68,25 @@ def AddLat(particle, fieldset, time): # pragma: no cover |
67 | 68 | assert np.allclose([p.lat - n * 0.1 for p in pset], np.zeros(npart), rtol=1e-12) |
68 | 69 |
|
69 | 70 |
|
| 71 | +@pytest.mark.parametrize( |
| 72 | + "starttime, endtime, dt", |
| 73 | + [ |
| 74 | + (0, 10, 1), |
| 75 | + (0, 10, 3), |
| 76 | + (2, 16, 3), |
| 77 | + (20, 10, -1), |
| 78 | + (20, -10, -2), |
| 79 | + ], |
| 80 | +) |
| 81 | +def test_execution_endtime(fieldset, starttime, endtime, dt): |
| 82 | + starttime = fieldset.time_interval.left + np.timedelta64(starttime, "s") |
| 83 | + endtime = fieldset.time_interval.left + np.timedelta64(endtime, "s") |
| 84 | + dt = np.timedelta64(dt, "s") |
| 85 | + pset = ParticleSet(fieldset, time=starttime, lon=0, lat=0) |
| 86 | + pset.execute(DoNothing, endtime=endtime, dt=dt) |
| 87 | + assert np.isclose(pset.time_nextloop.values, endtime) |
| 88 | + |
| 89 | + |
70 | 90 | @pytest.mark.parametrize("verbose_progress", [True, False]) |
71 | 91 | def test_uxstommelgyre_pset_execute(verbose_progress): |
72 | 92 | ds = datasets_unstructured["stommel_gyre_delaunay"] |
|
0 commit comments