Mercurial > hg > audiodb
changeset 413:9de6d0676907 api-inversion
Add a partial libtests/ implementation of tests/0037.
Partial because still no "nsequence", though I have a plan for that.
The audiodb_batchinsert is a little bit weird; I think I'd have used an
adb_insert_t*[] (array of pointers) rather than an array of structures
directly. I might think about that some more later.
author | mas01cr |
---|---|
date | Fri, 12 Dec 2008 15:37:17 +0000 |
parents | 223eda8408e1 |
children | 447f1cf2c276 |
files | libtests/0037/prog1.c libtests/0037/short-description |
diffstat | 2 files changed, 76 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0037/prog1.c Fri Dec 12 15:37:17 2008 +0000 @@ -0,0 +1,75 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sysexits.h> +#include <fcntl.h> +#include <dirent.h> +#include <unistd.h> +#include <sys/stat.h> +/* + * * #define NDEBUG + * * */ +#include <assert.h> + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + +int main(int argc, char *argv[]) { + char *dbname = "testdb"; + adb_t *adb; + adb_insert_t *batch = 0; + adb_status_t status; + adb_query_t query = {0}; + adb_queryresult_t result; + + clean_remove_db(dbname); + adb = audiodb_create("testdb", 0, 0, 0); + if(!adb) { + return 1; + } + + maketestfile("testfeature01", (int[1]) {2}, (double[4]) {0,1,1,0}, 4); + maketestfile("testfeature10", (int[1]) {2}, (double[4]) {1,0,0,1}, 4); + + batch = (adb_insert_t *) calloc(6, sizeof(adb_insert_t)); + if(!batch) { + return 1; + } + batch[0].features = "testfeature01"; + batch[1].features = "testfeature01"; + batch[2].features = "testfeature10"; + batch[3].features = "testfeature10"; + batch[4].features = "testfeature01"; + batch[5].features = "testfeature10"; + + audiodb_batchinsert(adb, batch, 6); + + if(audiodb_status(adb, &status)) { + return 1; + } + if(status.numFiles != 2) { + return 1; + } + + if(audiodb_l2norm(adb)) { + return 1; + } + + maketestfile("testquery", (int [1]) {2}, (double[2]) {0, 0.5}, 2); + return 14; + /* can't do nsequence yet */ + /* + query.querytype = "nsequence"; + query.sequencelength = "1"; + query.feature = "testquery"; + if(audiodb_query(adb, &query, &result)) { + return 1; + } + if(result.sizeRlist != 2) { + return 1; + } + if(testoneresult(&result, 0, "testfeature01" ...)); + return 104; + */ +} +