From a059fd44a0bed65943b63eb1dc8d0fcb1175fc23 Mon Sep 17 00:00:00 2001 From: Sebastian Eibl Date: Tue, 18 Feb 2025 10:29:08 +0100 Subject: [PATCH] fix and test getBin --- mrmd/data/MultiHistogram.hpp | 2 +- mrmd/data/MultiHistogram.test.cpp | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/mrmd/data/MultiHistogram.hpp b/mrmd/data/MultiHistogram.hpp index cc86390..99c8910 100644 --- a/mrmd/data/MultiHistogram.hpp +++ b/mrmd/data/MultiHistogram.hpp @@ -56,7 +56,7 @@ struct MultiHistogram */ KOKKOS_INLINE_FUNCTION idx_t getBin(const real_t& val) const { - auto bin = idx_c((val - min) * inverseBinSize); + auto bin = idx_c(std::floor((val - min) * inverseBinSize)); if (bin < 0) bin = -1; if (bin >= numBins) bin = -1; return bin; diff --git a/mrmd/data/MultiHistogram.test.cpp b/mrmd/data/MultiHistogram.test.cpp index 9a1eb4d..0f11cff 100644 --- a/mrmd/data/MultiHistogram.test.cpp +++ b/mrmd/data/MultiHistogram.test.cpp @@ -21,6 +21,15 @@ namespace mrmd namespace data { +TEST(MultiHistogram, getBin) +{ + MultiHistogram histogram("histogram", 0_r, 10_r, 10, 2); + EXPECT_EQ(histogram.getBin(-0.5_r), -1); + EXPECT_EQ(histogram.getBin(0.5_r), 0); + EXPECT_EQ(histogram.getBin(5.5_r), 5); + EXPECT_EQ(histogram.getBin(10.5_r), -1); +} + TEST(MultiHistogram, getBinPosition) { MultiHistogram histogram("histogram", 0_r, 10_r, 10, 2);