#! /bin/sh
#
# Test for namazu. with MaxHit, MaxMatch.
#
LOG=`pwd`/test-log
TMP=`pwd`/tmp
IDX=`pwd`/idx8
echo '  *** starting ' $0 >>$LOG

MSG0='No document matching your query.'
MSG1='Too many documents hit. Ignored'
MSG2='Too many words matched. Ignored'

# To make messages English
LANG= ; export LANG
unset LANGUAGE
unset LC_ALL
unset LC_MESSAGES

cd ../src

# Tests for MaxHit.
#   foo => 1 page indexed.
#   bar => 2 page indexed.
#   baz => 3 page indexed.

echo "MaxHit 0" > $TMP
./namazu -f $TMP 'foo' $IDX | grep "$MSG1" > /dev/null || exit 1
./namazu -f $TMP 'bar' $IDX | grep "$MSG1" > /dev/null || exit 1
./namazu -f $TMP 'baz' $IDX | grep "$MSG1" > /dev/null || exit 1

echo "MaxHit 1" > $TMP
./namazu -f $TMP 'foo' $IDX | grep "$MSG1" > /dev/null && exit 1
./namazu -f $TMP 'bar' $IDX | grep "$MSG1" > /dev/null || exit 1
./namazu -f $TMP 'baz' $IDX | grep "$MSG1" > /dev/null || exit 1
./namazu -f $TMP 'foo and bzz' $IDX | grep "$MSG0" > /dev/null || exit 1

echo "MaxHit 2" > $TMP
./namazu -f $TMP 'foo' $IDX | grep "$MSG1" > /dev/null && exit 1
./namazu -f $TMP 'bar' $IDX | grep "$MSG1" > /dev/null && exit 1
./namazu -f $TMP 'baz' $IDX | grep "$MSG1" > /dev/null || exit 1

echo "MaxHit 3" > $TMP
./namazu -f $TMP 'foo' $IDX | grep "$MSG1" > /dev/null && exit 1
./namazu -f $TMP 'bar' $IDX | grep "$MSG1" > /dev/null && exit 1
./namazu -f $TMP 'baz' $IDX | grep "$MSG1" > /dev/null && exit 1

# Tests for MaxMatch.
#   f* => 1 word matched.	(foo)
#   b* => 2 words matched.	{bar,baz}

echo "MaxMatch 0" > $TMP
./namazu -f $TMP 'f*' $IDX | grep "$MSG2" > /dev/null || exit 1
./namazu -f $TMP 'b*' $IDX | grep "$MSG2" > /dev/null || exit 1

echo "MaxMatch 1" > $TMP
./namazu -f $TMP 'f*' $IDX | grep "$MSG2" > /dev/null && exit 1
./namazu -f $TMP 'b*' $IDX | grep "$MSG2" > /dev/null || exit 1

echo "MaxMatch 2" > $TMP
./namazu -f $TMP 'f*' $IDX | grep "$MSG2" > /dev/null && exit 1
./namazu -f $TMP 'b*' $IDX | grep "$MSG2" > /dev/null && exit 1

rm -f $TMP

exit 0
