Skip to content

Commit 7184e1f

Browse files
committed
Fixing tests
1 parent b28665c commit 7184e1f

1 file changed

Lines changed: 18 additions & 23 deletions

File tree

tests/test_particlefile.py

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,10 @@ def test_write_fieldset_without_time(tmp_parquet):
6868
ofile = ParticleFile(tmp_parquet, outputdt=np.timedelta64(1, "s"))
6969
pset.execute(DoNothing, runtime=np.timedelta64(1, "s"), dt=np.timedelta64(1, "s"), output_file=ofile)
7070

71-
df = pd.read_parquet(tmp_parquet)
72-
pytest.skip("# TODO: Need to figure out how times work with parquet output (#2386)")
73-
assert df["time"][1] == np.timedelta64(1, "s")
71+
table = pq.read_table(tmp_parquet)
72+
assert table.schema.field("time").metadata[b"units"] == b"seconds"
73+
assert b"calendar" not in table.schema.field("time").metadata
74+
assert table["time"].to_numpy()[1] == 1.0
7475

7576

7677
@pytest.mark.skip("Keep or remove? Introduced in 5d7dd6bba800baa0fe4bd38edfc17ca3e310062b ")
@@ -114,7 +115,6 @@ def test_pfile_array_remove_all_particles(fieldset, tmp_parquet):
114115
pfile.close()
115116

116117
df = pd.read_parquet(tmp_parquet)
117-
# np.testing.assert_allclose(ds["time"][:, 0] - fieldset.time_interval.left, np.timedelta64(0, "s")) # TODO: Need to figure out how times work with parquet output (#2386)
118118
assert df["trajectory"].nunique() == npart
119119

120120

@@ -344,8 +344,7 @@ def Update_lon(particles, fieldset): # pragma: no cover
344344

345345
df = pd.read_parquet(tmp_parquet)
346346
assert np.allclose(df["lon"].values, [0, 3, 6, 9])
347-
pytest.skip("# TODO: Need to figure out how times work with parquet output (#2386)")
348-
assert np.allclose(timedelta_to_float(df.time.values - df.time.values[0, 0]), [0, 3, 6, 9])
347+
assert np.allclose(df.time - df.time.min(), [0, 3, 6, 9])
349348

350349

351350
def setup_pset_execute(*, fieldset: FieldSet, outputdt: timedelta, execute_kwargs, particle_class=Particle):
@@ -374,9 +373,10 @@ def test_pset_execute_outputdt_forwards(fieldset):
374373
runtime = timedelta(hours=5)
375374
dt = timedelta(minutes=5)
376375

377-
df = setup_pset_execute(fieldset=fieldset, outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt)) # noqa: F841
378-
pytest.skip("# TODO: Need to figure out how times work with parquet output (#2386)")
379-
assert np.all(ds.isel(trajectory=0).time.diff(dim="obs").values == np.timedelta64(outputdt)) # noqa: F821
376+
df = setup_pset_execute(fieldset=fieldset, outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt))
377+
particle_0_times = df[df.trajectory == 0].time.values
378+
379+
np.testing.assert_equal(np.diff(particle_0_times), outputdt.seconds)
380380

381381

382382
def test_pset_execute_output_time_forwards(fieldset):
@@ -385,12 +385,9 @@ def test_pset_execute_output_time_forwards(fieldset):
385385
runtime = np.timedelta64(5, "h")
386386
dt = np.timedelta64(5, "m")
387387

388-
df = setup_pset_execute(fieldset=fieldset, outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt)) # noqa: F841
389-
pytest.skip("# TODO: Need to figure out how times work with parquet output (#2386)")
390-
assert (
391-
ds.time[0, 0].values == fieldset.time_interval.left # noqa: F821
392-
and ds.time[0, -1].values == fieldset.time_interval.left + runtime # noqa: F821
393-
)
388+
df = setup_pset_execute(fieldset=fieldset, outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt))
389+
assert df.time.min() == 0.0
390+
assert df.time.max() == runtime / np.timedelta64(1, "s")
394391

395392

396393
def test_pset_execute_outputdt_backwards(fieldset):
@@ -399,10 +396,9 @@ def test_pset_execute_outputdt_backwards(fieldset):
399396
runtime = timedelta(days=2)
400397
dt = -timedelta(minutes=5)
401398

402-
df = setup_pset_execute(fieldset=fieldset, outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt)) # noqa: F841
403-
pytest.skip("# TODO: Need to figure out how times work with parquet output (#2386)")
404-
file_outputdt = ds.isel(trajectory=0).time.diff(dim="obs").values # noqa: F821
405-
assert np.all(file_outputdt == np.timedelta64(-outputdt))
399+
df = setup_pset_execute(fieldset=fieldset, outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt))
400+
particle_0_times = df[df.trajectory == 0].time.values
401+
np.testing.assert_equal(np.diff(particle_0_times), -outputdt.seconds)
406402

407403

408404
def test_pset_execute_outputdt_backwards_fieldset_timevarying():
@@ -419,10 +415,9 @@ def test_pset_execute_outputdt_backwards_fieldset_timevarying():
419415
ds_fset = copernicusmarine_to_sgrid(fields=fields)
420416
fieldset = FieldSet.from_sgrid_conventions(ds_fset)
421417

422-
df = setup_pset_execute(outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt), fieldset=fieldset) # noqa: F841
423-
pytest.skip("# TODO: Need to figure out how times work with parquet output (#2386)")
424-
file_outputdt = ds.isel(trajectory=0).time.diff(dim="obs").values # noqa: F821
425-
assert np.all(file_outputdt == np.timedelta64(-outputdt)), (file_outputdt, np.timedelta64(-outputdt))
418+
df = setup_pset_execute(outputdt=outputdt, execute_kwargs=dict(runtime=runtime, dt=dt), fieldset=fieldset)
419+
particle_0_times = df[df.trajectory == 0].time.values
420+
np.testing.assert_equal(np.diff(particle_0_times), -outputdt.seconds)
426421

427422

428423
def test_particlefile_init(tmp_parquet):

0 commit comments

Comments
 (0)