@@ -155,6 +155,37 @@ TEST(ParametersTest, VectorInputOutput)
155155 EXPECT_EQ (numbersA->get <std::vector<Number>>(), (std::vector<Number>{{1.0 }, {6.0 }, {2.0 }}));
156156 EXPECT_EQ (numbersB->get <std::vector<Number>>().size (), 3 );
157157 EXPECT_EQ (numbersA->get <std::vector<Number>>(), numbersB->get <std::vector<Number>>());
158+
159+ // Remove a single edge - this should flag TestA and TestB as being out of date
160+ EXPECT_TRUE (root_.removeEdge ({" Number1" , " A" , " TestA" , " NumberVector" }));
161+ EXPECT_TRUE (a->inputsAreValid ());
162+ EXPECT_TRUE (b->inputsAreValid ());
163+ EXPECT_FALSE (a->isUpToDate ());
164+ EXPECT_FALSE (b->isUpToDate ());
165+
166+ // Run again and check the result
167+ EXPECT_EQ (b->run (), NodeConstants::ProcessResult::Success);
168+ EXPECT_EQ (b->versionIndex (), 2 );
169+ EXPECT_EQ (numbersA->get <std::vector<Number>>().size (), 2 );
170+ EXPECT_EQ (numbersA->get <std::vector<Number>>(), (std::vector<Number>{{6.0 }, {2.0 }}));
171+ EXPECT_EQ (numbersB->get <std::vector<Number>>().size (), 2 );
172+ EXPECT_EQ (numbersA->get <std::vector<Number>>(), numbersB->get <std::vector<Number>>());
173+
174+ // Remove both of the other edges
175+ EXPECT_TRUE (root_.removeEdge ({" Number3" , " A" , " TestA" , " NumberVector" }));
176+ EXPECT_TRUE (root_.removeEdge ({" Number2" , " A" , " TestA" , " NumberVector" }));
177+ EXPECT_TRUE (a->inputsAreValid ());
178+ EXPECT_TRUE (b->inputsAreValid ());
179+ EXPECT_FALSE (a->isUpToDate ());
180+ EXPECT_FALSE (b->isUpToDate ());
181+
182+ // Run again and check the result
183+ EXPECT_EQ (b->run (), NodeConstants::ProcessResult::Success);
184+ EXPECT_EQ (b->versionIndex (), 3 );
185+ EXPECT_EQ (numbersA->get <std::vector<Number>>().size (), 0 );
186+ EXPECT_EQ (numbersA->get <std::vector<Number>>(), std::vector<Number>());
187+ EXPECT_EQ (numbersB->get <std::vector<Number>>().size (), 0 );
188+ EXPECT_EQ (numbersA->get <std::vector<Number>>(), numbersB->get <std::vector<Number>>());
158189}
159190
160191} // namespace UnitTest
0 commit comments