The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More;
use strict; use warnings FATAL => 'all';

use List::Objects::WithUtils 'array';

my $arr = array(1, 2, 3);
my $shuffled = $arr->shuffle;

ok
  $shuffled->has_any(sub { $_ == 1 })
  && $shuffled->has_any(sub { $_ == 2 })
  && $shuffled->has_any(sub { $_ == 3 })
  && $shuffled->count == 3,
  'shuffle() ok';

is_deeply
  [ $arr->all ],
  [ 1, 2, 3 ],
  'original array intact';


ok array->shuffle->is_empty, 'empty array shuffle ok';

done_testing;