diff --git a/tests/test_probabilist.cpp b/tests/test_probabilist.cpp index 816f1bd0a34fea8d630c7f1cb67cf11627dbe7f5..e25233e2af6069df1d6cb61ce672b1c2b4130c83 100644 --- a/tests/test_probabilist.cpp +++ b/tests/test_probabilist.cpp @@ -606,10 +606,24 @@ TEST(ProbabilistTests, TestMaskingConditions) // check results are identical for (std::size_t m = 0; m < all_metrics_p.size(); m++) { + // --------------------------------------------------------------------- + // /!\ skip ranks-based metrics because it contains a random process + // for which setting the seed will not work because the time series + // lengths are different between "conditioned" and "preconditioned", + // which results in different tensor shapes, and hence in different + // random ranks for ties + if ((all_metrics_p[m] == "RANK_DIAG") + || (all_metrics_p[m] == "DS") + || (all_metrics_p[m] == "AS")) + { + continue; + } + // --------------------------------------------------------------------- + EXPECT_TRUE( xt::all(xt::isclose(metrics_q_conditioned[m], metrics_q_preconditioned[m], - 1e-05, 1e-06, true)) + 1e-05, 1e-08, true)) ) << "Failure for (" << all_metrics_p[m] << ")"; } @@ -647,10 +661,24 @@ TEST(ProbabilistTests, TestMaskingConditions) // check results are identical for (std::size_t m = 0; m < all_metrics_p.size(); m++) { + // --------------------------------------------------------------------- + // /!\ skip ranks-based metrics because it contains a random process + // for which setting the seed will not work because the time series + // lengths are different between "conditioned" and "preconditioned", + // which results in different tensor shapes, and hence in different + // random ranks for ties + if ((all_metrics_p[m] == "RANK_DIAG") + || (all_metrics_p[m] == "DS") + || (all_metrics_p[m] == "AS")) + { + continue; + } + // --------------------------------------------------------------------- + EXPECT_TRUE( xt::all(xt::isclose(metrics_q_conditioned_[m], metrics_q_preconditioned_[m], - 1e-05, 1e-06, true)) + 1e-05, 1e-08, true)) ) << "Failure for (" << all_metrics_p[m] << ")"; } @@ -685,10 +713,24 @@ TEST(ProbabilistTests, TestMaskingConditions) // check results are identical for (std::size_t m = 0; m < all_metrics_p.size(); m++) { + // --------------------------------------------------------------------- + // /!\ skip ranks-based metrics because it contains a random process + // for which setting the seed will not work because the time series + // lengths are different between "conditioned" and "subset", + // which results in different tensor shapes, and hence in different + // random ranks for ties + if ((all_metrics_p[m] == "RANK_DIAG") + || (all_metrics_p[m] == "DS") + || (all_metrics_p[m] == "AS")) + { + continue; + } + // --------------------------------------------------------------------- + EXPECT_TRUE( xt::all(xt::isclose(metrics_t_conditioned[m], metrics_t_subset[m], - 1e-05, 1e-06, true)) + 1e-05, 1e-08, true)) ) << "Failure for (" << all_metrics_p[m] << ")"; } }