annotate libtests/0028/prog1.c @ 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 94c18f128ce8
children f4dc8e47ee37
rev   line source
mas01cr@487 1 #include "audioDB_API.h"
mas01cr@487 2 #include "test_utils_lib.h"
mas01ik@355 3
mas01ik@355 4
mas01ik@355 5 int main(int argc, char **argv){
mas01ik@355 6
mas01ik@355 7 int returnval=0;
mas01ik@355 8 adb_ptr mydbp={0};
mas01ik@355 9 int ivals[10];
mas01ik@355 10 double dvals[10];
mas01ik@355 11 char * databasename="testdb";
mas01ik@355 12 adb_query_t myadbquery={0};
mas01ik@355 13 adb_queryresult_t myadbqueryresult={0};
mas01ik@355 14 int size=0;
mas01ik@355 15 adb_insert_t ins1[2]={{0},{0}};
mas01ik@355 16
mas01ik@355 17
mas01ik@355 18 /* remove old directory */
mas01ik@355 19 //if [ -f testdb ]; then rm -f testdb; fi
mas01ik@355 20 clean_remove_db(databasename);
mas01ik@355 21
mas01ik@355 22 /* create new db */
mas01ik@355 23 //${AUDIODB} -d testdb -N
mas01ik@355 24 mydbp=audiodb_create(databasename,0,0,0);
mas01ik@355 25
mas01ik@355 26 //intstring 2 > testfeature
mas01ik@355 27 //floatstring 0 1 >> testfeature
mas01ik@355 28 //floatstring 1 0 >> testfeature
mas01ik@355 29 ivals[0]=2;
mas01ik@355 30 dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0;
mas01ik@355 31 maketestfile("testfeature",ivals,dvals,4);
mas01ik@355 32
mas01ik@355 33 //intstring 1 > testpower
mas01ik@355 34 //floatstring -0.5 >> testpower
mas01ik@355 35 //floatstring -1 >> testpower
mas01ik@355 36 ivals[0]=1;
mas01ik@355 37 dvals[0]=-0.5; dvals[1]=-1;
mas01ik@355 38 maketestfile("testpower",ivals,dvals,2);
mas01ik@355 39
mas01ik@355 40 //echo testfeature > testFeatureList.txt
mas01ik@355 41 //echo testpower > testPowerList.txt
mas01ik@355 42 ins1[0].features="testfeature";
mas01ik@355 43 ins1[0].power="testpower";
mas01ik@355 44
mas01ik@355 45 //expect_clean_error_exit ${AUDIODB} -d testdb -B -F testFeatureList.txt -W testPowerList.txt
mas01ik@355 46 if(!audiodb_batchinsert(mydbp,ins1,1)){
mas01ik@355 47 returnval=-1;
mas01ik@355 48 };
mas01ik@355 49
mas01ik@355 50 //${AUDIODB} -d testdb -P
mas01ik@355 51 if(audiodb_power(mydbp)){
mas01ik@355 52 returnval=-1;
mas01ik@355 53 };
mas01ik@355 54
mas01ik@355 55 //expect_clean_error_exit ${AUDIODB} -d testdb -B -F testFeatureList.txt
mas01ik@355 56 ins1[0].features="testfeature";
mas01ik@355 57 ins1[0].power=NULL;
mas01ik@355 58 if(!audiodb_batchinsert(mydbp,ins1,1)){
mas01ik@355 59 returnval=-1;
mas01ik@355 60 };
mas01ik@355 61
mas01ik@355 62 //${AUDIODB} -d testdb -B -F testFeatureList.txt -W testPowerList.txt
mas01ik@355 63 ins1[0].features="testfeature";
mas01ik@355 64 ins1[0].power="testpower";
mas01ik@355 65 if(audiodb_batchinsert(mydbp,ins1,1)){
mas01ik@355 66 returnval=-1;
mas01ik@355 67 };
mas01ik@355 68
mas01ik@355 69 //# sequence queries require L2NORM
mas01ik@355 70 //${AUDIODB} -d testdb -L
mas01ik@355 71 if(audiodb_l2norm(mydbp)){
mas01ik@355 72 returnval=-1;
mas01ik@355 73 };
mas01ik@355 74
mas01ik@355 75 //# queries without power files should run as before
mas01ik@355 76 //echo "query point (0.0,0.5)"
mas01ik@355 77 //intstring 2 > testquery
mas01ik@355 78 //floatstring 0 0.5 >> testquery
mas01ik@355 79 ivals[0]=2;
mas01ik@355 80 dvals[0]=-0.0; dvals[1]=0.5;
mas01ik@355 81 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 82
mas01ik@355 83 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput
mas01ik@355 84 //echo testfeature 1 0 0 > test-expected-output
mas01ik@355 85 //cmp testoutput test-expected-output
mas01ik@355 86 myadbquery.querytype="sequence";
mas01ik@355 87 myadbquery.feature="testquery";
mas01ik@355 88 myadbquery.sequencelength="1";
mas01ik@355 89 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 90 size=myadbqueryresult.sizeRlist;
mas01ik@355 91
mas01ik@355 92 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 93 ///* check the test values */
mas01ik@355 94 if (size != 1) {returnval = -1;};
mas01ik@355 95 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;};
mas01ik@355 96
mas01ik@355 97 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput
mas01ik@355 98 //echo testfeature 0 0 0 > test-expected-output
mas01ik@355 99 //cmp testoutput test-expected-output
mas01ik@355 100 myadbquery.querytype="sequence";
mas01ik@355 101 myadbquery.feature="testquery";
mas01ik@355 102 myadbquery.sequencelength="1";
mas01ik@355 103 myadbquery.numpoints="1";
mas01ik@355 104 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 105 size=myadbqueryresult.sizeRlist;
mas01ik@355 106
mas01ik@355 107 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 108 ///* check the test values */
mas01ik@355 109 if (size != 1) {returnval = -1;};
mas01ik@355 110 if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;};
mas01ik@355 111
mas01ik@355 112 //echo "query point (0.5,0.0)"
mas01ik@355 113 //intstring 2 > testquery
mas01ik@355 114 //floatstring 0.5 0 >> testquery
mas01ik@355 115 ivals[0]=2;
mas01ik@355 116 dvals[0]=0.5; dvals[1]=0.0;
mas01ik@355 117 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 118
mas01ik@355 119
mas01ik@355 120 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput
mas01ik@355 121 //echo testfeature 1 0 1 > test-expected-output
mas01ik@355 122 //cmp testoutput test-expected-output
mas01ik@355 123 myadbquery.querytype="sequence";
mas01ik@355 124 myadbquery.feature="testquery";
mas01ik@355 125 myadbquery.sequencelength="1";
mas01ik@355 126 myadbquery.numpoints=NULL;
mas01ik@355 127 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 128 size=myadbqueryresult.sizeRlist;
mas01ik@355 129
mas01ik@355 130 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 131 ///* check the test values */
mas01ik@355 132 if (size != 1) {returnval = -1;};
mas01ik@355 133 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;};
mas01ik@355 134
mas01ik@355 135 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput
mas01ik@355 136 //echo testfeature 0 0 1 > test-expected-output
mas01ik@355 137 //cmp testoutput test-expected-output
mas01ik@355 138 myadbquery.querytype="sequence";
mas01ik@355 139 myadbquery.feature="testquery";
mas01ik@355 140 myadbquery.sequencelength="1";
mas01ik@355 141 myadbquery.numpoints="1";
mas01ik@355 142 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 143 size=myadbqueryresult.sizeRlist;
mas01ik@355 144
mas01ik@355 145 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 146 ///* check the test values */
mas01ik@355 147 if (size != 1) {returnval = -1;};
mas01ik@355 148 if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,1)) {returnval = -1;};
mas01ik@355 149
mas01ik@355 150 //# queries with power files might do something different
mas01ik@355 151 //echo "query point (0.0,0.5), p=-0.5"
mas01ik@355 152 //intstring 2 > testquery
mas01ik@355 153 //floatstring 0 0.5 >> testquery
mas01ik@355 154 ivals[0]=2;
mas01ik@355 155 dvals[0]=0.0; dvals[1]=0.5;
mas01ik@355 156 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 157
mas01ik@355 158 //intstring 1 > testquerypower
mas01ik@355 159 //floatstring -0.5 >> testquerypower
mas01ik@355 160 ivals[0]=1;
mas01ik@355 161 dvals[0]=-0.5;
mas01ik@355 162 maketestfile("testquerypower",ivals,dvals,1);
mas01ik@355 163
mas01ik@355 164 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput
mas01ik@355 165 //echo testfeature 1 0 0 > test-expected-output
mas01ik@355 166 //cmp testoutput test-expected-output
mas01ik@355 167 myadbquery.querytype="sequence";
mas01ik@355 168 myadbquery.feature="testquery";
mas01ik@355 169 myadbquery.power="testquerypower";
mas01ik@355 170 myadbquery.sequencelength="1";
mas01ik@355 171 myadbquery.absolute_threshold=-1.4;
mas01ik@355 172 myadbquery.numpoints=NULL;
mas01ik@355 173 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 174 size=myadbqueryresult.sizeRlist;
mas01ik@355 175
mas01ik@355 176 ///* check the test values */
mas01ik@355 177 if (size != 1) {returnval = -1;};
mas01ik@355 178 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;};
mas01ik@355 179
mas01ik@355 180 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput
mas01ik@355 181 //echo testfeature 0 0 0 > test-expected-output
mas01ik@355 182 //cmp testoutput test-expected-output
mas01ik@355 183 myadbquery.querytype="sequence";
mas01ik@355 184 myadbquery.feature="testquery";
mas01ik@355 185 myadbquery.power="testquerypower";
mas01ik@355 186 myadbquery.sequencelength="1";
mas01ik@355 187 myadbquery.absolute_threshold=-0.6;
mas01ik@355 188 myadbquery.numpoints=NULL;
mas01ik@355 189 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 190 size=myadbqueryresult.sizeRlist;
mas01ik@355 191
mas01ik@355 192 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 193 ///* check the test values */
mas01ik@355 194 if (size != 1) {returnval = -1;};
mas01ik@355 195 if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;};
mas01ik@355 196
mas01ik@355 197 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.2 > testoutput
mas01ik@355 198 //cat /dev/null > test-expected-output
mas01ik@355 199 //cmp testoutput test-expected-output
mas01ik@355 200 myadbquery.querytype="sequence";
mas01ik@355 201 myadbquery.feature="testquery";
mas01ik@355 202 myadbquery.power="testquerypower";
mas01ik@355 203 myadbquery.sequencelength="1";
mas01ik@355 204 myadbquery.absolute_threshold=-0.2;
mas01ik@355 205 myadbquery.numpoints=NULL;
mas01ik@355 206 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 207 size=myadbqueryresult.sizeRlist;
mas01ik@355 208
mas01ik@355 209 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 210 ///* check the test values */
mas01ik@355 211 if (size != 0) {returnval = -1;};
mas01ik@355 212
mas01ik@355 213 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=1 > testoutput
mas01ik@355 214 //audioDB -Q sequence -d testdb -f testquery -w testquerypower -l 1 --relative-threshold 1.000000
mas01ik@355 215 //echo testfeature 1 0 0 > test-expected-output
mas01ik@355 216 //cmp testoutput test-expected-output
mas01ik@355 217 myadbquery.querytype="sequence";
mas01ik@355 218 myadbquery.feature="testquery";
mas01ik@355 219 myadbquery.power="testquerypower";
mas01ik@355 220 myadbquery.sequencelength="1";
mas01ik@355 221 myadbquery.absolute_threshold=0.0;
mas01ik@355 222 myadbquery.relative_threshold=1.0;
mas01ik@355 223 myadbquery.numpoints=NULL;
mas01ik@355 224 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 225 size=myadbqueryresult.sizeRlist;
mas01ik@355 226
mas01ik@355 227 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 228 ///* check the test values */
mas01ik@355 229 if (size != 1) {returnval = -1;};
mas01ik@355 230 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;};
mas01ik@355 231
mas01ik@355 232 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=0.2 > testoutput
mas01ik@355 233 //echo testfeature 0 0 0 > test-expected-output
mas01ik@355 234 //cmp testoutput test-expected-output
mas01ik@355 235 myadbquery.querytype="sequence";
mas01ik@355 236 myadbquery.feature="testquery";
mas01ik@355 237 myadbquery.power="testquerypower";
mas01ik@355 238 myadbquery.sequencelength="1";
mas01ik@355 239 myadbquery.absolute_threshold=0.0;
mas01ik@355 240 myadbquery.relative_threshold=0.2;
mas01ik@355 241 myadbquery.numpoints=NULL;
mas01ik@355 242 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 243 size=myadbqueryresult.sizeRlist;
mas01ik@355 244
mas01ik@355 245 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 246 ///* check the test values */
mas01ik@355 247 if (size != 1) {returnval = -1;};
mas01ik@355 248 if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;};
mas01ik@355 249
mas01ik@355 250 ////echo "query point (0.5,0.0), p=-0.5"
mas01ik@355 251 ////intstring 2 > testquery
mas01ik@355 252 ////floatstring 0.5 0 >> testquery
mas01ik@355 253 ivals[0]=2;
mas01ik@355 254 dvals[0]=0.5; dvals[1]=0.0;
mas01ik@355 255 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 256
mas01ik@355 257 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput
mas01ik@355 258 //echo testfeature 1 0 1 > test-expected-output
mas01ik@355 259 //cmp testoutput test-expected-output
mas01ik@355 260 myadbquery.querytype="sequence";
mas01ik@355 261 myadbquery.feature="testquery";
mas01ik@355 262 myadbquery.power="testquerypower";
mas01ik@355 263 myadbquery.sequencelength="1";
mas01ik@355 264 myadbquery.absolute_threshold=-1.4;
mas01ik@355 265 myadbquery.relative_threshold=0.0;
mas01ik@355 266 myadbquery.numpoints=NULL;
mas01ik@355 267 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 268 size=myadbqueryresult.sizeRlist;
mas01ik@355 269
mas01ik@355 270 // dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 271 ///* check the test values */
mas01ik@355 272 if (size != 1) {returnval = -1;};
mas01ik@355 273 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;};
mas01ik@355 274
mas01ik@355 275 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput
mas01ik@355 276 //echo testfeature 2 0 0 > test-expected-output
mas01ik@355 277 //cmp testoutput test-expected-output
mas01ik@355 278 myadbquery.querytype="sequence";
mas01ik@355 279 myadbquery.feature="testquery";
mas01ik@355 280 myadbquery.power="testquerypower";
mas01ik@355 281 myadbquery.sequencelength="1";
mas01ik@355 282 myadbquery.absolute_threshold=-0.6;
mas01ik@355 283 myadbquery.relative_threshold=0.0;
mas01ik@355 284 myadbquery.numpoints=NULL;
mas01ik@355 285 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 286 size=myadbqueryresult.sizeRlist;
mas01ik@355 287
mas01ik@355 288 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 289 ///* check the test values */
mas01ik@355 290 if (size != 1) {returnval = -1;};
mas01ik@355 291 if (testoneresult(&myadbqueryresult,0,"testfeature",2,0,0)) {returnval = -1;};
mas01ik@355 292
mas01ik@355 293 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.2 > testoutput
mas01ik@355 294 //cat /dev/null > test-expected-output
mas01ik@355 295 //cmp testoutput test-expected-output
mas01ik@355 296 myadbquery.querytype="sequence";
mas01ik@355 297 myadbquery.feature="testquery";
mas01ik@355 298 myadbquery.power="testquerypower";
mas01ik@355 299 myadbquery.sequencelength="1";
mas01ik@355 300 myadbquery.absolute_threshold=-0.2;
mas01ik@355 301 myadbquery.relative_threshold=0.0;
mas01ik@355 302 myadbquery.numpoints=NULL;
mas01ik@355 303 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 304 size=myadbqueryresult.sizeRlist;
mas01ik@355 305
mas01ik@355 306 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 307 ///* check the test values */
mas01ik@355 308 if (size != 0) {returnval = -1;};
mas01ik@355 309
mas01ik@355 310 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=1 > testoutput
mas01ik@355 311 //echo testfeature 1 0 1 > test-expected-output
mas01ik@355 312 //cmp testoutput test-expected-output
mas01ik@355 313 myadbquery.querytype="sequence";
mas01ik@355 314 myadbquery.feature="testquery";
mas01ik@355 315 myadbquery.power="testquerypower";
mas01ik@355 316 myadbquery.sequencelength="1";
mas01ik@355 317 myadbquery.relative_threshold=1.0;
mas01ik@355 318 myadbquery.absolute_threshold=0.0;
mas01ik@355 319 myadbquery.numpoints=NULL;
mas01ik@355 320 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 321 size=myadbqueryresult.sizeRlist;
mas01ik@355 322
mas01ik@355 323 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 324 ///* check the test values */
mas01ik@355 325 if (size != 1) {returnval = -1;};
mas01ik@355 326 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;};
mas01ik@355 327
mas01ik@355 328 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=0.2 > testoutput
mas01ik@355 329 //echo testfeature 2 0 0 > test-expected-output
mas01ik@355 330 //cmp testoutput test-expected-output
mas01ik@355 331 myadbquery.querytype="sequence";
mas01ik@355 332 myadbquery.feature="testquery";
mas01ik@355 333 myadbquery.power="testquerypower";
mas01ik@355 334 myadbquery.sequencelength="1";
mas01ik@355 335 myadbquery.relative_threshold=0.2;
mas01ik@355 336 myadbquery.absolute_threshold=0.0;
mas01ik@355 337 myadbquery.numpoints=NULL;
mas01ik@355 338 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 339 size=myadbqueryresult.sizeRlist;
mas01ik@355 340
mas01ik@355 341 ///* check the test values */
mas01ik@355 342 if (size != 1) {returnval = -1;};
mas01ik@355 343 if (testoneresult(&myadbqueryresult,0,"testfeature",2,0,0)) {returnval = -1;};
mas01ik@355 344
mas01ik@355 345
mas01ik@355 346 audiodb_close(mydbp);
mas01ik@355 347 //fprintf(stderr,"returnval:%d\n",returnval);
mas01ik@355 348
mas01ik@355 349 return(returnval);
mas01ik@355 350 }
mas01ik@355 351