initial commit
[urisagit/Sort-Maker.git] / t / arrays.t
1 #!/usr/local/bin/perl -sw
2
3 use strict ;
4
5 use lib 't' ;
6 use lib '..' ;
7 require 'common.pm' ;
8
9 my $sort_styles = [ qw( plain orcish ST GRT ) ] ;
10
11 my $sort_tests = [
12
13         {
14                 skip    => 0,
15                 name    => 'arrays of strings',
16                 data    => [ map {
17                                 [ rand_token( 8, 20 ) ]
18                         } 1 .. 100
19                 ],
20                 gold    => sub { $a->[0] cmp $b->[0] },
21                 args    => [ qw( string $_->[0] ) ],
22         },
23         {
24                 skip    => 0,
25                 name    => 'arrays of numbers',
26                 data    => [ map {
27                                 [ rand_number( 1, 20 ) ]
28                         } 1 .. 100
29                 ],
30                 gold    => sub { $a->[0] <=> $b->[0] },
31                 args    => [ qw( number $_->[0] ) ],
32         },
33         {
34                 skip    => 0,
35                 name    => 'arrays of multiple strings',
36                 source  => 0,
37                 data    => [ map {
38                                 [ rand_token( 8, 20 ), rand_token( 8, 20 ), ]
39                         } 1 .. 100
40                 ],
41                 gold    => sub { $a->[0] cmp $b->[0] ||
42                                  $a->[1] cmp $b->[1] },
43                 args    => [ qw( string $_->[0] string $_->[1] ) ],
44         },
45         {
46                 skip    => 0,
47                 name    => 'arrays of multiple numbers',
48                 data    => [ map {
49                                 [ rand_number( 1, 20 ), rand_number( 1, 20 ) ]
50                         } 1 .. 100
51                 ],
52                 gold    => sub { $a->[0] <=> $b->[0] ||
53                                  $a->[1] <=> $b->[1] },
54                 args    => [ qw( number $_->[0] number $_->[1] ) ],
55         },
56 ] ;
57
58 common_driver( $sort_tests, $sort_styles ) ;
59
60 exit ;