Skip to content

Commit 26b2d5c

Browse files
author
=
committed
add task_01 tests
1 parent d2e9154 commit 26b2d5c

File tree

1 file changed

+71
-3
lines changed

1 file changed

+71
-3
lines changed

task_01/src/test.cpp

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,73 @@
11
#include <gtest/gtest.h>
22

3-
TEST(Test, Simple) {
4-
ASSERT_EQ(1, 1); // Stack []
5-
}
3+
#include <stdexcept>
4+
5+
#include "topological_sort.cpp"
6+
7+
template <typename T>
8+
bool check_graph_sorted(Graph<T, int>& g) {
9+
for (auto i : g.nodes) {
10+
for (auto k : i->paths) {
11+
if (i->name >= k.first->name) {
12+
return false;
13+
}
14+
}
15+
}
16+
return true;
17+
}
18+
19+
TEST(TopologySort, TestSimple1) {
20+
Graph<int, int> g({{1, 4}, {4, 2}, {3, 2}, {4, 3}});
21+
ASSERT_EQ(check_graph_sorted(topological_sort(g)), true); // Stack []
22+
}
23+
24+
TEST(TopologySort, TestSimple2) {
25+
Graph<int, int> g({{1, 2}, {3, 2}, {2, 5}, {4, 2}, {4, 6}, {6, 5}});
26+
ASSERT_EQ(check_graph_sorted(topological_sort(g)), true); // Stack []
27+
}
28+
29+
TEST(TopologySort, TestExtraSourcePoint1) {
30+
Graph<int, int> g({{1, 2}, {3, 2}, {2, 5}, {4, 2}, {4, 6}, {6, 5}, {8, 6}});
31+
ASSERT_EQ(check_graph_sorted(topological_sort(g)), true); // Stack []
32+
}
33+
34+
TEST(TopologySort, TestExtraSourcePoint2) {
35+
Graph<int, int> g({{1, 2}, {3, 2}, {8, 5}, {2, 5}, {4, 2}, {4, 6}, {6, 5}});
36+
ASSERT_EQ(check_graph_sorted(topological_sort(g)), true); // Stack []
37+
}
38+
39+
TEST(TopologySort, TestExtraSourcePoint3) {
40+
Graph<int, int> g({{1, 4}, {4, 2}, {3, 2}, {4, 3}, {9, 1}});
41+
ASSERT_EQ(check_graph_sorted(topological_sort(g)), true); // Stack []
42+
}
43+
44+
TEST(TopologySort, TestExtraSourcePoint4) {
45+
Graph<int, int> g({{1, 2}, {3, 2}, {6, 5}, {2, 5}, {4, 2}, {4, 6}, {6, 5}});
46+
ASSERT_EQ(check_graph_sorted(topological_sort(g)), true); // Stack []
47+
}
48+
49+
TEST(TopologySort, TestExtraLeafPoint) {
50+
Graph<int, int> g({{1, 2}, {3, 2}, {6, 9}, {2, 5}, {4, 2}, {4, 6}, {6, 5}});
51+
ASSERT_EQ(check_graph_sorted(topological_sort(g)), true); // Stack []
52+
}
53+
54+
TEST(TopologySort, TestLoopError1) {
55+
Graph<int, int> g({{1, 4}, {4, 2}, {3, 2}, {4, 3}, {3, 3}});
56+
EXPECT_THROW(topological_sort(g), std::runtime_error); // Stack []
57+
}
58+
59+
TEST(TopologySort, TestLoopError2) {
60+
Graph<int, int> g({{1, 2}, {1, 3}, {3, 2}, {2, 3}});
61+
EXPECT_THROW(topological_sort(g), std::runtime_error); // Stack []
62+
}
63+
64+
TEST(TopologySort, TestLoopError3) {
65+
Graph<int, int> g({{1, 4}, {4, 2}, {3, 2}, {4, 3}, {4, 1}});
66+
EXPECT_THROW(topological_sort(g),
67+
std::runtime_error); // Stack []
68+
}
69+
70+
TEST(TopologySort, TestLoopError4) {
71+
Graph<int, int> g({{1, 2}, {1, 3}, {3, 2}, {2, 3}, {2, 1}, {3, 1}});
72+
EXPECT_THROW(topological_sort(g), std::runtime_error); // Stack []
73+
}

0 commit comments

Comments
 (0)