Algorithm-BinPack

 view release on metacpan or  search on metacpan

t/Algorithm-BinPack.t  view on Meta::CPAN


BEGIN { use_ok('Algorithm::BinPack') };

my $bp = Algorithm::BinPack->new(binsize => 4);

isa_ok($bp, "Algorithm::BinPack");
is($bp->{binsize}, 4);

$bp->add_item(label => 'one',   size => 1);
$bp->add_item(label => 'two',   size => 2);
$bp->add_item(label => 'three', size => 3, misc => "This item is the best");
$bp->add_item(label => 'four',  size => 4, desc => "The fourth item");

my @bins = $bp->pack_bins;

# check pack order
is($bins[0]{items}[0]{label}, "four");
is($bins[1]{items}[0]{label}, "three");
is($bins[1]{items}[1]{label}, "one");
is($bins[2]{items}[0]{label}, "two");

t/Algorithm-BinPack.t  view on Meta::CPAN

# check pack order
is($bins[0]{items}[0]{label}, "four");
is($bins[1]{items}[0]{label}, "three");
is($bins[1]{items}[1]{label}, "one");
is($bins[2]{items}[0]{label}, "manual");
is($bins[3]{items}[0]{label}, "another");
is($bins[4]{items}[0]{label}, "two");

# check extra keys
is($bins[0]{items}[0]{desc},   "The fourth item");
is($bins[1]{items}[0]{misc},   "This item is the best");
is($bins[2]{items}[0]{manual}, "Item was added manually");
is($bins[3]{items}[0]{meta},   "data");

# capture and test warning messages
my $warning;
$SIG{__WARN__} = sub { $warning = $_[0] };

# check for missing arguments
my @add_items = (
    [qw(label five)],



( run in 0.893 second using v1.01-cache-2.11-cpan-4e96b696675 )