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 79115 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 23737 55378 cur = SvPV(x, len); /* convert to string & store length */
79 210868 79115 # process the string from the back
83 77079 133789 part_len = (STRLEN) XS_BASE_LEN;
91 210868 0 /* printf ("part '%s' (part_len: %i, len: %i, BASE_LEN: %i)\n", cur, part_len, len, XS_BASE_LEN); */
118 137640 36311 while (elems >= 0)
133 18794 118846 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 82349 91634 if ( av_len(a) != 0)
318 66463 25171 ST(0) = boolSV(SvIV(temp) == ix);
10791 80843 ST(0) = boolSV(SvIV(temp) == ix);
337 21764 25607 SvPV(temp, len); /* convert to string & store length */
365 482 42447 if (diff > 0)
369 83 42364 else if (diff < 0)
377 16499 25865 SvPV(tempx, lenx); /* convert to string & store length */
378 20230 22134 SvPV(tempy, leny); /* convert to string & store length */
380 10043 32321 if (diff_str > 0)
384 1478 30843 if (diff_str < 0)
390 32613 17800 while (elemsx >= 0)
394 8208 24405 diff_nv = SvNV(tempx) - SvNV(tempy);
6100 26513 diff_nv = SvNV(tempx) - SvNV(tempy);
395 13043 19570 if (diff_nv != 0)
401 11213 19630 if (diff_nv > 0)
405 1830 17800 if (diff_nv < 0)