#!/usr/bin/perl -w my $loaded; use strict; BEGIN { $| = 1; print "1..12\n"; } END { print "not ok 1\n" unless $loaded; } use Tie::Hash::Longest; $loaded=1; print "ok 1\n"; # Create a T::H::L and populate it tie my %hash, 'Tie::Hash::Longest'; $hash{a} = 'ant'; $hash{b} = 'bear'; $hash{c} = 'crocodile'; $hash{ant} = 'a'; $hash{bear} = 'b'; $hash{crocodile} = 'c'; # Check to see if it stores and fetches correctly :-) print "not " unless( join('', map { $_.$hash{$_} } sort keys %hash) eq 'aantantabbearbearbccrocodilecrocodilec' ); print "ok 2\n"; # check that longestkey/value work print "not " unless(tied(%hash)->longestkey() eq 'crocodile'); print "ok 3\n"; print "not " unless(tied(%hash)->longestvalue() eq 'crocodile'); print "ok 4\n"; $hash{d}='D'; # Check that exists and delete work print "not " unless(exists($hash{a}) && !exists($hash{e})); print "ok 5\n"; print "not " unless(delete($hash{d}) && !exists($hash{d})); print "ok 6\n"; # that delete shouldn't have even set a flag # and that longestkey/value still work print "not " unless(tied(%hash)->longestkey() eq 'crocodile'); print "ok 7\n"; print "not " unless(tied(%hash)->longestvalue() eq 'crocodile'); print "ok 8\n"; # now set flags by deleting the longest ... delete $hash{crocodile}; delete $hash{c}; # check workingness ... print "not " unless(tied(%hash)->longestkey() eq 'bear'); print "ok 9\n"; print "not " unless(tied(%hash)->longestvalue() eq 'bear'); print "ok 10\n"; # change something to make it the longest ... $hash{a} = 'archaeopteryx'; print "not " unless(tied(%hash)->longestvalue() eq 'archaeopteryx'); print "ok 11\n"; # change something to make it shorter ... $hash{a} = 'ant'; print "not " unless(tied(%hash)->longestvalue() eq 'bear'); print "ok 12\n";