15 using Graph = Digraph<char, std::string>;
18 EXPECT_TRUE(!graph.connected(
'a',
'b'));
19 EXPECT_TRUE(!graph.edge(
'a',
'b'));
20 EXPECT_TRUE(!graph.disconnect(
'a',
'b'));
22 EXPECT_TRUE(graph.connect(
'a',
'b',
"foobar"));
23 EXPECT_TRUE(graph.connected(
'a',
'b'));
24 EXPECT_TRUE(*graph.edge(
'a',
'b') ==
"foobar");
26 EXPECT_TRUE(!graph.connect(
'a',
'b',
"repeat"));
27 EXPECT_TRUE(graph.disconnect(
'a',
'b'));
28 EXPECT_TRUE(graph.connect(
'a',
'b',
"repeat"));
29 EXPECT_TRUE(graph.connected(
'a',
'b'));
30 EXPECT_TRUE(*graph.edge(
'a',
'b') ==
"repeat");
32 EXPECT_TRUE(graph.connect(
'a',
'c',
"tree"));
37 for (
auto const& edge : graph.outEdges(
'a'))
45 EXPECT_TRUE(edges == expected);
46 EXPECT_TRUE(graph.outDegree(
'a') == expected.
size());
49 EXPECT_TRUE(graph.outEdges(
'r').size() == 0);
50 EXPECT_TRUE(graph.outDegree(
'r') == 0);
51 EXPECT_TRUE(graph.outDegree(
'c') == 0);
54 EXPECT_TRUE(graph.outVertices().size() == 1);
57 EXPECT_TRUE((graph.outVertices(
'a') == expected));
58 EXPECT_TRUE(graph.outVertices(
'b').size() == 0);
59 EXPECT_TRUE(graph.outVertices(
'c').size() == 0);
60 EXPECT_TRUE(graph.outVertices(
'r').size() == 0);
63 graph.saveDot(ss, [](
char v) {
return v; });
69 EXPECT_TRUE(ss.
str() == expectedDot);