Mercurial > hg > audiodb
diff libtests/0048/prog1.c @ 598:b2a941a372fb
Test for audiodb_retrieve_datum()
The good news: my fix for audiodb_track_id_datum()'s timesTable handling
looks correct. The bad news: we need to NULL out fields we don't fill
with data. Do so.
author | mas01cr |
---|---|
date | Wed, 12 Aug 2009 14:57:11 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0048/prog1.c Wed Aug 12 14:57:11 2009 +0000 @@ -0,0 +1,63 @@ +#include "audioDB_API.h" +#include "test_utils_lib.h" + +int main(int argc, char **argv) { + adb_t *adb; + + clean_remove_db(TESTDB); + if(!(adb = audiodb_create(TESTDB, 0, 0, 0))) + return 1; + + adb_datum_t datum1 = {2, 2, "testfeature01", (double[4]) {0, 0.5, 0.5, 0}, + NULL, (double[4]) {0, 1, 1, 2}}; + adb_datum_t datum2 = {3, 2, "testfeature10", (double[6]) {0.5, 0, 0, 0.5, 0.5, 0}, + NULL, (double[6]) {0, 2, 2, 3, 3, 4}}; + if(audiodb_insert_datum(adb, &datum1)) + return 1; + if(audiodb_insert_datum(adb, &datum2)) + return 1; + if(audiodb_l2norm(adb)) + return 1; + + adb_datum_t retrieve; + if(!(audiodb_retrieve_datum(adb, "testfeature", &retrieve))) + return 1; + + if(audiodb_retrieve_datum(adb, "testfeature01", &retrieve)) + return 1; + if(retrieve.nvectors != 2) + return 1; + if(retrieve.dim != 2) + return 1; + if(strcmp(retrieve.key, "testfeature01")) + return 1; + if(memcmp(retrieve.data, datum1.data, 4*sizeof(double))) + return 1; + if(retrieve.power) + return 1; + if(memcmp(retrieve.times, datum1.times, 4*sizeof(double))) + return 1; + if(audiodb_free_datum(adb, &retrieve)) + return 1; + + if(audiodb_retrieve_datum(adb, "testfeature10", &retrieve)) + return 1; + if(retrieve.nvectors != 3) + return 1; + if(retrieve.dim != 2) + return 1; + if(strcmp(retrieve.key, "testfeature10")) + return 1; + if(memcmp(retrieve.data, datum2.data, 6*sizeof(double))) + return 1; + if(retrieve.power) + return 1; + if(memcmp(retrieve.times, datum2.times, 6*sizeof(double))) + return 1; + if(audiodb_free_datum(adb, &retrieve)) + return 1; + + audiodb_close(adb); + + return 104; +}