#!/usr/local/bin/perl -sw
use strict ;
use lib 't' ;
use lib '..' ;
require 'common.pm' ;
my @sort_styles = qw( GRT ) ;
my $sort_tests = [
{
skip => 0,
name => 'simple string',
data => [ qw( z e a k ) ],
gold => sub { $a cmp $b },
args => [ qw( string ) ],
},
{
skip => 0,
name => 'unsigned integer',
data => [ 32, 2, 9, 7 ],
gold => sub { $a <=> $b },
args => [ qw( unsigned number ) ],
},
{
skip => 0,
name => 'unsigned integer descending',
data => [ 32, 2, 9, 7 ],
gold => sub { $b <=> $a },
args => [ qw( unsigned number descending ) ],
},
{
skip => 0,
name => 'signed integer',
data => [ 32, -2, 9, -7 ],
gold => sub { $a <=> $b },
args => [ qw( signed number ) ],
},
{
skip => 0,
name => 'signed integer descending',
data => [ 32, -2, 9, -7 ],
gold => sub { $b <=> $a },
args => [ qw( signed number descending ) ],
},
{
skip => 0,
name => 'unsigned float',
data => [ 32, 2, 9, 7 ],
gold => sub { $a <=> $b },
args => [ qw( unsigned_float number ) ],
},
{
skip => 0,
name => 'unsigned float descending',
data => [ 32, 2, 9, 7.0, 7.1 ],
gold => sub { $b <=> $a },
args => [ qw( unsigned_float number descending ) ],
},
{
skip => 0,
name => 'signed float',
data => [ 32, -2, 9, -7 ],
gold => sub { $a <=> $b },
args => [ qw( signed_float number ) ],
},
{
skip => 0,
name => 'signed float descending',
data => [ 32, -2, 9, -7.0, -7.1 ],
gold => sub { $b <=> $a },
args => [ qw( signed_float number descending ) ],
},
{
skip => 0,
name => 'plain string',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ) ],
gold => sub { $a cmp $b },
args => [ qw( string ) ],
},
{
skip => 0,
name => 'plain string no_case',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ) ],
gold => sub { uc $a cmp uc $b },
args => [ qw( no_case string ) ],
},
{
skip => 0,
name => 'fixed string',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { $a cmp $b },
args => [ qw( string fixed 6 ) ],
},
{
skip => 0,
name => 'string no_case fixed',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { uc $a cmp uc $b },
args => [ qw( string no_case fixed 6 ) ],
},
{
skip => 0,
name => 'string descending fixed',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { $b cmp $a },
args => [ qw( string descending fixed 6 ) ],
},
{
skip => 0,
name => 'string no_case descending fixed',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { uc $b cmp uc $a },
args => [ qw( string no_case descending fixed 6 ) ],
},
{
skip => 0,
name => 'varying string',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { $a cmp $b },
args => [ qw( string varying ) ],
},
{
skip => 0,
name => 'string no_case varying',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { uc $a cmp uc $b },
args => [ qw( string no_case varying ) ],
},
{
skip => 0,
name => 'string descending varying',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { $b cmp $a },
args => [ qw( string descending varying ) ],
},
{
skip => 0,
name => 'string no_case descending varying',
data => [ qw( bdhd BDhd wxj ayewwq rjjx ), "w\0j" ],
gold => sub { uc $b cmp uc $a },
args => [ qw( string no_case descending varying ) ],
},
] ;
common_driver( $sort_tests, \@sort_styles ) ;
exit ;