Branch Coverage

blib/lib/Algorithm/ToNumberMunger.pm
Criterion Covered Total %
branch 516 696 74.1


line true false branch
166 10 263 defined $tag ? :
168 0 273 unless ref $spec eq "HASH"
172 0 273 unless defined $name and length $name
175 1 272 unless my $builder = $BUILDERS{$name}
193 1 1 unless $mungers
195 0 1 unless ref $mungers eq "HASH"
258 0 9 unless defined $name and length $name
260 1 8 unless my $builder = $MULTI_BUILDERS{$name}
278 0 14 unless defined $name and length $name
280 1 13 unless my $builder = $COMBINE_BUILDERS{$name}
291 0 24 unless ref $tags eq "ARRAY" and @$tags
294 0 24 unless ref $mungers eq "HASH"
300 0 39 if exists $pos{$tags->[$i]}
308 1 22 unless exists $pos{$tag}
310 1 21 if $claimed{$tag}++
315 0 31 unless ref $spec eq "HASH"
317 23 8 defined $spec->{'from'} ? :
319 17 14 if (ref $from eq 'ARRAY') { }
9 5 elsif (defined $spec->{'into'}) { }
320 1 16 unless @$from >= 2
323 1 15 if defined $spec->{'into'}
325 1 14 unless exists $pos{$key}
331 0 9 unless ref $into eq "ARRAY" and @$into
334 1 6 unless $arity == @$into
340 1 4 unless exists $pos{$key}
348 4 20 unless $claimed{$tag}
399 0 4 unless ref $map eq "HASH"
406 0 0 defined $map->{$k} ? :
0 7 unless &looks_like_number($map->{$k})
411 0 4 if $has_default and not &looks_like_number($default)
418 4 2 if defined $v and exists $m{$v}
419 2 1 if $has_default
420 1 0 defined $v ? :
486 1 9 unless ref $counts eq "HASH" and %$counts
492 0 0 defined $c ? :
0 13 unless &looks_like_number($c) and $c >= 0
500 1 8 if $V > $FROZEN_FREQ_MAP_WARN_KEYS
504 2 7 defined $spec->{'total'} ? :
505 0 9 unless &looks_like_number($total)
507 1 8 if $total < $sum
510 5 3 defined $spec->{'mode'} ? :
512 1 7 unless $FREQ_MODE{$mode}
514 2 5 defined $spec->{'smoothing'} ? :
515 0 7 unless &looks_like_number($s) and $s >= 0
518 1 6 defined $spec->{'unseen'} ? :
519 0 7 unless $unseen eq "rare" or &looks_like_number($unseen)
525 1 2 if $mode eq "neg_log_prob" and $unseen eq "rare" and $s == 0
535 7 8 if $mode eq "count"
536 0 8 if $mode eq "log_count"
538 3 5 if $mode eq "freq"
543 5 1 $unseen eq 'rare' ? :
547 7 6 defined $v && exists $emit{$v} ? :
652 8 8 $spec->{'strict'} ? :
655 3 0 defined $v ? :
3 59 unless &looks_like_number($v)
657 12 14 if $strict and $v < $lo || $v > $hi
684 1 1 $spec->{'strict'} ? :
687 1 0 defined $v ? :
1 14 unless &looks_like_number($v)
689 4 10 if $strict and not $v >= 100 && $v <= 599 || $v >= 800 && $v <= 899
1901 1 47 if $has_default and not &looks_like_number($default)
1907 331 1 if (defined $v)
1908 6 325 if $numeric and &looks_like_number($v)
1910 300 25 if exists $map->{$k}
1912 17 9 if $has_default
1913 9 0 defined $v ? :
1930 1 1 if (exists $spec->{'true'})
1932 0 1 unless ref $spec->{'true'} eq "ARRAY"
1936 2 1 defined $v ? :
1 2 exists $true{defined $v ? $v : ''} ? :
1940 1 1 $_[0] ? :
1961 12 1 defined $v ? :
1988 1 0 $HAVE_XS ? :
1991 12 0 defined $v ? :
2002 1 5 unless $n
2048 1 6 unless ref $counts eq "HASH" and %$counts
2054 6 3 unless defined $n
2055 1 8 unless length $g == $n
2059 1 0 defined $c ? :
1 7 unless &looks_like_number($c) and $c >= 0
2065 0 4 unless $n >= 1
2069 0 4 if $V > $FROZEN_FREQ_MAP_WARN_KEYS
2072 1 3 defined $spec->{'total'} ? :
2073 0 4 unless &looks_like_number($total)
2075 1 3 if $total < $sum
2078 1 2 defined $spec->{'smoothing'} ? :
2079 1 2 unless &looks_like_number($s) and $s > 0
2083 0 1 $spec->{'fold_case'} ? :
1 1 exists $spec->{'fold_case'} ? :
2093 11 1 defined $v ? :
2094 10 2 if $fold
2096 3 9 if $grams < 1
2100 9 5 exists $si{$g} ? :
2156 0 10 unless defined $class
2158 1 9 unless my $count = $CHAR_COUNT{$class}
2161 2 7 defined $spec->{'mode'} ? :
2162 1 8 unless $mode eq "count" or $mode eq "ratio"
2164 1 7 $mode eq 'ratio' ? :
2168 11 0 defined $v ? :
2170 8 3 unless $ratio
2172 2 1 $len ? :
2214 1 3 unless defined $class
2216 1 2 unless my $cc = $RUN_RE{$class}
2222 5 1 defined $v ? :
2225 4 2 if length $1 > $max
2248 1 3 unless defined $of and length $of
2251 1 2 defined $spec->{'plus'} ? :
2252 0 3 unless &looks_like_number($plus)
2261 6 0 defined $v ? :
2298 1 5 unless defined $pat and length $pat
2301 2 3 defined $spec->{'mode'} ? :
2302 1 4 unless $mode eq "bool" or $mode eq "count"
2308 1 3 $spec->{'ignore_case'} ? :
2309 1 3 unless defined $re
2312 2 1 if ($mode eq "bool")
2314 3 1 defined $_[0] ? :
2315 2 2 $s =~ /$re/ ? :
2319 2 0 defined $_[0] ? :
2345 1 2 unless ref $bounds eq "ARRAY" and @$bounds
2350 0 0 defined $b[$i] ? :
0 4 unless &looks_like_number($b[$i])
2352 1 3 if $i and $b[$i] <= $b[$i - 1]
2358 0 0 defined $v ? :
0 6 unless &looks_like_number($v)
2362 4 6 if $v < $bound
2391 1 2 unless ref $bounds eq "ARRAY" and @$bounds >= 2
2396 0 0 defined $b[$i] ? :
0 7 unless &looks_like_number($b[$i])
2398 1 6 if $i and $b[$i] <= $b[$i - 1]
2405 1 0 defined $v ? :
1 8 unless &looks_like_number($v)
2407 2 6 if $v <= $b[0]
2408 2 4 if $v >= $b[-1]
2429 0 3 unless &looks_like_number($min) and &looks_like_number($max)
2433 1 2 if $range == 0
2436 1 1 $spec->{'clamp'} ? :
2439 0 0 defined $v ? :
0 4 unless &looks_like_number($v)
2442 1 1 if $s < 0
1 1 if $s > 1
2 2 if ($clamp)
2461 0 2 unless &looks_like_number($mean) and &looks_like_number($std)
2463 1 1 if $std == 0
2468 0 0 defined $v ? :
0 2 unless &looks_like_number($v)
2491 6 2 exists $spec->{'offset'} ? :
2492 0 8 unless &looks_like_number($offset)
2496 2 6 if (defined $spec->{'base'})
2500 0 1 unless &looks_like_number($spec->{'base'}) and $spec->{'base'} > 0 and $spec->{'base'} != 1
2506 0 0 defined $v ? :
0 9 unless &looks_like_number($v)
2509 1 8 unless $x > 0
2512 1 7 if defined $ln_base
2534 1 2 unless $have_min or $have_max
2536 0 2 if $have_min and not &looks_like_number($min)
2538 0 2 if $have_max and not &looks_like_number($max)
2540 0 2 if $have_min and $have_max and $min > $max
2545 0 0 defined $v ? :
0 5 unless &looks_like_number($v)
2547 2 3 if $have_min and $v < $min
2548 1 4 if $have_max and $v > $max
2571 6 1 defined $spec->{'base'} ? :
2572 2 5 unless $base =~ /\A[0-9]+\z/ and $base >= 2 and $base <= 36
2575 1 4 if ($base == 10)
2578 1 0 defined $v ? :
1 2 unless &looks_like_number($v)
2589 1 0 $base == 2 ? :
1 1 $base == 8 ? :
2 2 $base == 16 ? :
2597 11 0 defined $v ? :
2598 11 0 defined $v ? :
2600 11 0 if defined $prefix
2601 1 10 unless length $s
2605 1 24 unless defined $d and $d < $base
2608 1 8 $neg ? :
2651 1 2 unless $nsrc == 2
2654 1 1 defined $spec->{'zero'} ? :
2655 0 2 unless &looks_like_number($zero)
2660 1 0 defined $v ? :
1 9 unless &looks_like_number($v)
2663 2 2 if $_[1] == 0
2691 1 9 unless defined $op and length $op
2693 1 8 unless my $fold = $COMBINE_OPS{$op}
2695 1 7 if $op eq "diff" and $nsrc != 2
2700 0 0 defined $v ? :
0 18 unless &looks_like_number($v)
2752 0 23 unless defined $v
2753 10 13 if $v =~ /\A0x[0-9a-f]+\z/i
2754 10 3 if $v =~ /\A[0-9]+\z/
2764 0 5 unless defined $v
2765 4 1 if $v =~ /\A(?:0x)?([0-9a-f]+)\z/i
2772 7 6 defined $spec->{'mode'} ? :
2774 1 12 unless $BIT_MODE{$mode}
2779 3 9 defined $spec->{'base'} ? :
2780 1 11 unless $base eq 10 or $base eq 16
2782 2 9 $base eq '16' ? :
2783 2 9 $base eq '16' ? :
2786 8 3 if (defined $spec->{'mask'}) { }
1 2 elsif ($mode ne 'popcount') { }
2788 1 7 unless defined $mask
2790 1 6 if $mask == 0 and $mode ne "popcount"
2798 1 7 if ($mode eq "value")
2805 20 0 defined $v ? :
2806 3 0 defined $v ? :
3 17 unless defined $n
2808 13 4 if defined $mask
2809 5 12 if $mode eq "popcount"
2810 4 2 $n ? :
6 6 if $mode eq "any"
2811 2 2 $n == $mask ? :
4 2 if $mode eq "all"
2869 31 20 if ($s =~ /\A([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\z/)
2870 1 30 unless $1 <= 255 and $2 <= 255 and $3 <= 255 and $4 <= 255
2873 14 6 if (index($s, ":") != -1)
2876 14 0 if defined $b and length $b == 16
2895 1 20 if $n == 0
2896 1 19 if $n == 4294967295
2900 1 18 if $a == 0
2901 2 16 if $a == 10
2902 1 1 if $a == 100 and $b >= 64 and $b <= 127
2903 1 14 if $a == 127
2904 1 13 if $a == 169 and $b == 254
2905 1 1 if $a == 172 and $b >= 16 and $b <= 31
2906 1 0 if $a == 192 and $b == 0 and $c == 0 || $c == 2
2907 1 10 if $a == 192 and $b == 168
2908 1 1 if $a == 198 and $b == 18 || $b == 19
2909 1 0 if $a == 198 and $b == 51 and $c == 100
2910 1 0 if $a == 203 and $b == 0 and $c == 113
2911 2 5 if $a >= 224 and $a <= 239
2912 1 4 if $a >= 240
2921 2 8 if ($lead0)
2922 1 1 if $o[15] == 0
2923 1 0 if $o[15] == 1
2928 2 0 if $map and $o[10] == 255 and $o[11] == 255
2930 1 5 if $o[0] == 255
2931 1 4 if ($o[0] & 254) == 252
2932 1 3 if $o[0] == 254 and ($o[1] & 192) == 128
2933 1 0 if $o[0] == 32 and $o[1] == 1 and $o[2] == 13 and $o[3] == 184
2936 1 1 if $discard
2945 1 2 if $has_default and not &looks_like_number($default)
2950 32 1 defined $v ? :
2951 29 4 if ($fam)
2952 19 10 $fam == 4 ? :
2954 2 2 if $has_default
2955 2 0 defined $v ? :
2963 0 2 if $len % 8
2971 1 7 unless ref $nets eq "ARRAY" and @$nets
2979 1 0 defined $net ? :
1 8 unless defined $net and $net =~ m[\A(.+)/([0-9]{1,3})\z]
2985 1 7 unless $fam
2987 5 2 $fam == 4 ? :
2988 1 6 if $len > $max
2990 1 3 $len == 0 ? :
4 2 $fam == 4 ? :
2999 0 4 if $has_default and not &looks_like_number($default)
3004 10 0 defined $v ? :
3005 8 2 if ($fam)
3008 6 9 unless $f == $fam
3009 7 2 $fam == 4 ? :
4 5 if $fam == 4 ? ($p & $mask) == $network : ($p & $mask) eq $network
3014 3 1 if $has_default
3017 1 1 if $has_default
3018 1 0 defined $v ? :
3154 369 255 if ($rest =~ s/\A%(.)//s) { }
255 0 elsif ($rest =~ s/\A([^%]+)//s) { }
3155 55 314 unless my $f = $FAST_CODE{$1}
3156 0 314 if exists $idx{$f->[0]}
3165 13 36 unless keys %idx == 6
3182 11 145 if $m < 1 or $m > 12
3184 20 15 if $m == 2 and !($y % 4) && $y % 100 || !($y % 400)
3185 20 125 if $d < 1 or $d > $dim
3186 5 115 if $H > 23 or $M > 59 or $S > 59
3196 62 0 $y >= 0 ? :
3198 42 20 $m > 2 ? :
3296 0 91 unless defined $format and length $format
3308 23 75 unless $t
3313 36 55 if (my $fast = _compile_fast_format($format))
3317 0 158 unless defined $v
3318 156 2 if (my(@c) = $v =~ /$re/)
3319 115 41 if _fast_fields_in_range(\@c, $idx)
3332 0 40 unless my $factory = $DATETIME_PART_FAST{$part}
3342 1 55 unless defined $v
3347 0 56 unless my $get = $DATETIME_PART{$part}
3360 1 84 if defined $spec->{'parts'}
3363 84 0 defined $spec->{'part'} ? :
3371 42 208 if defined $v and defined $memo_in and $v eq $memo_in
3387 0 7 unless ref $parts eq "ARRAY" and @$parts
3397 2 5 if defined $v and defined $memo_in and $v eq $memo_in
3430 1 4 if defined $buckets and not $buckets =~ /\A[1-9][0-9]*\z/
3433 2 2 defined $spec->{'seed'} ? :
3434 0 4 unless $seed =~ /\A[0-9]+\z/
3437 4 0 $HAVE_XS ? :
3440 7 0 defined $v ? :
3441 4 3 defined $buckets ? :
3581 1 17 unless ref $steps eq "ARRAY" and @$steps
3587 0 20 unless ref $step eq "HASH"
3590 0 20 unless defined $op and length $op
3592 1 19 unless my $mk = $CHAIN_OPS{$op}
3604 1 13 unless ref $then eq "HASH"
3607 0 13 unless defined $name and length $name
3617 1 10 unless my $builder = $BUILDERS{$name}
3623 10 1 defined $_[0] ? :
3637 1 1 unless my $builder = $MULTI_BUILDERS{$name}
3644 1 0 defined $_[0] ? :
3737 0 0 if $c and $c->{'pid'} == $$
3741 0 0 unless my $fh = "IO::Socket::UNIX"->new("Type", Socket::SOCK_STREAM(), "Peer", $path)
3767 0 0 unless print {$fh;} $cmd
3771 0 0 unless defined $reply
3773 0 0 unless $reply =~ /\AOK (\S+)/
3784 0 0 defined $spec->{'socket'} ? :
3785 0 0 unless length $socket
3788 0 0 defined $spec->{'prefix'} ? :
3789 0 0 if $prefix =~ /[\s[:cntrl:]]/
3792 0 0 $spec->{'mark'} ? :
0 0 exists $spec->{'mark'} ? :
3794 0 0 defined $spec->{'timeout'} ? :
3795 0 0 unless &looks_like_number($timeout) and $timeout > 0
3798 0 0 defined $spec->{'on_error'} ? :
3799 0 0 unless $on_error eq "die" or &looks_like_number($on_error)
3811 0 0 if defined $spec->{'parts'}
3815 0 0 defined $spec->{'read'} ? :
3817 0 0 unless $EPS_READ{$read}
3824 0 0 $read eq 'rate' ? :
0 0 !$mark ? :
3830 0 0 defined $v ? :
3833 0 0 unless length $key
3836 0 0 if ($@)
3839 0 0 if $on_error eq "die"
3852 0 0 unless ref $parts eq "ARRAY" and @$parts
3859 0 0 defined $p ? :
0 0 unless defined $p and $EPS_READ{$p}
3870 0 0 if $mark
3872 0 0 if ($mark and not $rate_served and $parts->[$i] eq "rate")
3885 0 0 defined $v ? :
3888 0 0 unless length $key
3891 0 0 if ($@)
3894 0 0 if $on_error eq "die"
3920 0 17 unless ref $hash eq "HASH"
3925 1 7 unless exists $$hash{$s->{'from'}}
3927 3 4 $s->{'code'} ? :
3932 1 7 unless exists $$hash{$e->{'from'}}
3938 0 7 unless @vals == @{$e->{'into'};}
3948 1 30 unless exists $hash->{$f}
3963 0 5 unless ref $row eq "ARRAY"
3965 1 4 if @{$self->{'expand'};}
3967 1 3 if @{$self->{'combine'};}
3969 1 2 unless @$row == @{$self->{'tags'};}
3973 3 1 unless $s->{'code'}