Add new graph example

This commit is contained in:
stefiosif
2022-07-12 14:44:43 +03:00
parent 601f80c8d4
commit 0f857a6c9e
4 changed files with 105 additions and 46 deletions

View File

@@ -0,0 +1,43 @@
#include <doctest/doctest.h>
#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<std::uint16_t> 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<std::uint16_t> rz(G);
rz.init();
std::vector<std::vector<std::uint16_t>> 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);
}
}