DR-Tnt
view release on metacpan or search on metacpan
t/010-comon/msgpack/020-unpack.t view on Meta::CPAN
}
for ('x' x 0x20, 'x' x 0xFF) {
is msgunpack(msgpack($_)), $_, "str " . length $_;
is length(msgpack $_), 2 + length $_, 'msgpack length';
}
for ('x' x 0x100, 'x' x 0xFFFF) {
is msgunpack(msgpack($_)), $_, "str " . length $_;
is length(msgpack $_), 3 + length $_, 'msgpack length';
}
for ('x' x 0x10000) {
is msgunpack(msgpack($_)), $_, "str " . length $_;
is length(msgpack $_), 5 + length $_, 'msgpack length';
}
for ('пÑивеÑ', 'медвед') {
my $us = encode utf8 => $_;
is msgunpack(msgpack($_)), $us, "no utf8 str '$_'";
is msgunpack_utf8(msgpack($_)), $_, "utf8 str '$_'";
}
for ([], [0], [1], [1 .. 0xF]) {
is_deeply msgunpack(msgpack($_)), $_, "fix array " . @$_;
}
for ({}, {0 .. 1}, { map { ($_, $_) } 1 .. 0xF }) {
is_deeply msgunpack(msgpack($_)), $_, "fix hash " . keys %$_;
}
note 'big object';
my $o = {
(0x00) => 1,
(0xFF) => 2,
(0xFFFF) => 3,
(0xFFFF_F) => 4,
(0xFFFF_FFFF) => 5,
(0xFFFF_FFFF + 1) => 6,
(-0x01) => 1,
(-0xFF) => 2,
(-0xFFFF) => 3,
(-0xFFFF_F) => 4,
(-0xFFFF_FFFF) => 5,
(-0xFFFF_FFFF - 7) => 6,
fixarray0 => [],
fixarrayF => [ 1 .. 0xF ],
fixhash0 => {},
fixhashF => { map { ($_ => $_ ** $_) } 1 .. 0xF },
double => 3.1415927,
fixstr => '',
fixstrmax => ('x' x 0x1F),
str8 => ('x' x 0xFF),
str16 => ('x' x 0xF000),
str32 => ('x' x 0x10000),
unicode => { 'пÑивеÑ' => 'медвед' },
deep => [
1 .. 10,
{
a => {
b => [
c => [
d => {
e => {
f => 'g'
}
}
]
]
}
}
]
};
is_deeply msgunpack_utf8(msgpack($o)), $o, 'o = msgunpack msgpack o';
( run in 1.560 second using v1.01-cache-2.11-cpan-39bf76dae61 )