File Coverage

blib/lib/SortKey/Num/similarity_jaccard.pm
Criterion Covered Total %
statement 14 23 60.8
branch 0 4 0.0
condition n/a
subroutine 5 8 62.5
pod 0 2 0.0
total 19 37 51.3


line stmt bran cond sub pod time code
1             package SortKey::Num::similarity_jaccard;
2              
3 1     1   312421 use 5.010001;
  1         4  
4 1     1   7 use strict;
  1         2  
  1         36  
5 1     1   7 use warnings;
  1         2  
  1         69  
6 1     1   1792 use Log::ger;
  1         43  
  1         7  
7              
8 1     1   638 use Set::Similarity::Jaccard;
  1         1339  
  1         351  
9              
10             our $AUTHORITY = 'cpan:PERLANCAR'; # AUTHORITY
11             our $DATE = '2024-05-15'; # DATE
12             our $DIST = 'SortKey-Num-similarity_jaccard'; # DIST
13             our $VERSION = '0.001'; # VERSION
14              
15             sub meta {
16             return +{
17 0     0 0   v => 1,
18             args => {
19             string => {schema=>'str*', req=>1},
20             ci => {schema => 'bool*'},
21             },
22             };
23             }
24              
25             sub gen_keygen {
26 0     0 0   my %args = @_;
27              
28 0           my $string = $args{string};
29 0           my $lc_string = lc $string;
30 0           my $ci = $args{ci};
31              
32 0           my $jaccard = Set::Similarity::Jaccard->new;
33              
34             sub {
35 0 0   0     my $arg = @_ ? shift : $_;
36 0 0         $ci ? $jaccard->similarity($lc_string, lc($arg)) : $jaccard->similarity($string, $arg);
37 0           };
38             }
39              
40             1;
41             # ABSTRACT: Jaccard coefficient of a string to a reference string, as sort key
42              
43             __END__