mas01ik@355: void delete_dir(char * dirname); mas01ik@355: void clean_remove_db(char * dirname); mas01ik@355: void test_status(adb_ptr d, adb_status_ptr b); mas01ik@355: unsigned int test_insert( adb_ptr d, char * features, char * power, char * key); mas01ik@355: void dump_query(adb_query_ptr adbq, adb_queryresult_ptr myadbqueryresult); mas01ik@355: int testoneresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist,double Qpos,double Spos); mas01ik@355: double doubleabs(double foo); mas01ik@355: void maketestfile(char * filename, int * ivals, double * dvals, int dvalsize); mas01ik@355: int testoneradiusresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist); mas01ik@355: void makekeylistfile(char * filename, char * item); mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: /* clean remove */ mas01ik@355: void clean_remove_db(char * dbname){ mas01ik@355: mas01ik@355: FILE* db=0; mas01ik@355: mas01ik@355: db=fopen(dbname,"r"); mas01ik@355: mas01ik@355: if (!db){ mas01ik@355: return; mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: fclose(db); mas01ik@355: remove(dbname); mas01ik@355: mas01ik@355: return; mas01ik@355: mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: /* delete directory */ mas01ik@355: void delete_dir(char * dirname){ mas01ik@355: mas01ik@355: struct dirent *d; mas01ik@355: DIR *dir; mas01ik@355: char buf[256]; mas01ik@355: mas01ik@355: printf("Deleting directory '%s' and all files\n", dirname); mas01ik@355: dir = opendir(dirname); mas01ik@355: mas01ik@355: if (dir){ mas01ik@355: while((d = readdir(dir))) { mas01ik@355: //printf("Deleting %s in %s\n",d->d_name, dirname); mas01ik@355: sprintf(buf, "%s/%s", dirname, d->d_name); mas01ik@355: remove(buf); mas01ik@355: } mas01ik@355: } mas01ik@355: closedir(dir); mas01ik@355: mas01ik@355: rmdir(dirname); mas01ik@355: mas01ik@355: mas01ik@355: return; mas01ik@355: mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: unsigned int test_insert( mas01ik@355: adb_ptr d, mas01ik@355: char * features, mas01ik@355: char * power, mas01ik@355: char * key mas01ik@355: ){ mas01ik@355: mas01ik@355: adb_insert_t myinsert={0}; mas01ik@355: unsigned int myerr=0; mas01ik@355: mas01ik@355: printf("Insert:\n"); mas01ik@355: myinsert.features=features; mas01ik@355: myinsert.power=power; mas01ik@355: myinsert.key=key; mas01ik@355: myerr=audiodb_insert(d,&myinsert); mas01ik@355: printf("\n"); mas01ik@355: mas01ik@355: return myerr; mas01ik@355: mas01ik@355: } mas01ik@355: mas01ik@355: void test_status(adb_ptr d, adb_status_ptr b){ mas01ik@355: mas01ik@355: /* get the status of the database */ mas01ik@355: audiodb_status(d,b); mas01ik@355: mas01ik@355: /* could probably make this look a bit more clever, but it works for now */ mas01ik@355: printf("numFiles:\t%d\n",b->numFiles); mas01ik@355: printf("dim:\t%d\n",b->dim); mas01ik@355: printf("length:\t%d\n",b->length); mas01ik@355: printf("dudCount:\t%d\n",b->dudCount); mas01ik@355: printf("nullCount:\t%d\n",b->nullCount); mas01ik@355: printf("flags:\t%d\n",b->flags); mas01ik@355: mas01ik@355: return; mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: void dump_query(adb_query_ptr adbq, adb_queryresult_ptr myadbqueryresult){ mas01ik@355: mas01ik@355: int size=0; mas01ik@355: int i=0; mas01ik@355: mas01ik@355: size=myadbqueryresult->sizeRlist; mas01ik@355: mas01ik@355: printf("Dumping query:\n"); mas01ik@355: for(i=0; iquerytype, mas01ik@355: i, mas01ik@355: myadbqueryresult->Rlist[i], mas01ik@355: myadbqueryresult->Dist[i], mas01ik@355: myadbqueryresult->Qpos[i], mas01ik@355: myadbqueryresult->Spos[i] mas01ik@355: ); mas01ik@355: } mas01ik@355: printf("\n"); mas01ik@355: mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: int testoneresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist,double Qpos,double Spos){ mas01ik@355: mas01ik@355: int ret=0; mas01ik@355: double tolerance=.0001; mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: if (strcmp(Rlist,myadbqueryresult->Rlist[i])){ mas01ik@355: ret=-1; mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: if (doubleabs((double)Dist - (double)myadbqueryresult->Dist[i]) > tolerance){ mas01ik@355: ret=-1; mas01ik@355: } mas01ik@355: mas01ik@355: if (doubleabs((double)Qpos - (double)myadbqueryresult->Qpos[i]) > tolerance){ mas01ik@355: ret=-1; mas01ik@355: } mas01ik@355: mas01ik@355: if (doubleabs((double)Spos - (double)myadbqueryresult->Spos[i]) > tolerance){ mas01ik@355: ret=-1; mas01ik@355: } mas01ik@355: mas01ik@355: return ret; mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: int testoneradiusresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist){ mas01ik@355: mas01ik@355: int ret=0; mas01ik@355: double tolerance=.0001; mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: if (strcmp(Rlist,myadbqueryresult->Rlist[i])){ mas01ik@355: ret=-1; mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: if (doubleabs((double)Dist - (double)myadbqueryresult->Dist[i]) > tolerance){ mas01ik@355: ret=-1; mas01ik@355: } mas01ik@355: mas01ik@355: //if (doubleabs((double)Qpos - (double)myadbqueryresult->Qpos[i]) > tolerance){ mas01ik@355: // ret=-1; mas01ik@355: //} mas01ik@355: mas01ik@355: //if (doubleabs((double)Spos - (double)myadbqueryresult->Spos[i]) > tolerance){ mas01ik@355: // ret=-1; mas01ik@355: //} mas01ik@355: mas01ik@355: return ret; mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: double doubleabs(double foo){ mas01ik@355: mas01ik@355: double retval=foo; mas01ik@355: mas01ik@355: if (foo < 0.0) { mas01ik@355: retval=foo * -1.0; mas01ik@355: } mas01ik@355: mas01ik@355: return retval; mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: void maketestfile(char * filename, int * ivals, double * dvals, int dvalsize) { mas01ik@355: mas01ik@355: FILE * myfile; mas01ik@355: mas01ik@355: myfile=fopen(filename,"w"); mas01ik@355: fwrite(ivals,sizeof(int),1,myfile); mas01ik@355: fwrite(dvals,sizeof(double),dvalsize,myfile); mas01ik@355: fflush(myfile); mas01ik@355: fclose(myfile); mas01ik@355: mas01ik@355: /* should probably test for success, but then it is a test suite already... */ mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: void makekeylistfile(char * filename, char * item){ mas01ik@355: mas01ik@355: FILE * myfile; mas01ik@355: mas01ik@355: myfile=fopen(filename,"w"); mas01ik@355: fprintf(myfile,"%s\n",item); mas01ik@355: fflush(myfile); mas01ik@355: fclose(myfile); mas01ik@355: mas01ik@355: } mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: mas01ik@355: