GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_DOT/main.cpp
Date: 2025-03-14 11:38:38
Exec Total Coverage
Lines: 58 58 100.0%
Branches: 79 79 100.0%

Line Branch Exec Source
1 /***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5 ****************************************/
6
7 #include "Graph.h"
8
9 ///Test the graph iteration
10 /** @param graph : Graph on which to iterate
11 * @return true on success, false otherwise
12 */
13 1 bool testIterateGraph(const Graph<bool, long> & graph){
14
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 std::cout << "testIterateGraph : iterateParent :" << std::endl;
15 1 std::list<long> listNodeToParent;
16
3/3
✓ Branch 1 taken 4 times.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 1 times.
4 while(graph.iterateParent(listNodeToParent)){
17
2/2
✓ Branch 1 taken 3 times.
✓ Branch 4 taken 3 times.
3 std::cout << "To parent iteration :" << std::endl;
18
2/2
✓ Branch 4 taken 5 times.
✓ Branch 5 taken 3 times.
8 for(std::list<long>::iterator it(listNodeToParent.begin()); it != listNodeToParent.end(); ++it){
19
3/3
✓ Branch 1 taken 5 times.
✓ Branch 5 taken 5 times.
✓ Branch 8 taken 5 times.
5 std::cout << "\t" << (*it) << std::endl;
20 }
21 }
22
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 std::cout << "testIterateGraph : iterateChildren :" << std::endl;
23 1 std::list<long> listNodeToChldren;
24
3/3
✓ Branch 1 taken 4 times.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 1 times.
4 while(graph.iterateChildren(listNodeToChldren)){
25
2/2
✓ Branch 1 taken 3 times.
✓ Branch 4 taken 3 times.
3 std::cout << "To children iteration :" << std::endl;
26
2/2
✓ Branch 4 taken 6 times.
✓ Branch 5 taken 3 times.
9 for(std::list<long>::iterator it(listNodeToChldren.begin()); it != listNodeToChldren.end(); ++it){
27
3/3
✓ Branch 1 taken 6 times.
✓ Branch 5 taken 6 times.
✓ Branch 8 taken 6 times.
6 std::cout << "\t" << (*it) << std::endl;
28 }
29 }
30 1 return true;
31 1 }
32
33 ///Test the graph iteration
34 /** @param graph : Graph on which to iterate
35 * @return true on success, false otherwise
36 */
37 1 bool testIterateGraphUnique(Graph<bool, long> & graph){
38
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 std::cout << "testIterateGraphUnique : iterateParentCheckUpdate :" << std::endl;
39 1 std::list<long> listNodeToParent;
40
3/3
✓ Branch 1 taken 4 times.
✓ Branch 3 taken 3 times.
✓ Branch 4 taken 1 times.
4 while(graph.iterateParentCheckUpdate(listNodeToParent)){
41
2/2
✓ Branch 1 taken 3 times.
✓ Branch 4 taken 3 times.
3 std::cout << "To parent iteration :" << std::endl;
42
2/2
✓ Branch 4 taken 5 times.
✓ Branch 5 taken 3 times.
8 for(std::list<long>::iterator it(listNodeToParent.begin()); it != listNodeToParent.end(); ++it){
43
3/3
✓ Branch 1 taken 5 times.
✓ Branch 5 taken 5 times.
✓ Branch 8 taken 5 times.
5 std::cout << "\t" << (*it) << std::endl;
44 }
45 }
46
47
2/2
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
1 std::cout << "testIterateGraphUnique : iterateChildrenCheckUpdate :" << std::endl;
48 1 std::list<long> listNodeToChldren;
49
3/3
✓ Branch 1 taken 3 times.
✓ Branch 3 taken 2 times.
✓ Branch 4 taken 1 times.
3 while(graph.iterateChildrenCheckUpdate(listNodeToChldren)){
50
2/2
✓ Branch 1 taken 2 times.
✓ Branch 4 taken 2 times.
2 std::cout << "To children iteration :" << std::endl;
51
2/2
✓ Branch 4 taken 5 times.
✓ Branch 5 taken 2 times.
7 for(std::list<long>::iterator it(listNodeToChldren.begin()); it != listNodeToChldren.end(); ++it){
52
3/3
✓ Branch 1 taken 5 times.
✓ Branch 5 taken 5 times.
✓ Branch 8 taken 5 times.
5 std::cout << "\t" << (*it) << std::endl;
53 }
54 }
55 1 return true;
56 1 }
57
58 ///Test the graph conversion to dot
59 /** @return true on success, false otherwise
60 */
61 1 bool testGraphToDot(){
62
1/1
✓ Branch 1 taken 1 times.
1 Graph<bool, long> graph;
63
64
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 long nodeA = graph.createNode(true, "0");
65
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 long nodeB = graph.createNode(true, "1");
66
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 long nodeC = graph.createNode(true, "2");
67
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 long nodeD = graph.createNode(true, "3");
68
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 long nodeE = graph.createNode(true, "4");
69
70
1/1
✓ Branch 1 taken 1 times.
1 graph.connectNode(nodeA, nodeC);
71
1/1
✓ Branch 1 taken 1 times.
1 graph.connectNode(nodeB, nodeC);
72
1/1
✓ Branch 1 taken 1 times.
1 graph.connectNode(nodeC, nodeE);
73
1/1
✓ Branch 1 taken 1 times.
1 graph.connectNode(nodeD, nodeE);
74
75 1 bool b(true);
76
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 b &= graph.savePng("testGraph.png");
77
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 b &= !graph.saveDot("");
78
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 b &= !graph.savePng("");
79
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 b &= !graph.saveDot("someInexistingDir/someFile.dot");
80
2/2
✓ Branch 2 taken 1 times.
✓ Branch 5 taken 1 times.
1 b &= !graph.savePng("someInexistingDir/someFile.png");
81
82 1 b &= graph.size() == 5lu;
83
84
1/1
✓ Branch 1 taken 1 times.
1 graph.updateFirstLastNode();
85
1/1
✓ Branch 1 taken 1 times.
1 b &= testIterateGraph(graph);
86
1/1
✓ Branch 1 taken 1 times.
1 b &= testIterateGraphUnique(graph);
87
88
3/3
✓ Branch 1 taken 1 times.
✓ Branch 4 taken 1 times.
✓ Branch 7 taken 1 times.
1 std::cout << "testGraphToDot : b = " << b << std::endl;
89 1 return b;
90 1 }
91
92
93 1 int main(int argc, char** argv){
94 1 bool b(testGraphToDot());
95 1 std::cout << "b = " << b << std::endl;
96 1 return b - 1;
97 }
98
99
100