# show that sorting has changed from 5.6.1 to 5.8.8
use strict;
use warnings;
use Test::More tests => 1;
# I would expect ties to come out in the order in which they are
# received. 5.8.8 seems to do that, 5.6.1 does not.
my @unordered = (
{ pos => 3, val => 0 },
{ pos => 5, val => 1 },
{ pos => 4, val => 0 },
{ pos => 1, val => -1 },
{ pos => 2, val => -1 },
{ pos => 6, val => 1 },
{ pos => 0, val => -2 },
);
my @ordered = sort { $a->{pos} <=> $b->{pos} } @unordered;
my @result = sort { $a->{val} <=> $b->{val} } @unordered;
is_deeply( \@result, \@ordered );
diag("Your Perl is $].");
diag( "expected val: " . join( ",", map { $_->{val} } @ordered ) );
diag( " result val: " . join( ",", map { $_->{val} } @result ) );
diag( "expected pos: " . join( ",", map { $_->{pos} } @ordered ) );
diag( " result pos: " . join( ",", map { $_->{pos} } @result ) );
####
1..1
ok 1
# Your Perl is 5.008008.
# expected val: -2,-1,-1,0,0,1,1
# result val: -2,-1,-1,0,0,1,1
# expected pos: 0,1,2,3,4,5,6
# result pos: 0,1,2,3,4,5,6
####
1..1
not ok 1
# Failed test at wtf.pl line 24.
# Structures begin differing at:
# $got->[5]{pos} = '6'
# $expected->[5]{pos} = '5'
# Your Perl is 5.006001.
# expected val: -2,-1,-1,0,0,1,1
# result val: -2,-1,-1,0,0,1,1
# expected pos: 0,1,2,3,4,5,6
# result pos: 0,1,2,3,4,6,5
# Looks like you failed 1 test of 1.