#!/usr/bin/perl
use strict;
use warnings;
# BEGIN {$Sort::Key::DEBUG=10};
use Test::More tests => 9;
use Sort::Key 'keysort';
use Sort::Key::Natural qw(natkeysort natsort rnatsort rnatkeysort mkkey_natural
natsort_inplace natkeysort_inplace rnatsort_inplace
rnatkeysort_inplace);
my @data = qw(foo1 foo23 foo foo foo fo2 foo6 bar12
bar1 bar2 bar-45 b-a-r-45 bar);
my $sorted = 'b-a-r-45 bar bar1 bar2 bar12 bar-45 fo2 foo foo foo foo1 foo6 foo23';
my $rsorted = 'foo23 foo6 foo1 foo foo foo fo2 bar-45 bar12 bar2 bar1 bar b-a-r-45';
my @sorted;
@sorted = keysort { mkkey_natural } @data;
is("@sorted", $sorted, 'mkkey_natural');
@sorted = natkeysort { $_ } @data;
is("@sorted", $sorted, 'natkeysort');
@sorted = natsort @data;
is("@sorted", $sorted, 'natsort');
@sorted = @data;
natsort_inplace @sorted;
is("@sorted", $sorted, 'notsort_inplace');
@sorted = @data;
natkeysort_inplace { $_ } @sorted;
is("@sorted", $sorted, 'natkeysort_inplace');
@sorted = rnatkeysort { $_ } @data;
is("@sorted", $rsorted, 'rnatkeysort');
@sorted = rnatsort @data;
is("@sorted", $rsorted, 'rnatsort');
@sorted = @data;
rnatsort_inplace @sorted;
is("@sorted", $rsorted, 'rnotsort_inplace');
@sorted = @data;
rnatkeysort_inplace { $_ } @sorted;
is("@sorted", $rsorted, 'rnatkeysort_inplace');