|
Packit |
61a564 |
use strict;
|
|
Packit |
61a564 |
use warnings;
|
|
Packit |
61a564 |
use lib 't/lib';
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
use Std;
|
|
Packit |
61a564 |
my $xism = qr/x/=~/\(\?\^/ ? "^" : "-xism";
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
my $str = "ferg";
|
|
Packit |
61a564 |
my $re = qr/$str/;
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("fergal", re($re));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 1,
|
|
Packit |
61a564 |
diag => "",
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"re eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("fergal", regexponly($re));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 1,
|
|
Packit |
61a564 |
diag => "",
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"regexponly eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("feargal", re($re));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 0,
|
|
Packit |
61a564 |
diag => <
|
|
Packit |
61a564 |
Using Regexp on \$data
|
|
Packit |
61a564 |
got : 'feargal'
|
|
Packit |
61a564 |
expect : $re
|
|
Packit |
61a564 |
EOM
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"re not eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("feargal", regexponly($re));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 0,
|
|
Packit |
61a564 |
diag => <
|
|
Packit |
61a564 |
Using Regexp on \$data
|
|
Packit |
61a564 |
got : 'feargal'
|
|
Packit |
61a564 |
expect : $re
|
|
Packit |
61a564 |
EOM
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"regexponly not eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("fergal", re($str));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 1,
|
|
Packit |
61a564 |
diag => "",
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"string re eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("feargal", re($str));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 0,
|
|
Packit |
61a564 |
diag => <
|
|
Packit |
61a564 |
Using Regexp on \$data
|
|
Packit |
61a564 |
got : 'feargal'
|
|
Packit |
61a564 |
expect : $re
|
|
Packit |
61a564 |
EOM
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"string runre not eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
}
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
my $re = qr/([ac])/;
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("abc", re($re, [qw( a )]));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 1,
|
|
Packit |
61a564 |
diag => "",
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"matches re eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("abc", re($re, [qw( a c )], "g"));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 1,
|
|
Packit |
61a564 |
diag => "",
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"matches global re eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("abc", re($re, [qw( a b )], "g"));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 0,
|
|
Packit |
61a564 |
diag => <
|
|
Packit |
61a564 |
Compared [\$data =~ (?$xism:([ac]))]->[1]
|
|
Packit |
61a564 |
got : 'c'
|
|
Packit |
61a564 |
expect : 'b'
|
|
Packit |
61a564 |
EOM
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"matches global not eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
}
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
my $re = qr/(..)/;
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("abababcdcdefef", re($re, set(qw( ab cd ef )), "g"));
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 1,
|
|
Packit |
61a564 |
diag => "",
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"matches re and set eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub {
|
|
Packit |
61a564 |
cmp_deeply("cat=2,dog=67,sheep=3,goat=2,dog=5",
|
|
Packit |
61a564 |
re(qr/(\D+)=\d+,?/, set(qw( cat sheep dog )), "g"))
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 0,
|
|
Packit |
61a564 |
diag => <
|
|
Packit |
61a564 |
Comparing [\$data =~ (?$xism:(\\D+)=\\d+,?)] as a Set
|
|
Packit |
61a564 |
Extra: 'goat'
|
|
Packit |
61a564 |
EOM
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"string runre not eq"
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
}
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
require Over;
|
|
Packit |
61a564 |
my $o = Over->new("hi mom");
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
is("$o", "hi mom", "we make a stringifiable object");
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub { cmp_deeply($o, re(qr/mom/)); },
|
|
Packit |
61a564 |
{ actual_ok => 1 },
|
|
Packit |
61a564 |
"re() tests objects via overloading",
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
|
|
Packit |
61a564 |
# Remember, Regexp stringification changes over time. -- rjbs, 2016-09-08
|
|
Packit |
61a564 |
my $re = qr/dad/;
|
|
Packit |
61a564 |
my $re_str = "$re";
|
|
Packit |
61a564 |
check_test(
|
|
Packit |
61a564 |
sub { cmp_deeply($o, re($re)); },
|
|
Packit |
61a564 |
{
|
|
Packit |
61a564 |
actual_ok => 0,
|
|
Packit |
61a564 |
diag => <
|
|
Packit |
61a564 |
Using Regexp on \$data
|
|
Packit |
61a564 |
got : 'hi mom' (instance of Over)
|
|
Packit |
61a564 |
expect : $re_str
|
|
Packit |
61a564 |
EOM
|
|
Packit |
61a564 |
},
|
|
Packit |
61a564 |
"re() tests objects via overloading",
|
|
Packit |
61a564 |
);
|
|
Packit |
61a564 |
}
|