Branch Coverage

FastCalc.xs
Criterion Covered Total %
branch 85 102 83.3


line true false branch
46 0 10 if (items < 4)
48 10 0 XS_BASE_LEN = SvIV(ST(2));
49 0 10 XS_BASE = SvNV(ST(3));
65 0 80047 if (SvUOK(x) && SvUV(x) < XS_BASE)
0 0 if (SvUOK(x) && SvUV(x) < XS_BASE)
0 0 if (SvUOK(x) && SvUV(x) < XS_BASE)
68 0 0 av_push (av, newSVuv( SvUV(x) ));
77 23994 56053 cur = SvPV(x, len); /* convert to string & store length */
79 211690 80047 # process the string from the back
83 78018 133672 part_len = (STRLEN) XS_BASE_LEN;
91 211690 0 /* printf ("part '%s' (part_len: %i, len: %i, BASE_LEN: %i)\n", cur, part_len, len, XS_BASE_LEN); */
118 138269 36784 while (elems >= 0)
133 18850 119419 av_store( a2, elems, newSVnv( SvNV( (SV*)*av_fetch(a, elems, 0) )));
154 1 8 if (elems == -1)
159 2 6 if (elems == 0)
164 14 1 while (index > 0)
167 0 14 if (SvNV(temp) != 0)
5 9 if (SvNV(temp) != 0)
173 4 2 if (index < elems)
176 9 4 while (index-- > 0)
203 302 0 while (index <= elems)
206 229 73 sv_setnv (temp, SvNV(temp)-1); /* decrement */
207 302 0 if (SvNV(temp) >= 0)
286 16 if (SvNV(temp) >= 0)
216 164 122 if (elems > 0)
219 138 26 if (SvIV(temp) == 0) /* did last elem overflow? */
3 161 if (SvIV(temp) == 0) /* did last elem overflow? */
247 2498 3 while (index <= elems)
250 2035 463 sv_setnv (temp, SvNV(temp)+1);
251 2498 0 if (SvNV(temp) < BASE)
2482 16 if (SvNV(temp) < BASE)
259 3 0 if (SvIV(temp) == 0) /* did last elem overflow? */
3 0 if (SvIV(temp) == 0) /* did last elem overflow? */
295 153 66 ST(0) = sv_2mortal(boolSV((SvIV(temp) & 1) == ix));
107 112 ST(0) = sv_2mortal(boolSV((SvIV(temp) & 1) == ix));
311 82461 93739 if ( av_len(a) != 0)
318 67679 26060 ST(0) = boolSV(SvIV(temp) == ix);
11308 82431 ST(0) = boolSV(SvIV(temp) == ix);
337 21963 25830 SvPV(temp, len); /* convert to string & store length */
365 493 42653 if (diff > 0)
369 25 42628 else if (diff < 0)
377 16567 26061 SvPV(tempx, lenx); /* convert to string & store length */
378 20438 22190 SvPV(tempy, leny); /* convert to string & store length */
380 10015 32613 if (diff_str > 0)
384 1478 31135 if (diff_str < 0)
390 32905 17906 while (elemsx >= 0)
394 8211 24694 diff_nv = SvNV(tempx) - SvNV(tempy);
6137 26768 diff_nv = SvNV(tempx) - SvNV(tempy);
395 13229 19676 if (diff_nv != 0)
401 11295 19840 if (diff_nv > 0)
405 1934 17906 if (diff_nv < 0)