diff --git a/tests/test_probabilist.cpp b/tests/test_probabilist.cpp index 186ed72435fd55475ca246350a805e8ff7cf328b..0ee579ffe574f9f33499f5ed892cda53fb605e21 100644 --- a/tests/test_probabilist.cpp +++ b/tests/test_probabilist.cpp @@ -297,6 +297,41 @@ TEST(ProbabilistTests, TestIntervals) } } +TEST(ProbabilistTests, TestIntervalsQLVL) +{ + // read in data + xt::xtensor<double, 1> observed; + xt::xtensor<double, 2> predicted; + std::tie(observed, predicted) = load_data_p(); + + // read in expected results + auto expected = load_expected_p(); + + // compute scores + std::vector<std::string> metrics = {"CR"}; + + std::vector<xt::xarray<double>> results = + evalhyd::evalp( + // shape: (sites [1], time [t]) + xt::eval(xt::view(observed, xt::newaxis(), xt::all())), + // shape: (sites [1], lead times [1], members [m], time [t]) + xt::eval(xt::view(predicted, xt::newaxis(), xt::newaxis(), xt::range(0, 4), xt::all())), + metrics, + xt::xtensor<double, 2>({}), + "", // events + {50., 80.}, // c_lvl + {0.1, 0.25, 0.75, 0.9} // q_lvl + ); + + // check results + for (std::size_t m = 0; m < metrics.size(); m++) + { + EXPECT_TRUE(xt::all(xt::isclose( + results[m], expected[metrics[m]], 1e-05, 1e-08, true + ))) << "Failure for (" << metrics[m] << ")"; + } +} + TEST(ProbabilistTests, TestMultiVariate) { // read in data