Add new graph example
This commit is contained in:
43
test/roditty_zwick_test.cc
Normal file
43
test/roditty_zwick_test.cc
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user