| line |
true |
false |
branch |
|
1927
|
1 |
163 |
unless $mode eq "axis" or $mode eq "extended" |
|
1940
|
1 |
162 |
unless $missing =~ /\A(?:die|zero|impute|nan)\z/ |
|
1944
|
1 |
161 |
unless $impute_with =~ /\A(?:mean|median)\z/ |
|
1947
|
131 |
30 |
if (defined $args{'seed'}) |
|
1959
|
60 |
55 |
$args{'use_c'} && $HAS_C ? : |
|
|
115 |
46 |
defined $args{'use_c'} ? : |
|
1963
|
2 |
3 |
$args{'use_openmp'} && $HAS_OPENMP ? : |
|
|
5 |
156 |
defined $args{'use_openmp'} ? : |
|
1965
|
57 |
104 |
unless $use_c |
|
1970
|
9 |
152 |
$args{'use_openmp_fit'} && $HAS_OPENMP && $use_c ? : |
|
1994
|
1 |
160 |
unless $self->{'n_trees'} >= 1 |
|
1995
|
1 |
159 |
unless $self->{'sample_size'} >= 1 |
|
1997
|
1 |
158 |
if defined $self->{'extension_level'} and $self->{'extension_level'} < 0 |
|
2000
|
3 |
155 |
if defined $self->{'contamination'} and not $self->{'contamination'} > 0 && $self->{'contamination'} <= 0.5 |
|
2003
|
2 |
9 |
if defined $self->{'parallel_fit'} and !($self->{'parallel_fit'} =~ /^\d+$/) || $self->{'parallel_fit'} < 1 |
|
2086
|
6 |
130 |
unless ref $data eq "ARRAY" and @$data |
|
2089
|
4 |
126 |
unless ref $data->[0] eq "ARRAY" and @{$data->[0];} |
|
2109
|
29 |
91 |
if ($self->{'mode'} eq 'extended') { } |
|
2114
|
4 |
25 |
defined $self->{'extension_level'} ? : |
|
2115
|
0 |
29 |
if $ext < 0 |
|
2116
|
2 |
27 |
if $ext > $max_ext |
|
2127
|
0 |
120 |
defined $self->{'max_depth'} ? : |
|
2128
|
0 |
120 |
if $limit < 1 |
|
2131
|
120 |
0 |
if defined $self->{'seed'} |
|
2134
|
8 |
112 |
if (defined $workers and $workers > 1 and $self->{'n_trees'} > 1 and _fork_supported()) { } |
|
|
7 |
105 |
elsif ($self->{'_use_c'} and $self->{'_use_openmp_fit'}) { } |
|
|
58 |
47 |
elsif ($self->{'_use_c'}) { } |
|
2166
|
3 |
117 |
if (defined $self->{'contamination'}) |
|
2171
|
0 |
3 |
if $k < 1 |
|
2172
|
0 |
3 |
if $k > $n_pts |
|
2173
|
3 |
0 |
$k < $n_pts ? : |
|
2178
|
73 |
47 |
if $self->{'_use_c'} |
|
2229
|
7505 |
0 |
if ($self->{'_use_c'} and $self->{'_c_nodes'}) |
|
2243
|
0 |
1 |
$self->{'missing'} eq 'nan' ? : |
|
2280
|
3 |
26 |
defined $self->{'threshold'} ? : |
|
|
14978 |
29 |
defined $threshold ? : |
|
2288
|
14988 |
3 |
if ($self->{'_use_c'} and $self->{'_c_nodes'} and $self->{'c_psi'} > 0 and $threshold > 0 and $threshold < 1) |
|
2312
|
414 |
871 |
$_ >= $threshold ? : |
|
2365
|
0 |
0 |
unless ref $row eq "HASH" |
|
2370
|
0 |
0 |
unless defined $self->{'feature_names'} and ref $self->{'feature_names'} eq "ARRAY" and @{$self->{'feature_names'};} |
|
2378
|
0 |
0 |
if @unknown |
|
2382
|
0 |
0 |
if @missing |
|
2425
|
14208 |
3 |
if ($self->{'_use_c'} and $self->{'_c_nodes'}) |
|
2433
|
14207 |
0 |
if ($c > 0) |
|
2443
|
3 |
55 |
$self->{'missing'} eq 'nan' ? : |
|
2456
|
58 |
0 |
if ($c > 0) |
|
2511
|
0 |
7 |
defined $self->{'threshold'} ? : |
|
|
5098 |
7 |
defined $threshold ? : |
|
2518
|
5103 |
0 |
if ($self->{'_use_c'} and $self->{'_c_nodes'} and $self->{'c_psi'} > 0 and $threshold > 0 and $threshold < 1) |
|
2546
|
4 |
8 |
if ($score >= $threshold) { } |
|
2608
|
0 |
4 |
defined $self->{'threshold'} ? : |
|
|
14110 |
4 |
defined $threshold ? : |
|
2614
|
14112 |
0 |
if ($self->{'_use_c'} and $self->{'_c_nodes'} and $self->{'c_psi'} > 0 and $threshold > 0 and $threshold < 1) |
|
2640
|
4 |
8 |
$_ >= $threshold ? : |
|
2697
|
1 |
20 |
unless ref $payload eq "HASH" and defined $payload->{'format'} and $payload->{'format'} eq "Algorithm::Classifier::IsolationForest" |
|
2704
|
1 |
19 |
if (($payload->{'version'} // 0) < 1) |
|
2733
|
1 |
19 |
unless @{$self->{'trees'};} |
|
2738
|
19 |
0 |
if defined $self->{'psi_used'} |
|
2741
|
19 |
0 |
if $self->{'_use_c'} |
|
2800
|
241866 |
339714 |
if $n <= 1 |
|
2801
|
58278 |
281436 |
if $n == 2 |
|
2846
|
145063 |
148484 |
if $depth >= $limit or $size <= 1 |
|
2859
|
23338 |
125146 |
if ($nan) { } |
|
2863
|
72249 |
698528 |
unless defined $v |
|
2864
|
87444 |
611084 |
if not defined $lo[$f] or $v < $lo[$f] |
|
2865
|
86526 |
612002 |
if not defined $hi[$f] or $v > $hi[$f] |
|
2872
|
607872 |
6413849 |
if not defined $lo[$f] or $v < $lo[$f] |
|
2873
|
605366 |
6416355 |
if not defined $hi[$f] or $v > $hi[$f] |
|
2881
|
331221 |
55 |
if defined $lo[$_] |
|
2884
|
2795 |
145689 |
unless @varying |
|
2887
|
22387 |
123302 |
$self->{'mode'} eq 'extended' ? : |
|
2895
|
123302 |
22387 |
$node->[0] == 1 ? : |
|
2916
|
15096 |
108206 |
if ($nan) { } |
|
2919
|
111298 |
128069 |
if (defined $v and $v < $split) { } |
|
2924
|
1093141 |
1096784 |
if ($row->[$attr] < $split) { } |
|
2941
|
3606 |
18781 |
if $active > scalar @$varying |
|
2966
|
6947 |
15440 |
if ($nan) { } |
|
2972
|
26240 |
236042 |
unless (defined $v) |
|
2975
|
57761 |
81925 |
if (not $missing and $dot <= $b) { } |
|
2982
|
193814 |
200390 |
if ($dot <= $b) { } |
|
3009
|
2283722 |
197556 |
if ($node->[0] == 1) { } |
|
3010
|
4852 |
2278870 |
if ($nan) { } |
|
3012
|
963 |
3889 |
defined $v && $v < $node->[2] ? : |
|
3014
|
1144254 |
1134616 |
($$x[$node->[1]] // 0) < $node->[2] ? : |
|
3018
|
3034 |
194522 |
if ($nan) { } |
|
3023
|
1920 |
2807 |
unless (defined $v) |
|
3026
|
552 |
2482 |
!$missing && $dot <= $b ? : |
|
3030
|
94590 |
99932 |
$dot <= $b ? : |
|
3042
|
0 |
0 |
if ($node->{'leaf'}) { } |
|
|
0 |
0 |
elsif (exists $node->{'attr'}) { } |
|
3086
|
241165 |
237073 |
if ($node->[0] == 0) { } |
|
|
208282 |
28791 |
elsif ($node->[0] == 1) { } |
|
3117
|
24985 |
3806 |
if (defined $n_features and $num == $n_features) { } |
|
3140
|
705 |
3387 |
@coef_idx ? : |
|
3141
|
705 |
3387 |
@coef_val ? : |
|
3166
|
9 |
56016 |
unless ref $self->{'trees'} eq "ARRAY" and @{$self->{'trees'};} |
|
3175
|
6 |
2 |
if defined $cached |
|
3178
|
2 |
0 |
($Config::Config{'d_fork'} || '') eq 'define' ? : |
|
3201
|
1 |
7 |
if $workers > $n_trees |
|
3209
|
3 |
23 |
$w < $extras ? : |
|
3216
|
0 |
26 |
unless $share > 0 |
|
3218
|
0 |
26 |
unless pipe my $rh, my $wh |
|
3220
|
0 |
26 |
unless defined $pid |
|
3222
|
0 |
26 |
if ($pid == 0) |
|
3226
|
0 |
0 |
if (defined $self->{'seed'}) |
|
3243
|
0 |
0 |
if ($self->{'_use_c'}) { } |
|
3276
|
0 |
26 |
if $exit != 0 |
|
3279
|
0 |
26 |
if $@ or ref $trees ne "ARRAY" |
|
3305
|
12 |
46 |
$self->{'mode'} eq 'extended' ? : |
|
3346
|
5 |
2 |
$self->{'mode'} eq 'extended' ? : |
|
3370
|
6582 |
6262 |
if ($type == 0) { } |
|
|
1604 |
4658 |
elsif ($type == 1) { } |
|
3426
|
1 |
5 |
unless $self->{'_use_c'} |
|
3427
|
2 |
3 |
unless ref $data eq "ARRAY" |
|
3447
|
25815 |
30101 |
if (ref $data eq "Algorithm::Classifier::IsolationForest::PackedData") |
|
3449
|
1 |
25814 |
unless $data->{'n_feats'} == $self->{'n_features'} |
|
3466
|
80 |
0 |
if ref $data eq "ARRAY" |
|
3467
|
0 |
0 |
if (ref $data eq "Algorithm::Classifier::IsolationForest::PackedData") |
|
3505
|
100 |
26 |
if ($m eq "die") |
|
3509
|
40679 |
2 |
if defined $row->[$f] |
|
3519
|
8 |
18 |
if $m eq "nan" |
|
3539
|
12 |
6 |
$m eq 'impute' ? : |
|
3543
|
8 |
6 |
if $m eq "impute" |
|
3546
|
7 |
7 |
if $self->{'_use_c'} |
|
3562
|
6 |
6 |
if ($self->{'_use_c'}) |
|
3564
|
2 |
4 |
$how eq 'median' ? : |
|
3573
|
2 |
10 |
unless @vals |
|
3575
|
4 |
6 |
if ($how eq 'median') { } |
|
3578
|
2 |
2 |
$k % 2 ? : |
|
3599
|
3855 |
223 |
if (defined $r->[$_]) { } |
|
3610
|
9 |
30160 |
if $m eq "nan" |
|
3611
|
9 |
30151 |
if ($m eq "impute") |
|
3614
|
0 |
9 |
unless ref $fill eq "ARRAY" and @$fill == $self->{'n_features'} |
|
3628
|
3 |
56 |
if ($self->{'missing'} eq "impute") |
|
3630
|
0 |
3 |
unless ref $self->{'missing_fill'} eq "ARRAY" |