From 17fd4faf7160cb56d18c025641c123c0d3fc115e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=93=E8=88=AA?= <1210603696@qq.com> Date: Wed, 11 Feb 2015 10:45:45 +0800 Subject: [PATCH] add --- TinySTL/Test/GraphTest.cpp | 60 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 TinySTL/Test/GraphTest.cpp diff --git a/TinySTL/Test/GraphTest.cpp b/TinySTL/Test/GraphTest.cpp new file mode 100644 index 0000000..23a78c3 --- /dev/null +++ b/TinySTL/Test/GraphTest.cpp @@ -0,0 +1,60 @@ +#include "GraphTest.h" + +namespace TinySTL{ + namespace GraphTest{ + void testCase1(){ + dGraph g; + assert(g.empty()); + assert(g.size() == 0); + + g.add_node(g.make_node(0, 0), g.empty_node_set()); + assert(!g.empty()); + assert(g.size() == 1); + assert(g.is_contained(0)); + + auto node = g.get_node(0); + assert(node.first == 0 && node.second == 0); + } + void testCase2(){ + dGraph g; + dGraph::nodes_set_type set1, set2, set3; + set1.push_back(g.make_node(1, 11)); + set1.push_back(g.make_node(2, 22)); + set1.push_back(g.make_node(3, 33)); + g.add_node(g.make_node(0, 0), set1); + + set2.push_back(g.make_node(5, 55)); + set2.push_back(g.make_node(6, 66)); + set2.push_back(g.make_node(7, 77)); + g.add_node(g.make_node(1, 11), set2); + + set3.push_back(g.make_node(12, 1212)); + set3.push_back(g.make_node(13, 1313)); + set3.push_back(g.make_node(14, 1414)); + g.add_node(7, set3); + + g.make_edge(12, 2); + g.make_edge(12, 3); + g.make_edge(12, 0); + std::cout << "graph after add nodes:" << std::endl; + std::cout << g.to_string(); + + auto func = [](const dGraph::node_type& node){ + std::cout << "[" << node.first << "," << node.second << "]" << std::endl; + }; + std::cout << "graph DFS from node(1, 11):" << std::endl; + g.DFS(1, func); + std::cout << "graph BFS from node(1, 11):" << std::endl; + g.BFS(1, func); + + std::cout << "graph after delete node(7, 77):" << std::endl; + g.delete_node(dGraph::node_type(7, 77)); + std::cout << g.to_string(); + } + + void testAllCases(){ + testCase1(); + testCase2(); + } + } +} \ No newline at end of file -- GitLab