1 #!/usr/local/bin/perl -sw
9 my @sort_styles = qw( plain orcish ST GRT ) ;
15 name => 'unsigned float',
16 gold => sub { $a <=> $b },
18 rand_number( 0, 99999 ) *
19 10 ** rand_number( -10, 3 )
21 args => [ qw( number unsigned_float ) ],
25 name => 'signed float',
26 gold => sub { $a <=> $b },
28 rand_number( -99999, 99999 ) *
29 10 ** rand_number( -10, 3 )
31 args => [ qw( number signed_float ) ],
35 name => 'unsigned integer',
36 gold => sub { $a <=> $b },
37 gen => sub { int rand_number( 0, 99999999 ) },
38 args => [ qw( number unsigned ) ],
42 name => 'signed integer',
43 gold => sub { $a <=> $b },
44 gen => sub { int rand_number( -99999, 99999 ) },
45 args => [ qw( number signed ) ],
49 name => 'unsigned float edge case',
50 gold => sub { $a <=> $b },
51 data => [ reverse 0 .. 100 ],
52 args => [ qw( number unsigned_float ) ],
56 name => 'signed float edge case',
57 gold => sub { $a <=> $b },
58 data => [ reverse -100 .. 100 ],
59 args => [ qw( number signed_float ) ],
63 name => 'unsigned integer edge case',
64 gold => sub { $a <=> $b },
65 data => [ reverse 0 .. 100 ],
66 args => [ qw( number unsigned ) ],
70 name => 'signed integer edge case',
71 gold => sub { $a <=> $b },
72 data => [ -99999, 0, -999 .. 999, 99999 ],
73 args => [ qw( number signed ) ],
77 name => 'unsigned float descending',
78 gold => sub { $b <=> $a },
80 rand_number( 0, 99999 ) *
81 10 ** rand_number( -10, 3 )
83 args => [ qw( number unsigned_float descending ) ],
87 name => 'signed float descending',
88 gold => sub { $b <=> $a },
90 rand_number( -99999, 99999 ) *
91 10 ** rand_number( -10, 3 )
93 args => [ qw( number signed_float descending ) ],
97 name => 'unsigned integer descending',
98 gold => sub { $b <=> $a },
99 gen => sub { int rand_number( 0, 99999999 ) },
100 args => [ qw( number unsigned descending) ],
104 name => 'signed integer descending',
105 gold => sub { $b <=> $a },
106 gen => sub { int rand_number( -99999, 99999 ) },
107 args => [ qw( number signed descending ) ],
111 name => 'unsigned float edge case descending',
112 gold => sub { $b <=> $a },
113 data => [ reverse 0 .. 100 ],
114 args => [ qw( number unsigned_float descending ) ],
118 name => 'signed float edge case descending',
119 gold => sub { $b <=> $a },
120 data => [ reverse -100 .. 100 ],
121 args => [ qw( number signed_float descending ) ],
125 name => 'unsigned integer edge case descending',
126 gold => sub { $b <=> $a },
127 data => [ reverse 0 .. 100 ],
128 args => [ qw( number unsigned descending ) ],
132 name => 'signed integer edge case descending',
133 gold => sub { $b <=> $a },
134 data => [ -99999, 0, -999 .. 999, 99999 ],
135 args => [ qw( number signed descending ) ],
140 common_driver( $sort_tests, \@sort_styles ) ;