1# -*- Mode: CPerl -*-
2
3use strict;
4use warnings;
5
6use Test::More 'no_plan';
7
8BEGIN { use_ok('Hash::MultiKey') }
9
10tie my (%hmk), 'Hash::MultiKey';
11
12my @mk = (["foo"],
13          ["foo", "bar", "baz"],
14          ["foo", "bar", "baz", "zoo"],
15          ["goo"],
16          ["goo", "car", "caz"],
17          ["goo", "car", "caz", "aoo"],
18          ["branch", "with", "no", "bifur$;ations"],);
19
20my @v = (undef,
21         1,
22         'string',
23         ['array', 'ref'],
24         {hash => 'ref', with => 'three', keys => undef},
25         \7,
26         undef,);
27
28# initialize %hmk, check value returned by STORE as well
29is_deeply($hmk{$mk[$_]} = $v[$_], $v[$_], 'storing') foreach 0..$#mk;
30
31# fetch values
32is_deeply($hmk{$mk[$_]}, $v[$_], "fetch key $_") foreach 0..$#mk;
33
34
35