File Coverage

lib/Perl6/Str/Test.pm
Criterion Covered Total %
statement 534 534 100.0
branch 3 6 50.0
condition n/a
subroutine 178 178 100.0
pod 0 3 0.0
total 715 721 99.1


line stmt bran cond sub pod time code
1             package Perl6::Str::Test;
2 7     7   64334 use strict;
  7         18  
  7         263  
3 7     7   39 use warnings;
  7         19  
  7         212  
4 7     7   39 use Exporter qw(import);
  7         15  
  7         221  
5 7     7   5423 use Test qw(ok);
  7         26845  
  7         521  
6 7     7   53 use charnames ();
  7         12  
  7         1774  
7             require Test::More;
8              
9             our @EXPORT_OK = qw(expand_str escape_str is_eq);
10              
11             sub expand_str {
12 253     253 0 35783 my $str = eval qq{use charnames qw(:full); "$_[0]"};
  4     4   31  
  4     4   13  
  4     4   32  
  4     4   41  
  4     4   11  
  4     4   14  
  4     4   21  
  4     4   11  
  4     4   16  
  4     4   25  
  4     4   11  
  4     4   19  
  4     4   24  
  4     4   10  
  4     4   16  
  4     4   18  
  4     4   14  
  4     4   12  
  4     3   20  
  4     3   12  
  4     3   14  
  4     3   23  
  4     3   10  
  4     3   21  
  4     3   18  
  4     3   9  
  4     3   15  
  4     3   23  
  4     1   10  
  4     1   18  
  4     1   19  
  4     1   11  
  4     1   15  
  4     1   20  
  4     1   10  
  4     1   13  
  4     1   20  
  4     1   9  
  4     1   16  
  4     1   22  
  4     1   17  
  4     1   16  
  4     1   24  
  4     1   13  
  4     1   14  
  4     1   25  
  4     1   10  
  4     1   19  
  4     1   21  
  4     1   11  
  4     1   14  
  4     1   17  
  4     1   12  
  4     1   15  
  3     1   17  
  3     1   7  
  3     1   11  
  3     1   15  
  3     1   9  
  3     1   10  
  3     1   16  
  3     1   8  
  3     1   11  
  3     1   12  
  3     1   10  
  3     1   9  
  3     1   15  
  3     1   8  
  3     1   11  
  3     1   15  
  3     1   10  
  3     1   9  
  3     1   16  
  3     1   9  
  3     1   11  
  3     1   50  
  3     1   11  
  3     1   9  
  3     1   15  
  3     1   11  
  3     1   10  
  3     1   15  
  3     1   9  
  3     1   11  
  1     1   4  
  1     1   6  
  1     1   1  
  1     1   4  
  1     1   5  
  1     1   2  
  1     1   5  
  1     1   5  
  1     1   3  
  1     1   4  
  1     1   6  
  1     1   2  
  1     1   3  
  1     1   4  
  1     1   2  
  1     1   4  
  1     1   5  
  1     1   2  
  1     1   4  
  1     1   5  
  1     1   2  
  1     1   4  
  1     1   5  
  1     1   2  
  1     1   4  
  1     1   6  
  1     1   2  
  1     1   4  
  1     1   4  
  1     1   2  
  1     1   4  
  1     1   6  
  1     1   11  
  1     1   6  
  1     1   5  
  1     1   1  
  1     1   4  
  1     1   5  
  1     1   2  
  1     1   3  
  1     1   4  
  1     1   2  
  1     1   4  
  1     1   5  
  1     1   3  
  1     1   3  
  1     1   9  
  1     1   1  
  1     1   5  
  1     1   5  
  1     1   1  
  1     1   3  
  1     1   5  
  1     1   3  
  1     1   4  
  1     1   5  
  1     1   2  
  1     1   3  
  1     1   6  
  1     1   2  
  1     1   5  
  1     1   7  
  1     1   2  
  1     1   4  
  1     1   5  
  1     1   2  
  1     1   4  
  1     1   4  
  1     1   3  
  1     1   4  
  1     1   6  
  1     1   85  
  1     1   5  
  1     1   5  
  1     1   2  
  1     1   3  
  1     1   6  
  1     1   1  
  1     1   4  
  1     1   6  
  1     1   2  
  1     1   3  
  1     1   5  
  1     1   2  
  1     1   4  
  1         6  
  1         2  
  1         20  
  1         6  
  1         1  
  1         4  
  1         6  
  1         2  
  1         4  
  1         6  
  1         1  
  1         5  
  1         5  
  1         2  
  1         4  
  1         4  
  1         2  
  1         4  
  1         4  
  1         2  
  1         3  
  1         5  
  1         1  
  1         4  
  1         5  
  1         1  
  1         4  
  1         5  
  1         2  
  1         3  
  1         5  
  1         1  
  1         3  
  1         5  
  1         2  
  1         4  
  1         5  
  1         1  
  1         5  
  1         4  
  1         2  
  1         3  
  1         5  
  1         1  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         1  
  1         4  
  1         7  
  1         2  
  1         5  
  1         5  
  1         2  
  1         4  
  1         6  
  1         2  
  1         4  
  1         6  
  1         1  
  1         4  
  1         5  
  1         2  
  1         5  
  1         5  
  1         2  
  1         3  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         1  
  1         4  
  1         5  
  1         2  
  1         5  
  1         6  
  1         1  
  1         3  
  1         6  
  1         2  
  1         4  
  1         4  
  1         2  
  1         3  
  1         4  
  1         2  
  1         5  
  1         5  
  1         2  
  1         4  
  1         6  
  1         2  
  1         3  
  1         7  
  1         2  
  1         5  
  1         5  
  1         2  
  1         4  
  1         6  
  1         1  
  1         5  
  1         5  
  1         2  
  1         4  
  1         6  
  1         1  
  1         4  
  1         6  
  1         1  
  1         5  
  1         6  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         4  
  1         2  
  1         3  
  1         6  
  1         2  
  1         3  
  1         4  
  1         1  
  1         4  
  1         6  
  1         1  
  1         5  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         4  
  1         2  
  1         3  
  1         7  
  1         2  
  1         7  
  1         6  
  1         3  
  1         6  
  1         7  
  1         2  
  1         7  
  1         6  
  1         3  
  1         4  
  1         6  
  1         2  
  1         3  
  1         5  
  1         2  
  1         3  
  1         6  
  1         2  
  1         5  
  1         6  
  1         2  
  1         3  
  1         4  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         3  
  1         4  
  1         3  
  1         4  
  1         5  
  1         54  
  1         4  
  1         5  
  1         2  
  1         3  
  1         5  
  1         2  
  1         4  
  1         4  
  1         3  
  1         3  
  1         7  
  1         1  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         3  
  1         4  
  1         7  
  1         2  
  1         5  
  1         4  
  1         2  
  1         4  
  1         5  
  1         1  
  1         4  
  1         5  
  1         1  
  1         4  
  1         5  
  1         1  
  1         4  
  1         6  
  1         1  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         1  
  1         4  
  1         5  
  1         2  
  1         7  
  1         6  
  1         3  
  1         5  
  1         6  
  1         2  
  1         4  
  1         6  
  1         3  
  1         4  
  1         6  
  1         2  
  1         4  
  1         5  
  1         2  
  1         4  
  1         5  
  1         2  
  1         5  
  1         6  
  1         2  
  1         4  
  1         5  
  1         1  
  1         5  
  1         5  
  1         2  
  1         4  
  1         14  
  1         2  
  1         10  
  1         8  
  1         2  
  1         6  
  1         8  
  1         2  
  1         5  
  1         8  
  1         3  
  1         6  
  1         8  
  1         3  
  1         18  
  1         7  
  1         3  
  1         4  
  1         6  
  1         3  
  1         6  
  1         6  
  1         2  
  1         4  
  1         7  
  1         2  
  1         6  
  1         6  
  1         2  
  1         5  
  1         6  
  1         3  
  1         5  
  1         11  
  1         4  
  1         4  
  1         8  
  1         2  
  1         6  
  1         7  
  1         3  
  1         6  
  1         14  
  1         4  
  1         9  
  1         5  
  1         3  
  1         5  
  1         6  
  1         3  
  1         6  
  1         7  
  1         4  
  1         4  
  1         6  
  1         3  
  1         15  
  1         6  
  1         3  
  1         4  
  1         6  
  1         11  
  1         4  
  1         7  
  1         3  
  1         4  
  1         6  
  1         1  
  1         5  
  1         6  
  1         4  
  1         4  
13 253 50       709 die $@ if $@;
14 253         852 return $str;
15             }
16              
17             sub escape_str {
18 93     93 0 134 my $str = shift;
19 93         268 $str =~ s{([^\0-\177])}{_N_escape($1)}eg;
  67         1410  
20 93         1233 return $str;
21             }
22              
23             sub _N_escape {
24 67     67   231 return '\N{' . charnames::viacode(ord($_[0])) . '}';
25             }
26              
27             sub is_eq {
28 93     93 0 2261 my ($lhs, $rhs, $descr) = @_;
29 93 50       230 $descr = '' if @_ < 3;
30              
31 93 50       255 Test::More::ok(($lhs eq $rhs), escape_str($descr))
32             or Test::More::diag(sprintf("lhs: '%s'\nrhs: '%s'\n",
33             escape_str($lhs), escape_str($rhs)));
34             }
35              
36             1;