diff --git a/tests/simulator/test_diagnostic_timestamps.py b/tests/simulator/test_diagnostic_timestamps.py index eec585362..bf6ba7393 100644 --- a/tests/simulator/test_diagnostic_timestamps.py +++ b/tests/simulator/test_diagnostic_timestamps.py @@ -101,43 +101,24 @@ def tearDown(self): def ddt_test_id(self): return self._testMethodName.split("_")[-1] - def test_dump_diags_timestamps(self): - print("test_dump_diags dim/interp:{}/{}".format(1, 1)) - - simulation = ph.Simulation(**simArgs.copy()) - sim = simulation - - dump_every = 1 - timestamps = np.arange( - 0, sim.final_time + sim.time_step, dump_every * sim.time_step - ) - setup_model(10) - - for quantity in ["B"]: - ElectromagDiagnostics( - quantity=quantity, - write_timestamps=timestamps, - flush_every=ElectromagDiagnostics.h5_flush_never, - ) - - Simulator(simulation).run() - - def make_time(stamp): - return "{:.10f}".format(stamp) - - for diagname, diagInfo in ph.global_vars.sim.diagnostics.items(): - h5_filename = os.path.join(out, h5_filename_from(diagInfo)) - self.assertTrue(os.path.exists(h5_filename)) - - h5_file = h5py.File(h5_filename, "r") - - for timestamp in timestamps: - self.assertIn(make_time(timestamp), h5_file[h5_time_grp_key]) - @data( ({"L0": {"B0": Box1D(10, 14), "B1": Box1D(15, 19)}}), ) def test_hierarchy_timestamp_cadence(self, refinement_boxes): + """ + this test checks diagnostics are dumped at the correct timestamps + + - only B is dumped + - we dump every 2dt, or every 3dt + - we check: + - diag file exists + - expected number of times in diag h5 + - expected values of times in diag h5 + - that we can skip init dump (t=t0) + + + This test only runs in 1D. other Dims are unnecessary + """ dim = refinement_boxes["L0"]["B0"].ndim time_step = 0.001 @@ -145,10 +126,10 @@ def test_hierarchy_timestamp_cadence(self, refinement_boxes): time_step_nbr = 101 final_time = time_step * time_step_nbr - for trailing in [0, 1]: # 1 = skip init dumps - for i in [2, 3]: + for skip_init in [0, 1]: # 1 = skip init dumps + for diag_cadence in [2, 3]: simInput = simArgs.copy() - diag_outputs = f"phare_outputs_hierarchy_timestamp_cadence_{dim}_{self.ddt_test_id()}_{i}" + diag_outputs = f"phare_outputs_hierarchy_timestamp_cadence_{dim}_{self.ddt_test_id()}_{diag_cadence}" simInput["diag_options"]["options"]["dir"] = diag_outputs simInput["time_step_nbr"] = time_step_nbr @@ -156,7 +137,7 @@ def test_hierarchy_timestamp_cadence(self, refinement_boxes): simulation = ph.Simulation(**simInput) setup_model(10) - timestamps = np.arange(0, final_time, time_step * i)[trailing:] + timestamps = np.arange(0, final_time, time_step * i)[skip_init:] for quantity in ["B"]: ElectromagDiagnostics( quantity=quantity, @@ -175,8 +156,10 @@ def test_hierarchy_timestamp_cadence(self, refinement_boxes): time_hier_keys = list(hier.time_hier.keys()) self.assertEqual(len(time_hier_keys), len(timestamps)) - for i, timestamp in enumerate(time_hier_keys): - self.assertEqual(format_timestamp(timestamps[i]), timestamp) + for diag_cadence, timestamp in enumerate(time_hier_keys): + self.assertEqual( + format_timestamp(timestamps[diag_cadence]), timestamp + ) if __name__ == "__main__":