# HG changeset patch # User mas01ik # Date 1226485266 0 # Node ID 94c18f128ce85af934c342436f0eb3c8fb71efc1 # Parent 4871a3ed9e3644bf97ed208796a5192f62f12125 First version of the API, committed to the main trunk. Thanks Christophe, for all the help! diff -r 4871a3ed9e36 -r 94c18f128ce8 Makefile --- a/Makefile Fri Nov 07 12:48:26 2008 +0000 +++ b/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -6,7 +6,7 @@ GSL_INCLUDE= GSOAP_INCLUDE= -override CFLAGS+=-O3 -g +override CFLAGS+=-O3 -g -fPIC #override CFLAGS+=-ggdb -gstabs+ -g3 ifeq ($(shell uname),Linux) @@ -19,46 +19,85 @@ endif endif +LIBOBJS=insert.o create.o common.o dump.o query.o sample.o index.o lshlib.o +OBJS=$(LIBOBJS) soap.o + + EXECUTABLE=audioDB +LIBRARY=libaudioDB_API.so + .PHONY: all clean test -all: ${EXECUTABLE} +all: $(OBJS) $(LIBRARY) $(EXECUTABLE) tags -${EXECUTABLE}.1: ${EXECUTABLE} - ${HELP2MAN} ./${EXECUTABLE} > ${EXECUTABLE}.1 +$(EXECUTABLE).1: $(EXECUTABLE) + $(HELP2MAN) ./$(EXECUTABLE) > $(EXECUTABLE).1 -HELP.txt: ${EXECUTABLE} - ./${EXECUTABLE} --help > HELP.txt +HELP.txt: $(EXECUTABLE) + ./$(EXECUTABLE) --help > HELP.txt cmdline.c cmdline.h: gengetopt.in - ${GENGETOPT} -e 0?"(Radius)":"(NN)", dbName, (key&&strlen(key))?key:inFile); ws_query_by_key(dbName, key, inFile, (char*)hostport); @@ -62,13 +67,20 @@ VERB_LOG(1, "Calling web services query on database %s, query=%s\n", dbName, (key&&strlen(key))?key:inFile); ws_query(dbName, inFile, (char*)hostport); } + #else + ; + #endif } else query(dbName, inFile); else if(O2_ACTION(COM_STATUS)) if(isClient) + #ifdef BINARY ws_status(dbName,(char*)hostport); + #else + ; + #endif else status(dbName); @@ -86,7 +98,11 @@ else if(O2_ACTION(COM_LISZT)) if(isClient) + #ifdef BINARY ws_liszt(dbName, (char*) hostport); + #else + ; + #endif else liszt(dbName, lisztOffset, lisztLength); @@ -145,6 +161,141 @@ } } + +//for the lib / API +audioDB::audioDB(const unsigned argc, char* const argv[], int * apierror): O2_AUDIODB_INITIALIZERS +{ + + try { + UseApiError=1; + + if(processArgs(argc, argv)<0){ + printf("No command found.\n"); + cmdline_parser_print_version (); + if (strlen(gengetopt_args_info_purpose) > 0) + printf("%s\n", gengetopt_args_info_purpose); + printf("%s\n", gengetopt_args_info_usage); + printf("%s\n", gengetopt_args_info_help[1]); + printf("%s\n", gengetopt_args_info_help[2]); + printf("%s\n", gengetopt_args_info_help[0]); + error("No command found"); + } + + adb__queryResponse adbq; + + if(O2_ACTION(COM_CREATE)) + create(dbName); + + else if(O2_ACTION(COM_INSERT)) + insert(dbName, inFile); + + else if(O2_ACTION(COM_BATCHINSERT)) + batchinsert(dbName, inFile); + + else if(O2_ACTION(COM_QUERY)) + if(isClient) + ;//ws_query(dbName, inFile, (char*)hostport); + else + query(dbName, inFile, &adbq); + //query(dbName, inFile); + + else if(O2_ACTION(COM_STATUS)) + if(isClient) + ;//ws_status(dbName,(char*)hostport); + else + status(dbName); + + else if(O2_ACTION(COM_L2NORM)) + l2norm(dbName); + + else if(O2_ACTION(COM_POWER)) + power_flag(dbName); + + else if(O2_ACTION(COM_DUMP)) + dump(dbName); + + else + error("Unrecognized command",command); + + } catch(int a) { + *apierror=a; + return; + + } + *apierror=apierrortemp; + return; + +} + +//for API status +audioDB::audioDB(const unsigned argc, char* const argv[], cppstatusptr stat, int * apierror): O2_AUDIODB_INITIALIZERS +{ + + try { + UseApiError=1; + + + if(processArgs(argc, argv)<0){ + printf("No command found.\n"); + cmdline_parser_print_version (); + if (strlen(gengetopt_args_info_purpose) > 0) + printf("%s\n", gengetopt_args_info_purpose); + printf("%s\n", gengetopt_args_info_usage); + printf("%s\n", gengetopt_args_info_help[1]); + printf("%s\n", gengetopt_args_info_help[2]); + printf("%s\n", gengetopt_args_info_help[0]); + error("No command found"); + } + + status(dbName, stat); + + + } catch(int a) { + *apierror=a; + return; + + } + *apierror=apierrortemp; + return; + +} + + +//for API query +audioDB::audioDB(const unsigned argc, char* const argv[],adb__queryResponse *adbQueryResponse, int * apierror): O2_AUDIODB_INITIALIZERS +{ + + try { + UseApiError=1; + + if(processArgs(argc, argv)<0){ + printf("No command found.\n"); + cmdline_parser_print_version (); + if (strlen(gengetopt_args_info_purpose) > 0) + printf("%s\n", gengetopt_args_info_purpose); + printf("%s\n", gengetopt_args_info_usage); + printf("%s\n", gengetopt_args_info_help[1]); + printf("%s\n", gengetopt_args_info_help[2]); + printf("%s\n", gengetopt_args_info_help[0]); + error("No command found"); + } + + query(dbName, inFile, adbQueryResponse); + + } catch(int a) { + *apierror=a; + return; + + } + *apierror=apierrortemp; + return; + +} + + + + + void audioDB::cleanup() { cmdline_parser_free(&args_info); if(indata) @@ -170,7 +321,7 @@ if(powerFileNameTable) munmap(powerFileNameTable, fileTableLength); if(trackOffsetTable) - delete trackOffsetTable; + delete [] trackOffsetTable; if(reporter) delete reporter; if(exact_evaluation_queue) @@ -632,6 +783,35 @@ } } +///used by lib/API +void audioDB::status(const char* dbName, cppstatusptr status){ + if(!dbH) { + initTables(dbName, 0); + } + + unsigned dudCount=0; + unsigned nullCount=0; + for(unsigned k=0; knumFiles; k++){ + if(trackTable[k]numFiles = dbH->numFiles; + status->dim = dbH->dim; + status->length = dbH->length; + status->dudCount = dudCount; + status->nullCount = nullCount; + status->flags = dbH->flags; + + return; +} + + + + void audioDB::l2norm(const char* dbName) { forWrite = true; initTables(dbName, 0); @@ -713,3 +893,468 @@ SERVER_ADB_FEATURE_ROOT = 0; // Server-side features root prefix audioDB(argc, argv); } + + +extern "C" { + +/* for API questions contact + * Christophe Rhodes c.rhodes@gold.ac.uk + * Ian Knopke mas01ik@gold.ac.uk, ian.knopke@gmail.com */ + +#include "audioDB_API.h" + + + //adb_ptr audiodb_create(char * path,long ntracks, long datadim) { + adb_ptr audiodb_create(char * path,long datasize,long ntracks, long datadim) { + char *argv[12]; + int argvctr=0; + char tempstr1[200]; + char tempstr2[200]; + char tempstr3[200]; + int apierror=0; + + + argv[argvctr++] = "audioDB"; + argv[argvctr++] = "--NEW"; + argv[argvctr++] = "-d"; + argv[argvctr++] = path; + + if (datasize >0){ + argv[argvctr++]="--datasize"; + snprintf(tempstr1,sizeof(tempstr1),"%ld",datasize); + argv[argvctr++]=tempstr1; + } + + if (ntracks >0){ + argv[argvctr++]="--ntracks"; + snprintf(tempstr2,sizeof(tempstr2),"%ld",ntracks); + argv[argvctr++]=tempstr2; + } + + if (datadim > 0){ + argv[argvctr++]="--datadim"; + snprintf(tempstr3,sizeof(tempstr3),"%ld",datadim); + argv[argvctr++]=tempstr3; + } + + argv[argvctr+1]='\0'; + + audioDB::audioDB(argvctr, argv, &apierror); + + if (!apierror){ + return audiodb_open(path); + } + + /* database exists, so fail and pass NULL */ + return NULL; + } + + + + int audiodb_insert(adb_ptr mydb, adb_insert_ptr ins) { + char *argv[15]; + int argvctr=0; + int apierror=0; + + argv[argvctr++]="audioDB"; + argv[argvctr++]="-I"; + argv[argvctr++]="-d"; + argv[argvctr++]=mydb->dbname; + argv[argvctr++]="-f"; + argv[argvctr++]=ins->features; + + if (ins->times){ + argv[argvctr++]="--times"; + argv[argvctr++]=ins->times; + } + + if (ins->power){ + argv[argvctr++]="-w"; + argv[argvctr++]=ins->power; + } + + if (ins->key){ + argv[argvctr++]="--key"; + argv[argvctr++]=ins->key; + } + argv[argvctr+1]='\0'; + + audioDB::audioDB(argvctr,argv,&apierror); + return apierror; + } + + + int audiodb_batchinsert(adb_ptr mydb, adb_insert_ptr ins, unsigned int size) { + + char *argv[22]; + int argvctr=0; + unsigned int i=0; + int retval=0; + char tempfeaturename[]="tempfeatureXXXXXX"; + char temppowername[]="temppowerXXXXXX"; + char tempkeyname[]="tempkeyXXXXXX"; + char temptimesname[]="temptimesXXXXXX"; + int tempfeaturefd=0; + int temppowerfd=0; + int tempkeyfd=0; + int temptimesfd=0; + + int flags[4]={0}; + int apierror=0; + + /* So the final API should take an array of structs. However, the current + * version requires four separate text files. So temporarily, we need to + * unpack the struct array, make four separate text files, and then reinsert + * them into the command-line call. This should change as soon as possible */ + + + argv[argvctr++]="audioDB"; + argv[argvctr++]="-B"; + argv[argvctr++]="-d"; + argv[argvctr++]=mydb->dbname; + + + /* assume struct is well formed for all entries */ + if (ins[0].features){ flags[0]++;} else { + /* short circuit the case where there are no features in the structs */ + return -1; + } ; + if (ins[0].power){ flags[1]++;}; + if (ins[0].key){ flags[2]++;}; + if (ins[0].times){ flags[3]++;}; + + + /* make four temp files */ + tempfeaturefd=mkstemp(tempfeaturename); + if (tempfeaturefd !=-1){ + + temppowerfd=mkstemp(temppowername); + if (temppowerfd !=-1){ + + tempkeyfd=mkstemp(tempkeyname); + if (tempkeyfd !=-1){ + + temptimesfd=mkstemp(temptimesname); + if (temptimesfd !=-1){ + + } else { + retval=-1; + close(tempkeyfd); + remove(tempkeyname); + close(temppowerfd); + remove(temppowername); + close(tempfeaturefd); + remove(tempfeaturename); + } + + } else { + retval=-1; + close(temppowerfd); + remove(temppowername); + close(tempfeaturefd); + remove(tempfeaturename); + } + + } else { + retval=-1; + close(tempfeaturefd); + remove(tempfeaturename); + } + + } else { + retval=-1; + } + + + + + + if (retval == -1){ + return -1; + } + + /* Ok, so we should have a working set of files to write to */ + /* I'm going to assume that the same format is kept for all structs in the array */ + /* That is, each struct should be correctly formed, and contain at least a features file, because I'm just going to pass the terms along to the text files */ + for (i=0; iquerytype){ + argv[argvctr++]="-Q"; + argv[argvctr++]=adbq->querytype; + } + + if(mydb->dbname){ + argv[argvctr++]="-d"; + argv[argvctr++]=mydb->dbname; + } + + if (adbq->feature){ + argv[argvctr++]="-f"; + argv[argvctr++]=adbq->feature; + } + + if (adbq->power){ + argv[argvctr++]="-w"; + argv[argvctr++]=adbq->power; + } + + if (adbq->qpoint){ + argv[argvctr++]="-p"; + argv[argvctr++]=adbq->qpoint; + } + if (adbq->numpoints){ + argv[argvctr++]="-n"; + argv[argvctr++]=adbq->numpoints; + } + if (adbq->radius){ + argv[argvctr++]="-R"; + argv[argvctr++]=adbq->radius; + } + if(adbq->resultlength){ + argv[argvctr++]="-r"; + argv[argvctr++]=adbq->resultlength; + } + if(adbq->sequencelength){ + argv[argvctr++]="-l"; + argv[argvctr++]=adbq->sequencelength; + } + if(adbq->sequencehop){ + argv[argvctr++]="-h"; + argv[argvctr++]=adbq->sequencehop; + } + + if (adbq->absolute_threshold){ + argv[argvctr++]="--absolute-threshold"; + snprintf(tempstr1,sizeof(tempstr1),"%f",adbq->absolute_threshold); + argv[argvctr++]=tempstr1; + } + + if (adbq->relative_threshold){ + argv[argvctr++]="--relative-threshold"; + snprintf(tempstr2,sizeof(tempstr2),"%f",adbq->relative_threshold); + argv[argvctr++]=tempstr2; + } + + if (adbq->exhaustive){ + argv[argvctr++]="--exhaustive"; + } + + if (adbq->expandfactor){ + argv[argvctr++]="--expandfactor"; + snprintf(tempstr3,sizeof(tempstr3),"%f",adbq->expandfactor); + argv[argvctr++]=tempstr3; + } + + if (adbq->rotate){ + argv[argvctr++]="--rotate"; + } + + if (adbq->keylist){ + argv[argvctr++]="-K"; + argv[argvctr++]=adbq->keylist; + } + argv[argvctr+1]='\0'; + + /* debugging */ + + audioDB::audioDB(argvctr,argv, &adbQueryResponse, &apierror); + + //copy data over here from adbQueryResponse to adbqr + adbqr->sizeRlist=adbQueryResponse.result.__sizeRlist; + adbqr->sizeDist=adbQueryResponse.result.__sizeDist; + adbqr->sizeQpos=adbQueryResponse.result.__sizeQpos; + adbqr->sizeSpos=adbQueryResponse.result.__sizeSpos; + adbqr->Rlist=adbQueryResponse.result.Rlist; + adbqr->Dist=adbQueryResponse.result.Dist; + adbqr->Qpos=adbQueryResponse.result.Qpos; + adbqr->Spos=adbQueryResponse.result.Spos; + + return apierror; + } + + ///* status command */ + int audiodb_status(adb_ptr mydb, adb_status_ptr status){ + + cppstatus sss; + int apierror=0; + + char * argv[5]; + + apierror=0; + argv[0]="audioDB"; + argv[1]="--STATUS"; + argv[2]="-d"; + argv[3]=mydb->dbname; + argv[4]='\0'; + + audioDB::audioDB(4,argv,&sss ,&apierror); + + status->numFiles=sss.numFiles; + status->dim=sss.dim; + status->length=sss.length; + status->dudCount=sss.dudCount; + status->nullCount=sss.nullCount; + status->flags=sss.flags; + + return apierror; + } + + int audiodb_dump(adb_ptr mydb){ + return audiodb_dump_withdir(mydb,"audioDB.dump"); + } + + int audiodb_dump_withdir(adb_ptr mydb, char * outputdir){ + + char * argv[7]; + int argvctr=0; + int apierror=0; + + argv[argvctr++]="audioDB"; + argv[argvctr++]="--DUMP"; + argv[argvctr++]="-d"; + argv[argvctr++]=mydb->dbname; + argv[argvctr++]="--output"; + argv[argvctr++]=(char *)outputdir; + argv[argvctr+1]='\0'; + + audioDB::audioDB(6,argv,&apierror); + + return apierror; + } + + int audiodb_l2norm(adb_ptr mydb){ + + char * argv[5]; + int apierror=0; + + argv[0]="audioDB"; + argv[1]="--L2NORM"; + argv[2]="-d"; + argv[3]=mydb->dbname; + argv[4]='\0'; + + audioDB::audioDB(4,argv,&apierror); + return apierror; + } + + int audiodb_power(adb_ptr mydb){ + + char * argv[5]; + int apierror=0; + + argv[0]="audioDB"; + argv[1]="--POWER"; + argv[2]="-d"; + argv[3]=mydb->dbname; + argv[4]='\0'; + + audioDB::audioDB(4,argv,&apierror); + return apierror; + } + + adb_ptr audiodb_open(char * path){ + + adb_ptr mydbp; + adbstatus mystatus; + + /* if db exists */ + + if (open(path, O_EXCL) != -1){ + + mydbp=(adb_ptr)malloc(sizeof(adb)); + mydbp->dbname=(char *)malloc(sizeof(path)); + + strcpy(mydbp->dbname,path); + + audiodb_status(mydbp, &mystatus); + mydbp->ntracks=mystatus.numFiles; + mydbp->datadim=mystatus.dim; + + return mydbp; + } + + return NULL; + }; + + + + void audiodb_close(adb_ptr db){ + + free(db->dbname); + free(db); + + } + + +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 audioDB.h --- a/audioDB.h Fri Nov 07 12:48:26 2008 +0000 +++ b/audioDB.h Wed Nov 12 10:21:06 2008 +0000 @@ -184,6 +184,17 @@ off_t dbSize; } dbTableHeaderT, *dbTableHeaderPtr; +typedef struct { + + unsigned numFiles; + unsigned dim; + unsigned length; + unsigned dudCount; + unsigned nullCount; + unsigned flags; + + +} cppstatus, *cppstatusptr; class PointPair{ public: @@ -290,12 +301,16 @@ unsigned lisztOffset; unsigned lisztLength; + //for lib / API + unsigned UseApiError; + // private methods void error(const char* a, const char* b = "", const char *sysFunc = 0); void sequence_sum(double *buffer, int length, int seqlen); void sequence_sqrt(double *buffer, int length, int seqlen); void sequence_average(double *buffer, int length, int seqlen); + void initialize_arrays(int track, unsigned int numVectors, double *query, double *data_buffer, double **D, double **DD); void delete_arrays(int track, unsigned int numVectors, double **D, double **DD); void read_data(int trkfid, int track, double **data_buffer_p, size_t *data_buffer_size_p); @@ -322,6 +337,10 @@ audioDB(const unsigned argc, const char *const argv[], adb__queryResponse *adbQueryResponse); audioDB(const unsigned argc, const char *const argv[], adb__statusResponse *adbStatusResponse); audioDB(const unsigned argc, const char *const argv[], adb__lisztResponse *adbLisztResponse); + audioDB(const unsigned argc, char* const argv[], int * apierror); + audioDB(const unsigned argc, char* const argv[], cppstatusptr stat, int * apierror); + audioDB(const unsigned argc, char* const argv[],adb__queryResponse *adbQueryResponse, int * apierror); + void cleanup(); ~audioDB(); @@ -337,6 +356,8 @@ void batchinsert_large_adb(const char* dbName, const char* inFile); void query(const char* dbName, const char* inFile, adb__queryResponse *adbQueryResponse=0); void status(const char* dbName, adb__statusResponse *adbStatusResponse=0); + void status(const char* dbName, cppstatusptr status); + unsigned random_track(unsigned *propTable, unsigned total); void sample(const char *dbName); void l2norm(const char* dbName); @@ -389,6 +410,9 @@ // Web Services void startServer(); + + int apierrortemp; + void ws_status(const char*dbName, char* hostport); void ws_query(const char*dbName, const char *featureFileName, const char* hostport); void ws_query_by_key(const char*dbName, const char *trackKey, const char* featureFileName, const char* hostport); @@ -478,5 +502,6 @@ lsh_param_b(0), \ lsh_param_ncols(0), \ lsh_n_point_bits(0), \ - vv(0) + vv(0), \ + apierrortemp(0) #endif diff -r 4871a3ed9e36 -r 94c18f128ce8 audioDB_API.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/audioDB_API.h Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,117 @@ +/* for API questions contact + * Christophe Rhodes c.rhodes@gold.ac.uk + * Ian Knopke mas01ik@gold.ac.uk, ian.knopke@gmail.com */ + + +/*******************************************************************/ +/* Data types for API */ + +/* The main struct that stores the name of the database, and in future will hold all + * kinds of other interesting information */ +/* This basically gets passed around to all of the other functions */ +struct adb { + + char * dbname; + unsigned int ntracks; /* number of tracks */ + unsigned int datadim; /* dimensionality of stored data */ + +}; +typedef struct adb adb_t, *adb_ptr; + +//used for both insert and batchinsert +struct adbinsert { + + char * features; + char * power; + char * key; + char * times; + +}; +typedef struct adbinsert adb_insert_t, *adb_insert_ptr; + +/* struct for returning status results */ +struct adbstatus { + + unsigned int numFiles; + unsigned int dim; + unsigned int length; + unsigned int dudCount; + unsigned int nullCount; + unsigned int flags; + +}; +typedef struct adbstatus adb_status_t, *adb_status_ptr; + +/* needed for constructing a query */ +struct adbquery { + + char * querytype; + char * feature; //usually a file of some kind + char * power; //also a file + char * keylist; //also a file + char * qpoint; //position + char * numpoints; + char * radius; + char * resultlength; //how many results to make + char * sequencelength; + char * sequencehop; + double absolute_threshold; + double relative_threshold; + int exhaustive; //hidden option in gengetopt + double expandfactor; //hidden + int rotate; //hidden + +}; +typedef struct adbquery adb_query_t,*adb_query_ptr; + +/* ... and for getting query results back */ +struct adbqueryresult { + + int sizeRlist; /* do I really need to return all 4 sizes here */ + int sizeDist; + int sizeQpos; + int sizeSpos; + char **Rlist; + double *Dist; + unsigned int *Qpos; + unsigned int *Spos; + +}; +typedef struct adbqueryresult adb_queryresult_t, *adb_queryresult_ptr; + + +/*******************************************************************/ +/* Function prototypes for API */ + + +/* open an existing database */ +/* returns a struct or NULL on failure */ +adb_ptr audiodb_open(char * path); + +/* create a new database */ +/* returns a struct or NULL on failure */ +//adb_ptr audiodb_create(char * path,long ntracks, long datadim); +adb_ptr audiodb_create(char * path,long datasize, long ntracks, long datadim); + +/* close a database */ +void audiodb_close(adb_ptr db); + +/* You'll need to turn both of these on to do anything useful */ +int audiodb_l2norm(adb_ptr mydb); +int audiodb_power(adb_ptr mydb); + +/* insert functions */ +int audiodb_insert(adb_ptr mydb, adb_insert_ptr ins); +int audiodb_batchinsert(adb_ptr mydb, adb_insert_ptr ins, unsigned int size); + +/* query function */ +int audiodb_query(adb_ptr mydb, adb_query_ptr adbq, adb_queryresult_ptr adbqres); + +/* database status */ +int audiodb_status(adb_ptr mydb, adb_status_ptr status); + +/* varoius dump formats */ +int audiodb_dump(adb_ptr mydb); +int audiodb_dump_withdir(adb_ptr mydb, char * outputdir); + + diff -r 4871a3ed9e36 -r 94c18f128ce8 common.cpp --- a/common.cpp Fri Nov 07 12:48:26 2008 +0000 +++ b/common.cpp Wed Nov 12 10:21:06 2008 +0000 @@ -50,7 +50,9 @@ } void audioDB::error(const char* a, const char* b, const char *sysFunc) { - if(isServer) { + + + if(isServer) { /* FIXME: I think this is leaky -- we never delete err. actually deleting it is tricky, though; it gets placed into some soap-internal struct with uncertain extent... -- CSR, @@ -60,14 +62,18 @@ /* FIXME: actually we could usefully do with a properly structured type, so that we can throw separate faultstring and details. -- CSR, 2007-10-01 */ - throw(err); - } else { - std::cerr << a << ": " << b << std::endl; - if (sysFunc) { - perror(sysFunc); + throw(err); + } else if (UseApiError){ + apierrortemp=-1; + throw(apierrortemp); + } else { + std::cerr << a << ": " << b << std::endl; + if (sysFunc) { + perror(sysFunc); + } + exit(1); } - exit(1); - } + } void audioDB::initRNG() { diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0001/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0001/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + +all: test1 + + +test1: prog1.c + #gcc -Wall -o test1 prog1.c -laudioDB_API -L.. + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0001/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0001/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,88 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + adb_ptr mydbp2={0}; + struct stat statbuf; + int statval=0; + + char * databasename="testdb"; + + //if [ -f testdb ]; then rm -f testdb; fi + /* remove old directory */ + clean_remove_db(databasename); + + /* create new db */ + //# creation + //${AUDIODB} -N -d testdb + mydbp=audiodb_open(databasename); + + + /* open should fail (return NULL), so create a new db */ + if (!mydbp){ + mydbp=audiodb_create(databasename,0,0,0); + } + + + + if (!mydbp){ + printf("fail\n"); + returnval=-1; + } + + + /* stat testdb - let's make sure that it is there */ + //stat testdb + statval=stat(databasename, &statbuf); + + if (statval){ + returnval=-1; + } + + audiodb_close(mydbp); + + /* try to create should fail, because db exists now */ + mydbp2=audiodb_create(databasename,0,0,0); + + if (mydbp2){ + returnval=-1; + } + + +/* should pass now - db exists */ +//expect_clean_error_exit ${AUDIODB} -N -d testdb + mydbp2=audiodb_open(databasename); + if (!mydbp2){ + returnval=-1; + } + +//this test would fail at compile time because of the API interface +//# should fail (no db given) +//expect_clean_error_exit ${AUDIODB} -N + + + audiodb_close(mydbp2); + +// printf("returnval:%d\n",returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0001/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0001/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0001/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0001/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +DB creation using lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0002/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0002/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0002/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0002/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,58 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + adb_status_t mystatus={0}; + + char * databasename="testdb"; + +//. ../test-utils.sh +// +//if [ -f testdb ]; then rm -f testdb; fi +// + /* remove old directory */ + clean_remove_db(databasename); + + /* create new db */ +//${AUDIODB} -N -d testdb +// + mydbp=audiodb_create(databasename,0,0,0); + + +//# FIXME: at some point we will want to test that some relevant +//# information is being printed +//${AUDIODB} -S -d testdb +//${AUDIODB} -d testdb -S + + if(audiodb_status(mydbp,&mystatus)){ + returnval=-1; + } + +/* not relevent, caught by API */ +//# should fail (no db given) +//expect_clean_error_exit ${AUDIODB} -S + + + + audiodb_close(mydbp); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0002/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0002/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,37 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0002/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0002/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +DB status using lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0003/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0003/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0003/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0003/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,91 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]={0}; + double dvals[10]={0.0}; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + char * databasename="testdb"; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + // + clean_remove_db(databasename); + + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + /* turn on l2norm */ + //# point query now implemented as sequence search + //${AUDIODB} -d testdb -L + audiodb_l2norm(mydbp); + + /* make a test file */ + //# FIXME: endianness! + //intstring 1 > testfeature + //floatstring 1 >> testfeature + ivals[0]=1; + dvals[0]=1; + maketestfile("testfeature",ivals,dvals,1); + + /* insert */ + //${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myerr=audiodb_insert(mydbp,&myinsert); + + /* query */ + //${AUDIODB} -d testdb -Q point -f testfeature > test-query-output + myadbquery.querytype="point"; + myadbquery.feature="testfeature"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + /* check the test values */ + //echo testfeature 1 0 0 > test-expected-query-output + //cmp test-query-output test-expected-query-output + size=myadbqueryresult.sizeRlist; + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + +//# +//## failure cases +//expect_clean_error_exit ${AUDIODB} -d testdb -I +//expect_clean_error_exit ${AUDIODB} -d testdb -f testfeature +//expect_clean_error_exit ${AUDIODB} -I -f testfeature +//expect_clean_error_exit ${AUDIODB} -d testdb -Q notpoint -f testfeature +//expect_clean_error_exit ${AUDIODB} -Q point -f testfeature +/* all of these will fail at compile time because of API */ + + audiodb_close(mydbp); + + return(returnval); +} + + + + + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0003/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0003/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,37 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0003/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0003/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +1D insertion / point query using lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0004/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0004/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0004/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0004/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,140 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + adb_status_t mystatus={0}; + int ivals[10]; + double dvals[10]; + FILE * myfile; + int ret=0; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + char * databasename="testdb"; + int i=0; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + /* turn on l2norm */ + //${AUDIODB} -d testdb -L + audiodb_l2norm(mydbp); + + /* make a test file */ + //intstring 2 > testfeature + //floatstring 0 1 >> testfeature + //floatstring 1 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + maketestfile("testfeature", ivals,dvals,4); + + + /* insert */ + //${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myerr=audiodb_insert(mydbp,&myinsert); + + /* testquery */ + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0; + maketestfile("testquery", ivals,dvals,4); + + /* query 1 */ + //${AUDIODB} -d testdb -Q point -f testquery > testoutput + //echo testfeature 0.5 0 0 > test-expected-output + //echo testfeature 0 0 1 >> test-expected-output + //cmp testoutput test-expected-output + myadbquery.querytype="point"; + myadbquery.feature="testquery"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",.5,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature",0,0,1)) {returnval = -1;}; + + /* query 2 - same but only first result */ +//${AUDIODB} -d testdb -Q point -f testquery -n 1 > testoutput +//echo testfeature 0.5 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",.5,0,0)) {returnval = -1;}; + + + /* testquery2 */ + //echo "query point (0.5,0.0)" + //intstring 2 > testquery + //floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0; dvals[2]=0; dvals[3]=0; + maketestfile("testquery", ivals,dvals,4); + + /* query 3 */ + //${AUDIODB} -d testdb -Q point -f testquery > testoutput + //echo testfeature 0.5 0 1 > test-expected-output + //echo testfeature 0 0 0 >> test-expected-output + //cmp testoutput test-expected-output + myadbquery2.querytype="point"; + myadbquery2.feature="testquery"; + myadbquery2.numpoints=NULL; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",.5,0,1)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,1,"testfeature",0,0,0)) {returnval = -1;}; + + /* query 4 - same as 3 but only first result */ + //${AUDIODB} -d testdb -Q point -f testquery -n 1 > testoutput + //echo testfeature 0.5 0 1 > test-expected-output + //cmp testoutput test-expected-output + myadbquery2.numpoints="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",.5,0,1)) {returnval = -1;}; + + audiodb_close(mydbp); + + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0004/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0004/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0004/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0004/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +point query using lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0005/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0005/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0005/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0005/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,69 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + int myerror=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + + /* make a test file */ + //intstring 2 > testfeature + //floatstring 0 1 >> testfeature + //floatstring 1 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + + + /* insert */ + //${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myerr=audiodb_insert(mydbp,&myinsert); + + /* turn on l2norm */ + //echo running L2Norm + //${AUDIODB} -d testdb -L + myerror=audiodb_l2norm(mydbp); + if (myerror){ + returnval=-1; + } + + + /* close */ + audiodb_close(mydbp); + + + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0005/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0005/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0005/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0005/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +L2 Norm with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0006/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0006/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0006/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0006/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,147 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + /* create testfeature file */ + //intstring 2 > testfeature + //floatstring 0 1 >> testfeature + //floatstring 1 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + + + /* insert */ + //${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + if(audiodb_insert(mydbp,&myinsert)){ + returnval=-1; + }; + + + /* turn on L2NORM */ + //# sequence queries require L2NORM + //${AUDIODB} -d testdb -L + audiodb_l2norm(mydbp); + + /* make a test query */ + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + + /* test a sequence query */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput + //echo testfeature 1 0 0 > test-expected-output + //cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + + /* same but with limites */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput + //echo testfeature 0 0 0 > test-expected-output + //cmp testoutput test-expected-output + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + + /* make another query */ + //echo "query point (0.5,0.0)" + //intstring 2 > testquery + //floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + + + /* test new query */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput + //echo testfeature 1 0 1 > test-expected-output + //cmp testoutput test-expected-output + + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",1,0,1)) {returnval = -1;}; + + + /* test new query with limits */ + myadbquery2.numpoints="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput + //echo testfeature 0 0 1 > test-expected-output + //cmp testoutput test-expected-output + + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",0,0,1)) {returnval = -1;}; + + + + /* close */ + audiodb_close(mydbp); + + printf("returnval:%d\n",returnval); + return(returnval); +} + + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0006/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0006/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,37 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0006/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0006/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +sequence search / 1 track with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0007/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0007/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0007/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0007/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,124 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + // adbquery myadbquery2={0}; + // adbqueryresult myadbqueryresult2={0}; + int size=0; + + /* remove old directory */ + clean_remove_db(databasename); + + /* create new db */ + mydbp=audiodb_create(databasename,0,0,0); + +//# tests that the lack of -l when the query sequence is shorter doesn't +//# segfault. + + /* make test file */ + //intstring 2 > testfeature + //floatstring 0 1 >> testfeature + //floatstring 1 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + + /* insert */ + //${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myerr=audiodb_insert(mydbp,&myinsert); + if(myerr){ returnval=-1; }; + + + /* turn on l2norm */ + //# sequence queries require L2NORM + //${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ returnval=-1; }; + + + /* make query */ + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + + +/* should fail */ + +//audioDB -Q sequence -d testdb -f testquery +//expect_clean_error_exit ${AUDIODB} -d testdb -Q sequence -f testquery + + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + //myadbquery.sequencelength="1"; + myerr=audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + if (!myerr){ returnval = -1;}; + + +///* should fail */ +//expect_clean_error_exit ${AUDIODB} -d testdb -Q sequence -f testquery -n 1 + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.numpoints="1"; + myerr=audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + if(!myerr){ returnval=-1; }; + +/* query 2 */ +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + +/* should fail */ +//expect_clean_error_exit ${AUDIODB} -d testdb -Q sequence -f testquery + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.numpoints=NULL; + myerr=audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + if(!myerr){ returnval=-1; }; + +/* should fail */ +//expect_clean_error_exit ${AUDIODB} -d testdb -Q sequence -f testquery -n 1 + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.numpoints="1"; + myerr=audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + if(!myerr){ returnval=-1; }; + + + + + //printf("returnval:%d\n", returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0007/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0007/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0007/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0007/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +short query [no -l] error with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0008/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0008/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0008/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0008/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,165 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + + + + /* remove old directory */ + clean_remove_db(databasename); + + + +//${AUDIODB} -d testdb -N + /* create new db */ + mydbp=audiodb_create(databasename,0,0,0); + + +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + + /* create testfeature01 file */ + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=0; dvals[3]=0; + maketestfile("testfeature01",ivals,dvals,2); + + /* create testfeature10 file */ + ivals[0]=2; + dvals[0]=1; dvals[1]=0; dvals[2]=0; dvals[3]=0; + maketestfile("testfeature10",ivals,dvals,2); + +//${AUDIODB} -d testdb -I -f testfeature01 +//${AUDIODB} -d testdb -I -f testfeature10 + + /* insert */ + myinsert.features="testfeature01"; + myerr=audiodb_insert(mydbp,&myinsert); + + myinsert.features="testfeature10"; + myerr=audiodb_insert(mydbp,&myinsert); + +//# sequence queries require L2NORM +//${AUDIODB} -d testdb -L + audiodb_l2norm(mydbp); + +//echo "query point (0.0,0.5)" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery + + /* create testquery file */ + ivals[0]=2; + dvals[0]=0.0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//echo testfeature10 2 0 0 >> test-expected-output +//cmp testoutput test-expected-output + + /* query */ + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",2,0,0)) {returnval = -1;}; + +////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 > testoutput +////echo testfeature01 0 0 0 > test-expected-output +////cmp testoutput test-expected-output + + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + + /* create testquery file */ + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature10 0 0 0 > test-expected-output +//echo testfeature01 2 0 0 >> test-expected-output +//cmp testoutput test-expected-output + + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature10",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,1,"testfeature01",2,0,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 > testoutput +//echo testfeature10 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + + + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.resultlength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature10",0,0,0)) {returnval = -1;}; + + + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0008/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0008/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0008/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0008/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +sequence search / 2 tracks with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0009/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0009/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0009/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0009/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,166 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + + + //if [ -f testdb ]; then rm -f testdb; fi + + /* remove old directory */ + clean_remove_db(databasename); + + + //${AUDIODB} -d testdb -N + + /* create new db */ + mydbp=audiodb_create(databasename,0,0,0); + + //${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ + returnval=-1; + }; + + //intstring 2 > testfeature01 + //floatstring 0 1 >> testfeature01 + //intstring 2 > testfeature10 + //floatstring 1 0 >> testfeature10 + + /* create testfeature01 file */ + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=0; dvals[3]=0; + maketestfile("testfeature01",ivals,dvals,2); + + /* create testfeature10 file */ + ivals[0]=2; + dvals[0]=1; dvals[1]=0; dvals[2]=0; dvals[3]=0; + maketestfile("testfeature10",ivals,dvals,2); + + //${AUDIODB} -d testdb -I -f testfeature01 + //${AUDIODB} -d testdb -I -f testfeature10 + + /* insert */ + myinsert.features="testfeature01"; + myerr=audiodb_insert(mydbp,&myinsert); + myinsert.features="testfeature10"; + myerr=audiodb_insert(mydbp,&myinsert); + + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + + + /* create testquery file */ + ivals[0]=2; + dvals[0]=0.0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + + //${AUDIODB} -d testdb -Q track -l 1 -f testquery > testoutput + //echo testfeature01 0.5 0 0 > test-expected-output + //echo testfeature10 0 0 0 >> test-expected-output + //cmp testoutput test-expected-output + + /* query */ + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0.5,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",0,0,0)) {returnval = -1;}; + + //${AUDIODB} -d testdb -Q track -l 1 -f testquery -r 1 > testoutput + //echo testfeature01 0.5 0 0 > test-expected-output + //cmp testoutput test-expected-output + + /* query */ + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0.5,0,0)) {returnval = -1;}; + + //echo "query point (0.5,0.0)" + //intstring 2 > testquery + //floatstring 0.5 0 >> testquery + + /* create testquery file */ + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + + //${AUDIODB} -d testdb -Q track -l 1 -f testquery > testoutput + //echo testfeature10 0.5 0 0 > test-expected-output + //echo testfeature01 0 0 0 >> test-expected-output + //cmp testoutput test-expected-output + + /* query */ + myadbquery2.querytype="track"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature10",0.5,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,1,"testfeature01",0,0,0)) {returnval = -1;}; + + + //${AUDIODB} -d testdb -Q track -l 1 -f testquery -r 1 > testoutput + //echo testfeature10 0.5 0 0 > test-expected-output + //cmp testoutput test-expected-output + + /* query */ + myadbquery2.querytype="track"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.resultlength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature10",0.5,0,0)) {returnval = -1;}; + + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0009/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0009/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0009/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0009/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +track search with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0010/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0010/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0010/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0010/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,125 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + +/* clean */ +//if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + +/* new db */ +//${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +/* test feature files */ +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + +/* inserts */ +//${AUDIODB} -d testdb -I -f testfeature01 +//${AUDIODB} -d testdb -I -f testfeature10 + myinsert.features="testfeature01"; + myerr=audiodb_insert(mydbp,&myinsert); + myinsert.features="testfeature10"; + myerr=audiodb_insert(mydbp,&myinsert); + +/* l2norm */ +//# sequence queries require L2NORM +//${AUDIODB} -d testdb -L + audiodb_l2norm(mydbp); + +/* query 1 */ +//echo "query point (0.0,0.5)" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput +//echo testfeature01 1 > test-expected-output +//echo testfeature10 1 >> test-expected-output +//cmp testoutput test-expected-output + + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + dump_query(&myadbquery,&myadbqueryresult); + /* check the test values */ + if (size != 2) {returnval = -1;}; + //if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + //if (testoneresult(&myadbqueryresult,1,"testfeature",1,0,0)) {returnval = -1;}; + + +/* query 2 */ +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -R 5 > testoutput +//echo testfeature01 1 > test-expected-output +//cmp testoutput test-expected-output +// +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + + +/* query 3 */ +//# FIXME: because there's only one point in each track (and the query), +//# the ordering is essentially database order. We need these test +//# cases anyway because we need to test non-segfaulting, non-empty +//# results... +// +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput +//echo testfeature01 1 > test-expected-output +//echo testfeature10 1 >> test-expected-output +//cmp testoutput test-expected-output + + + +/* query 4 */ +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -R 5 > testoutput +//echo testfeature01 1 > test-expected-output +//cmp testoutput test-expected-output + + + printf("returnval:%d\n",returnval); + //returnval=-1; + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0010/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0010/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0010/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0010/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +sequence radius search / 1 point with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0011/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0011/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0011/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0011/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,141 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + + //if [ -f testdb ]; then rm -f testdb; fi + /* remove old directory */ + clean_remove_db(databasename); + + + //${AUDIODB} -d testdb -N + /* create new db */ + mydbp=audiodb_create(databasename,0,0,0); + + + /* create testfeature01 file */ + //intstring 2 > testfeature + //floatstring 0 0.5 >> testfeature + //floatstring 0.5 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0.5; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + + /* insert */ + //${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myerr=audiodb_insert(mydbp,&myinsert); + + /* create testquery file */ + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0.0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + + /* l2norm */ + //# sequence queries require L2NORM + //${AUDIODB} -d testdb -L + audiodb_l2norm(mydbp); + + /* query */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput + //echo testfeature 1 0 0 > test-expected-output + //cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + /* query2 */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput + //echo testfeature 0 0 0 > test-expected-output + //cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + + /* query3 */ + //echo "query point (0.5,0.0)" + //intstring 2 > testquery + //floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0; + maketestfile("testquery",ivals,dvals,2); + + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput + //echo testfeature 1 0 1 > test-expected-output + //cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",1,0,1)) {returnval = -1;}; + + + /* query4 */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput + //echo testfeature 0 0 1 > test-expected-output + //cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.numpoints="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",0,0,1)) {returnval = -1;}; + + + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0011/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0011/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0011/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0011/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +sequence search / 1 track / non-normed features using lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0012/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0012/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0012/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0012/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,138 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + //intstring 2 > testfeature + //floatstring 0 0.5 >> testfeature + //floatstring 0.5 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0.5; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + + //# sequence queries require L2NORM; check that we can still insert + //# after turning flag on + //${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ + returnval=-1; + }; + + //${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myerr=audiodb_insert(mydbp,&myinsert); + + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + + /* query 1 */ +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + + /* query 2 */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput + //echo testfeature 0 0 0 > test-expected-output + //cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + + /* testquery */ +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + /* create testquery file */ + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; dvals[2]=0; dvals[3]=0; + maketestfile("testquery",ivals,dvals,2); + + /* query 3 file */ +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature 1 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",1,0,1)) {returnval = -1;}; + + /* query 4 */ +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +//echo testfeature 0 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.numpoints="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",0,0,1)) {returnval = -1;}; + + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0012/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0012/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0012/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0012/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +insert after L2Norm with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0022/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0022/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0022/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0022/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,152 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + adb_insert_t ins1[2]={{0},{0}}; + int size=0; + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + if (!mydbp){ returnval=-1;}; + +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + + +//cat > testfeaturefiles < testquery +//floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//echo testfeature10 2 0 0 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",2,0,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0; + maketestfile("testquery",ivals,dvals,2); + +////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +////echo testfeature10 0 0 0 > test-expected-output +////echo testfeature01 2 0 0 >> test-expected-output +////cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature10",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,1,"testfeature01",2,0,0)) {returnval = -1;}; + + +////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 > testoutput +////echo testfeature10 0 0 0 > test-expected-output +////cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.resultlength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature10",0,0,0)) {returnval = -1;}; + + audiodb_close(mydbp); +// fprintf(stderr,"returnval:%d\n",returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0022/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0022/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0022/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0022/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +Batchinsert / sequence search with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0023/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0023/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: clean test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0023/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0023/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,160 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + adb_query_t myadbquery3={0}; + adb_queryresult_t myadbqueryresult3={0}; + int size=0; + adb_insert_t ins1[2]={{0},{0}}; + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + +//cat > testfeaturefiles < testquery +////floatstring 0 0.5 >> testquery +////floatstring 0.5 0 >> testquery + + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + dvals[2]=0.5; dvals[3]=0; + maketestfile("testquery",ivals,dvals,4); + + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 0 > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//echo testfeature10 2 0 0 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.qpoint="0"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //printf("size:%d\n",size); + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",2,0,0)) {returnval = -1;}; + + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -p 0 > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.resultlength="1"; + myadbquery2.qpoint="0"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature01",0,0,0)) {returnval = -1;}; + + +//echo "query point (0.5,0.0)" + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 1 > testoutput +//echo testfeature10 0 1 0 > test-expected-output +//echo testfeature01 2 1 0 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery3.querytype="sequence"; + myadbquery3.feature="testquery"; + myadbquery3.sequencelength="1"; + myadbquery3.qpoint="1"; + audiodb_query(mydbp,&myadbquery3,&myadbqueryresult3); + size=myadbqueryresult3.sizeRlist; + +// dump_query(&myadbquery3,&myadbqueryresult3); + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult3,0,"testfeature10",0,1,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult3,1,"testfeature01",2,1,0)) {returnval = -1;}; + + +////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -p 1 > testoutput +////echo testfeature10 0 1 0 > test-expected-output +////cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.qpoint="1"; + myadbquery2.resultlength="1"; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature10",0,1,0)) {returnval = -1;}; + + +// printf("returnval:%d\n",returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0023/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0023/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0023/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0023/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +as 0022 but with -p with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0024/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0024/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0024/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0024/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,118 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + adb_insert_t ins1[2]={0}; + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + +//cat > testfeaturefiles < testquery +//floatstring 0 0.5 >> testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + dvals[2]=0.5; dvals[3]=0; + maketestfile("testquery",ivals,dvals,4); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -e > testoutput +//echo testfeature01 1 0 0 > test-expected-output +//echo testfeature10 1 1 0 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.exhaustive=1; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //printf("size:%d\n",size); + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",1,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",1,1,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 -e > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//echo testfeature10 0 1 0 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.exhaustive=1; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //printf("size:%d\n",size); + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",0,1,0)) {returnval = -1;}; + + + printf("returnval:%d\n",returnval); + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0024/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0024/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0024/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0024/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +-l 1 exhaustive search like 0022 with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0025/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0025/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0025/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0025/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,158 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + +void maketimesfile(char * filename); + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature +//floatstring 0 0.5 >> testfeature +//floatstring 0.5 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0.5; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + + +//cat > testtimes < testquery +//floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + +////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +////echo testfeature 0 0 0 > test-expected-output +////cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + +////echo "query point (0.5,0.0)" +////intstring 2 > testquery +////floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + +////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +////echo testfeature 1 0 1 > test-expected-output +////cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;}; + + +////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +////echo testfeature 0 0 1 > test-expected-output +////cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,1)) {returnval = -1;}; + + + + //printf("returnval:%d\n",returnval); + return(returnval); +} + +void maketimesfile(char * filename){ + + FILE * myfile; + + myfile=fopen(filename,"w"); + fprintf(myfile,"0\n"); + fprintf(myfile,"1\n"); + fprintf(myfile,"2\n"); + fflush(myfile); + fclose(myfile); + +} diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0025/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0025/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0025/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0025/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +insertion with times with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0026/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0026/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0026/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0026/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,56 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + // int ivals[10]; + // double dvals[10]; + // adbinsert myinsert={0}; + // unsigned int myerr=0; + char * databasename="testdb"; + // adbquery myadbquery={0}; + // adbqueryresult myadbqueryresult={0}; + // adbquery myadbquery2={0}; + // adbqueryresult myadbqueryresult2={0}; + int myerror=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -N -d testdb + mydbp=audiodb_create(databasename,0,0,0); + + /* power flag on */ + //${AUDIODB} -P -d testdb + //${AUDIODB} -d testdb -P + myerror=audiodb_power(mydbp); + if (myerror){ + returnval=-1; + } + + //# should fail (no db given) + //expect_clean_error_exit ${AUDIODB} -P + /* not relevent, API wouldn't compile */ + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0026/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0026/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0026/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0026/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +command-line -P handling with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0027/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0027/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0027/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0027/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,362 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + //intstring 2 > testfeature + //floatstring 0 1 >> testfeature + //floatstring 1 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + + //intstring 1 > testpower + //floatstring -0.5 >> testpower + //floatstring -1 >> testpower + ivals[0]=1; + dvals[0]=-0.5; dvals[1]=-1; + maketestfile("testpower",ivals,dvals,2); + + /* insert breaks because power flag off and power insert */ + //expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature -w testpower + myinsert.features="testfeature"; + myinsert.power="testpower"; + if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + + + /* make sure power can be turned on */ +//${AUDIODB} -d testdb -P + if(audiodb_power(mydbp)){ returnval=-1; }; + + + /* inserts now require power also */ +////expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myinsert.power=NULL; + //myerr=audiodb_insert(mydbp,&myinsert); + if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + + /* now make a real insert */ +//${AUDIODB} -d testdb -I -f testfeature -w testpower + myinsert.features="testfeature"; + myinsert.power="testpower"; + myerr=audiodb_insert(mydbp,&myinsert); + if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + + + //# sequence queries require L2NORM + //${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ returnval=-1; }; + + + //# queries without power files should run as before + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=-0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + + + /* query 1 */ + //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput + //echo testfeature 1 0 0 > test-expected-output + //cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +//echo testfeature 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature 1 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +//echo testfeature 0 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,1)) {returnval = -1;}; + + + +//# queries with power files might do something different +//echo "query point (0.0,0.5), p=-0.5" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery +//intstring 1 > testquerypower +//floatstring -0.5 >> testquerypower + ivals[0]=2; + dvals[0]=-0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + ivals[0]=1; + dvals[0]=-0.5; + maketestfile("testquerypower",ivals,dvals,1); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.power="testquerypower"; + myadbquery.numpoints=NULL; + myadbquery.absolute_threshold=-1.4; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput +//echo testfeature 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.power="testquerypower"; + myadbquery.numpoints=NULL; + myadbquery.absolute_threshold=-0.6; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.2 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.power="testquerypower"; + myadbquery.numpoints=NULL; + myadbquery.absolute_threshold=-0.2; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 0) {returnval = -1;}; + + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=1 > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.power="testquerypower"; + myadbquery.numpoints=NULL; + myadbquery.absolute_threshold=0; + myadbquery.relative_threshold=1; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=0.2 > testoutput +//echo testfeature 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.power="testquerypower"; + myadbquery.numpoints=NULL; + myadbquery.absolute_threshold=0; + myadbquery.relative_threshold=0.2; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + + +//echo "query point (0.5,0.0), p=-0.5" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + + +//audioDB -Q sequence -d testdb -f testquery -w testquerypower -l 1 --absolute-threshold -1.400000 +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput +//echo testfeature 1 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.power="testquerypower"; + myadbquery2.numpoints=NULL; + myadbquery2.absolute_threshold=-1.4; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",1,0,1)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput +//echo testfeature 2 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.power="testquerypower"; + myadbquery2.numpoints=NULL; + myadbquery2.absolute_threshold=-0.6; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",2,0,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.2 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.power="testquerypower"; + myadbquery2.numpoints=NULL; + myadbquery2.absolute_threshold=-0.2; + myadbquery2.relative_threshold=0.0; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=1 > testoutput +//echo testfeature 1 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.power="testquerypower"; + myadbquery2.numpoints=NULL; + myadbquery2.absolute_threshold=0.0; + myadbquery2.relative_threshold=1; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",1,0,1)) {returnval = -1;}; + + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=0.2 > testoutput +//echo testfeature 2 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery2.querytype="sequence"; + myadbquery2.feature="testquery"; + myadbquery2.sequencelength="1"; + myadbquery2.power="testquerypower"; + myadbquery2.numpoints=NULL; + myadbquery2.absolute_threshold=-0.0; + myadbquery2.relative_threshold=0.1; + audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2); + size=myadbqueryresult2.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult2,0,"testfeature",2,0,0)) {returnval = -1;}; + +// printf("returnval:%d\n",returnval); + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0027/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0027/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0027/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0027/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +0006 with power with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0028/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0028/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0028/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0028/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,364 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + adb_insert_t ins1[2]={{0},{0}}; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature +//floatstring 0 1 >> testfeature +//floatstring 1 0 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + maketestfile("testfeature",ivals,dvals,4); + +//intstring 1 > testpower +//floatstring -0.5 >> testpower +//floatstring -1 >> testpower + ivals[0]=1; + dvals[0]=-0.5; dvals[1]=-1; + maketestfile("testpower",ivals,dvals,2); + +//echo testfeature > testFeatureList.txt +//echo testpower > testPowerList.txt + ins1[0].features="testfeature"; + ins1[0].power="testpower"; + +//expect_clean_error_exit ${AUDIODB} -d testdb -B -F testFeatureList.txt -W testPowerList.txt + if(!audiodb_batchinsert(mydbp,ins1,1)){ + returnval=-1; + }; + +//${AUDIODB} -d testdb -P + if(audiodb_power(mydbp)){ + returnval=-1; + }; + +//expect_clean_error_exit ${AUDIODB} -d testdb -B -F testFeatureList.txt + ins1[0].features="testfeature"; + ins1[0].power=NULL; + if(!audiodb_batchinsert(mydbp,ins1,1)){ + returnval=-1; + }; + +//${AUDIODB} -d testdb -B -F testFeatureList.txt -W testPowerList.txt + ins1[0].features="testfeature"; + ins1[0].power="testpower"; + if(audiodb_batchinsert(mydbp,ins1,1)){ + returnval=-1; + }; + +//# sequence queries require L2NORM +//${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ + returnval=-1; + }; + +//# queries without power files should run as before +//echo "query point (0.0,0.5)" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=-0.0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +//echo testfeature 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//echo testfeature 1 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput +//echo testfeature 0 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,1)) {returnval = -1;}; + +//# queries with power files might do something different +//echo "query point (0.0,0.5), p=-0.5" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0.0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + +//intstring 1 > testquerypower +//floatstring -0.5 >> testquerypower + ivals[0]=1; + dvals[0]=-0.5; + maketestfile("testquerypower",ivals,dvals,1); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=-1.4; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput +//echo testfeature 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=-0.6; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.2 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=-0.2; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 0) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=1 > testoutput +//audioDB -Q sequence -d testdb -f testquery -w testquerypower -l 1 --relative-threshold 1.000000 +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=0.0; + myadbquery.relative_threshold=1.0; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=0.2 > testoutput +//echo testfeature 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=0.0; + myadbquery.relative_threshold=0.2; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;}; + +////echo "query point (0.5,0.0), p=-0.5" +////intstring 2 > testquery +////floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput +//echo testfeature 1 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=-1.4; + myadbquery.relative_threshold=0.0; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + +// dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput +//echo testfeature 2 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=-0.6; + myadbquery.relative_threshold=0.0; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",2,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.2 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.absolute_threshold=-0.2; + myadbquery.relative_threshold=0.0; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 0) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=1 > testoutput +//echo testfeature 1 0 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.relative_threshold=1.0; + myadbquery.absolute_threshold=0.0; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=0.2 > testoutput +//echo testfeature 2 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.relative_threshold=0.2; + myadbquery.absolute_threshold=0.0; + myadbquery.numpoints=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + ///* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",2,0,0)) {returnval = -1;}; + + + audiodb_close(mydbp); + //fprintf(stderr,"returnval:%d\n",returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0028/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0028/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0028/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0028/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +batchinsert version of 0027 with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0029/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0029/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0029/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0029/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,270 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature +//floatstring 0 1 >> testfeature +//floatstring 1 0 >> testfeature +//floatstring 1 0 >> testfeature +//floatstring 0 1 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + dvals[4]=1; dvals[5]=0; dvals[6]=0; dvals[7]=1; + maketestfile("testfeature",ivals,dvals,8); + +//intstring 1 > testpower +//floatstring -0.5 >> testpower +//floatstring -1 >> testpower +//floatstring -1 >> testpower +//floatstring -0.5 >> testpower + ivals[0]=1; + dvals[0]=-0.5; dvals[1]=-1; dvals[2]=-1; dvals[3]=-0.5; + maketestfile("testpower",ivals,dvals,4); + +//expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature -w testpower + myinsert.features="testfeature"; + myinsert.power="testpower"; + if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + +//${AUDIODB} -d testdb -P + if(audiodb_power(mydbp)){ returnval=-1; }; + +//expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myinsert.power=NULL; + if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + + +//${AUDIODB} -d testdb -I -f testfeature -w testpower + myinsert.features="testfeature"; + myinsert.power="testpower"; + if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + + +//# sequence queries require L2NORM +//${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ returnval=-1; }; + +//echo "query points (0.0,0.5),(0.0,0.5),(0.5,0.0)" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery +//floatstring 0 0.5 >> testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0.5; dvals[4]=0.5; dvals[5]=0; + maketestfile("testquery",ivals,dvals,6); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +//audioDB -Q sequence -d testdb -f testquery -l 1 +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 0 > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.qpoint="0"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + printf("returnval:%d\n",returnval); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 1 > testoutput +//echo testfeature 1 1 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.qpoint="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,1,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 0 > testoutput +//echo testfeature 1.33333 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1.33333,0,0)) {returnval = -1;}; + + + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 1 > testoutput +//echo testfeature 1 1 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,1,0)) {returnval = -1;}; + + +//echo "query points (0.0,0.5)p=-0.5,(0.0,0.5)p=-1,(0.5,0.0)p=-1" +//intstring 1 > testquerypower +//floatstring -0.5 -1 -1 >> testquerypower + ivals[0]=1; + dvals[0]=-0.5; dvals[1]=-1; dvals[2]=-1; + maketestfile("testquerypower",ivals,dvals,3); + + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-1.4 -p 0 > testoutput +//echo testfeature 1.33333 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint=NULL; + myadbquery.absolute_threshold=-1.4; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1.33333,0,0)) {returnval = -1;}; + + + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-1.4 -p 1 > testoutput +//echo testfeature 1 1 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="1"; + myadbquery.absolute_threshold=-1.4; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,1,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.8 -p 0 > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + myadbquery.absolute_threshold=-0.8; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.8 -p 1 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="1"; + myadbquery.absolute_threshold=-0.8; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + + + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --relative-threshold=0.1 -p 0 > testoutput +//echo testfeature 1 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + myadbquery.absolute_threshold=0.0; + myadbquery.relative_threshold=0.1; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;}; + + + +//// returnval=-1; + printf("returnval:%d\n",returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0029/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0029/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0029/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0029/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +-l 2 searches with power with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0030/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0030/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0030/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0030/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,334 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature +//floatstring 0 1 >> testfeature +//floatstring 1 0 >> testfeature +//floatstring 1 0 >> testfeature +//floatstring 0 1 >> testfeature + ivals[0]=2; + dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0; + dvals[4]=1; dvals[5]=0; dvals[6]=0; dvals[7]=1; + maketestfile("testfeature",ivals,dvals,8); + +//intstring 1 > testpower +//floatstring -0.5 >> testpower +//floatstring -1 >> testpower +//floatstring -1 >> testpower +//floatstring -0.5 >> testpower + ivals[0]=1; + dvals[0]=-0.5; dvals[1]=-1; dvals[2]=-1; dvals[3]=-0.5; + maketestfile("testpower",ivals,dvals,4); + +//expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature -w testpower + myinsert.features="testfeature"; + myinsert.power="testpower"; + if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + +//${AUDIODB} -d testdb -P + if(audiodb_power(mydbp)){ returnval=-1; }; + +//expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + myinsert.power=NULL; + if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + +//${AUDIODB} -d testdb -I -f testfeature -w testpower + myinsert.features="testfeature"; + myinsert.power="testpower"; + if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + printf("returnval:%d\n",returnval); + +//# sequence queries require L2NORM +//${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ returnval=-1; }; + +//echo "query points (0.0,0.5),(0.0,0.5),(0.5,0.0)" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery +//floatstring 0 0.5 >> testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0.5; dvals[4]=0.5; dvals[5]=0; + maketestfile("testquery",ivals,dvals,6); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 0.1 > testoutput +//audioDB -Q sequence -d testdb -f testquery -R 0.1 -l 1 +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + //myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + //myadbquery.qpoint="0"; + //myadbquery.absolute_threshold=0.0; + //myadbquery.relative_threshold=0.1; + myadbquery.radius="0.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 0 -R 0.1 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + //myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.qpoint="0"; + //myadbquery.absolute_threshold=0.0; + //myadbquery.relative_threshold=0.1; + myadbquery.radius="0.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 1 -R 0.1 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + //myadbquery.power="testquerypower"; + myadbquery.sequencelength="1"; + myadbquery.qpoint="1"; + //myadbquery.absolute_threshold=0.0; + //myadbquery.relative_threshold=0.1; + myadbquery.radius="0.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 0 -R 1.1 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + //myadbquery.absolute_threshold=0.0; + //myadbquery.relative_threshold=0.1; + myadbquery.radius="1.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 0 -R 0.9 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + //myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + //myadbquery.absolute_threshold=0.0; + //myadbquery.relative_threshold=0.1; + myadbquery.radius="0.9"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 1 -R 0.9 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + //myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="1"; + myadbquery.radius="0.9"; + //myadbquery.absolute_threshold=0.0; + //myadbquery.relative_threshold=0.1; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//echo "query points (0.0,0.5)p=-0.5,(0.0,0.5)p=-1,(0.5,0.0)p=-1" +//intstring 1 > testquerypower +//floatstring -0.5 -1 -1 >> testquerypower + ivals[0]=1; + dvals[0]=-0.5; dvals[1]=-1; dvals[2]=-1; + maketestfile("testquerypower",ivals,dvals,3); + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-1.4 -p 0 -R 1.1 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + myadbquery.absolute_threshold=-1.4; + myadbquery.relative_threshold=0.0; + myadbquery.radius="1.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.8 -p 0 -R 1.1 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + myadbquery.absolute_threshold=-0.8; + //myadbquery.relative_threshold=0.1; + myadbquery.radius="1.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.7 -p 0 -R 1.1 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + myadbquery.absolute_threshold=-0.7; + myadbquery.relative_threshold=0.0; + myadbquery.radius="1.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-1.4 -p 1 -R 0.9 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="1"; + myadbquery.absolute_threshold=-1.4; + myadbquery.relative_threshold=0.0; + myadbquery.radius="0.9"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.9 -p 1 -R 0.9 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="1"; + myadbquery.absolute_threshold=-0.9; + myadbquery.relative_threshold=0.0; + myadbquery.radius="0.9"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --relative-threshold=0.1 -p 0 -R 1.1 > testoutput +//echo testfeature 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + myadbquery.absolute_threshold=0.0; + myadbquery.relative_threshold=0.1; + myadbquery.radius="1.1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --relative-threshold=0.1 -p 0 -R 0.9 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.power="testquerypower"; + myadbquery.sequencelength="2"; + myadbquery.qpoint="0"; + myadbquery.absolute_threshold=0.0; + myadbquery.relative_threshold=0.1; + myadbquery.radius="0.9"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + + //returnval=-1; + printf("returnval:%d\n",returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0030/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0030/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0030/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0030/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +single-track sequence radius search with power with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0031/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0031/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0031/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0031/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,266 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +///intstring 2 > testfeature01 +///floatstring 0 1 >> testfeature01 +///intstring 2 > testfeature10 +///floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + +///${AUDIODB} -d testdb -I -f testfeature01 +///${AUDIODB} -d testdb -I -f testfeature10 + + myinsert.features="testfeature01"; + if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + + myinsert.features="testfeature10"; + if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + +///# sequence queries require L2NORM +///${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ returnval=-1; }; + +///echo "query point (0.0,0.5)" +///intstring 2 > testquery +///floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +///echo testfeature01 0 0 0 > test-expected-output +///echo testfeature10 2 0 0 >> test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",2,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K /dev/null > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="/dev/null"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 0) {returnval = -1;}; + +///echo testfeature01 > testkl.txt + makekeylistfile("testkl.txt","testfeature01"); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt > testoutput +///echo testfeature01 0 0 0 > test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + +///echo testfeature10 > testkl.txt + makekeylistfile("testkl.txt","testfeature10"); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt > testoutput +///echo testfeature10 2 0 0 > test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",2,0,0)) {returnval = -1;}; + +///echo testfeature10 > testkl.txt + makekeylistfile("testkl.txt","testfeature10"); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 > testoutput +///echo testfeature10 2 0 0 > test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",2,0,0)) {returnval = -1;}; + +///echo "query point (0.5,0.0)" +///intstring 2 > testquery +///floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput +///echo testfeature10 0 0 0 > test-expected-output +///echo testfeature01 2 0 0 >> test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist=NULL; + myadbquery.sequencelength="1"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",0,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature01",2,0,0)) {returnval = -1;}; + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K /dev/null > testoutput +///cat /dev/null > test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="/dev/null"; + myadbquery.sequencelength="1"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 0) {returnval = -1;}; + +///echo testfeature10 > testkl.txt + makekeylistfile("testkl.txt","testfeature10"); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt > testoutput +///echo testfeature10 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",0,0,0)) {returnval = -1;}; + + +///echo testfeature01 > testkl.txt + makekeylistfile("testkl.txt","testfeature01"); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt > testoutput +///echo testfeature01 2 0 0 > test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",2,0,0)) {returnval = -1;}; + +///echo testfeature01 > testkl.txt + makekeylistfile("testkl.txt","testfeature01"); + +///${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 > testoutput +///echo testfeature01 2 0 0 > test-expected-output +///cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",2,0,0)) {returnval = -1;}; + + + + //printf("returnval:%d\n",returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0031/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0031/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0031/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0031/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +0008 with -K restriction with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0032/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0032/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0032/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0032/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,269 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + + + /* remove old directory */ +//if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ +//${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + /* turn on l2 power */ +//${AUDIODB} -d testdb -L + if (audiodb_l2norm(mydbp)) {returnval=-1;}; + + /* make feature files */ +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + + + /* insertions */ + //${AUDIODB} -d testdb -I -f testfeature01 + //${AUDIODB} -d testdb -I -f testfeature10 + myinsert.features="testfeature01"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + myinsert.features="testfeature10"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + + + /* query */ + //echo "query point (0.0,0.5)" + //intstring 2 > testquery + //floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + + /* test a sequence query */ + //${AUDIODB} -d testdb -Q track -l 1 -f testquery > testoutput + //echo testfeature01 0.5 0 0 > test-expected-output + //echo testfeature10 0 0 0 >> test-expected-output + //cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0.5,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature10",0,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K /dev/null > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="/dev/null"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + + + +//echo testfeature01 > testkl.txt + makekeylistfile("testkl.txt","testfeature01"); +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput +//echo testfeature01 0.5 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0.5,0,0)) {returnval = -1;}; + + + + +//echo testfeature10 > testkl.txt + makekeylistfile("testkl.txt","testfeature10"); +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput +//echo testfeature10 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",0,0,0)) {returnval = -1;}; + + + +//echo testfeature10 > testkl.txt + makekeylistfile("testkl.txt","testfeature10"); +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt -r 1 > testoutput +//echo testfeature10 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",0,0,0)) {returnval = -1;}; + +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q track -l 1 -f testquery > testoutput +//echo testfeature10 0.5 0 0 > test-expected-output +//echo testfeature01 0 0 0 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist=NULL; + myadbquery.sequencelength="1"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",0.5,0,0)) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,1,"testfeature01",0,0,0)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K /dev/null > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="/dev/null"; + myadbquery.sequencelength="1"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 0) {returnval = -1;}; + +//echo testfeature10 > testkl.txt + makekeylistfile("testkl.txt","testfeature10"); +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput +//echo testfeature10 0.5 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature10",0.5,0,0)) {returnval = -1;}; + +//echo testfeature01 > testkl.txt + makekeylistfile("testkl.txt","testfeature01"); +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + +//echo testfeature01 > testkl.txt + makekeylistfile("testkl.txt","testfeature01"); +//${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt -r 1 > testoutput +//echo testfeature01 0 0 0 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="track"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + + size=myadbqueryresult.sizeRlist; + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; + + + + +// printf("returnval:%d\n", returnval); + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0032/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0032/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0032/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0032/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +0009 with -K restriction with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0033/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0033/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0033/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0033/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,206 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + + /* remove old directory */ +//if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ +//${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + +//${AUDIODB} -d testdb -I -f testfeature01 +//${AUDIODB} -d testdb -I -f testfeature10 + myinsert.features="testfeature01"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + myinsert.features="testfeature10"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//# sequence queries require L2NORM +//${AUDIODB} -d testdb -L + if (audiodb_l2norm(mydbp)) {returnval=-1;}; + +//echo "query point (0.0,0.5)" +//intstring 2 > testquery +//floatstring 0 0.5 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=0.5; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput +//audioDB -Q sequence -d testdb -f testquery -R 5 -l 1 +//echo testfeature01 1 > test-expected-output +//echo testfeature10 1 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature01",1)) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,1,"testfeature10",1)) {returnval = -1;}; + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K /dev/null -R 5 > testoutput +//cat /dev/null > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="/dev/null"; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 0) {returnval = -1;}; + + + +//echo testfeature01 > testkl.txt + makekeylistfile("testkl.txt","testfeature01"); +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -R 5 > testoutput +//echo testfeature01 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature01",1)) {returnval = -1;}; + +//echo testfeature10 > testkl.txt + makekeylistfile("testkl.txt","testfeature10"); +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -R 5 > testoutput +//echo testfeature10 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature10",1)) {returnval = -1;}; + +//echo testfeature10 > testkl.txt +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 -R 5 > testoutput +//echo testfeature10 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature10",1)) {returnval = -1;}; + + +//# NB: one might be tempted to insert a test here for having both keys +//# in the keylist, but in non-database order, and then checking that +//# the result list is also in that non-database order. I think that +//# would be misguided, as the efficient way of dealing with such a +//# keylist is to advance as-sequentially-as-possible through the +//# database; it just so happens that our current implementation is not +//# so smart. + +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery + ivals[0]=2; + dvals[0]=0.5; dvals[1]=0.0; + maketestfile("testquery",ivals,dvals,2); + +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput +//echo testfeature01 1 > test-expected-output +//echo testfeature10 1 >> test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist=NULL; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + myadbquery.resultlength=NULL; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 2) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature01",1)) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,1,"testfeature10",1)) {returnval = -1;}; + +//echo testfeature10 > testkl.txt +//${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 -R 5 > testoutput +//echo testfeature10 1 > test-expected-output +//cmp testoutput test-expected-output + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.keylist="testkl.txt"; + myadbquery.sequencelength="1"; + myadbquery.radius="5"; + myadbquery.resultlength="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + /* check the test values */ + if (size != 1) {returnval = -1;}; + if (testoneradiusresult(&myadbqueryresult,0,"testfeature10",1)) {returnval = -1;}; + + + //fprintf(stderr,"returnval:%d\n",returnval); + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0033/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0033/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0033/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0033/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +0010 with -K restriction with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0034/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0034/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0034/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0034/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,183 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_status_t mystatus={0}; + adb_insert_t ins1[3]={{0},{0},{0}}; + + + + /* remove old directory */ +//if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ +//${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + +//intstring 2 > testfeature +//floatstring 1 1 >> testfeature +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 + ivals[0]=2; + dvals[0]=1; dvals[1]=1; + maketestfile("testfeature",ivals,dvals,2); + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature01",ivals,dvals,2); + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + maketestfile("testfeature10",ivals,dvals,2); + +//${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:1" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 1) { returnval = -1; } + +//${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:1" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 1) { returnval = -1; } + +//${AUDIODB} -d testdb -I -f testfeature01 + myinsert.features="testfeature01"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:2" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 2) { returnval = -1; } + +//${AUDIODB} -d testdb -I -f testfeature10 + myinsert.features="testfeature10"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:3" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 3) { returnval = -1; } + +//rm -f testdb + clean_remove_db(databasename); + + /* create new db */ +//${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + +//${AUDIODB} -d testdb -I -f testfeature01 + myinsert.features="testfeature01"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:1" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 1) { returnval = -1; } + +//${AUDIODB} -d testdb -I -f testfeature01 + myinsert.features="testfeature01"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:1" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 1) { returnval = -1; } + +//${AUDIODB} -d testdb -I -f testfeature10 + myinsert.features="testfeature10"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:2" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 2) { returnval = -1; } + +//${AUDIODB} -d testdb -I -f testfeature + myinsert.features="testfeature"; + if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; + +//${AUDIODB} -d testdb -S | grep "num files:3" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 3) { returnval = -1; } + + + + +//rm -f testdb + clean_remove_db(databasename); + + /* create new db */ +//${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//echo testfeature > testfeaturelist.txt +//echo testfeature01 >> testfeaturelist.txt +//echo testfeature10 >> testfeaturelist.txt +//${AUDIODB} -B -F testfeaturelist.txt -d testdb + ins1[0].features="testfeature"; + ins1[1].features="testfeature01"; + ins1[2].features="testfeature10"; + if(audiodb_batchinsert(mydbp,ins1,3)){ + returnval=-1; + }; + +//${AUDIODB} -d testdb -S | grep "num files:3" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 3) { returnval = -1; } + + + + +//rm -f testdb + clean_remove_db(databasename); + + /* create new db */ +//${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + + +//echo testfeature01 > testfeaturelist.txt +//echo testfeature10 >> testfeaturelist.txt +//echo testfeature >> testfeaturelist.txt +//${AUDIODB} -B -F testfeaturelist.txt -d testdb + ins1[0].features="testfeature"; + ins1[1].features="testfeature01"; + ins1[2].features="testfeature10"; + if(audiodb_batchinsert(mydbp,ins1,3)){ + returnval=-1; + }; + +//${AUDIODB} -d testdb -S | grep "num files:3" + if(audiodb_status(mydbp,&mystatus)) {returnval = -1; }; + if(mystatus.numFiles != 3) { returnval = -1; } + + + + fprintf(stderr,"returnval:%d\n",returnval); + return(returnval); +} diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0034/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0034/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0034/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0034/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +key duplicate test with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0035/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0035/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0035/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0035/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,95 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + int size=0; + + + /* remove old directory */ + //if [ -f testdb ]; then rm -f testdb; fi + clean_remove_db(databasename); + + /* create new db */ + //${AUDIODB} -d testdb -N + mydbp=audiodb_create(databasename,0,0,0); + +//intstring 2 > testfeature1 +//floatstring 0 1 >> testfeature1 + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + maketestfile("testfeature1",ivals,dvals,2); + +//intstring 2 > testfeature3 +//floatstring 1 0 >> testfeature3 +//floatstring 0 1 >> testfeature3 +//floatstring 1 0 >> testfeature3 + ivals[0]=2; + dvals[0]=1; dvals[1]=0; + dvals[2]=0; dvals[3]=1; + dvals[4]=1; dvals[5]=0; + maketestfile("testfeature3",ivals,dvals,6); + +//${AUDIODB} -d testdb -I -f testfeature1 + myinsert.features="testfeature1"; + if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; } +//${AUDIODB} -d testdb -I -f testfeature3 + myinsert.features="testfeature3"; + if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; } + +//# sequence queries require L2NORM +//${AUDIODB} -d testdb -L + if(audiodb_l2norm(mydbp)){ returnval=-1; }; + +//echo "query point (0 1, 1 0)" +//intstring 2 > testquery +//floatstring 0 1 >> testquery +//floatstring 1 0 >> testquery + ivals[0]=2; + dvals[0]=0; dvals[1]=1; + dvals[2]=1; dvals[3]=0; + maketestfile("testquery",ivals,dvals,4); + +//audioDB -Q sequence -d testdb -f testquery -n 1 -l 2 +//${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -n 1 > testoutput + myadbquery.querytype="sequence"; + myadbquery.feature="testquery"; + myadbquery.sequencelength="2"; + myadbquery.numpoints="1"; + audiodb_query(mydbp,&myadbquery,&myadbqueryresult); + size=myadbqueryresult.sizeRlist; + + //dump_query(&myadbquery,&myadbqueryresult); + + /* check the test values */ +////wc -l testoutput | grep "1 testoutput" +////grep "^testfeature3 .* 0 1$" testoutput + if (size != 1) {returnval = -1;}; + if (strcmp(myadbqueryresult.Rlist[0],"testfeature3")){ returnval = -1; }; + + //printf("returnval:%d\n",returnval); + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0035/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0035/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0035/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0035/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +-l 2 search with short tracks with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0036/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0036/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0036/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0036/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,117 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + +//#! /bin/bash +// +//. ../test-utils.sh +// +//if [ -f testdb ]; then rm -f testdb; fi +// +//${AUDIODB} -d testdb -N +// +//intstring 2 > testfeature01 +//floatstring 0 1 >> testfeature01 +//floatstring 1 0 >> testfeature01 +//intstring 2 > testfeature10 +//floatstring 1 0 >> testfeature10 +//floatstring 0 1 >> testfeature10 +// +//cat > testfeaturefiles < testquery +//floatstring 0 0.5 >> testquery +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery > testoutput +//echo testfeature01 1 > test-expected-output +//echo 0 0 0 >> test-expected-output +//echo 2 0 1 >> test-expected-output +//echo testfeature10 1 >> test-expected-output +//echo 0 0 1 >> test-expected-output +//echo 2 0 0 >> test-expected-output +//cmp testoutput test-expected-output +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery -n 2 > testoutput +//cmp testoutput test-expected-output +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery -n 5 > testoutput +//cmp testoutput test-expected-output +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery -n 1 > testoutput +//echo testfeature01 0 > test-expected-output +//echo 0 0 0 >> test-expected-output +//echo testfeature10 0 >> test-expected-output +//echo 0 0 1 >> test-expected-output +//cmp testoutput test-expected-output +// +//echo "query point (0.5,0.0)" +//intstring 2 > testquery +//floatstring 0.5 0 >> testquery +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery > testoutput +//echo testfeature01 1 > test-expected-output +//echo 0 0 1 >> test-expected-output +//echo 2 0 0 >> test-expected-output +//echo testfeature10 1 >> test-expected-output +//echo 0 0 0 >> test-expected-output +//echo 2 0 1 >> test-expected-output +//cmp testoutput test-expected-output +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery -n 2 > testoutput +//cmp testoutput test-expected-output +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery -n 5 > testoutput +//cmp testoutput test-expected-output +// +//${AUDIODB} -d testdb -Q nsequence -l 1 -f testquery -n 1 > testoutput +//echo testfeature01 0 > test-expected-output +//echo 0 0 1 >> test-expected-output +//echo testfeature10 0 >> test-expected-output +//echo 0 0 0 >> test-expected-output +//cmp testoutput test-expected-output +// +//exit 104 + + returnval=-1; + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0036/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0036/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/0036/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/0036/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +nsequence search with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/9000/Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/9000/Makefile Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,13 @@ +CC=gcc +CFLAGS+=-O3 -g +RM=rm -rf + + +all: test1 + + +test1: prog1.c + gcc -Wall -o test1 prog1.c -laudioDB_API -L../.. + +clean: + $(RM) test1 diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/9000/prog1.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/9000/prog1.c Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,44 @@ +#include +#include +#include +#include +#include +#include +#include +#include +/* + * * #define NDEBUG + * * */ +#include + +#include "../../audioDB_API.h" +#include "../test_utils_lib.h" + + +int main(int argc, char **argv){ + + int returnval=0; + adb_ptr mydbp={0}; + int ivals[10]; + double dvals[10]; + adb_insert_t myinsert={0}; + unsigned int myerr=0; + char * databasename="testdb"; + adb_query_t myadbquery={0}; + adb_queryresult_t myadbqueryresult={0}; + adb_query_t myadbquery2={0}; + adb_queryresult_t myadbqueryresult2={0}; + int size=0; + + + + + + + + + returnval=-1; + + return(returnval); +} + diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/9000/run-test.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/9000/run-test.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,36 @@ +#! /bin/bash + +#. ../test-utils.sh +# +#if [ -f testdb ]; then rm -f testdb; fi +# +## creation +#${AUDIODB} -N -d testdb +# +#stat testdb +# +## should fail (testdb exists) +#expect_clean_error_exit ${AUDIODB} -N -d testdb +# +## should fail (no db given) +#expect_clean_error_exit ${AUDIODB} -N +# +#exit 104 + +LD_LIBRARY_PATH=../.. +export LD_LIBRARY_PATH + +. ../test-utils.sh + +make clean +make all + +./test1 + +exit_code=$? + +if [ $exit_code -eq 0 ]; then + exit 104 +else + exit -1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/9000/short-description --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/9000/short-description Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,1 @@ +dump/restore of testdbs with lib diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/clean.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/clean.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,11 @@ +#! /bin/sh + +for file in [0-9][0-9][0-9][0-9]*; do + if [ -d ${file} ]; then + echo Cleaning ${file} + rm -f ${file}/test* + if [ -f ${file}/clean.sh ]; then + (cd ${file} && sh ./clean.sh) + fi + fi +done diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/notes --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/notes Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,3 @@ +test 23 in original: is there a testquery point missing? + +ask Christophe about 24: testtimes file has 1 entry too many diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/run-tests.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/run-tests.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,50 @@ +#! /bin/bash + +AUDIODB=../../${EXECUTABLE:-audioDB} +export AUDIODB + +LD_LIBRARY_PATH=../ +export LD_LIBRARY_PATH + +if [ -x ${AUDIODB#../} ]; then + : +else + echo Cannot execute audioDB: ${AUDIODB#../} + exit 1 +fi + +if [ "$1" = "--full" ]; then + pattern="[0-9][0-9][0-9][0-9]*" +else + pattern="[0-8][0-9][0-9][0-9]*" +fi + +for file in ${pattern}; do + if [ -d ${file} ]; then + if [ -f ${file}/run-test.sh ]; then + echo -n Running test ${file} + if [ -f ${file}/short-description ]; then + awk '{ printf(" (%s)",$0) }' < ${file}/short-description + fi + echo -n : + (cd ${file} && /bin/bash ./run-test.sh > test.out 2> test.err) + EXIT_STATUS=$? + if [ ${EXIT_STATUS} -eq 14 ]; then + echo " n/a." + elif [ ${EXIT_STATUS} -ne 104 ]; then + echo " failed (exit status ${EXIT_STATUS})." + FAILED=true + else + echo " success." + fi + else + echo Skipping test ${file} + fi + fi +done + +if [ -z "${FAILED}" ]; then + exit 0 +else + exit 1 +fi diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/test-utils.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/test-utils.sh Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,90 @@ +# no shebang line: this file should be sourced by run-test.sh files + +set -E + +trap "exit 1" ERR + +if [ -z "${AUDIODB}" ]; then + AUDIODB=../../audioDB + #AUDIODB=/Datastore/group/omras2/releases/bin_x86-64_linux/audioDB +fi + +echo "AUDIODB:" + +echo ${AUDIODB} + + + + +# FIXME: maybe generalize to multiple arguments? Also, implement it +# properly, rather than just for a few floats that we know how to +# encode. This might involve writing some C code, as Bash doesn't do +# Floating Point. (scanf() is probably enough). + +expect_clean_error_exit() { + trap - ERR + "$@" + exit_code=$? + + trap "exit 1" ERR + if [ $exit_code -eq 0 ]; then + exit 1 + elif [ $exit_code -ge 126 ]; then + exit 1 + fi +} + +floatstring() { + for arg in "$@"; do + case ${arg} in + 0) + printf "\x00\x00\x00\x00\x00\x00\x00\x00";; + -0.5) + printf "\x00\x00\x00\x00\x00\x00\xe0\xbf";; + 0.5) + printf "\x00\x00\x00\x00\x00\x00\xe0\x3f";; + -1) + printf "\x00\x00\x00\x00\x00\x00\xf0\xbf";; + 1) + printf "\x00\x00\x00\x00\x00\x00\xf0\x3f";; + *) + echo "bad arg to floatstring(): ${arg}" + exit 1;; + esac + done +} + +# FIXME: likewise. And endianness issues (which are a reflection of +# the endianness of audioDB as of 2007-09-18, unfortunately). + +intstring() { + # works up to 9 for now + if [ $1 -ge 10 ]; then echo "intstring() arg too large: ${1}"; exit 1; fi + printf "%b\x00\x00\x00" "\\x${1}" +} + +# Web services utilities +start_server() { + $1 -s $2 & + # HACK: deal with race on process creation + sleep 1 + trap 'kill $!; exit 1' ERR +} + +stop_server() { + grep "${AUDIODB}" /proc/$1/cmdline > /dev/null + kill $1 + # HACK: deal with race on process exit + sleep 1 + expect_clean_error_exit grep ${AUDIODB} /proc/$1/cmdline +} + +check_server() { + grep "${AUDIODB}" /proc/$1/cmdline > /dev/null +} + +expect_client_failure() { + # FIXME: work out whether and how the client should report server + # errors. At present, the client exits with a zero exit code. + "$@" +} diff -r 4871a3ed9e36 -r 94c18f128ce8 libtests/test_utils_lib.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libtests/test_utils_lib.h Wed Nov 12 10:21:06 2008 +0000 @@ -0,0 +1,222 @@ +void delete_dir(char * dirname); +void clean_remove_db(char * dirname); +void test_status(adb_ptr d, adb_status_ptr b); +unsigned int test_insert( adb_ptr d, char * features, char * power, char * key); +void dump_query(adb_query_ptr adbq, adb_queryresult_ptr myadbqueryresult); +int testoneresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist,double Qpos,double Spos); +double doubleabs(double foo); +void maketestfile(char * filename, int * ivals, double * dvals, int dvalsize); +int testoneradiusresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist); +void makekeylistfile(char * filename, char * item); + + + + +/* clean remove */ +void clean_remove_db(char * dbname){ + + FILE* db=0; + + db=fopen(dbname,"r"); + + if (!db){ + return; + } + + + fclose(db); + remove(dbname); + + return; + +} + + +/* delete directory */ +void delete_dir(char * dirname){ + + struct dirent *d; + DIR *dir; + char buf[256]; + + printf("Deleting directory '%s' and all files\n", dirname); + dir = opendir(dirname); + + if (dir){ + while((d = readdir(dir))) { + //printf("Deleting %s in %s\n",d->d_name, dirname); + sprintf(buf, "%s/%s", dirname, d->d_name); + remove(buf); + } + } + closedir(dir); + + rmdir(dirname); + + + return; + +} + + +unsigned int test_insert( + adb_ptr d, + char * features, + char * power, + char * key +){ + + adb_insert_t myinsert={0}; + unsigned int myerr=0; + + printf("Insert:\n"); + myinsert.features=features; + myinsert.power=power; + myinsert.key=key; + myerr=audiodb_insert(d,&myinsert); + printf("\n"); + + return myerr; + +} + +void test_status(adb_ptr d, adb_status_ptr b){ + + /* get the status of the database */ + audiodb_status(d,b); + + /* could probably make this look a bit more clever, but it works for now */ + printf("numFiles:\t%d\n",b->numFiles); + printf("dim:\t%d\n",b->dim); + printf("length:\t%d\n",b->length); + printf("dudCount:\t%d\n",b->dudCount); + printf("nullCount:\t%d\n",b->nullCount); + printf("flags:\t%d\n",b->flags); + + return; +} + + +void dump_query(adb_query_ptr adbq, adb_queryresult_ptr myadbqueryresult){ + + int size=0; + int i=0; + + size=myadbqueryresult->sizeRlist; + + printf("Dumping query:\n"); + for(i=0; iquerytype, + i, + myadbqueryresult->Rlist[i], + myadbqueryresult->Dist[i], + myadbqueryresult->Qpos[i], + myadbqueryresult->Spos[i] + ); + } + printf("\n"); + +} + + + +int testoneresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist,double Qpos,double Spos){ + + int ret=0; + double tolerance=.0001; + + + + if (strcmp(Rlist,myadbqueryresult->Rlist[i])){ + ret=-1; + } + + + if (doubleabs((double)Dist - (double)myadbqueryresult->Dist[i]) > tolerance){ + ret=-1; + } + + if (doubleabs((double)Qpos - (double)myadbqueryresult->Qpos[i]) > tolerance){ + ret=-1; + } + + if (doubleabs((double)Spos - (double)myadbqueryresult->Spos[i]) > tolerance){ + ret=-1; + } + + return ret; +} + + +int testoneradiusresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist){ + + int ret=0; + double tolerance=.0001; + + + + if (strcmp(Rlist,myadbqueryresult->Rlist[i])){ + ret=-1; + } + + + if (doubleabs((double)Dist - (double)myadbqueryresult->Dist[i]) > tolerance){ + ret=-1; + } + + //if (doubleabs((double)Qpos - (double)myadbqueryresult->Qpos[i]) > tolerance){ + // ret=-1; + //} + + //if (doubleabs((double)Spos - (double)myadbqueryresult->Spos[i]) > tolerance){ + // ret=-1; + //} + + return ret; +} + + +double doubleabs(double foo){ + + double retval=foo; + + if (foo < 0.0) { + retval=foo * -1.0; + } + + return retval; +} + + + +void maketestfile(char * filename, int * ivals, double * dvals, int dvalsize) { + + FILE * myfile; + + myfile=fopen(filename,"w"); + fwrite(ivals,sizeof(int),1,myfile); + fwrite(dvals,sizeof(double),dvalsize,myfile); + fflush(myfile); + fclose(myfile); + + /* should probably test for success, but then it is a test suite already... */ +} + + + +void makekeylistfile(char * filename, char * item){ + + FILE * myfile; + + myfile=fopen(filename,"w"); + fprintf(myfile,"%s\n",item); + fflush(myfile); + fclose(myfile); + +} + + + + +