Mercurial > hg > audiodb
view tests/0042/run-test.sh @ 453:16a903968d18 api-inversion
Almost finish with audioDB::query_loop.
This patch is a little bit noisy, because we rename adb->keys to
adb->keymap, introduce a new vector adb->keys (essentially to replace
fileTable), and introduce new functionality (both include and exclude
keylists in adb_query_refine_t) as well as modifying the query_loop
function itself to take advantage of all of these goodies. Oh, and we
also fix an embarrassing state bug in adb->track_offsets for insert --
what was I thinking? (Thank you, regression test suites). Since we are
on a private branch at the moment, we can take the luxury of renumbering
the ADB_REFINE_ flags to include the exclude list at the logical place;
once we have an ABI to support, that won't be possible.
Now audioDB::query builds up include and exclude lists as appropriate;
query_loop does an [O(NlogN) probably] buildup of the keys to consider,
and then iterates over tracks sequentially, seeking only if one or more
tracks have been excluded. No more trackFile, yay!
The only remaining thing to deal with is the accumulator. It's easy
enough to pass it around, but I want to read the indexed version before
doing so to see how that all fits together.
author | mas01cr |
---|---|
date | Wed, 24 Dec 2008 10:57:14 +0000 |
parents | da901c62e569 |
children |
line wrap: on
line source
#! /bin/bash . ../test-utils.sh if [ -f testdb ]; then rm -f testdb; fi # Make LARGE_ADB ${AUDIODB} -d testdb -N --ntracks 50000 ${AUDIODB} -d testdb -P ${AUDIODB} -d testdb -L ${AUDIODB} -d testdb -S | grep "flags:" > testoutput echo "flags: l2norm[on] minmax[off] power[on] times[off] largeADB[on]" > test-expected-output cmp testoutput test-expected-output intstring 2 > testfeature floatstring 0 1 >> testfeature floatstring 1 0 >> testfeature floatstring 1 0 >> testfeature floatstring 0 1 >> testfeature intstring 1 > testpower floatstring -0.5 >> testpower floatstring -1 >> testpower floatstring -1 >> testpower floatstring -0.5 >> testpower echo testfeature > testList.txt echo testpower > pwrList.txt echo key1 > keyList.txt echo testfeature >> testList.txt echo testpower >> pwrList.txt echo key2 >> keyList.txt ${AUDIODB} -d testdb -B -F testList.txt -W pwrList.txt -K keyList.txt # Cleanup rm testList.txt pwrList.txt keyList.txt echo "query points (0.0,0.5),(0.0,0.5),(0.5,0.0)" intstring 2 > testquery floatstring 0 0.5 >> testquery floatstring 0 0.5 >> testquery floatstring 0.5 0 >> testquery # LARGE_ADB requires an INDEX ${AUDIODB} -d testdb -X -R 1 -l 1 # LARGE_ADB query from key ${AUDIODB} -d testdb -Q sequence -l 1 -k key1 -R 1 --absolute-threshold -4.5 > testoutput echo key2 1 > test-expected-output cmp testoutput test-expected-output # LARGE_ADB query from feature file and power file ${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testpower -R 1 --absolute-threshold -4.5 > testoutput echo key1 1 > test-expected-output echo key2 1 >> test-expected-output cmp testoutput test-expected-output # WS WSPORT=10020 start_server ${AUDIODB} ${WSPORT} # LARGE_ADB WS query from key ${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 1 -k key1 -R 1 --absolute-threshold -4.5 -n 1 --lsh_exact > testoutput echo key2 0 0 0 > test-expected-output cmp testoutput test-expected-output # LARGE_ADB WS query from feature file and power file tests ${AUDIODB} -c localhost:${WSPORT} -d testdb -Q sequence -l 1 -f testquery -w testpower -R 1 --absolute-threshold -4.5 -n 1 > testoutput echo key1 1 > test-expected-output echo key2 1 >> test-expected-output cmp testoutput test-expected-output stop_server $! exit 104