From 1195a5e100b355c9b6353e2bc0c5299547e6ab58 Mon Sep 17 00:00:00 2001 From: Alice Date: Fri, 25 Jul 2025 10:18:55 +0200 Subject: [PATCH] added drop dimension test, added file calibration.test.cpp --- src/NDArray.test.cpp | 19 +++++++++++++++- src/calibration.test.cpp | 49 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 1 deletion(-) create mode 100644 src/calibration.test.cpp diff --git a/src/NDArray.test.cpp b/src/NDArray.test.cpp index 9af8379..97a7f09 100644 --- a/src/NDArray.test.cpp +++ b/src/NDArray.test.cpp @@ -427,4 +427,21 @@ TEST_CASE("Construct an NDArray from an std::array") { for (uint32_t i = 0; i < a.size(); ++i) { REQUIRE(a(i) == b[i]); } -} \ No newline at end of file +} + +TEST_CASE("Drop dimension") { + NDArray array(std::array{2, 2, 2}); + + std::fill(array.begin(), array.begin() + 4, 0); + std::fill(array.begin() + 4, array.end(), 1); + + auto new_array = std::move(array).drop_dimension(); + + CHECK(new_array.shape() == std::array{2, 2}); + CHECK(new_array.size() == 4); + + std::for_each(new_array.begin(), new_array.end(), + [](int &element) { CHECK(element == 0); }); + + CHECK(array.size() == 0); // array was moved +} diff --git a/src/calibration.test.cpp b/src/calibration.test.cpp new file mode 100644 index 0000000..712dcd8 --- /dev/null +++ b/src/calibration.test.cpp @@ -0,0 +1,49 @@ +/************************************************ + * @file test-Cluster.cpp + * @short test case for generic Cluster, ClusterVector, and calculate_eta2 + ***********************************************/ + +#include "aare/calibration.hpp" + +// #include "catch.hpp" +#include +#include +#include + +using namespace aare; + +TEST_CASE("Test Pedestal Generation", "[.calibration]") { + NDArray raw(std::array{3, 2, 2}, 0); + + // gain 0 + raw(0, 0, 0) = 100; + raw(1, 0, 0) = 200; + raw(2, 0, 0) = 300; + + // gain 1 + raw(0, 0, 1) = (1 << 14) + 100; + raw(1, 0, 1) = (1 << 14) + 200; + raw(2, 0, 1) = (1 << 14) + 300; + + raw(0, 1, 0) = (1 << 14) + 37; + raw(1, 1, 0) = 38; + raw(2, 1, 0) = (3 << 14) + 39; + + // gain 2 + raw(0, 1, 1) = (3 << 14) + 100; + raw(1, 1, 1) = (3 << 14) + 200; + raw(2, 1, 1) = (3 << 14) + 300; + + auto pedestal = calculate_pedestal(raw.view(), 4); + + REQUIRE(pedestal.size() == raw.size()); + CHECK(pedestal(0, 0, 0) == 200); + CHECK(pedestal(1, 0, 0) == 0); + CHECK(pedestal(1, 0, 1) == 200); + + auto pedestal_gain0 = calculate_pedestal_g0(raw.view(), 4); + + REQUIRE(pedestal_gain0.size() == 4); + CHECK(pedestal_gain0(0, 0) == 200); + CHECK(pedestal_gain0(1, 0) == 38); +} \ No newline at end of file