The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;
use Data::MessagePack;
use Test::More;
use t::Util;

my @input = (
    [[]],
    [[],[]],
    [{"a" => 97},{"a" => 97}],
    [{"a" => 97},{"a" => 97},{"a" => 97}],
    [ map { +{ "foo $_" => "bar $_" } } 'aa' .. 'zz' ],
    [42, null],
    [42, true],
    [42, false],
);

plan tests => @input * 2;

for my $input (@input) {
    my $packed = Data::MessagePack->pack($input);
    my $up = Data::MessagePack::Unpacker->new();
    $up->execute($packed, 0);
    ok $up->is_finished, 'finished';
    is_deeply($up->data, $input);
}