1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
#!perl
use strict;
use Test::More tests => 15;
BEGIN { use_ok( 'Data::Sorting' => ':basics', ':arrays' ); }
require 't/sort_tests.pl';
my @values = qw( 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 );
my @params = ( -compare=>'numeric' );
my @v_array;
my $v_aryref;
my ($v1, $v2, $v3, $v4, @v5);
my @ordered;
### sorted_by
{
my @v_array = shuffle(@values);
my $v_aryref = [ shuffle(@values) ];
my($v1, $v2, $v3, $v4, @v5) = shuffle(@values);
my @ordered;
@ordered = sorted_by( \@params, @v_array );
ok( arrays_match( \@ordered, \@values ) );
@ordered = sorted_by( \@params, @$v_aryref );
ok( arrays_match( \@ordered, \@values ) );
@ordered = sorted_by( \@params, $v1, $v2, $v3, $v4, @v5 );
ok( arrays_match( \@ordered, \@values ) );
}
{
my @v_array = shuffle(@values);
my $v_aryref = [ shuffle(@values) ];
my($v1, $v2, $v3, $v4, @v5) = shuffle(@values);
my @ordered;
@ordered = sort_function( @params )->( @v_array );
ok( arrays_match( \@ordered, \@values ) );
@ordered = sort_function( @params )->( @$v_aryref );
ok( arrays_match( \@ordered, \@values ) );
@ordered = sort_function( @params )->( $v1, $v2, $v3, $v4, @v5 );
ok( arrays_match( \@ordered, \@values ) );
}
### sorted_array, sorted_arrayref
{
my @v_array = shuffle(@values);
my $v_aryref = [ shuffle(@values) ];
my @ordered;
@ordered = sorted_array( @v_array, @params );
ok( arrays_match( \@ordered, \@values ) );
@ordered = sorted_array( @$v_aryref, @params );
ok( arrays_match( \@ordered, \@values ) );
}
{
my @v_array = shuffle(@values);
my $v_aryref = [ shuffle(@values) ];
my @ordered;
@ordered = sorted_arrayref( \@v_array, @params );
ok( arrays_match( \@ordered, \@values ) );
@ordered = sorted_arrayref( $v_aryref, @params );
ok( arrays_match( \@ordered, \@values ) );
}
###
{
my @v_array = shuffle(@values);
my $v_aryref = [ shuffle(@values) ];
sort_array( @v_array, @params );
ok( arrays_match( \@v_array, \@values ) );
sort_array( @$v_aryref, @params );
ok( arrays_match( $v_aryref, \@values ) );
}
{
my @v_array = shuffle(@values);
my $v_aryref = [ shuffle(@values) ];
sort_arrayref( \@v_array, @params );
ok( arrays_match( \@v_array, \@values ) );
sort_arrayref( $v_aryref, @params );
ok( arrays_match( $v_aryref, \@values ) );
}
###
|