Commit a2957cb3 authored by Thibault Hallouin's avatar Thibault Hallouin
Browse files

add unittest to check NaN assignment works

since `xt::allclose` does not have a *equal_nan* like `xt::isclose`
(see https://github.com/xtensor-stack/xtensor/issues/1995), the
check is a bit more convoluted than before...
Showing with 23 additions and 9 deletions
+23 -9
...@@ -22,7 +22,7 @@ TEST(ProbabilistTests, TestBrier) ...@@ -22,7 +22,7 @@ TEST(ProbabilistTests, TestBrier)
ifs.close(); ifs.close();
// compute scores // compute scores
xt::xtensor<double, 2> thresholds = {{690, 534, 445}}; xt::xtensor<double, 2> thresholds = {{690, 534, 445, NAN}};
std::vector<xt::xarray<double>> metrics = std::vector<xt::xarray<double>> metrics =
evalhyd::evalp( evalhyd::evalp(
...@@ -37,27 +37,41 @@ TEST(ProbabilistTests, TestBrier) ...@@ -37,27 +37,41 @@ TEST(ProbabilistTests, TestBrier)
// check results // check results
// Brier scores // Brier scores
xt::xtensor<double, 4> bs = xt::xtensor<double, 4> bs =
{{{{0.10615136, 0.07395622, 0.08669186}}}}; {{{{0.10615136, 0.07395622, 0.08669186, NAN}}}};
EXPECT_TRUE(xt::allclose(metrics[0], bs)); EXPECT_TRUE(
xt::sum(xt::isclose(metrics[0], bs, 1e-05, 1e-08, true))
== xt::xscalar<double>(4)
);
// Brier skill scores // Brier skill scores
xt::xtensor<double, 4> bss = xt::xtensor<double, 4> bss =
{{{{0.5705594, 0.6661165, 0.5635126}}}}; {{{{0.5705594, 0.6661165, 0.5635126, NAN}}}};
EXPECT_TRUE(xt::allclose(metrics[1], bss)); EXPECT_TRUE(
xt::sum(xt::isclose(metrics[1], bss, 1e-05, 1e-08, true))
== xt::xscalar<double>(4)
);
// Brier calibration-refinement decompositions // Brier calibration-refinement decompositions
xt::xtensor<double, 5> bs_crd = xt::xtensor<double, 5> bs_crd =
{{{{{0.011411758, 0.1524456, 0.2471852}, {{{{{0.011411758, 0.1524456, 0.2471852},
{0.005532413, 0.1530793, 0.2215031}, {0.005532413, 0.1530793, 0.2215031},
{0.010139431, 0.1220601, 0.1986125}}}}}; {0.010139431, 0.1220601, 0.1986125},
EXPECT_TRUE(xt::allclose(metrics[2], bs_crd)); {NAN, NAN, NAN}}}}};
EXPECT_TRUE(
xt::sum(xt::isclose(metrics[2], bs_crd, 1e-05, 1e-08, true))
== xt::xscalar<double>(12)
);
// Brier likelihood-base rate decompositions // Brier likelihood-base rate decompositions
xt::xtensor<double, 5> bs_lbd = xt::xtensor<double, 5> bs_lbd =
{{{{{0.012159881, 0.1506234, 0.2446149}, {{{{{0.012159881, 0.1506234, 0.2446149},
{0.008031746, 0.1473869, 0.2133114}, {0.008031746, 0.1473869, 0.2133114},
{0.017191279, 0.1048221, 0.1743227}}}}}; {0.017191279, 0.1048221, 0.1743227},
EXPECT_TRUE(xt::allclose(metrics[3], bs_lbd)); {NAN, NAN, NAN}}}}};
EXPECT_TRUE(
xt::sum(xt::isclose(metrics[3], bs_lbd, 1e-05, 1e-08, true))
== xt::xscalar<double>(12)
);
} }
TEST(ProbabilistTests, TestQuantiles) TEST(ProbabilistTests, TestQuantiles)
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment