GCC Code Coverage Report


Directory: ./
File: TESTS/TEST_COLOR_MAP/main.cpp
Date: 2025-09-08 17:09:06
Exec Total Coverage
Lines: 111 111 100.0%
Functions: 6 6 100.0%
Branches: 110 112 98.2%

Line Branch Exec Source
1 /***************************************
2 Auteur : Pierre Aubert
3 Mail : pierre.aubert@lapp.in2p3.fr
4 Licence : CeCILL-C
5 ****************************************/
6
7 #include "PImagePng.h"
8
9 ///Test the write of a png file
10 /** @return true on success, false otherwise
11 */
12 1 bool testWriteColorMapPng(){
13
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 2 (3→4) taken 1 times.
1 PPath fileName("outputColorMap.png");
14 1 bool b(true);
15
16
1/1
✓ Branch 0 (5→6) taken 1 times.
1 PColorMap colorMap;
17 // 0,#000000,0.2,#00FF00,0.21,#FFFF00,0.4,#FF0000,0.6,#FFFFFF
18
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 colorMap.addColor(0.0, "000000");
19
2/2
✓ Branch 0 (9→10) taken 1 times.
✓ Branch 2 (10→11) taken 1 times.
1 colorMap.addColor(5.0, "00FF00FF");
20
2/2
✓ Branch 0 (12→13) taken 1 times.
✓ Branch 2 (13→14) taken 1 times.
1 colorMap.addColor(10.0, "00FF00");
21
2/2
✓ Branch 0 (15→16) taken 1 times.
✓ Branch 2 (16→17) taken 1 times.
1 colorMap.addColor(20.0, "FFFF00");
22
2/2
✓ Branch 0 (18→19) taken 1 times.
✓ Branch 2 (19→20) taken 1 times.
1 colorMap.addColor(30.0, "FF0000");
23
2/2
✓ Branch 0 (21→22) taken 1 times.
✓ Branch 2 (22→23) taken 1 times.
1 colorMap.addColor(40.0, "FFFFFF");
24
25 1 size_t width(640lu), height(480lu);
26
1/1
✓ Branch 0 (24→25) taken 1 times.
1 PImagePng image;
27
1/1
✓ Branch 0 (25→26) taken 1 times.
1 b &= image.createImage(width, height);
28
29
1/1
✓ Branch 0 (26→27) taken 1 times.
1 image.fill(18, 234, 142);
30
2/2
✓ Branch 0 (34→28) taken 480 times.
✓ Branch 1 (34→35) taken 1 times.
481 for(size_t j(0lu); j < height; ++j){
31
2/2
✓ Branch 0 (32→29) taken 307200 times.
✓ Branch 1 (32→33) taken 480 times.
307680 for(size_t i(0lu); i < width; ++i){
32 307200 float value(((j*width + i)/1000lu)%42lu);
33 307200 color_t red(0), green(0), blue(0);
34
1/1
✓ Branch 0 (29→30) taken 307200 times.
307200 colorMap.interpolate(red, green, blue, value);
35
1/1
✓ Branch 0 (30→31) taken 307200 times.
307200 image.setColor(i, j, red, green, blue);
36 }
37 }
38
39
1/1
✓ Branch 0 (35→36) taken 1 times.
1 b &= image.write(fileName);
40
41 1 return b;
42 1 }
43
44 ///Test the write of a png file
45 /** @return true on success, false otherwise
46 */
47 1 bool testWriteColorMapPng2(){
48
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 2 (3→4) taken 1 times.
1 PPath fileName("outputColorMap2.png");
49 1 bool b(true);
50
51
1/1
✓ Branch 0 (5→6) taken 1 times.
1 PColorMap colorMap;
52 // 0,#000000,0.2,#00FF00,0.21,#FFFF00,0.4,#FF0000,0.6,#FFFFFF
53
1/1
✓ Branch 0 (6→7) taken 1 times.
1 colorMap.addColor(0.0, 0, 0, 0, 0);
54
2/2
✓ Branch 0 (7→8) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
1 colorMap.addColor(5.0, "00FF00FF");
55
2/2
✓ Branch 0 (10→11) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
1 colorMap.addColor(10.0, "00FF0099");
56
2/2
✓ Branch 0 (13→14) taken 1 times.
✓ Branch 2 (14→15) taken 1 times.
1 colorMap.addColor(20.0, "FFFF0055");
57
2/2
✓ Branch 0 (16→17) taken 1 times.
✓ Branch 2 (17→18) taken 1 times.
1 colorMap.addColor(30.0, "FF0000AA");
58
2/2
✓ Branch 0 (19→20) taken 1 times.
✓ Branch 2 (20→21) taken 1 times.
1 colorMap.addColor(40.0, "FFFFFFFF");
59
60 1 size_t width(640lu), height(480lu);
61
1/1
✓ Branch 0 (22→23) taken 1 times.
1 PImagePng image;
62
1/1
✓ Branch 0 (23→24) taken 1 times.
1 b &= image.createImage(width, height, PImagePng::RGBA);
63
64
1/1
✓ Branch 0 (24→25) taken 1 times.
1 image.fill(18, 234, 142);
65
2/2
✓ Branch 0 (32→26) taken 480 times.
✓ Branch 1 (32→33) taken 1 times.
481 for(size_t j(0lu); j < height; ++j){
66
2/2
✓ Branch 0 (30→27) taken 307200 times.
✓ Branch 1 (30→31) taken 480 times.
307680 for(size_t i(0lu); i < width; ++i){
67 307200 float value(((j*width + i)/1000lu)%42lu);
68 307200 color_t red(0), green(0), blue(0), alpha(0);
69
1/1
✓ Branch 0 (27→28) taken 307200 times.
307200 colorMap.interpolate(red, green, blue, alpha, value);
70
1/1
✓ Branch 0 (28→29) taken 307200 times.
307200 image.setColor(i, j, red, green, blue, alpha);
71 }
72 }
73
74
1/1
✓ Branch 0 (33→34) taken 1 times.
1 b &= image.write(fileName);
75
76 1 return b;
77 1 }
78
79 ///Test the write of a png file
80 /** @return true on success, false otherwise
81 */
82 1 bool testWriteColorMapPng3(){
83
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 2 (3→4) taken 1 times.
1 PPath fileName("outputColorMap3.png");
84 1 bool b(true);
85
86
2/2
✓ Branch 0 (5→6) taken 1 times.
✓ Branch 2 (6→7) taken 1 times.
1 PColorValue minValue = createColorValue(0.0, "000000AA");
87
2/2
✓ Branch 0 (8→9) taken 1 times.
✓ Branch 2 (9→10) taken 1 times.
1 PColorValue maxValue = createColorValue(1.0, "FFFFFFFF");
88
89 1 size_t width(640lu), height(480lu);
90
1/1
✓ Branch 0 (11→12) taken 1 times.
1 PImagePng image;
91
1/1
✓ Branch 0 (12→13) taken 1 times.
1 b &= image.createImage(width, height, PImagePng::RGBA);
92
93
1/1
✓ Branch 0 (13→14) taken 1 times.
1 image.fill(18, 234, 142);
94
2/2
✓ Branch 0 (22→15) taken 480 times.
✓ Branch 1 (22→23) taken 1 times.
481 for(size_t j(0lu); j < height; ++j){
95
2/2
✓ Branch 0 (20→16) taken 307200 times.
✓ Branch 1 (20→21) taken 480 times.
307680 for(size_t i(0lu); i < width; ++i){
96 307200 float value(((j*width + i)/1000lu)%42lu);
97 307200 color_t red(0), green(0), blue(0), alpha(0);
98
1/1
✓ Branch 0 (16→17) taken 307200 times.
307200 PColorValue color(phoenix_interpolateColor(minValue, maxValue, value));
99
1/1
✓ Branch 0 (17→18) taken 307200 times.
307200 getColorValue(red, green, blue, alpha, color);
100
1/1
✓ Branch 0 (18→19) taken 307200 times.
307200 image.setColor(i, j, red, green, blue, alpha);
101 }
102 }
103
104
1/1
✓ Branch 0 (23→24) taken 1 times.
1 b &= image.write(fileName);
105
106 1 return b;
107 1 }
108
109 ///Test the write of a png file
110 /** @return true on success, false otherwise
111 */
112 1 bool testWriteColorMapPng4(){
113
2/2
✓ Branch 0 (2→3) taken 1 times.
✓ Branch 2 (3→4) taken 1 times.
1 PPath fileName("outputColorMap4.png");
114 1 bool b(true);
115
116
1/1
✓ Branch 0 (5→6) taken 1 times.
1 PColorMap colorMap;
117 // 0,#000000,0.2,#00FF00,0.21,#FFFF00,0.4,#FF0000,0.6,#FFFFFF
118
1/1
✓ Branch 0 (6→7) taken 1 times.
1 colorMap.addColor(0.0, 0, 0, 0, 0);
119
2/2
✓ Branch 0 (7→8) taken 1 times.
✓ Branch 2 (8→9) taken 1 times.
1 colorMap.addColor(5.0, "00FF00FF");
120
2/2
✓ Branch 0 (10→11) taken 1 times.
✓ Branch 2 (11→12) taken 1 times.
1 colorMap.addColor(10.0, "00FF0099");
121
2/2
✓ Branch 0 (13→14) taken 1 times.
✓ Branch 2 (14→15) taken 1 times.
1 colorMap.addColor(20.0, "FFFF0055");
122
2/2
✓ Branch 0 (16→17) taken 1 times.
✓ Branch 2 (17→18) taken 1 times.
1 colorMap.addColor(30.0, "FF0000AA");
123
2/2
✓ Branch 0 (19→20) taken 1 times.
✓ Branch 2 (20→21) taken 1 times.
1 colorMap.addColor(40.0, "FFFFFFFF");
124
125 1 size_t width(640lu), height(480lu);
126
1/1
✓ Branch 0 (22→23) taken 1 times.
1 PImagePng image;
127
1/1
✓ Branch 0 (23→24) taken 1 times.
1 b &= image.createImage(width, height, PImagePng::RGBA);
128
129
2/3
✓ Branch 0 (24→25) taken 1 times.
✗ Branch 1 (24→26) not taken.
✓ Branch 2 (27→28) taken 1 times.
1 float * matValue = new float[width*height];
130
131
1/1
✓ Branch 0 (28→29) taken 1 times.
1 image.fill(18, 234, 142);
132
2/2
✓ Branch 0 (34→30) taken 480 times.
✓ Branch 1 (34→35) taken 1 times.
481 for(size_t j(0lu); j < height; ++j){
133
2/2
✓ Branch 0 (32→31) taken 307200 times.
✓ Branch 1 (32→33) taken 480 times.
307680 for(size_t i(0lu); i < width; ++i){
134 307200 float value(((j*width + i)/1000lu)%42lu);
135 307200 matValue[j*width + i] = value;
136 }
137 }
138
139
1/1
✓ Branch 0 (35→36) taken 1 times.
1 image.setColor(matValue, height, width, colorMap);
140
141
1/1
✓ Branch 0 (36→37) taken 1 times.
1 b &= image.write(fileName);
142
143
1/2
✓ Branch 0 (37→38) taken 1 times.
✗ Branch 1 (37→39) not taken.
1 delete [] matValue;
144 1 return b;
145 1 }
146
147 ///The the basic functions of a color map
148 /** @return true on success, false otherwise
149 */
150 1 bool testBaseColorMap(){
151
1/1
✓ Branch 0 (2→3) taken 1 times.
1 PColorMap colorMap;
152
2/2
✓ Branch 0 (3→4) taken 1 times.
✓ Branch 2 (4→5) taken 1 times.
1 colorMap.addColor(0.0, "00000000");
153
2/2
✓ Branch 0 (6→7) taken 1 times.
✓ Branch 2 (7→8) taken 1 times.
1 colorMap.addColor(5.0, "00FF00FF");
154
2/2
✓ Branch 0 (9→10) taken 1 times.
✓ Branch 2 (10→11) taken 1 times.
1 colorMap.addColor(10.0, "00FF0099");
155
2/2
✓ Branch 0 (12→13) taken 1 times.
✓ Branch 2 (13→14) taken 1 times.
1 colorMap.addColor(20.0, "FFFF0055");
156
2/2
✓ Branch 0 (15→16) taken 1 times.
✓ Branch 2 (16→17) taken 1 times.
1 colorMap.addColor(30.0, "FF0000AA");
157
2/2
✓ Branch 0 (18→19) taken 1 times.
✓ Branch 2 (19→20) taken 1 times.
1 colorMap.addColor(40.0, "FFFFFFFF");
158
159
1/1
✓ Branch 0 (21→22) taken 1 times.
1 PColorMap colorMap2(colorMap);
160
161
1/1
✓ Branch 0 (22→23) taken 1 times.
1 PColorMap colorMap3;
162
1/1
✓ Branch 0 (23→24) taken 1 times.
1 colorMap3 = colorMap2;
163
164
2/2
✓ Branch 0 (24→25) taken 1 times.
✓ Branch 2 (25→26) taken 1 times.
1 colorMap3.addColor(42.0, "FFFFFFFF");
165
166 1 return true;
167 1 }
168
169 1 int main(int argc, char** argv){
170 1 bool b(true);
171 1 b &= testWriteColorMapPng();
172 1 b &= testWriteColorMapPng2();
173 1 b &= testWriteColorMapPng3();
174 1 b &= testWriteColorMapPng4();
175 1 b &= testBaseColorMap();
176 1 return b - 1;
177 }
178
179