annotate libtests/0004/prog1.c @ 506:33913e11348a

Makefile fixup. Whoops. audioDB.h currently pulls in soapH.h and cmdline.h, and because we haven't finished the unintertwingling of the library from everything else we still need to depend on those files even for LIBOBJS.
author mas01cr
date Tue, 13 Jan 2009 21:37:06 +0000
parents 342822c2d49a
children bcc7a6ddb2c8
rev   line source
mas01cr@498 1 #include "audioDB_API.h"
mas01cr@498 2 #include "test_utils_lib.h"
mas01ik@355 3
mas01cr@498 4 int main(int argc, char **argv) {
mas01cr@498 5 adb_t *adb;
mas01ik@355 6
mas01cr@498 7 clean_remove_db(TESTDB);
mas01cr@498 8 if(!(adb = audiodb_create(TESTDB, 0, 0, 0)))
mas01cr@498 9 return 1;
mas01cr@498 10 if(audiodb_l2norm(adb))
mas01cr@498 11 return 1;
mas01ik@355 12
mas01cr@498 13 adb_datum_t feature = {2, 2, "testfeature", (double[4]) {0, 1, 1, 0}};
mas01cr@498 14 if(audiodb_insert_datum(adb, &feature))
mas01cr@498 15 return 1;
mas01ik@355 16
mas01cr@498 17 adb_datum_t query = {1, 2, "testquery", (double [2]) {0, 0.5}};
mas01ik@355 18
mas01cr@498 19 adb_query_id_t qid = {0};
mas01cr@498 20 qid.datum = &query;
mas01cr@498 21 qid.sequence_length = 1;
mas01cr@498 22 qid.sequence_start = 0;
mas01cr@498 23 adb_query_parameters_t parms =
mas01cr@498 24 {ADB_ACCUMULATION_DB, ADB_DISTANCE_DOT_PRODUCT, 10, 0};
mas01cr@498 25 adb_query_refine_t refine = {0};
mas01cr@498 26 refine.hopsize = 1;
mas01ik@355 27
mas01cr@498 28 adb_query_spec_t spec;
mas01cr@498 29 spec.qid = qid;
mas01cr@498 30 spec.params = parms;
mas01cr@498 31 spec.refine = refine;
mas01ik@355 32
mas01cr@498 33 adb_query_results_t *results = audiodb_query_spec(adb, &spec);
mas01cr@498 34 if(!results || results->nresults != 2) return 1;
mas01cr@498 35 result_present_or_fail(results, "testfeature", 0.5, 0, 0);
mas01cr@498 36 result_present_or_fail(results, "testfeature", 0, 0, 1);
mas01cr@498 37 audiodb_query_free_results(adb, &spec, results);
mas01ik@355 38
mas01cr@498 39 spec.params.npoints = 1;
mas01cr@498 40 results = audiodb_query_spec(adb, &spec);
mas01cr@498 41 if(!results || results->nresults != 1) return 1;
mas01cr@498 42 result_present_or_fail(results, "testfeature", 0.5, 0, 0);
mas01cr@498 43 audiodb_query_free_results(adb, &spec, results);
mas01ik@355 44
mas01cr@498 45 spec.qid.datum->data = (double[2]) {0.5, 0};
mas01cr@498 46 spec.params.npoints = 10;
mas01cr@498 47 results = audiodb_query_spec(adb, &spec);
mas01cr@498 48 result_present_or_fail(results, "testfeature", 0.5, 0, 1);
mas01cr@498 49 result_present_or_fail(results, "testfeature", 0, 0, 0);
mas01cr@498 50 audiodb_query_free_results(adb, &spec, results);
mas01ik@355 51
mas01cr@498 52 spec.params.npoints = 1;
mas01cr@498 53 results = audiodb_query_spec(adb, &spec);
mas01cr@498 54 if(!results || results->nresults != 1) return 1;
mas01cr@498 55 result_present_or_fail(results, "testfeature", 0.5, 0, 1);
mas01cr@498 56 audiodb_query_free_results(adb, &spec, results);
mas01ik@355 57
mas01cr@498 58 audiodb_close(adb);
mas01ik@355 59
mas01cr@498 60 return 104;
mas01ik@355 61 }
mas01ik@355 62