Branch Coverage

lib/Colouring/In/XS.xs
Criterion Covered Total %
branch 182 264 68.9


line true false branch
32 2 10151 if (SvTYPE(class) != SVt_PV) {
33 2 0 char * name = HvNAME(SvSTASH(SvRV(class)));
2 0 char * name = HvNAME(SvSTASH(SvRV(class)));
0 2 char * name = HvNAME(SvSTASH(SvRV(class)));
0 0 char * name = HvNAME(SvSTASH(SvRV(class)));
2 0 char * name = HvNAME(SvSTASH(SvRV(class)));
0 2 char * name = HvNAME(SvSTASH(SvRV(class)));
47 1 10205 if ( !SvOK(r) ) {
51 1 10205 if ( !SvOK(g) ) {
55 1 10205 if ( !SvOK(b) ) {
64 0 3 if (hv_exists(MESSAGES, key, strlen(key))) {
66 0 0 if (SvTRUE(msg)) {
74 20147 10316 return first < second ? first : second;
78 20195 10268 return first > second ? first : second;
98 10162 0 for(int i=0;str[i];i++) {
100 10162 10162 while(str[i]>='0' && str[i]<='9') {
10162 0 while(str[i]>='0' && str[i]<='9') {
126 0 0 for (i = 0; i < count; i++) total_length += strlen(strings[i]);
134 0 0 for (i = 0; i < count; i++) {
136 0 0 if (i < (count - 1)) strcat(str, seperator);
143 3426 26784 h = h < 0 ? h + 1 : h > 1 ? h - 1 : h;
3253 23531 h = h < 0 ? h + 1 : h > 1 ? h - 1 : h;
144 5059 25151 if ( h * 6. < 1 ) {
146 10070 15081 } else if ( h * 2. < 1 ) {
148 4983 10098 } else if ( h * 3. < 2 ) {
158 0 3 if (number[strlen(number)] == '%') {
167 289 144 while (*hex) {
169 289 0 if (byte >= '0' && byte <= '9') byte = byte - '0';
72 217 if (byte >= '0' && byte <= '9') byte = byte - '0';
170 217 0 else if (byte >= 'a' && byte <='f') byte = byte - 'a' + 10;
216 1 else if (byte >= 'a' && byte <='f') byte = byte - 'a' + 10;
171 1 0 else if (byte >= 'A' && byte <='F') byte = byte - 'A' + 10;
0 1 else if (byte >= 'A' && byte <='F') byte = byte - 'A' + 10;
182 2 47 if (l == 3) {
183 4 1 for (int i = 0; i < 3; i++) {
188 47 0 } else if (l == 6) {
189 141 47 for (int i = 0; i < 6; i += 2) {
205 219315 10023 for (int i = 0; i < len; i++) {
206 139158 80157 if ((colour[i] >= '0' && colour[i] <= '9') || colour[i] == '.') {
40100 99058 if ((colour[i] >= '0' && colour[i] <= '9') || colour[i] == '.') {
0 120257 if ((colour[i] >= '0' && colour[i] <= '9') || colour[i] == '.') {
208 40076 80181 } else if (strlen(temp) >= 1 && atol(temp) >= 0) {
40076 0 } else if (strlen(temp) >= 1 && atol(temp) >= 0) {
214 2 10021 if (av_len(color) <= 1) {
231 69 10001 if (s > 1 || l > 1) {
0 69 if (s > 1 || l > 1) {
235 10020 50 double m2 = l <= 0.5 ? l * ( s + 1 ) : l + s - l * s;
245 49 10023 if (colour[0] == '#') {
248 19 10004 } else if (colour[0] == 'r' && colour[1] == 'g' && colour[2] == 'b') {
19 0 } else if (colour[0] == 'r' && colour[1] == 'g' && colour[2] == 'b') {
19 0 } else if (colour[0] == 'r' && colour[1] == 'g' && colour[2] == 'b') {
250 10004 0 } else if (colour[0] == 'h' && colour[1] == 's' && colour[2] == 'l') {
10004 0 } else if (colour[0] == 'h' && colour[1] == 's' && colour[2] == 'l') {
10004 0 } else if (colour[0] == 'h' && colour[1] == 's' && colour[2] == 'l') {
253 10003 0 double h = len >= 0 ? SvNV(*av_fetch(nums, 0, 0)) : 0;
254 10003 0 double s = len >= 1 ? SvNV(*av_fetch(nums, 1, 0)) : 0;
255 10003 0 double l = len >= 2 ? SvNV(*av_fetch(nums, 2, 0)) : 0;
256 10002 1 double a = len >= 3 ? SvNV(*av_fetch(nums, 3, 0)) : 1;
268 46 0 colour[0] = len >= 0 ? SvIV(*av_fetch(color, 0, 0)) : 255;
269 46 0 colour[1] = len >= 1 ? SvIV(*av_fetch(color, 1, 0)) : 255;
270 46 0 colour[2] = len >= 2 ? SvIV(*av_fetch(color, 2, 0)) : 255;
280 45 0 colour[0] = len >= 0 ? SvIV(*av_fetch(color, 0, 0)) : 255;
281 45 0 colour[1] = len >= 1 ? SvIV(*av_fetch(color, 1, 0)) : 255;
282 45 0 colour[2] = len >= 2 ? SvIV(*av_fetch(color, 2, 0)) : 255;
291 92 0 hs.r = len >= 0 ? SvIV(*av_fetch(color, 0, 0)) / 255.00 : 1;
292 92 0 hs.g = len >= 1 ? SvIV(*av_fetch(color, 1, 0)) / 255.00 : 1;
293 92 0 hs.b = len >= 2 ? SvIV(*av_fetch(color, 2, 0)) / 255.00 : 1;
306 74 10 if ( hs.max == hs.min ) {
309 3 7 hs.s = hs.l > 0.5 ? (hs.d / (2 - hs.max - hs.min)) : (hs.d / (hs.max + hs.min));
311 1 3 ? (hs.g - hs.b) / hs.d + ( hs.g < hs.b ? 6 : 0 )
312 4 6 : (hs.max == hs.g)
314 5 1 : (hs.r - hs.g) / hs.d + 4;
329 84 10072 if (SvTYPE(SvRV(colour)) == SVt_PVAV) {
330 0 84 if (av_len((AV*)colour) == 3) {
336 11 10058 if (av_len((AV*)SvRV(colour)) == 3) {
341 10153 0 hv_store(hash, "alpha", 5, numIs(a) ? newSVsv(a) : newSViv(1), 0);
349 3 0 if (SvTYPE(colour1) == SVt_PV) {
352 3 0 if (SvTYPE(colour2) == SVt_PV) {
363 3 0 double w1 = (((w * a == -1) ? w : (w + a) / ( 1 + w * a )) + 1 ) / 2;
404 5 10021 SV * a = (items > 2) && SvOK(ST(2)) ? ST(2) : newSViv(1);
4 1 SV * a = (items > 2) && SvOK(ST(2)) ? ST(2) : newSViv(1);
423 1 0 double a = clamp(items > 4 ? SvNV(ST(4)) : 1, 1);
442 0 0 double a = clamp(items > 4 ? SvNV(ST(4)) : 1, 1);
454 1 0 double a = clamp(items > 4 ? SvNV(ST(4)) : 1, 1);
467 0 0 double a = clamp(items > 4 ? SvNV(ST(4)) : 1, 1);
477 0 17 int r = items > 1 ? SvIV(ST(1)) : 0;
478 0 17 int s = items > 2 ? SvIV(ST(1)) : 0;
481 16 1 if (alpha == 1) {
484 16 0 if (!s) {
486 48 16 for (int i = 1; i < 7; i += 2) {
487 0 48 if (css[i] != css[i+1]) {
492 16 0 if (min) {
531 9 0 if (numIs(alpha) && SvIV(alpha) != 1) {
0 9 if (numIs(alpha) && SvIV(alpha) != 1) {
559 11 0 if (! SvTRUE(ST(1)) || (SvTRUE(ST(1)) && SvTYPE(ST(1)) != SVt_IV)) {
11 0 if (! SvTRUE(ST(1)) || (SvTRUE(ST(1)) && SvTYPE(ST(1)) != SVt_IV)) {
6 5 if (! SvTRUE(ST(1)) || (SvTRUE(ST(1)) && SvTYPE(ST(1)) != SVt_IV)) {
561 16 5 for (int i = 1; i < 7; i += 2) {
562 1 15 if (css[i] != css[i+1]) {
567 5 1 if (min) {
592 1 7 colour.s = (colour.max == 0 ) ? colour.max : colour.d / colour.max;
594 2 6 if (colour.max == colour.min) {
598 1 3 ? (colour.g - colour.b) / colour.d + ( colour.g < colour.b ? 6 : 0 )
599 4 2 : (colour.max == colour.g)
601 1 1 : (colour.r - colour.g) / colour.d + 4;
616 7 4 if (SvTYPE(colour) == SVt_PV) {
622 11 0 if (SvOK(ST(2)) && strcmp(SvPV_nolen(ST(2)), "relative") == 0) {
2 9 if (SvOK(ST(2)) && strcmp(SvPV_nolen(ST(2)), "relative") == 0) {
640 8 3 if (SvTYPE(colour) == SVt_PV) {
646 11 0 if (SvOK(ST(2)) && strcmp(SvPV_nolen(ST(2)), "relative") == 0) {
1 10 if (SvOK(ST(2)) && strcmp(SvPV_nolen(ST(2)), "relative") == 0) {
664 12 0 if (SvTYPE(colour) == SVt_PV) {
681 11 3 if (SvTYPE(colour) == SVt_PV) {
686 2 12 hsl.a -= clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.a * amount : amount, 1);
1 1 hsl.a -= clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.a * amount : amount, 1);
698 11 3 if (SvTYPE(colour) == SVt_PV) {
703 2 12 hsl.a += clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.a * amount : amount, 1);
1 1 hsl.a += clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.a * amount : amount, 1);
716 1 0 if (SvOK(ST(2)) && SvIV(ST(2)) != 0) {
0 1 if (SvOK(ST(2)) && SvIV(ST(2)) != 0) {
728 1 0 if (SvOK(ST(2)) && SvIV(ST(2)) != 0) {
0 1 if (SvOK(ST(2)) && SvIV(ST(2)) != 0) {
741 1 0 if (SvOK(ST(2)) && SvIV(ST(2)) != 0) {
0 1 if (SvOK(ST(2)) && SvIV(ST(2)) != 0) {
756 1 0 if (SvTYPE(colour) == SVt_PV) {
761 0 1 hsl.s += clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.s * amount : amount, 1);
0 0 hsl.s += clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.s * amount : amount, 1);
773 2 0 if (SvTYPE(colour) == SVt_PV) {
778 0 2 hsl.s -= clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.s * amount : amount, 1);
0 0 hsl.s -= clamp((items > 2 && strcmp(SvPV_nolen(ST(2)), "relative") == 0) ? hsl.s * amount : amount, 1);
790 1 0 if (SvTYPE(colour) == SVt_PV) {
808 30069 10023 for (i = 0; i <= len; i++) {