Mercurial > hg > audiodb
view tests/0007/run-test.sh @ 53:944f05e65a58
Fix what is I think an off-by-one in query and sequence searching.
When taking the mean of the N minimum distances, only consider those
distances which are closer than the infinite/uninitialized distance.
(This renders us potentially vulnerable to an internal consistency
horror where we end up trying to divide by zero. This is unlikely to be
picked up by unit tests, but might well be by random tests if this is in
fact a problem.)
author | mas01cr |
---|---|
date | Thu, 20 Sep 2007 08:50:35 +0000 |
parents | b46c50dfd3ee |
children | f258a0258755 |
line wrap: on
line source
#! /bin/sh . ../test-utils.sh # this is the same as tests/0006, except without the -l 1 to ask for a # sequence search of length 1; as of 2007-09-19, this causes # segfaults. The default behaviour might not be to work completely # without the -l 1, but it shouldn't segfault. (There's not much # that's sensible other than defaulting to -l 1, because the query # feature file is of length 1). if [ -f testdb ]; then rm -f testdb; fi ${AUDIODB} -d testdb -N intstring 2 > testfeature floatstring 0 1 >> testfeature floatstring 1 0 >> testfeature ${AUDIODB} -d testdb -I -f testfeature # sequence queries require L2NORM ${AUDIODB} -d testdb -L echo "query point (0.0,0.5)" intstring 2 > testquery floatstring 0 0.5 >> testquery ${AUDIODB} -d testdb -Q sequence -f testquery > testoutput echo testfeature 1 0 0 > test-expected-output cmp testoutput test-expected-output ${AUDIODB} -d testdb -Q sequence -f testquery -n 1 > testoutput echo testfeature 0 0 0 > test-expected-output cmp testoutput test-expected-output echo "query point (0.5,0.0)" intstring 2 > testquery floatstring 0.5 0 >> testquery ${AUDIODB} -d testdb -Q sequence -f testquery > testoutput echo testfeature 1 0 1 > test-expected-output cmp testoutput test-expected-output ${AUDIODB} -d testdb -Q sequence -f testquery -n 1 > testoutput echo testfeature 0 0 1 > test-expected-output cmp testoutput test-expected-output exit 104