Mercurial > hg > audiodb
view tests/0035/run-test.sh @ 402:58b88ab69424 api-inversion
Move the struct adb definition from the auidioDB_API.h into the
audioDB-internals.h header file, leaving only the typedef behind.
Thus a user of the API sees only an incomplete type, which cannot be
instantiated (but /pointers/ to it can); there's then less temptation to
break the abstraction barrier by using structure fields in client code.
Not only that, but we can now safely put C++ stuff in the structure.
Take advantage of this by putting a std::set<std::string> in there, to
hold all the keys currently in the database; populate this field on
audiodb_open() (and delete it on audiodb_close). This will be useful
when we come to implement variants of audiodb_insert().
author | mas01cr |
---|---|
date | Wed, 03 Dec 2008 17:40:15 +0000 |
parents | fe4dc39b2dd7 |
children |
line wrap: on
line source
#! /bin/bash . ../test-utils.sh if [ -f testdb ]; then rm -f testdb; fi ${AUDIODB} -d testdb -N intstring 2 > testfeature1 floatstring 0 1 >> testfeature1 intstring 2 > testfeature3 floatstring 1 0 >> testfeature3 floatstring 0 1 >> testfeature3 floatstring 1 0 >> testfeature3 ${AUDIODB} -d testdb -I -f testfeature1 ${AUDIODB} -d testdb -I -f testfeature3 # sequence queries require L2NORM ${AUDIODB} -d testdb -L echo "query point (0 1, 1 0)" intstring 2 > testquery floatstring 0 1 >> testquery floatstring 1 0 >> testquery ${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -n 1 > testoutput wc -l testoutput | grep "1 testoutput" grep "^testfeature3 .* 0 1$" testoutput exit 104