#!/usr/bin/perl
throws_ok {
Algorithm::Huffman->new();
}
qr/undefined counting hash/
i,
"->new()"
;
throws_ok {
Algorithm::Huffman->new(
undef
);
}
qr/undefined counting hash/
i,
"->new(undef)"
;
throws_ok {
Algorithm::Huffman->new(\
undef
);
}
qr/not (a )?hash ref/
i,
"->new(\\undef)"
;
throws_ok {
Algorithm::Huffman->new([]);
}
qr/not (a )?hash ref/
i,
"->new([])"
;
throws_ok {
Algorithm::Huffman->new({});
}
qr/counting hash must have at least (two|2) keys/
i,
"->new({})"
;
throws_ok {
Algorithm::Huffman->new({
a
=> 1});
}
qr/counting hash must have at least (two|2) keys/
i,
"->new({a => 1})"
;
lives_ok {
Algorithm::Huffman->new({
a
=> 1,
b
=> 1});
}
"->new({a => 1, b => 1})"
;
throws_ok {
Algorithm::Huffman->new({
a
=> 1,
b
=> 1,
c
=>
'one'
})
}
qr/number/
i,
"->new({a => 1, b => 1, c => one})"
;
lives_ok {
Algorithm::Huffman->new({
a
=> 1,
b
=> 1,
c
=> 0})
}
"->new({a => 1, b => 1, c => 0})"
;
throws_ok {
Algorithm::Huffman->new({
a
=> 1,
b
=> 1,
c
=> -1})
}
qr/positive/
i,
"->new({a => 1, b => 1, c => -1})"
;