Branch Coverage

blib/lib/Data/Transmute.pm
Criterion Covered Total %
branch 143 150 95.3


line true false branch
24 62 1 $args{'transmute_object'} // 1 ? :
17 46 unless $args{'transmute_object'} // 1 ? is_hashref($data) : is_plain_hashref($data)
27 1 45 unless defined $name
29 7 38 if (exists $data->{$name})
30 1 6 if $args{'ignore'}
31 1 5 unless $args{'replace'}
34 1 1 unless exists $args{'value'} or $args{'value_code'}
35 1 41 $args{'value_code'} ? :
40 1 29 if $args{'value_code'}
41 1 28 if $args{'ignore'}
42 1 27 if $args{'replace'}
50 23 0 $args{'transmute_object'} // 1 ? :
2 21 unless $args{'transmute_object'} // 1 ? is_hashref($data) : is_plain_hashref($data)
53 1 20 unless defined $from
55 1 19 unless defined $to
58 0 19 if $from eq $to
60 2 17 unless (exists $data->{$from})
61 1 1 unless $args{'ignore_missing_from'}
64 3 14 if (exists $data->{$to})
65 1 2 if $args{'ignore_existing_target'}
66 1 1 unless $args{'replace'}
73 1 10 if $args{'ignore_missing_from'}
74 1 9 if $args{'ignore_existing_target'}
75 1 8 if $args{'replace'}
88 11 2 $args{'transmute_object'} // 1 ? :
4 9 unless $args{'transmute_object'} // 1 ? is_hashref($data) : is_plain_hashref($data)
91 1 8 unless defined $name
96 0 1 unless exists $args{'to'} or $args{'to_code'}
100 7 1 $from_exists ? :
1 7 $args{'to_code'} ? :
102 1 7 unless (exists $data->{$name})
108 1 6 if $args{'to_code'}
110 6 1 if ($from_exists)
112 0 6 unless Data::Cmp::cmp_data($from, $to)
114 1 5 if (Data::Cmp::cmp_data($cur, $from))
124 1 5 unless exists $args{'from'}
125 1 4 if $args{'to_code'}
136 41 2 $args{'transmute_object'} // 1 ? :
4 39 unless $args{'transmute_object'} // 1 ? is_hashref($data) : is_plain_hashref($data)
139 1 38 unless defined $name
152 17 2 $args{'transmute_object'} // 1 ? :
4 15 unless $args{'transmute_object'} // 1 ? is_arrayref($data) : is_plain_arrayref($data)
155 1 14 unless defined $args{'rules'} or defined $args{'rules_module'}
161 6 32 if (defined $args{'index_is'})
162 4 2 unless $idx == $args{'index_is'}
164 6 28 if (defined $args{'index_in'})
165 2 4 unless grep {$idx == $_;} @{$args{"index_in"};}
167 6 26 if (defined $args{'index_match'})
168 2 4 unless $idx =~ /$args{'index_match'}/
170 6 24 if (defined $args{'index_filter'})
171 2 4 unless $args{'index_filter'}->("index", $idx, "array", $data, "rules", $args{'rules'})
202 17 2 $args{'transmute_object'} // 1 ? :
4 15 unless $args{'transmute_object'} // 1 ? is_hashref($data) : is_plain_hashref($data)
205 1 14 unless defined $args{'rules'} or defined $args{'rules_module'}
209 6 32 if (defined $args{'key_is'})
210 4 2 unless $key eq $args{'key_is'}
212 6 28 if (defined $args{'key_in'})
213 2 4 unless grep {$key eq $_;} @{$args{"key_in"};}
215 6 26 if (defined $args{'key_match'})
216 2 4 unless $key =~ /$args{'key_match'}/
218 6 24 if (defined $args{'key_filter'})
219 2 4 unless $args{'key_filter'}->("key", $key, "hash", $data, "rules", $args{'rules'})
256 9 11 unless $refaddr
257 0 11 if $seen->{$refaddr}++
259 2 9 $rule_args->{'recurse_object'} ? :
1 5 $rule_args->{'recurse_object'} ? :
5 6 if ($rule_args->{'recurse_object'} ? is_arrayref($data) : is_plain_arrayref($data)) { }
5 1 elsif ($rule_args->{'recurse_object'} ? is_hashref($data) : is_plain_hashref($data)) { }
278 0 3 unless defined $args{'rules'} or defined $args{'rules_module'}
293 7 230 unless ($rules)
294 6 1 if (defined $args->{'rules_module'})
301 1 236 unless $rules
308 1 171 unless exists $args{'data'}
315 0 184 if ($ENV{'LOG_DATA_TRANSMUTE_STEP'})
321 1 183 unless defined &{$funcname;}