Branch Coverage

lib/Number/Iterator/XS.xs
Criterion Covered Total %
branch 19 48 39.5


line true false branch
16 4 2 for (i = 1; i < items; i += 2) {
21 0 2 if (SvTYPE(class) != SVt_PV) {
22 0 0 char * name = HvNAME(SvSTASH(SvRV(class)));
0 0 char * name = HvNAME(SvSTASH(SvRV(class)));
0 0 char * name = HvNAME(SvSTASH(SvRV(class)));
0 0 char * name = HvNAME(SvSTASH(SvRV(class)));
0 0 char * name = HvNAME(SvSTASH(SvRV(class)));
0 0 char * name = HvNAME(SvSTASH(SvRV(class)));
35 3 3 if (hv_exists(hash, "iterate", 7)) {
38 0 3 PUSHMARK(SP);
39 0 3 XPUSHs(self);
43 2 1 double value = hv_exists(hash, "value", 5) ? SvNV(*hv_fetch(hash, "value", 5, 0)) : 0.;
44 3 0 double interval = hv_exists(hash, "interval", 8) ? SvNV(*hv_fetch(hash, "interval", 8, 0)) : 1.;
58 1 1 if (hv_exists(hash, "deiterate", 9)) {
61 0 1 PUSHMARK(SP);
62 0 1 XPUSHs(self);
66 1 0 double value = hv_exists(hash, "value", 5) ? SvNV(*hv_fetch(hash, "value", 5, 0)) : 0;
67 1 0 double interval = hv_exists(hash, "interval", 8) ? SvNV(*hv_fetch(hash, "interval", 8, 0)) : 1;
80 7 0 if (items > 1 && SvTYPE(ST(1)) == SVt_NV) {
0 7 if (items > 1 && SvTYPE(ST(1)) == SVt_NV) {
83 7 0 RETVAL = hv_exists(hash, "value", 5) ? newSVsv(*hv_fetch(hash, "value", 5, 0)) : newSViv(0);
92 0 0 if (items > 1 && SvTYPE(ST(1)) == SVt_NV) {
0 0 if (items > 1 && SvTYPE(ST(1)) == SVt_NV) {
95 0 0 RETVAL = hv_exists(hash, "interval", 8) ? newSVsv(*hv_fetch(hash, "interval", 8, 0)) : newSViv(1);