1 |
dpavlin |
33 |
#!/usr/bin/perl |
2 |
|
|
|
3 |
dpavlin |
44 |
use Test::More tests => 25; |
4 |
dpavlin |
36 |
use Data::Dump qw(dump); |
5 |
dpavlin |
33 |
|
6 |
|
|
use lib 'lib'; |
7 |
|
|
|
8 |
|
|
BEGIN { |
9 |
|
|
use_ok( 'Sack::Digest' ); |
10 |
|
|
} |
11 |
|
|
|
12 |
dpavlin |
34 |
ok( Sack::Digest->clean, 'clean' ); |
13 |
|
|
|
14 |
dpavlin |
33 |
ok( my $o = Sack::Digest->open( 0 ), 'open' ); |
15 |
|
|
|
16 |
dpavlin |
44 |
my @full = qw( foo bar baz ); |
17 |
dpavlin |
33 |
|
18 |
dpavlin |
44 |
foreach my $full ( @full ) { |
19 |
|
|
|
20 |
dpavlin |
34 |
ok( my $nr = Sack::Digest->to_int( $full ), "to_int $full" ); |
21 |
|
|
ok( $nr =~ m/^\d+$/, 'int' ); |
22 |
|
|
|
23 |
|
|
cmp_ok( Sack::Digest->from_int( $nr ), 'eq', $full, "from_int $nr" ); |
24 |
|
|
|
25 |
|
|
} |
26 |
|
|
|
27 |
|
|
cmp_ok( Sack::Digest->from_int( 42 ), '==', 42, 'from_int missing' ); |
28 |
|
|
|
29 |
dpavlin |
44 |
ok( Sack::Digest->info, 'info' ); |
30 |
|
|
|
31 |
|
|
ok( Sack::Digest->sync, 'sync' ); |
32 |
|
|
|
33 |
dpavlin |
34 |
ok( Sack::Digest->close, 'close' ); |
34 |
dpavlin |
36 |
|
35 |
|
|
ok( Sack::Digest->open(0), 'open again' ); |
36 |
|
|
|
37 |
|
|
my $out = { |
38 |
|
|
"CR#+" => { 1=>1, 2=>1, 3=>1, 4=>1, 5=>1 } |
39 |
|
|
}; |
40 |
|
|
|
41 |
|
|
ok( my $full = Sack::Digest->undigest_out( $out ), 'undigest_out' ); |
42 |
|
|
diag dump $full; |
43 |
dpavlin |
43 |
is_deeply( $full, { "CR#+" => { 4 => 1, 5 => 1, bar => 1, baz => 1, foo => 1 } }, 'undigested' ); |
44 |
dpavlin |
36 |
|
45 |
dpavlin |
44 |
foreach ( 1 .. $#full + 1 ) { |
46 |
|
|
ok( my $undigested = Sack::Digest->undigest_node_k_v( 0, 'CR#+' => $_ ), "undigest_node_k_v $_" ); |
47 |
|
|
diag "$_ -> $undigested"; |
48 |
|
|
cmp_ok( $undigested, 'eq', $full[$_-1], "undigested $_" ) |
49 |
|
|
} |
50 |
|
|
|