10 #include <tracking/trackFindingCDC/hough/baseelements/LinearDivision.h>
11 #include <tracking/trackFindingCDC/hough/boxes/Box.h>
12 #include <tracking/trackFindingCDC/numerics/Weight.h>
14 #include <framework/logging/Logger.h>
16 #include <gtest/gtest.h>
21 using namespace TrackFindingCDC;
24 TEST(TrackFindingCDCTest, SumInfinities)
26 EXPECT_EQ(INFINITY, INFINITY + INFINITY);
28 std::array<Weight, 4> infinities{{INFINITY, INFINITY, INFINITY, INFINITY}};
29 Weight weightSum = std::accumulate(std::begin(infinities), std::end(infinities), Weight(0));
30 EXPECT_EQ(INFINITY, weightSum);
34 TEST(TrackFindingCDCTest, LinearDivision_createBoxes)
36 Box<float, float> box({{0, 3}}, {{0, 2}});
38 size_t nSubNodes = LinearDivision<Box<float, float>, 3, 3>::s_nSubBoxes;
39 EXPECT_EQ(9, nSubNodes);
42 LinearDivision<Box<float, float>, 3, 2> subBoxFactory{};
43 std::array<Box<float, float>, 6 > subBoxes = subBoxFactory(box);
46 for (Box<float, float>& subBox : subBoxes) {
47 B2INFO(
"Lower bounds: " << subBox.getLowerBound<0>() <<
", " << subBox.getLowerBound<1>());
48 B2INFO(
"Upper bounds: " << subBox.getUpperBound<0>() <<
", " << subBox.getUpperBound<1>());
50 EXPECT_EQ(i % 3 , subBox.getLowerBound<0>());
51 EXPECT_EQ(i / 3, subBox.getLowerBound<1>());
53 EXPECT_EQ(i % 3 + 1, subBox.getUpperBound<0>());
54 EXPECT_EQ(i / 3 + 1, subBox.getUpperBound<1>());