#!perl -T use strict; use warnings; use Test::More; use Hatena::Keyword::Similar; BEGIN { eval { use File::Temp qw(tempdir); use Cache::File; }; plan $@ ? (skip_all => 'It requires File::Temp and Cache::File for testing') : (tests => 6); } my $cache_root = tempdir(CLEANUP => 1); my $cache = Cache::File->new( cache_root => $cache_root, default_expires => "600 sec", ); my @words = qw(Perl Ruby); my @result; push @result, scalar Hatena::Keyword::Similar->similar(@words, { cache => $cache }); push @result, scalar Hatena::Keyword::Similar->similar(@words, { cache => $cache }); ok @result == 2; ok $cache->count == 1; is join('', @{$result[0]}), join('', @{$result[1]}); @words = qw(Perl Python Ruby); push @result, scalar Hatena::Keyword::Similar->similar(@words, { cache => $cache }); ok @result == 3; ok $cache->count == 2; isnt join('', @{$result[1]}), join('', @{$result[2]});