Branch Coverage

lib/List/UtilsBy/XS.xs
Criterion Covered Total %
branch 245 354 69.2


line true false branch
17 3 0 se1 = (struct sort_elem*)SvIV(sv1);
18 3 0 se2 = (struct sort_elem*)SvIV(sv2);
28 2 0 se1 = (struct sort_elem*)SvIV(sv1);
29 2 0 se2 = (struct sort_elem*)SvIV(sv2);
40 29 0 se1 = (struct sort_elem*)SvIV(sv1);
41 29 0 se2 = (struct sort_elem*)SvIV(sv2);
43 17 12 key1 = SvNV(se1->key);
44 13 16 key2 = SvNV(se2->key);
47 26 3 ? 1 : (key1 == key2)
23 3 ? 1 : (key1 == key2)
57 33 0 se1 = (struct sort_elem*)SvIV(sv1);
58 33 0 se2 = (struct sort_elem*)SvIV(sv2);
60 15 18 key1 = SvNV(se2->key);
61 19 14 key2 = SvNV(se1->key);
64 16 17 ? 1 : (key1 == key2)
14 2 ? 1 : (key1 == key2)
88 2 7 if (items <= 1) {
95 0 7 if (cv == Nullcv) {
99 0 7 PUSH_MULTICALL(cv);
0 7 PUSH_MULTICALL(cv);
102 0 7 Newx(elems, items - 1, struct sort_elem);
104 12 7 for (i = 1; i < items; i++) {
116 7 0 POP_MULTICALL;
0 7 POP_MULTICALL;
118 2 5 if (ix) {
124 12 7 for (i = 1; i < items; i++) {
126 12 0 elem = (struct sort_elem *)SvIV(*av_fetch(tmps, i-1, 0));
154 2 12 if (items <= 1) {
161 0 12 if (cv == Nullcv) {
165 0 12 PUSH_MULTICALL(cv);
0 12 PUSH_MULTICALL(cv);
168 0 12 Newx(elems, items - 1, struct sort_elem);
170 28 12 for (i = 1; i < items; i++) {
182 12 0 POP_MULTICALL;
0 12 POP_MULTICALL;
184 6 6 if (ix) {
190 28 12 for (i = 1; i < items; i++) {
192 28 0 elem = (struct sort_elem *)SvIV(*av_fetch(tmps, i-1, 0));
225 2 17 if (len < 1) {
232 0 17 if (cv == Nullcv) {
236 0 17 PUSH_MULTICALL(cv);
0 17 PUSH_MULTICALL(cv);
239 0 17 Newx(elems, items - 1, struct sort_elem);
241 44 17 for (i = 0; i < len; i++) {
253 17 0 POP_MULTICALL;
0 17 POP_MULTICALL;
255 9 8 if (ix & 0x1) {
261 44 17 for(i = 0; i < len; i++) {
263 44 0 = (struct sort_elem*)SvIVx(*av_fetch(tmps, i, TRUE));
268 17 0 first = (struct sort_elem *)SvIV(*av_fetch(tmps, 0, 0));
269 13 4 max = SvNV(first->key);
273 17 0 if (GIMME_V != G_ARRAY) {
7 10 if (GIMME_V != G_ARRAY) {
277 7 2 for (i = 2; i < items; i++) {
279 7 0 elem = (struct sort_elem *)SvIV(*av_fetch(tmps, i-1, 0));
281 7 0 if (max == SvNV(elem->key)) {
2 5 if (max == SvNV(elem->key)) {
309 1 4 if (items <= 1) {
317 0 4 if (cv == Nullcv) {
321 0 4 PUSH_MULTICALL(cv);
0 4 PUSH_MULTICALL(cv);
324 10 4 for (i = 1; i < items; i++) {
331 5 5 str = SvPV(*PL_stack_sp, len);
332 8 2 if (!hv_exists(rh, str, len)) {
338 4 0 POP_MULTICALL;
0 4 POP_MULTICALL;
340 8 4 for (i = 0; i <= av_len(tmps); i++) {
362 1 4 if (items <= 1) {
369 0 4 if (cv == Nullcv) {
373 0 4 PUSH_MULTICALL(cv);
0 4 PUSH_MULTICALL(cv);
376 10 4 for (i = 1; i < items; i++) {
383 5 5 str = SvPV(*PL_stack_sp, len);
384 6 4 if (!hv_exists(rh, str, len)) {
394 4 0 POP_MULTICALL;
0 4 POP_MULTICALL;
399 6 4 while ( (iter = hv_iternext( rh )) != NULL ) {
424 1 3 if (items <= 1) {
431 0 3 if (cv == Nullcv) {
435 0 3 PUSH_MULTICALL(cv);
0 3 PUSH_MULTICALL(cv);
438 8 3 for (i = 1; i < items; i++) {
445 3 5 str = SvPV(*PL_stack_sp, len);
446 5 3 if (!hv_exists(rh, str, len)) {
455 3 0 POP_MULTICALL;
0 3 POP_MULTICALL;
460 5 3 while ( (iter = hv_iternext( rh )) != NULL ) {
482 1 6 if (items <= 1) {
489 12 6 for (i = 1; i < items; i++) {
490 12 0 if (!SvROK(args[i]) || (SvTYPE(SvRV(args[i])) != SVt_PVAV)) {
0 12 if (!SvROK(args[i]) || (SvTYPE(SvRV(args[i])) != SVt_PVAV)) {
495 6 6 if (len > max_length) {
504 14 6 for (i = 0; i <= max_length; i++) {
508 0 14 PUSHMARK(sp);
509 26 14 for (j = 1; j < items; j++) {
512 25 1 if (av_exists(av, i)) {
514 0 25 XPUSHs(sv_2mortal(newSVsv(elem)));
516 0 1 XPUSHs(&PL_sv_undef);
526 17 14 for (j = 0; j < count; j++) {
531 14 0 FREETMPS;
536 17 6 for (i = 0; i < len; i++) {
555 1 5 if (items <= 1) {
563 15 5 for (i = 1; i < items; i++) {
567 0 15 PUSHMARK(sp);
568 0 15 XPUSHs(sv_2mortal(newSVsv(args[i])));
576 10 15 for (j = max_len; j < count; j++) {
581 6 9 if (max_len < count) {
585 25 15 for (j = count - 1; j >= 0; j--) {
592 15 0 FREETMPS;
597 10 5 for (i = 0; i < len; i++) {
599 4 10 for (j = av_len(tmp) + 1; j < (items - 1); j++) {
604 10 5 for (i = 0; i < len; i++) {
620 5 0 I32 gimme = G_SCALAR, ret_gimme = GIMME_V;
625 0 5 if (items <= 1) {
633 0 5 if (cv == Nullcv) {
637 5 0 if (!SvROK(args[1]) || (SvTYPE(SvRV(args[1])) != SVt_PVAV)) {
0 5 if (!SvROK(args[1]) || (SvTYPE(SvRV(args[1])) != SVt_PVAV)) {
644 0 5 PUSH_MULTICALL(cv);
0 5 PUSH_MULTICALL(cv);
647 39 5 for (i = 0; i < len; i++) {
655 39 0 if (SvTRUE(val)) {
0 39 if (SvTRUE(val)) {
0 0 if (SvTRUE(val)) {
0 39 if (SvTRUE(val)) {
0 0 if (SvTRUE(val)) {
0 0 if (SvTRUE(val)) {
16 23 if (SvTRUE(val)) {
16 0 if (SvTRUE(val)) {
16 0 if (SvTRUE(val)) {
5 11 if (SvTRUE(val)) {
0 5 if (SvTRUE(val)) {
5 11 if (SvTRUE(val)) {
23 0 if (SvTRUE(val)) {
23 0 if (SvTRUE(val)) {
10 13 if (SvTRUE(val)) {
0 10 if (SvTRUE(val)) {
0 0 if (SvTRUE(val)) {
13 10 if (SvTRUE(val)) {
0 0 if (SvTRUE(val)) {
664 5 0 POP_MULTICALL;
0 5 POP_MULTICALL;
669 21 5 for (i = 0; i < len; i++) {
674 2 3 if (ret_gimme == G_SCALAR) {
679 3 0 EXTEND(SP, len);
0 3 EXTEND(SP, len);
680 10 3 for (i = 0; i < len; i++) {
702 1 3 if (items <= 1) {
711 0 3 if (cv == Nullcv) {
715 0 3 PUSH_MULTICALL(cv);
0 3 PUSH_MULTICALL(cv);
718 7 3 for (i = 1; i < items; i++) {
727 3 0 POP_MULTICALL;
0 3 POP_MULTICALL;
732 1 2 if (!PL_srand_called) {
737 4 3 while ( (av_len(origs) + 1) > 1) {
744 10 4 for (i = 0; i < len; i++) {
745 10 0 total += SvIV(*av_fetch(weights, i, 0));
750 6 0 while (select >= SvIV(*av_fetch(weights, idx, 0))) {
2 4 while (select >= SvIV(*av_fetch(weights, idx, 0))) {
751 2 0 select -= SvIV(*av_fetch(weights, idx, 0));
753 2 0 if (av_len(weights) > idx) {
773 3 3 for (i = 0 ; i < len; i++) {
777 7 3 for (i = 1 ; i < items; i++) {
796 0 5 if (items <= 1) {
800 5 0 argnum = SvIV(args[1]);
801 0 5 if (argnum <= 0) {
809 11 5 for (i = 2, loop = 0; i < items; i += argnum, loop++) {
813 0 11 PUSHMARK(sp);
814 19 11 for (j = 0; j < argnum; j++) {
816 0 19 if (SvOK(args[index])) {
0 0 if (SvOK(args[index])) {
0 0 if (SvOK(args[index])) {
817 0 19 XPUSHs(sv_2mortal(newSVsv(args[index])));
819 0 0 XPUSHs(&PL_sv_undef);
829 15 11 for (j = 0; j < count; j++) {
834 11 0 FREETMPS;
839 15 5 for (i = 0; i < len; i++) {