annotate libtests/test_utils_lib.h @ 487:e072aa1611f5 api-inversion

Begin cleaning up libtests * Delete unused functions from test_utils_lib.h. * #include needed system header files there rather than at the head of each of the individual C files. * Make libtests.mk be responsible for finding audioDB_API.h and test_utils_lib.h * Simplify the implementation of clean_remove_db().
author mas01cr
date Sat, 10 Jan 2009 15:32:42 +0000
parents 7e6c99481b8b
children f4dc8e47ee37
rev   line source
mas01cr@487 1 #include <sys/types.h>
mas01cr@487 2 #include <sys/stat.h>
mas01cr@487 3 #include <math.h>
mas01cr@487 4 #include <unistd.h>
mas01cr@487 5 #include <fcntl.h>
mas01cr@487 6 #include <string.h>
mas01cr@487 7 #include <stdio.h>
mas01cr@487 8
mas01cr@487 9 void clean_remove_db(char *dbname);
mas01ik@355 10 int testoneresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist,double Qpos,double Spos);
mas01ik@355 11 void maketestfile(char * filename, int * ivals, double * dvals, int dvalsize);
mas01cr@379 12 int testoneradiusresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, int count);
mas01ik@355 13 void makekeylistfile(char * filename, char * item);
mas01ik@355 14
mas01ik@355 15
mas01cr@487 16 void clean_remove_db(char * dbname) {
mas01cr@487 17 unlink(dbname);
mas01ik@355 18 }
mas01ik@355 19
mas01ik@355 20
mas01ik@355 21 void dump_query(adb_query_ptr adbq, adb_queryresult_ptr myadbqueryresult){
mas01ik@355 22
mas01ik@355 23 int size=0;
mas01ik@355 24 int i=0;
mas01ik@355 25
mas01ik@355 26 size=myadbqueryresult->sizeRlist;
mas01ik@355 27
mas01ik@355 28 printf("Dumping query:\n");
mas01ik@355 29 for(i=0; i<size; i++){
mas01ik@355 30 printf("\t'%s' query: Result %02d:%s is dist:%f qpos:%d spos:%d\n",
mas01ik@355 31 adbq->querytype,
mas01ik@355 32 i,
mas01ik@355 33 myadbqueryresult->Rlist[i],
mas01ik@355 34 myadbqueryresult->Dist[i],
mas01ik@355 35 myadbqueryresult->Qpos[i],
mas01ik@355 36 myadbqueryresult->Spos[i]
mas01ik@355 37 );
mas01ik@355 38 }
mas01ik@355 39 printf("\n");
mas01ik@355 40
mas01ik@355 41 }
mas01ik@355 42
mas01ik@355 43
mas01ik@355 44
mas01ik@355 45 int testoneresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, double Dist,double Qpos,double Spos){
mas01ik@355 46
mas01ik@355 47 int ret=0;
mas01ik@355 48 double tolerance=.0001;
mas01ik@355 49
mas01ik@355 50
mas01ik@355 51
mas01ik@355 52 if (strcmp(Rlist,myadbqueryresult->Rlist[i])){
mas01ik@355 53 ret=-1;
mas01ik@355 54 }
mas01ik@355 55
mas01ik@355 56
mas01cr@487 57 if (fabs((double)Dist - (double)myadbqueryresult->Dist[i]) > tolerance){
mas01ik@355 58 ret=-1;
mas01ik@355 59 }
mas01ik@355 60
mas01cr@487 61 if (fabs((double)Qpos - (double)myadbqueryresult->Qpos[i]) > tolerance){
mas01ik@355 62 ret=-1;
mas01ik@355 63 }
mas01ik@355 64
mas01cr@487 65 if (fabs((double)Spos - (double)myadbqueryresult->Spos[i]) > tolerance){
mas01ik@355 66 ret=-1;
mas01ik@355 67 }
mas01ik@355 68
mas01ik@355 69 return ret;
mas01ik@355 70 }
mas01ik@355 71
mas01ik@355 72
mas01cr@379 73 int testoneradiusresult(adb_queryresult_ptr myadbqueryresult, int i, char * Rlist, int count){
mas01ik@355 74
mas01ik@355 75 int ret=0;
mas01ik@355 76
mas01ik@355 77 if (strcmp(Rlist,myadbqueryresult->Rlist[i])){
mas01ik@355 78 ret=-1;
mas01ik@355 79 }
mas01ik@355 80
mas01cr@379 81 /* KLUDGE: at the moment, the structure returned from "sequence"
mas01cr@379 82 queries with a radius has two unused fields, Dist and Qpos, and
mas01cr@379 83 the Spos field is punned to indicate the count of hits from
mas01cr@379 84 that track. This is really ugly and needs to die. */
mas01cr@379 85 if (count != myadbqueryresult->Spos[i]) {
mas01ik@355 86 ret=-1;
mas01ik@355 87 }
mas01ik@355 88
mas01ik@355 89 return ret;
mas01ik@355 90 }
mas01ik@355 91
mas01ik@355 92 void maketestfile(char * filename, int * ivals, double * dvals, int dvalsize) {
mas01ik@355 93
mas01ik@355 94 FILE * myfile;
mas01ik@355 95
mas01ik@355 96 myfile=fopen(filename,"w");
mas01ik@355 97 fwrite(ivals,sizeof(int),1,myfile);
mas01ik@355 98 fwrite(dvals,sizeof(double),dvalsize,myfile);
mas01ik@355 99 fflush(myfile);
mas01ik@355 100 fclose(myfile);
mas01ik@355 101
mas01ik@355 102 /* should probably test for success, but then it is a test suite already... */
mas01ik@355 103 }
mas01ik@355 104
mas01ik@355 105 void makekeylistfile(char * filename, char * item){
mas01ik@355 106
mas01ik@355 107 FILE * myfile;
mas01ik@355 108
mas01ik@355 109 myfile=fopen(filename,"w");
mas01ik@355 110 fprintf(myfile,"%s\n",item);
mas01ik@355 111 fflush(myfile);
mas01ik@355 112 fclose(myfile);
mas01ik@355 113
mas01ik@355 114 }