annotate libtests/0048/prog1.c @ 622:695651b8c1a3

added a query hook. Should compile a run, but I haven't exhaustively tested the various input parameters yet. As such, there may well be some ways to get to the api calls that bring the module down. Let me know if you find any. The actual query call is a bit of a mess, but will be more intuitive from the native python layer (to be written)... so the python bindings now have a complete path: >>import _pyadb >>aDB = _pyadb._pyadb_create("test.adb", 0,0,0) >>_pyadb._pyadb_status(aDB) >>_pyadb._pyadb_insertFromFile(aDB, "someFeats.mfcc12") ...(add some more data) >>result = _pyadb._pyadb_queryFromKey(aDB, "a Key in aDB", [options]) and then result has a nice dict of your results.
author map01bf
date Mon, 21 Sep 2009 17:42:52 +0000
parents b2a941a372fb
children
rev   line source
mas01cr@598 1 #include "audioDB_API.h"
mas01cr@598 2 #include "test_utils_lib.h"
mas01cr@598 3
mas01cr@598 4 int main(int argc, char **argv) {
mas01cr@598 5 adb_t *adb;
mas01cr@598 6
mas01cr@598 7 clean_remove_db(TESTDB);
mas01cr@598 8 if(!(adb = audiodb_create(TESTDB, 0, 0, 0)))
mas01cr@598 9 return 1;
mas01cr@598 10
mas01cr@598 11 adb_datum_t datum1 = {2, 2, "testfeature01", (double[4]) {0, 0.5, 0.5, 0},
mas01cr@598 12 NULL, (double[4]) {0, 1, 1, 2}};
mas01cr@598 13 adb_datum_t datum2 = {3, 2, "testfeature10", (double[6]) {0.5, 0, 0, 0.5, 0.5, 0},
mas01cr@598 14 NULL, (double[6]) {0, 2, 2, 3, 3, 4}};
mas01cr@598 15 if(audiodb_insert_datum(adb, &datum1))
mas01cr@598 16 return 1;
mas01cr@598 17 if(audiodb_insert_datum(adb, &datum2))
mas01cr@598 18 return 1;
mas01cr@598 19 if(audiodb_l2norm(adb))
mas01cr@598 20 return 1;
mas01cr@598 21
mas01cr@598 22 adb_datum_t retrieve;
mas01cr@598 23 if(!(audiodb_retrieve_datum(adb, "testfeature", &retrieve)))
mas01cr@598 24 return 1;
mas01cr@598 25
mas01cr@598 26 if(audiodb_retrieve_datum(adb, "testfeature01", &retrieve))
mas01cr@598 27 return 1;
mas01cr@598 28 if(retrieve.nvectors != 2)
mas01cr@598 29 return 1;
mas01cr@598 30 if(retrieve.dim != 2)
mas01cr@598 31 return 1;
mas01cr@598 32 if(strcmp(retrieve.key, "testfeature01"))
mas01cr@598 33 return 1;
mas01cr@598 34 if(memcmp(retrieve.data, datum1.data, 4*sizeof(double)))
mas01cr@598 35 return 1;
mas01cr@598 36 if(retrieve.power)
mas01cr@598 37 return 1;
mas01cr@598 38 if(memcmp(retrieve.times, datum1.times, 4*sizeof(double)))
mas01cr@598 39 return 1;
mas01cr@598 40 if(audiodb_free_datum(adb, &retrieve))
mas01cr@598 41 return 1;
mas01cr@598 42
mas01cr@598 43 if(audiodb_retrieve_datum(adb, "testfeature10", &retrieve))
mas01cr@598 44 return 1;
mas01cr@598 45 if(retrieve.nvectors != 3)
mas01cr@598 46 return 1;
mas01cr@598 47 if(retrieve.dim != 2)
mas01cr@598 48 return 1;
mas01cr@598 49 if(strcmp(retrieve.key, "testfeature10"))
mas01cr@598 50 return 1;
mas01cr@598 51 if(memcmp(retrieve.data, datum2.data, 6*sizeof(double)))
mas01cr@598 52 return 1;
mas01cr@598 53 if(retrieve.power)
mas01cr@598 54 return 1;
mas01cr@598 55 if(memcmp(retrieve.times, datum2.times, 6*sizeof(double)))
mas01cr@598 56 return 1;
mas01cr@598 57 if(audiodb_free_datum(adb, &retrieve))
mas01cr@598 58 return 1;
mas01cr@598 59
mas01cr@598 60 audiodb_close(adb);
mas01cr@598 61
mas01cr@598 62 return 104;
mas01cr@598 63 }