/[SWISH-PlusPlus]/trunk/t/01swish.t
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Annotation of /trunk/t/01swish.t

Parent Directory Parent Directory | Revision Log Revision Log


Revision 22 - (hide annotations)
Tue Dec 7 16:05:43 2004 UTC (19 years, 4 months ago) by dpavlin
File MIME type: application/x-troff
File size: 2164 byte(s)
DEVELOPMENT STOPPED: it seems that swish++ isn't faster than swish-e if you
remove clever heuristics about english words. So, this project is abandoned.

1 dpavlin 2 #!/usr/bin/perl -w
2    
3     use strict;
4    
5 dpavlin 22 use Test::More tests => 56;
6 dpavlin 2 use Test::Exception;
7     use blib;
8    
9     BEGIN {
10     use_ok('SWISH::PlusPlus')
11     };
12    
13     my $i;
14    
15 dpavlin 10 throws_ok { SWISH::PlusPlus->new() } qr/index_dir/, "need index_dir";
16 dpavlin 2
17     ## FIXME
18     my $index = '/tmp/swish-pp';
19 dpavlin 22 my $debug = 0;
20     $debug = 4 if (@ARGV);
21 dpavlin 2
22 dpavlin 10 $i = SWISH::PlusPlus->new(
23 dpavlin 3 index_dir => $index,
24 dpavlin 9 meta_in_body => 1,
25 dpavlin 22 debug => $debug,
26 dpavlin 3 );
27     ok($i, "open index");
28 dpavlin 2
29     ok(-e $index, "index exist");
30 dpavlin 3
31 dpavlin 14 ok($i->{'cwd'}, "cwd ".$i->{'cwd'});
32    
33 dpavlin 3 ok($i->check_bin, "swish++ check");
34    
35 dpavlin 14 ok($i->{'version'}, "version ".$i->{'version'});
36 dpavlin 4
37     ok($i->index_document( 42 => 'meaning of life' ), "index 42");
38    
39 dpavlin 16 my $data = {
40 dpavlin 9 path => 'life',
41     title => 'Ultimate question answer found here',
42 dpavlin 11 body => '42 is answer to all questions',
43     meta => {
44     author => 'Dobrica Pavlinusic',
45     date => '2004-12-05',
46     comment => 'woow!',
47     },
48 dpavlin 16 };
49 dpavlin 9
50 dpavlin 16 ok($i->add( %{$data} ), "index life");
51    
52 dpavlin 4 # add one dummy document so that swish++ won't reject all words
53     # with index of just one document
54     ok($i->index_document( _dummy_ => '' ), "fillter");
55 dpavlin 7
56     cmp_ok($i->{'index_dir'}, 'eq', $index, "index_dir ok");
57 dpavlin 8
58 dpavlin 14 # I would rather test search to close it itself!
59     #$i->finish_update;
60    
61 dpavlin 8 foreach my $word (qw(meaning of life)) {
62     my @r = $i->search($word);
63     cmp_ok(scalar @r, '==', 1, "find $word");
64     }
65 dpavlin 9
66 dpavlin 22 # test_find('words to test against meta','meta', nr_results)
67 dpavlin 16 sub test_find {
68     my $words = shift || die "no words?";
69     my $meta = shift;
70 dpavlin 22 my $nr = shift;
71 dpavlin 16
72 dpavlin 22 $nr = 1 unless defined($nr);
73    
74 dpavlin 16 foreach my $word (split(/\s+/,$words)) {
75     my $path;
76     my $q = $word;
77     $q = "$meta=($word)" if ($meta);
78    
79     my @r = $i->search($q);
80 dpavlin 22 cmp_ok(scalar @r, '==', $nr, "search $q - $nr results");
81 dpavlin 16 if ($meta) {
82     like($i->property(shift @r, $meta), qr/$word/i, "find $word in $meta property");
83 dpavlin 22 cmp_ok(scalar $i->search("$word"), '==', $nr, "find $word anywhere -- $nr results");
84 dpavlin 16 }
85    
86     }
87 dpavlin 9 }
88 dpavlin 11
89 dpavlin 16 test_find($data->{'body'});
90    
91     foreach (qw(title author date comment)) {
92     test_find(( $data->{$_} || $data->{'meta'}->{$_} ), $_);
93 dpavlin 11 }
94    
95 dpavlin 22 ok($i->delete("life"), "delete life");
96     ok($i->{'_deleted'}->{'life'}, "life marked as deleted");
97    
98     ok($i->finish_update, "finish_update");
99    
100     test_find($data->{'body'}, undef, '0');

Properties

Name Value
svn:executable *

  ViewVC Help
Powered by ViewVC 1.1.26