mas01cr@252: #! /bin/bash mas01cr@196: mas01cr@196: . ../test-utils.sh mas01cr@196: mas01cr@196: if [ -f testdb ]; then rm -f testdb; fi mas01cr@196: mas01cr@196: ${AUDIODB} -d testdb -N mas01cr@196: mas01cr@196: intstring 2 > testfeature01 mas01cr@196: floatstring 0 1 >> testfeature01 mas01cr@196: intstring 2 > testfeature10 mas01cr@196: floatstring 1 0 >> testfeature10 mas01cr@196: mas01cr@196: ${AUDIODB} -d testdb -I -f testfeature01 mas01cr@196: ${AUDIODB} -d testdb -I -f testfeature10 mas01cr@196: mas01cr@196: # sequence queries require L2NORM mas01cr@196: ${AUDIODB} -d testdb -L mas01cr@196: mas01cr@196: echo "query point (0.0,0.5)" mas01cr@196: intstring 2 > testquery mas01cr@196: floatstring 0 0.5 >> testquery mas01cr@196: mas01cr@196: ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput mas01cr@196: echo testfeature01 1 > test-expected-output mas01cr@196: echo testfeature10 1 >> test-expected-output mas01cr@196: cmp testoutput test-expected-output mas01cr@196: ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K /dev/null -R 5 > testoutput mas01cr@196: cat /dev/null > test-expected-output mas01cr@196: cmp testoutput test-expected-output mas01cr@196: mas01cr@196: echo testfeature01 > testkl.txt mas01cr@196: ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -R 5 > testoutput mas01cr@196: echo testfeature01 1 > test-expected-output mas01cr@196: cmp testoutput test-expected-output mas01cr@196: echo testfeature10 > testkl.txt mas01cr@196: ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -R 5 > testoutput mas01cr@196: echo testfeature10 1 > test-expected-output mas01cr@196: cmp testoutput test-expected-output mas01cr@196: mas01cr@196: echo testfeature10 > testkl.txt mas01cr@196: ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 -R 5 > testoutput mas01cr@196: echo testfeature10 1 > test-expected-output mas01cr@196: cmp testoutput test-expected-output mas01cr@196: mas01cr@196: # NB: one might be tempted to insert a test here for having both keys mas01cr@196: # in the keylist, but in non-database order, and then checking that mas01cr@196: # the result list is also in that non-database order. I think that mas01cr@196: # would be misguided, as the efficient way of dealing with such a mas01cr@196: # keylist is to advance as-sequentially-as-possible through the mas01cr@196: # database; it just so happens that our current implementation is not mas01cr@196: # so smart. mas01cr@196: mas01cr@196: echo "query point (0.5,0.0)" mas01cr@196: intstring 2 > testquery mas01cr@196: floatstring 0.5 0 >> testquery mas01cr@196: mas01cr@196: ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput mas01cr@196: echo testfeature01 1 > test-expected-output mas01cr@196: echo testfeature10 1 >> test-expected-output mas01cr@196: cmp testoutput test-expected-output mas01cr@196: mas01cr@196: echo testfeature10 > testkl.txt mas01cr@196: ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 -R 5 > testoutput mas01cr@196: echo testfeature10 1 > test-expected-output mas01cr@196: cmp testoutput test-expected-output mas01cr@196: mas01cr@196: exit 104