XAO-Indexer
view release on metacpan or search on metacpan
t/testcases/Indexer/search.pm view on Meta::CPAN
text => 'foo_32,foo_147,foo_91',
use_oid => 1,
},
t20 => {
query => $ucwords[0],
text => '162,154,153,168,157,165,151,169,158,166,161,170,167,155,164,163',
},
t21 => {
query => $ucwords[1],
text => '162,154,168,169,158,152,161,170,160,156,167,155,164,163',
},
t22 => {
query => $ucwords[5],
text => '162,154,153,168,157,165,151,169,158,152,166,161,170,160,156,164',
},
t23 => {
query => $ucwords[6],
text => '162,154,153,168,165,151,169,166,160,156,167,155,164,163',
},
t24 => {
query => qq("$ucwords[5] $ucwords[5]"),
text => '154',
},
t25 => {
query => qq($ucwords[0] $ucwords[1]),
text => '162,154,168,169,158,161,170,167,155,164,163',
},
t26 => {
query => qq($ucwords[0] $ucwords[1] $ucwords[2]),
text => '168,158,161,170,167,155,164,163',
},
t27 => {
query => qq($ucwords[0] $ucwords[1] $ucwords[2] $ucwords[3]),
text => '168,158,161,167,164,163',
},
t28 => {
query => qq($ucwords[0] $ucwords[1] $ucwords[2] $ucwords[3] $ucwords[4] $ucwords[5] $ucwords[6]),
text => '168,164',
},
t29 => {
query => qq("$ucwords[3] $ucwords[4] $ucwords[5]"),
text => '161',
},
t30 => {
query => qq(birkh user),
text => '',
},
t31 => {
query => qq(trang),
text => '',
},
);
foreach my $test_id (keys %matrix) {
my $test=$matrix{$test_id};
my $query=$test->{'query'};
foreach my $oname (sort keys %$test) {
next if $oname eq 'query';
next if $oname eq 'ignored';
next if $oname eq 'use_oid';
my %rcdata;
my $sr;
if($test->{'ignored'}) {
$sr=$test->{'use_oid'} ? $foo_index->search_by_string_oid($oname,$query,\%rcdata)
: $foo_index->search_by_string($oname,$query,\%rcdata);
foreach my $w (keys %{$test->{'ignored'}}) {
my $expect=$test->{'ignored'}->{$w};
my $got=$rcdata{'ignored_words'}->{$w};
if(defined $expect) {
$self->assert(defined($got),
"Expected '$w' to be ignored, but it is not");
$self->assert($got == $expect,
"Expected count $expect on ignored $w, got $got");
}
else {
$self->assert(!defined($got),
"Expected '$w' not to be ignored, but it is (count=".($got||'').")");
}
}
}
else {
$sr=$test->{'use_oid'} ? $foo_index->search_by_string_oid($oname,$query)
: $foo_index->search_by_string($oname,$query);
}
my $got=join(',',@$sr);
my $expect=$test->{$oname};
if($got ne $expect) {
dprint "===>>>> test=$test_id o=$oname got='$got' expected='$expect'";
dprint ">>>Q='$query'";
if(@$sr && !$test->{'use_oid'}) {
my $coll=$foo_index->get_collection_object;
for(my $i=0; $i<5 && $i<@$sr; ++$i) {
my $obj=$coll->get($sr->[$i]);
my ($name,$text)=$obj->get('name','text');
dprint ">>>>i=$i, id=$sr->[$i]";
dprint ">>>>>name='$name'";
dprint ">>>>>text='$text'";
}
}
}
$self->assert($got eq $expect,
"Test $test_id, ordering $oname, expected $expect, got $got");
}
}
}
###############################################################################
1;
( run in 1.291 second using v1.01-cache-2.11-cpan-6aa56a78535 )