annotate libtests/0037/prog1.c @ 441:1a1ea05a94ce api-inversion

clarify audiodb_insert() write audiodb_insert() (essentially to support the command-line client audioDB::insert operation) in terms of audiodb_insert_datum() and a new audiodb_insert_reference() function. These two functions each do exactly one thing and return failure if they're working on the wrong kind of database.
author mas01cr
date Wed, 24 Dec 2008 10:56:25 +0000
parents 9de6d0676907
children c26c5b7ef0d2
rev   line source
mas01cr@413 1 #include <stdio.h>
mas01cr@413 2 #include <stdlib.h>
mas01cr@413 3 #include <string.h>
mas01cr@413 4 #include <sysexits.h>
mas01cr@413 5 #include <fcntl.h>
mas01cr@413 6 #include <dirent.h>
mas01cr@413 7 #include <unistd.h>
mas01cr@413 8 #include <sys/stat.h>
mas01cr@413 9 /*
mas01cr@413 10 * * #define NDEBUG
mas01cr@413 11 * * */
mas01cr@413 12 #include <assert.h>
mas01cr@413 13
mas01cr@413 14 #include "../../audioDB_API.h"
mas01cr@413 15 #include "../test_utils_lib.h"
mas01cr@413 16
mas01cr@413 17 int main(int argc, char *argv[]) {
mas01cr@413 18 char *dbname = "testdb";
mas01cr@413 19 adb_t *adb;
mas01cr@413 20 adb_insert_t *batch = 0;
mas01cr@413 21 adb_status_t status;
mas01cr@413 22 adb_query_t query = {0};
mas01cr@413 23 adb_queryresult_t result;
mas01cr@413 24
mas01cr@413 25 clean_remove_db(dbname);
mas01cr@413 26 adb = audiodb_create("testdb", 0, 0, 0);
mas01cr@413 27 if(!adb) {
mas01cr@413 28 return 1;
mas01cr@413 29 }
mas01cr@413 30
mas01cr@413 31 maketestfile("testfeature01", (int[1]) {2}, (double[4]) {0,1,1,0}, 4);
mas01cr@413 32 maketestfile("testfeature10", (int[1]) {2}, (double[4]) {1,0,0,1}, 4);
mas01cr@413 33
mas01cr@413 34 batch = (adb_insert_t *) calloc(6, sizeof(adb_insert_t));
mas01cr@413 35 if(!batch) {
mas01cr@413 36 return 1;
mas01cr@413 37 }
mas01cr@413 38 batch[0].features = "testfeature01";
mas01cr@413 39 batch[1].features = "testfeature01";
mas01cr@413 40 batch[2].features = "testfeature10";
mas01cr@413 41 batch[3].features = "testfeature10";
mas01cr@413 42 batch[4].features = "testfeature01";
mas01cr@413 43 batch[5].features = "testfeature10";
mas01cr@413 44
mas01cr@413 45 audiodb_batchinsert(adb, batch, 6);
mas01cr@413 46
mas01cr@413 47 if(audiodb_status(adb, &status)) {
mas01cr@413 48 return 1;
mas01cr@413 49 }
mas01cr@413 50 if(status.numFiles != 2) {
mas01cr@413 51 return 1;
mas01cr@413 52 }
mas01cr@413 53
mas01cr@413 54 if(audiodb_l2norm(adb)) {
mas01cr@413 55 return 1;
mas01cr@413 56 }
mas01cr@413 57
mas01cr@413 58 maketestfile("testquery", (int [1]) {2}, (double[2]) {0, 0.5}, 2);
mas01cr@413 59 return 14;
mas01cr@413 60 /* can't do nsequence yet */
mas01cr@413 61 /*
mas01cr@413 62 query.querytype = "nsequence";
mas01cr@413 63 query.sequencelength = "1";
mas01cr@413 64 query.feature = "testquery";
mas01cr@413 65 if(audiodb_query(adb, &query, &result)) {
mas01cr@413 66 return 1;
mas01cr@413 67 }
mas01cr@413 68 if(result.sizeRlist != 2) {
mas01cr@413 69 return 1;
mas01cr@413 70 }
mas01cr@413 71 if(testoneresult(&result, 0, "testfeature01" ...));
mas01cr@413 72 return 104;
mas01cr@413 73 */
mas01cr@413 74 }
mas01cr@413 75