Fix HK::query for vertices in set S and tests
This commit is contained in:
@@ -65,7 +65,8 @@ bool HenzingerKing<T>::query(const T& u, const T& v) {
|
|||||||
|
|
||||||
return std::any_of(S.begin(), S.end(),
|
return std::any_of(S.begin(), S.end(),
|
||||||
[&](const T& w) {
|
[&](const T& w) {
|
||||||
return In[w].contains(w, u) && Out[w].contains(w, v);
|
return In[w].adjMatrix.contains(u) &&
|
||||||
|
Out[w].adjMatrix.contains(v);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -127,10 +127,13 @@ TEST_SUITE("Dynamic Reachability Test") {
|
|||||||
}
|
}
|
||||||
|
|
||||||
SUBCASE("HenzingerKing::insert") {
|
SUBCASE("HenzingerKing::insert") {
|
||||||
henzingerKing.insert(4, 6);
|
henzingerKing.insert(9, { { 1, 10 } });
|
||||||
|
|
||||||
CHECK_EQ(henzingerKing.query(1, 6), true);
|
CHECK_EQ(henzingerKing.query(1, 9), true);
|
||||||
CHECK_EQ(henzingerKing.query(3, 6), true);
|
CHECK_EQ(henzingerKing.query(9, 1), true);
|
||||||
|
|
||||||
|
CHECK_EQ(henzingerKing.query(1, 10), true);
|
||||||
|
CHECK_EQ(henzingerKing.query(10, 1), false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user