#include #include "algorithm/decremental_scc.h" #include "algorithm/decremental_tc.h" using namespace graph; TEST_SUITE("Roditty and Zwick") { TEST_CASE("Roditty Zwick A1 T1 ") { // 1 --> 2 --> 5 --> 7 --> 2 // 1 --> 4 --> 3 --> 1 // 4 --> 6 --> 3 Digraph G; G.insert(1, 2); G.insert(1, 4); G.insert(2, 5); G.insert(3, 1); G.insert(4, 3); G.insert(4, 6); G.insert(5, 7); G.insert(6, 3); G.insert(7, 2); algo::DecrementalSCC rz(G); rz.init(); std::vector> exp = { {2, 5, 7}, {1, 3, 4, 6} }; CHECK_EQ(rz.query(1, 2), false); CHECK_EQ(rz.query(1, 3), true); CHECK_EQ(rz.query(1, 7), false); CHECK_EQ(rz.query(2, 3), false); CHECK_EQ(rz.query(2, 5), true); CHECK_EQ(rz.query(5, 7), true); //CHECK_EQ(rz.query(1, 2), true); } }