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 80611 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 23966 56645 cur = SvPV(x, len); /* convert to string & store length */
79 215845 80611 # process the string from the back
83 78557 137288 part_len = (STRLEN) XS_BASE_LEN;
91 215845 0 /* printf ("part '%s' (part_len: %i, len: %i, BASE_LEN: %i)\n", cur, part_len, len, XS_BASE_LEN); */
118 156064 40537 while (elems >= 0)
133 27695 128369 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 319 0 while (index <= elems)
206 229 90 sv_setnv (temp, SvNV(temp)-1); /* decrement */
207 319 0 if (SvNV(temp) >= 0)
303 16 if (SvNV(temp) >= 0)
216 165 138 if (elems > 0)
219 138 27 if (SvIV(temp) == 0) /* did last elem overflow? */
3 162 if (SvIV(temp) == 0) /* did last elem overflow? */
247 2309 3 while (index <= elems)
250 1867 442 sv_setnv (temp, SvNV(temp)+1);
251 2309 0 if (SvNV(temp) < BASE)
2293 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 85162 91428 if ( av_len(a) != 0)
318 65749 25679 ST(0) = boolSV(SvIV(temp) == ix);
10788 80640 ST(0) = boolSV(SvIV(temp) == ix);
337 21000 27310 SvPV(temp, len); /* convert to string & store length */
365 493 44916 if (diff > 0)
369 41 44875 else if (diff < 0)
377 18250 26625 SvPV(tempx, lenx); /* convert to string & store length */
378 20717 24158 SvPV(tempy, leny); /* convert to string & store length */
380 10834 34041 if (diff_str > 0)
384 1365 32676 if (diff_str < 0)
390 40342 18332 while (elemsx >= 0)
394 8336 32006 diff_nv = SvNV(tempx) - SvNV(tempy);
14269 26073 diff_nv = SvNV(tempx) - SvNV(tempy);
395 14344 25998 if (diff_nv != 0)
401 12621 20055 if (diff_nv > 0)
405 1723 18332 if (diff_nv < 0)