use v6;
use Test;
plan 17;
my @tests = (
['Hello', 'foo', 'Foo'],
['hEllo', 'foo', 'fOo'],
['A', 'foo', 'FOO'],
['AA', 'foo', 'FOO'],
['a b', 'FOO', 'fOo'],
['a b', 'FOOB', 'fOob'],
['Ab ', 'ABCDE', 'AbCDE'],
['aB ', 'abcde', 'aBcde'],
['aB ', 'ABCDE', 'aBCDE'],
);
for @tests -> $t {
my $test_str = $t[0];
$test_str ~~ s:ii/ .* /$t[1]/;
is $test_str, $t[2], ":ii modifier: {$t[0]} ~~ s:ii/.*/{$t[1]}/ => {$t[2]}";
}
my @smart_tests = (
['HELLO', 'foo', 'FOO', 'uc()'],
['HE LO', 'foo', 'FOO', 'uc()'],
['hello', 'fOo', 'foo', 'lc()'],
['he lo', 'FOOOoO', 'fooooo', 'lc()'],
['He lo', 'FOOO', 'Fooo', 'ucfrst(lc())'],
['hE LO', 'fooo', 'fOOO', 'lcfrst(uc())'],
['hE LO', 'foobar', 'fOOBAR', 'lcfrst(uc())'],
['Ab Cd E', 'abc de gh i', 'Abc De Gh I', 'capitalize()'],
);
for @smart_tests -> $t {
my $test_str = $t[0];
$test_str ~~ s:ii:sigspace/.*/$t[1]/;
is $test_str, $t[2], ":ii:sigspace modifier: {$t[0]} ~~ s:ii:s/.*/{$t[1]}/ => {$t[2]}";
}
done_testing;