diff libtests/test_utils_lib.h @ 355:94c18f128ce8

First version of the API, committed to the main trunk. Thanks Christophe, for all the help!
author mas01ik
date Wed, 12 Nov 2008 10:21:06 +0000
parents
children 7e6c99481b8b
line wrap: on
line diff
--- /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; i<size; i++){
+        printf("\t'%s' query: Result %02d:%s is dist:%f qpos:%d spos:%d\n",
+                adbq->querytype,
+                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);
+
+}
+
+
+
+
+