Sort-Naturally-XS
view release on metacpan or search on metacpan
t/Sort-Naturally-XS-wchar.t view on Meta::CPAN
#!/usr/bin/perl
use strict;
use warnings;
use Test::More;
use Sort::Naturally::XS qw/nsort ncmp sorted/;
use List::Util qw/first/;
use utf8;
use Config;
my $ar_mixed_utf8 = [qw/Як-100 Ðа-8 Ðи-20 Ðа-10 Ðа-26 Ðа-15 Ðа-25 Ðи-4 Ðи-6 Ðи-8 Ðа-31 Ðи-14 Ðи-24 Ðа-18 Ðа-22 Ðи-26
Ðи-30 Ðи-171 Як-24 Як-60 Ðа-27 Ðа-29 Ðа-32 Ðа-126 Ðи-10 Ðи-1/];
my $ar_mixed_utf8__expected = [qw/Ðа-8 Ðа-10 Ðа-15 Ðа-18 Ðа-22 Ðа-25 Ðа-26 Ðа-27 Ðа-29 Ðа-31 Ðа-32 Ðа-126 Ðи-1 Ðи-4 Ðи-6
Ðи-8 Ðи-10 Ðи-14 Ðи-20 Ðи-24 Ðи-26 Ðи-30 Ðи-171 Як-24 Як-60 Як-100/];
ok(eq_array($ar_mixed_utf8__expected, [nsort(@{$ar_mixed_utf8})]), "Wide characters in input of 'nsort'");
ok(eq_array($ar_mixed_utf8__expected, [sort {ncmp($a, $b)} @{$ar_mixed_utf8}]), "Wide characters in input of 'ncmp'");
ok(eq_array($ar_mixed_utf8__expected, sorted($ar_mixed_utf8)), "Wide characters in input of 'sorted'");
# issue-2 example
{
no utf8;
my @issue_2_list = ( qq(\x{2603}), q(abc) );
my @issue_2_list__expected = ( q(abc), qq(\x{2603}) );
my @issue_2_list__actual = nsort(@issue_2_list);
ok(eq_array(\@issue_2_list__expected, \@issue_2_list__actual), "Wide character (not letter) in input of 'nsort'");
@issue_2_list__actual = sort {ncmp($a, $b)} @issue_2_list;
ok(eq_array(\@issue_2_list__expected, \@issue_2_list__actual), "Wide character (not letter) in input of 'ncmp'");
ok(eq_array(\@issue_2_list__expected, sorted(\@issue_2_list)), "Wide character (not letter) in input of 'sorted'");
}
done_testing();
( run in 1.714 second using v1.01-cache-2.11-cpan-ad19def0cd9 )