10 #include <gtest/gtest.h>
12 #include <tracking/trackFindingCDC/ca/MultipassCellularPathFinder.h>
13 #include <tracking/trackFindingCDC/ca/WithAutomatonCell.h>
18 using namespace TrackFindingCDC;
20 TEST(TrackFindingCDCTest, CellularPathFollower_followSingle)
22 using Element = WithAutomatonCell<std::pair<int, int> >;
23 Element startElement(std::make_pair(1, 1));
24 startElement.getAutomatonCell().setCellWeight(1);
26 Element secondElement(std::make_pair(1, 1));
27 secondElement.getAutomatonCell().setCellWeight(1);
29 std::vector<WeightedRelation<Element>> relations;
30 relations.emplace_back(&startElement, 1, &secondElement);
33 startElement.getAutomatonCell().setStartFlag();
34 startElement.getAutomatonCell().setCellState(3);
35 startElement.getAutomatonCell().setAssignedFlag();
37 secondElement.getAutomatonCell().setCellState(1);
38 secondElement.getAutomatonCell().setAssignedFlag();
40 CellularPathFollower<Element> cellularPathFollower;
41 const std::vector<Element*> elementPath =
42 cellularPathFollower.followSingle(&startElement, relations, -INFINITY);
43 EXPECT_EQ(2, elementPath.size());
44 EXPECT_EQ(&startElement, elementPath.front());
45 EXPECT_EQ(&secondElement, elementPath.back());