#!/usr/local/bin/perl -sw use strict ; use lib 't' ; use lib '..' ; require 'common.pm' ; use vars '$bench' ; #my @sort_styles = qw( plain ) ; my @sort_styles = qw( plain orcish ST GRT ) ; #my @string_keys = map rand_alpha( 4, 8 ), 1 .. 5 ; my @string_keys = map rand_alpha( 4, 8 ), 1 .. 100 ; #print "STR @string_keys NUM @number_keys\n" ; my $sort_tests = [ { skip => 0, name => 'regex code', gen => sub { rand_choice( @string_keys ) }, gold => sub { ($a =~ /(\w+)/)[0] cmp ($b =~ /(\w+)/)[0] }, args => { string => [ qw( string /(\w+)/ ) ], qr => [ string => qr/(\w+)/ ], code => [ string => sub { /(\w+)/ } ], } }, { skip => 0, name => 'array code', data => [ map { [ rand_token( 8, 20 ) ] } 1 .. 100 ], gold => sub { $a->[0] cmp $b->[0] }, args => { string => [ qw( string $_->[0] ) ], code => [ string => sub { $_->[0] } ], } }, { skip => 0, name => 'hash code', data => [ map { { a => rand_token( 8, 20 ) } } 1 .. 100 ], gold => sub { $a->{a} cmp $b->{a} }, args => { string => [ qw( string $_->{a} ) ], code => [ string => sub { $_->{a} } ], } }, ] ; common_driver( $sort_tests, \@sort_styles ) ; exit ;