From 08423b30aa1e52e5b94a20bb6a29a7967a1b08ad Mon Sep 17 00:00:00 2001 From: Miryam Date: Tue, 24 Mar 2020 13:54:08 +0100 Subject: [PATCH 1/2] Replace IC function in testing_utils.py with pandas function --- invisible_cities/core/testing_utils.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/invisible_cities/core/testing_utils.py b/invisible_cities/core/testing_utils.py index 94e2040be3..faccb6b0e9 100644 --- a/invisible_cities/core/testing_utils.py +++ b/invisible_cities/core/testing_utils.py @@ -1,4 +1,5 @@ import numpy as np +import pandas as pd from pytest import approx from numpy.testing import assert_array_equal @@ -106,11 +107,18 @@ def _compare_dataframes(assertion, df1, df2, check_types=True, **kwargs): def assert_dataframes_equal(df1, df2, check_types=True, **kwargs): - _compare_dataframes(assert_array_equal, df1, df2, check_types, **kwargs) + pd.testing.assert_frame_equal(df1.sort_index(axis=1), df2.sort_index(axis=1), check_names=True, check_dtype=check_types, check_exact=True, **kwargs) +def assert_dataframes_close(df1, df2, check_types=True, rtol=None, atol=None, **kwargs): + if rtol: + check_less_precise = int(np.log10(1./rtol)) + elif atol: + check_less_precise = int(np.log10(atol)) + else: + check_less_precise = True -def assert_dataframes_close(df1, df2, check_types=True, **kwargs): - _compare_dataframes(assert_allclose, df1, df2, check_types, **kwargs) + pd.testing.assert_frame_equal(df1.sort_index(axis=1), df2.sort_index(axis=1), + check_names=True, check_dtype=check_types, check_less_precise = check_less_precise) def assert_SensorResponses_equality(sr0, sr1): From bb5369f2edbe244709bce6aeab508da5a1c4a1aa Mon Sep 17 00:00:00 2001 From: Miryam Date: Thu, 16 Apr 2020 17:56:22 +0200 Subject: [PATCH 2/2] Add index reset to beersheba and esmeralda tests. --- invisible_cities/cities/beersheba_test.py | 2 +- invisible_cities/cities/esmeralda_test.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/invisible_cities/cities/beersheba_test.py b/invisible_cities/cities/beersheba_test.py index 7ed82b3a4c..6f2c2a1226 100644 --- a/invisible_cities/cities/beersheba_test.py +++ b/invisible_cities/cities/beersheba_test.py @@ -27,7 +27,7 @@ def test_create_deconvolution_df(ICDATADIR): CutType.abs, ecut, 3) for _, t in true_dst.groupby('event')]) true_dst = true_dst.loc[true_dst.E > ecut, :].reset_index(drop=True) - assert_dataframes_close(new_dst, true_dst) + assert_dataframes_close(new_dst .reset_index(drop=True), true_dst.reset_index(drop=True)) @mark.parametrize("cut_type", CutType.__members__) diff --git a/invisible_cities/cities/esmeralda_test.py b/invisible_cities/cities/esmeralda_test.py index 98ac59e821..accc249b00 100644 --- a/invisible_cities/cities/esmeralda_test.py +++ b/invisible_cities/cities/esmeralda_test.py @@ -163,7 +163,9 @@ def test_esmeralda_tracks_exact(data_hdst, esmeralda_tracks, correction_map_file #some events are not in df_tracks_exact events = df_tracks_exact.event.unique() df_tracks_cut = df_tracks[df_tracks.event.isin(events)] - assert_dataframes_close (df_tracks_cut[columns2], df_tracks_exact[columns2]) + + assert_dataframes_close (df_tracks_cut[columns2] .reset_index(drop=True), + df_tracks_exact[columns2].reset_index(drop=True)) #make sure out_of_map is true for events not in df_tracks_exact diff_events = list(set(df_tracks.event.unique()).difference(events)) df_summary = dio.load_dst(PATH_OUT, 'Summary', 'Events')