Skip to content

Commit

Permalink
New Test and Examples (#379)
Browse files Browse the repository at this point in the history
* added a test_8 and test_9 in DFSTest

* added Prim example

* added Floyd Warshall example

* added a floyd warshall test
  • Loading branch information
ErikDervishi03 authored Dec 19, 2023
1 parent 2c3ccb4 commit 07adb78
Showing 1 changed file with 58 additions and 0 deletions.
58 changes: 58 additions & 0 deletions test/DFSTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -139,3 +139,61 @@ TEST(DFSTest, test_6) {
ASSERT_FALSE(std::find(res.begin(), res.end(), node3) != res.end());
ASSERT_FALSE(std::find(res.begin(), res.end(), node4) != res.end());
}

TEST(DFSTest, test_7) {
CXXGraph::Node<int> node1("1", 1);
CXXGraph::Node<int> node2("2", 2);
CXXGraph::Node<int> node3("3", 3);
CXXGraph::Node<int> node4("4", 4);
std::pair<const CXXGraph::Node<int> *, const CXXGraph::Node<int> *> pairNode(
&node1, &node2);
CXXGraph::DirectedWeightedEdge<int> edge1(1, pairNode, 1);
CXXGraph::DirectedWeightedEdge<int> edge2(2, node2, node3, 1);
CXXGraph::DirectedWeightedEdge<int> edge3(3, node3, node4, 1);
CXXGraph::DirectedWeightedEdge<int> edge4(4, node4, node1, 1);
CXXGraph::T_EdgeSet<int> edgeSet;
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge2));
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge3));
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge4));
CXXGraph::Graph<int> graph(edgeSet);
std::vector<CXXGraph::Node<int>> res = graph.depth_first_search(node1);
ASSERT_EQ(res.size(), 4);
ASSERT_TRUE(std::find(res.begin(), res.end(), node1) != res.end());
ASSERT_TRUE(std::find(res.begin(), res.end(), node2) != res.end());
ASSERT_TRUE(std::find(res.begin(), res.end(), node3) != res.end());
ASSERT_TRUE(std::find(res.begin(), res.end(), node4) != res.end());
}

TEST(DFSTest, test_8) {
CXXGraph::Node<int> node1("1", 1);
CXXGraph::Node<int> node2("2", 2);
CXXGraph::Node<int> node3("3", 3);
CXXGraph::Node<int> node4("4", 4);

CXXGraph::DirectedWeightedEdge<int> edge1(1, node1, node2, 1);
CXXGraph::DirectedWeightedEdge<int> edge2(2, node3, node4, 1);
CXXGraph::T_EdgeSet<int> edgeSet;
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge2));
CXXGraph::Graph<int> graph(edgeSet);
std::vector<CXXGraph::Node<int>> res = graph.depth_first_search(node1);
ASSERT_EQ(res.size(), 2);
ASSERT_TRUE(std::find(res.begin(), res.end(), node1) != res.end());
ASSERT_TRUE(std::find(res.begin(), res.end(), node2) != res.end());
ASSERT_FALSE(std::find(res.begin(), res.end(), node3) != res.end());
ASSERT_FALSE(std::find(res.begin(), res.end(), node4) != res.end());
}

TEST(DFSTest, test_9) {
CXXGraph::Node<int> node1("1", 1);
std::pair<const CXXGraph::Node<int> *, const CXXGraph::Node<int> *> pairNode(
&node1, &node1);
CXXGraph::UndirectedWeightedEdge<int> edge1(1, pairNode, 1);
CXXGraph::T_EdgeSet<int> edgeSet;
edgeSet.insert(make_shared<CXXGraph::DirectedWeightedEdge<int>>(edge1));
CXXGraph::Graph<int> graph(edgeSet);
std::vector<CXXGraph::Node<int>> res = graph.depth_first_search(node1);
ASSERT_EQ(res.size(), 1);
ASSERT_TRUE(std::find(res.begin(), res.end(), node1) != res.end());
}

0 comments on commit 07adb78

Please sign in to comment.