Branch Coverage

lib/Parse/Taxonomy/MaterializedPath.pm
Criterion Covered Total %
branch 134 140 95.7


line true false branch
177 2 60 unless ref $args and &reftype($args) eq 'HASH'
180 29 31 if $args->{'file'}
181 31 29 if $args->{'components'}
182 1 59 if $argscount == 0
184 1 58 if $argscount == 2
187 4 54 if (exists $args->{'path_col_idx'})
189 1 3 unless $args->{'path_col_idx'} =~ /^\d+$/
194 5 52 exists $args->{'path_col_sep'} ? :
195 5 52 if (exists $args->{'path_col_sep'}) { }
203 30 27 if ($args->{'components'}) { }
205 2 28 unless ref $args->{'components'} and &reftype($args->{'components'}) eq 'HASH'
208 2 51 unless exists $args->{'components'}{$k}
211 3 48 unless ref $args->{'components'}{$k} and &reftype($args->{'components'}{$k}) eq 'ARRAY'
214 2 290 unless ref $row and &reftype($row) eq 'ARRAY'
229 1 26 unless -f $args->{'file'}
236 0 26 unless my $csv = 'Text::CSV_XS'->new($args)
239 0 26 unless open my $IN, '<', $data->{'file'}
244 0 23 unless close $IN
262 26 21 if (not $components) { }
274 10 205 if $fields_seen{$reserved}
278 2 41 if @bad_fields
288 21 26 $components ? :
292 2 45 if $data->{'path_col_idx'} > $#{$fields_ref;}
306 6 531 unless ($$rec[$data->{'path_col_idx'}] =~ /^\Q$data->{'path_col_sep'}\E/)
311 5 532 if ($this_row_count != $field_count)
323 2 39 if @bad_path_cols
327 5 499 if $paths_seen{$path} > 1
336 3 36 if @dupe_paths
344 2 34 if @bad_count_records
349 0 34 unless my $path_csv = 'Text::CSV_XS'->new($path_args)
355 324 123 if (@columns > 2)
358 4 320 unless (exists $paths_seen{$parent})
370 2 32 if scalar keys %missing_parents
593 698 182 if ($i != $self->{'path_col_idx'}) { }
639 390 78 if ($i != $self->{'path_col_idx'}) { }
708 5 4 if (defined $args)
709 2 3 unless ref $args and &reftype($args) eq 'HASH'
712 2 1 unless $args->{'generations'} and $args->{'generations'} =~ /^[0-9]+$/
722 61 169 if ($q =~ /^\Q$p$self->{'path_col_sep'}\E/)
723 48 13 if (not $args->{'generations'}) { }
730 9 4 if scalar(@d) - scalar(@c) <= $args->{'generations'}
784 15 11 if (defined $args)
785 2 13 unless ref $args and &reftype($args) eq 'HASH'
788 2 11 unless $args->{'generations'} and $args->{'generations'} =~ /^[0-9]+$/
790 6 16 if (exists $self->{'descendant_counts'}) { }
792 2 4 unless exists $descendant_counts->{$node}
798 1 15 unless exists $hashified->{$node}
805 36 74 if ($q =~ /^\Q$p$self->{'path_col_sep'}\E/)
806 10 26 if (not $args->{'generations'}) { }
813 17 9 if scalar(@d) - scalar(@c) <= $args->{'generations'}
910 8 25 if (defined $args)
911 2 6 unless ref $args and &reftype($args) eq 'HASH'
919 39 388 if ($args->{'root_str'}) { }
923 26 362 if ($args->{'remove_leading_path_col_sep'}) { }
930 52 375 if ($args->{'key_delim'})
991 9 6 if (defined $args)
992 2 7 unless ref $args and &reftype($args) eq 'HASH'
995 8 5 if (exists $args->{$w})
997 2 6 unless $args->{$w} =~ /^\d+$/
1019 156 342 if (scalar @{$components_by_row[$r];} == $depth)
1027 120 36 length $parent_of_name ? :
1038 120 36 if length $parent_of_name
1127 13 1 if (defined $args) { }
1128 2 11 unless ref $args and &reftype($args) eq 'HASH'
1131 1 10 unless exists $args->{'adjacentified'}
1134 2 8 unless ref $args->{'adjacentified'} and &reftype($args->{'adjacentified'}) eq 'ARRAY'
1153 7 1 defined $args->{'csvfile'} ? :
1165 0 8 unless open my $OUT, '>:encoding(utf8)', $csvfile
1167 1 7 defined $csv_args->{'eol'} ? :
1175 0 8 unless close $OUT