annotate libtests/0027/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 1fb8bee777e5
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 adb_insert_t myinsert={0};
mas01ik@355 12 unsigned int myerr=0;
mas01ik@355 13 char * databasename="testdb";
mas01ik@355 14 adb_query_t myadbquery={0};
mas01ik@355 15 adb_queryresult_t myadbqueryresult={0};
mas01ik@355 16 adb_query_t myadbquery2={0};
mas01ik@355 17 adb_queryresult_t myadbqueryresult2={0};
mas01ik@355 18 int size=0;
mas01ik@355 19
mas01ik@355 20
mas01ik@355 21 /* remove old directory */
mas01ik@355 22 //if [ -f testdb ]; then rm -f testdb; fi
mas01ik@355 23 clean_remove_db(databasename);
mas01ik@355 24
mas01ik@355 25 /* create new db */
mas01ik@355 26 //${AUDIODB} -d testdb -N
mas01ik@355 27 mydbp=audiodb_create(databasename,0,0,0);
mas01ik@355 28
mas01ik@355 29 //intstring 2 > testfeature
mas01ik@355 30 //floatstring 0 1 >> testfeature
mas01ik@355 31 //floatstring 1 0 >> testfeature
mas01ik@355 32 ivals[0]=2;
mas01ik@355 33 dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0;
mas01ik@355 34 maketestfile("testfeature",ivals,dvals,4);
mas01ik@355 35
mas01ik@355 36 //intstring 1 > testpower
mas01ik@355 37 //floatstring -0.5 >> testpower
mas01ik@355 38 //floatstring -1 >> testpower
mas01ik@355 39 ivals[0]=1;
mas01ik@355 40 dvals[0]=-0.5; dvals[1]=-1;
mas01ik@355 41 maketestfile("testpower",ivals,dvals,2);
mas01ik@355 42
mas01ik@355 43 /* insert breaks because power flag off and power insert */
mas01ik@355 44 //expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature -w testpower
mas01ik@355 45 myinsert.features="testfeature";
mas01ik@355 46 myinsert.power="testpower";
mas01ik@355 47 if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; }
mas01ik@355 48
mas01ik@355 49
mas01ik@355 50 /* make sure power can be turned on */
mas01ik@355 51 //${AUDIODB} -d testdb -P
mas01ik@355 52 if(audiodb_power(mydbp)){ returnval=-1; };
mas01ik@355 53
mas01ik@355 54
mas01ik@355 55 /* inserts now require power also */
mas01ik@355 56 ////expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature
mas01ik@355 57 myinsert.features="testfeature";
mas01ik@355 58 myinsert.power=NULL;
mas01ik@355 59 //myerr=audiodb_insert(mydbp,&myinsert);
mas01ik@355 60 if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; }
mas01ik@355 61
mas01ik@355 62 /* now make a real insert */
mas01ik@355 63 //${AUDIODB} -d testdb -I -f testfeature -w testpower
mas01ik@355 64 myinsert.features="testfeature";
mas01ik@355 65 myinsert.power="testpower";
mas01cr@404 66 //myerr=audiodb_insert(mydbp,&myinsert);
mas01ik@355 67 if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; }
mas01ik@355 68
mas01ik@355 69
mas01ik@355 70 //# sequence queries require L2NORM
mas01ik@355 71 //${AUDIODB} -d testdb -L
mas01ik@355 72 if(audiodb_l2norm(mydbp)){ 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; dvals[1]=0.5;
mas01ik@355 81 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 82
mas01ik@355 83
mas01ik@355 84 /* query 1 */
mas01ik@355 85 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput
mas01ik@355 86 //echo testfeature 1 0 0 > test-expected-output
mas01ik@355 87 //cmp testoutput test-expected-output
mas01ik@355 88 myadbquery.querytype="sequence";
mas01ik@355 89 myadbquery.feature="testquery";
mas01ik@355 90 myadbquery.sequencelength="1";
mas01ik@355 91 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 92 size=myadbqueryresult.sizeRlist;
mas01ik@355 93
mas01ik@355 94 /* check the test values */
mas01ik@355 95 if (size != 1) {returnval = -1;};
mas01ik@355 96 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;};
mas01ik@355 97
mas01ik@355 98 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput
mas01ik@355 99 //echo testfeature 0 0 0 > test-expected-output
mas01ik@355 100 //cmp testoutput test-expected-output
mas01ik@355 101 myadbquery.querytype="sequence";
mas01ik@355 102 myadbquery.feature="testquery";
mas01ik@355 103 myadbquery.sequencelength="1";
mas01ik@355 104 myadbquery.numpoints="1";
mas01ik@355 105 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 106 size=myadbqueryresult.sizeRlist;
mas01ik@355 107
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 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery > testoutput
mas01ik@355 120 //echo testfeature 1 0 1 > test-expected-output
mas01ik@355 121 //cmp testoutput test-expected-output
mas01ik@355 122 myadbquery.querytype="sequence";
mas01ik@355 123 myadbquery.feature="testquery";
mas01ik@355 124 myadbquery.sequencelength="1";
mas01ik@355 125 myadbquery.numpoints=NULL;
mas01ik@355 126 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 127 size=myadbqueryresult.sizeRlist;
mas01ik@355 128
mas01ik@355 129 /* check the test values */
mas01ik@355 130 if (size != 1) {returnval = -1;};
mas01ik@355 131 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,1)) {returnval = -1;};
mas01ik@355 132
mas01ik@355 133 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -n 1 > testoutput
mas01ik@355 134 //echo testfeature 0 0 1 > test-expected-output
mas01ik@355 135 //cmp testoutput test-expected-output
mas01ik@355 136 myadbquery.querytype="sequence";
mas01ik@355 137 myadbquery.feature="testquery";
mas01ik@355 138 myadbquery.sequencelength="1";
mas01ik@355 139 myadbquery.numpoints="1";
mas01ik@355 140 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 141 size=myadbqueryresult.sizeRlist;
mas01ik@355 142
mas01ik@355 143 /* check the test values */
mas01ik@355 144 if (size != 1) {returnval = -1;};
mas01ik@355 145 if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,1)) {returnval = -1;};
mas01ik@355 146
mas01ik@355 147
mas01ik@355 148
mas01ik@355 149 //# queries with power files might do something different
mas01ik@355 150 //echo "query point (0.0,0.5), p=-0.5"
mas01ik@355 151 //intstring 2 > testquery
mas01ik@355 152 //floatstring 0 0.5 >> testquery
mas01ik@355 153 //intstring 1 > testquerypower
mas01ik@355 154 //floatstring -0.5 >> testquerypower
mas01ik@355 155 ivals[0]=2;
mas01ik@355 156 dvals[0]=-0; dvals[1]=0.5;
mas01ik@355 157 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 158 ivals[0]=1;
mas01ik@355 159 dvals[0]=-0.5;
mas01ik@355 160 maketestfile("testquerypower",ivals,dvals,1);
mas01ik@355 161
mas01ik@355 162 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput
mas01ik@355 163 //echo testfeature 1 0 0 > test-expected-output
mas01ik@355 164 //cmp testoutput test-expected-output
mas01ik@355 165 myadbquery.querytype="sequence";
mas01ik@355 166 myadbquery.feature="testquery";
mas01ik@355 167 myadbquery.sequencelength="1";
mas01ik@355 168 myadbquery.power="testquerypower";
mas01ik@355 169 myadbquery.numpoints=NULL;
mas01ik@355 170 myadbquery.absolute_threshold=-1.4;
mas01ik@355 171 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 172 size=myadbqueryresult.sizeRlist;
mas01ik@355 173
mas01ik@355 174 /* check the test values */
mas01ik@355 175 if (size != 1) {returnval = -1;};
mas01ik@355 176 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;};
mas01ik@355 177
mas01ik@355 178 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput
mas01ik@355 179 //echo testfeature 0 0 0 > test-expected-output
mas01ik@355 180 //cmp testoutput test-expected-output
mas01ik@355 181 myadbquery.querytype="sequence";
mas01ik@355 182 myadbquery.feature="testquery";
mas01ik@355 183 myadbquery.sequencelength="1";
mas01ik@355 184 myadbquery.power="testquerypower";
mas01ik@355 185 myadbquery.numpoints=NULL;
mas01ik@355 186 myadbquery.absolute_threshold=-0.6;
mas01ik@355 187 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 188 size=myadbqueryresult.sizeRlist;
mas01ik@355 189
mas01ik@355 190 /* check the test values */
mas01ik@355 191 if (size != 1) {returnval = -1;};
mas01ik@355 192 if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;};
mas01ik@355 193
mas01ik@355 194
mas01ik@355 195 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.2 > testoutput
mas01ik@355 196 //cat /dev/null > test-expected-output
mas01ik@355 197 //cmp testoutput test-expected-output
mas01ik@355 198
mas01ik@355 199 myadbquery.querytype="sequence";
mas01ik@355 200 myadbquery.feature="testquery";
mas01ik@355 201 myadbquery.sequencelength="1";
mas01ik@355 202 myadbquery.power="testquerypower";
mas01ik@355 203 myadbquery.numpoints=NULL;
mas01ik@355 204 myadbquery.absolute_threshold=-0.2;
mas01ik@355 205 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 206 size=myadbqueryresult.sizeRlist;
mas01ik@355 207 //dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 208
mas01ik@355 209 /* check the test values */
mas01ik@355 210 if (size != 0) {returnval = -1;};
mas01ik@355 211
mas01ik@355 212
mas01ik@355 213
mas01ik@355 214 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=1 > testoutput
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.sequencelength="1";
mas01ik@355 220 myadbquery.power="testquerypower";
mas01ik@355 221 myadbquery.numpoints=NULL;
mas01ik@355 222 myadbquery.absolute_threshold=0;
mas01ik@355 223 myadbquery.relative_threshold=1;
mas01ik@355 224 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 225 size=myadbqueryresult.sizeRlist;
mas01ik@355 226
mas01ik@355 227 /* check the test values */
mas01ik@355 228 if (size != 1) {returnval = -1;};
mas01ik@355 229 if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;};
mas01ik@355 230
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.sequencelength="1";
mas01ik@355 238 myadbquery.power="testquerypower";
mas01ik@355 239 myadbquery.numpoints=NULL;
mas01ik@355 240 myadbquery.absolute_threshold=0;
mas01ik@355 241 myadbquery.relative_threshold=0.2;
mas01ik@355 242 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 243 size=myadbqueryresult.sizeRlist;
mas01ik@355 244
mas01ik@355 245 /* check the test values */
mas01ik@355 246 if (size != 1) {returnval = -1;};
mas01ik@355 247 if (testoneresult(&myadbqueryresult,0,"testfeature",0,0,0)) {returnval = -1;};
mas01ik@355 248
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
mas01ik@355 258 //audioDB -Q sequence -d testdb -f testquery -w testquerypower -l 1 --absolute-threshold -1.400000
mas01ik@355 259 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-1.4 > testoutput
mas01ik@355 260 //echo testfeature 1 0 1 > test-expected-output
mas01ik@355 261 //cmp testoutput test-expected-output
mas01ik@355 262 myadbquery2.querytype="sequence";
mas01ik@355 263 myadbquery2.feature="testquery";
mas01ik@355 264 myadbquery2.sequencelength="1";
mas01ik@355 265 myadbquery2.power="testquerypower";
mas01ik@355 266 myadbquery2.numpoints=NULL;
mas01ik@355 267 myadbquery2.absolute_threshold=-1.4;
mas01ik@355 268 audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2);
mas01ik@355 269 size=myadbqueryresult2.sizeRlist;
mas01ik@355 270
mas01ik@355 271 /* check the test values */
mas01ik@355 272 if (size != 1) {returnval = -1;};
mas01ik@355 273 if (testoneresult(&myadbqueryresult2,0,"testfeature",1,0,1)) {returnval = -1;};
mas01ik@355 274
mas01ik@355 275
mas01ik@355 276 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --absolute-threshold=-0.6 > testoutput
mas01ik@355 277 //echo testfeature 2 0 0 > test-expected-output
mas01ik@355 278 //cmp testoutput test-expected-output
mas01ik@355 279 myadbquery2.querytype="sequence";
mas01ik@355 280 myadbquery2.feature="testquery";
mas01ik@355 281 myadbquery2.sequencelength="1";
mas01ik@355 282 myadbquery2.power="testquerypower";
mas01ik@355 283 myadbquery2.numpoints=NULL;
mas01ik@355 284 myadbquery2.absolute_threshold=-0.6;
mas01ik@355 285 audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2);
mas01ik@355 286 size=myadbqueryresult2.sizeRlist;
mas01ik@355 287
mas01ik@355 288 /* check the test values */
mas01ik@355 289 if (size != 1) {returnval = -1;};
mas01ik@355 290 if (testoneresult(&myadbqueryresult2,0,"testfeature",2,0,0)) {returnval = -1;};
mas01ik@355 291
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 myadbquery2.querytype="sequence";
mas01ik@355 297 myadbquery2.feature="testquery";
mas01ik@355 298 myadbquery2.sequencelength="1";
mas01ik@355 299 myadbquery2.power="testquerypower";
mas01ik@355 300 myadbquery2.numpoints=NULL;
mas01ik@355 301 myadbquery2.absolute_threshold=-0.2;
mas01ik@355 302 myadbquery2.relative_threshold=0.0;
mas01ik@355 303 audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2);
mas01ik@355 304 size=myadbqueryresult2.sizeRlist;
mas01ik@355 305
mas01ik@355 306 /* check the test values */
mas01ik@355 307 if (size != 0) {returnval = -1;};
mas01ik@355 308
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 myadbquery2.querytype="sequence";
mas01ik@355 314 myadbquery2.feature="testquery";
mas01ik@355 315 myadbquery2.sequencelength="1";
mas01ik@355 316 myadbquery2.power="testquerypower";
mas01ik@355 317 myadbquery2.numpoints=NULL;
mas01ik@355 318 myadbquery2.absolute_threshold=0.0;
mas01ik@355 319 myadbquery2.relative_threshold=1;
mas01ik@355 320 audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2);
mas01ik@355 321 size=myadbqueryresult2.sizeRlist;
mas01ik@355 322
mas01ik@355 323 /* check the test values */
mas01ik@355 324 if (size != 1) {returnval = -1;};
mas01ik@355 325 if (testoneresult(&myadbqueryresult2,0,"testfeature",1,0,1)) {returnval = -1;};
mas01ik@355 326
mas01ik@355 327
mas01ik@355 328
mas01ik@355 329 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -w testquerypower --relative-threshold=0.2 > testoutput
mas01ik@355 330 //echo testfeature 2 0 0 > test-expected-output
mas01ik@355 331 //cmp testoutput test-expected-output
mas01ik@355 332 myadbquery2.querytype="sequence";
mas01ik@355 333 myadbquery2.feature="testquery";
mas01ik@355 334 myadbquery2.sequencelength="1";
mas01ik@355 335 myadbquery2.power="testquerypower";
mas01ik@355 336 myadbquery2.numpoints=NULL;
mas01ik@355 337 myadbquery2.absolute_threshold=-0.0;
mas01ik@355 338 myadbquery2.relative_threshold=0.1;
mas01ik@355 339 audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2);
mas01ik@355 340 size=myadbqueryresult2.sizeRlist;
mas01ik@355 341
mas01ik@355 342 /* check the test values */
mas01ik@355 343 if (size != 1) {returnval = -1;};
mas01ik@355 344 if (testoneresult(&myadbqueryresult2,0,"testfeature",2,0,0)) {returnval = -1;};
mas01ik@355 345
mas01ik@355 346 // printf("returnval:%d\n",returnval);
mas01ik@355 347 return(returnval);
mas01ik@355 348 }
mas01ik@355 349