annotate tests/0044/run-test.sh @ 548:e18843dc0aea

Implement a rudimentary API for audioDB::liszt The API is rudimentary because we've dropped support for the incremental retrieval of tracks and their number of vectors (at the API level; the SOAP and command-line support is still there -- no changes should be visible). This is potentially bad for the large-scale databases, of course; one million tracks will take of the order of 16MB of RAM, more if I'm unlucky about how std::string.c_str() is implemented. Both this liszt operation and querying (and sampling, forthcoming...) would benefit from a `cursor-like' interface to retrieval results: for an API like that, instead of getting a struct with the data there, you get a cookie with which you can ask the database for successive results. This would be neat for all sorts of reasons. In the meantime, at least this change fixes SOAP memory leaks related to liszt. Make liszt.o part of LIBOBJS rather than ordinary OBJS, so that the liszt functionality is actually compiled into the library. Add a test for this library functionality; also modify the command-line test file to run the SOAP server on its own port.
author mas01cr
date Wed, 11 Feb 2009 12:38:03 +0000
parents a6edbe97fddf
children
rev   line source
mas01mc@340 1 #! /bin/bash
mas01mc@340 2
mas01mc@340 3 . ../test-utils.sh
mas01mc@340 4
mas01mc@340 5 if [ -f testdb ]; then rm -f testdb; fi
mas01mc@340 6
mas01mc@340 7 ${AUDIODB} -d testdb -N
mas01mc@340 8
mas01mc@340 9 intstring 2 > testfeature
mas01mc@340 10 floatstring 0 1 >> testfeature
mas01mc@340 11 floatstring 1 0 >> testfeature
mas01mc@340 12 floatstring 1 0 >> testfeature
mas01mc@340 13 floatstring 0 1 >> testfeature
mas01mc@340 14
mas01mc@340 15 intstring 1 > testpower
mas01mc@340 16 floatstring -0.5 >> testpower
mas01mc@340 17 floatstring -1 >> testpower
mas01mc@340 18 floatstring -1 >> testpower
mas01mc@340 19 floatstring -0.5 >> testpower
mas01mc@340 20
mas01mc@340 21 expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature -w testpower
mas01mc@340 22 ${AUDIODB} -d testdb -P
mas01mc@340 23 expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature
mas01mc@340 24 ${AUDIODB} -d testdb -I -f testfeature -w testpower -k testfeature1
mas01mc@340 25
mas01mc@340 26 # sequence queries require L2NORM
mas01mc@340 27 ${AUDIODB} -d testdb -L
mas01mc@340 28
mas01mc@340 29 echo "query points (0.0,0.5),(0.0,0.5),(0.5,0.0)"
mas01mc@340 30 intstring 2 > testquery
mas01mc@340 31 floatstring 0 0.5 >> testquery
mas01mc@340 32 floatstring 0 0.5 >> testquery
mas01mc@340 33 floatstring 0.5 0 >> testquery
mas01mc@340 34
mas01mc@340 35 # LSH Indexing tests
mas01mc@340 36
mas01mc@340 37 # Indexing requires a radius (-R)
mas01mc@340 38 expect_clean_error_exit ${AUDIODB} -d testdb -X -l 1
mas01mc@340 39
mas01mc@340 40 # Merged index
mas01mc@340 41 ${AUDIODB} -d testdb -I -f testfeature -w testpower -k testfeature2
mas01mc@340 42
mas01mc@340 43 if [ -f testdb.lsh* ]; then
mas01mc@340 44 rm testdb.lsh*
mas01mc@340 45 fi
mas01mc@340 46
mas01mc@340 47 ${AUDIODB} -d testdb -X -l 1 -R 1 --lsh_b 1
mas01mc@340 48
mas01mc@340 49 # Query using the index
mas01mc@340 50
mas01mc@340 51 ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -R 1 > testoutput
mas01mc@340 52 echo testfeature1 1 > test-expected-output
mas01mc@340 53 echo testfeature2 1 >> test-expected-output
mas01mc@340 54 cmp testoutput test-expected-output
mas01mc@340 55
mas01mc@340 56 ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -p 0 -R 1 > testoutput
mas01mc@340 57 echo testfeature1 1 > test-expected-output
mas01mc@340 58 echo testfeature2 1 >> test-expected-output
mas01mc@340 59 cmp testoutput test-expected-output
mas01mc@340 60
mas01mc@340 61 ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -p 1 -R 1 > testoutput
mas01mc@340 62 echo testfeature1 1 > test-expected-output
mas01mc@340 63 echo testfeature2 1 >> test-expected-output
mas01mc@340 64 cmp testoutput test-expected-output
mas01mc@340 65
mas01mc@340 66 ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -e -R 1 > testoutput
mas01mc@340 67 echo testfeature1 3 > test-expected-output
mas01mc@340 68 echo testfeature2 3 >> test-expected-output
mas01mc@340 69 cmp testoutput test-expected-output
mas01mc@340 70
mas01mc@340 71 ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -e -R 1 --lsh_exact > testoutput
mas01mc@340 72 echo testfeature1 3 > test-expected-output
mas01mc@340 73 echo testfeature2 3 >> test-expected-output
mas01mc@340 74 cmp testoutput test-expected-output
mas01mc@340 75
mas01mc@340 76 exit 104