47 std::array<int, 5> intArray = { { 2, 5, 3, 4, 99} };
48 std::array<int, 5> intArray2 = { { 144, 121, 33, 35, 31415} };
49 std::array<int, 5> intArray3 = { { 1440, 1210, 3, 33, 3141529} };
50 std::vector<int> onTheFlyCreatedInts;
51 onTheFlyCreatedInts.reserve(4);
55 EXPECT_EQ(0, intNetwork.
size());
58 for (
unsigned int index = 1 ; index < 5; index++) {
60 intNetwork.
addNode(intArray.at(index - 1), intArray.at(index - 1));
61 intNetwork.
addNode(intArray.at(index), intArray.at(index));
63 intNetwork.
linkNodes(intArray.at(index - 1), intArray.at(index));
66 for (
unsigned int index = 1 ; index < 5; index++) {
67 intNetwork.
addNode(intArray2.at(index - 1), intArray2.at(index - 1));
68 intNetwork.
addNode(intArray2.at(index), intArray2.at(index));
70 intNetwork.
linkNodes(intArray2.at(index - 1), intArray2.at(index));
73 for (
unsigned int index = 1 ; index < 5; index++) {
74 intNetwork.
addNode(intArray3.at(index - 1), intArray3.at(index - 1));
75 intNetwork.
addNode(intArray3.at(index), intArray3.at(index));
77 intNetwork.
linkNodes(intArray3.at(index - 1), intArray3.at(index));
82 onTheFlyCreatedInts.push_back(42);
83 int& newInnerInt = onTheFlyCreatedInts.back();
84 intNetwork.
addNode(newInnerInt, newInnerInt);
85 intNetwork.
linkNodes(newInnerInt, oldOuterInt);
89 onTheFlyCreatedInts.push_back(23);
90 int& newOuterInt = onTheFlyCreatedInts.back();
91 int& existingInt = intArray.at(1);
92 intNetwork.
addNode(newOuterInt, newOuterInt);
93 intNetwork.
linkNodes(newOuterInt, existingInt);
96 intNetwork.
linkNodes(intArray.at(0), intArray.at(2));
100 onTheFlyCreatedInts.push_back(31);
101 int& newInnerInt = onTheFlyCreatedInts.back();
102 intNetwork.
addNode(newInnerInt, newInnerInt);
109 onTheFlyCreatedInts.push_back(66);
110 int& newOuterInt = onTheFlyCreatedInts.back();
111 intNetwork.
addNode(newOuterInt, newOuterInt);
115 EXPECT_EQ(17, intNetwork.
size());
123 int nRounds = cellularAutomaton.
apply(intNetwork);
124 unsigned int nSeeds = cellularAutomaton.
findSeeds(intNetwork);
127 EXPECT_EQ(13, nSeeds);
132 std::vector<DirectedNode<int, CACell>*>,
137 PathCollectorType pathCollector;
139 std::vector< PathCollectorType::Path> paths;
140 pathCollector.findPaths(intNetwork, paths, 100000000);
142 std::string out = PathCollectorType::printPaths(paths);
147 EXPECT_EQ(13, paths.size());
148 unsigned int longestPath = 0;
149 for (
auto& aPath : paths) {
150 if (longestPath < aPath.size()) {
151 longestPath = aPath.size();
155 EXPECT_EQ(7, longestPath);
156 EXPECT_EQ(nRounds, longestPath +
161 bool test = pathCollector.findPaths(intNetwork, paths, 50,
true);
162 EXPECT_EQ(44, paths.size());
163 EXPECT_EQ(
true, test);
167 test = pathCollector.findPaths(intNetwork, paths, 10);
168 EXPECT_EQ(
false, test);