annotate libtests/0030/prog1.c @ 401:a8a5f2ca5380 api-inversion

Invert audioDB::l2norm / audiodb_l2norm() We now have some functions that shouldn't be exported to the user of the library, but are used in more than one source file; case in point: audiodb_sync_header(). Make a new audioDB-internals.h file for them, and while we're at it put the scary mmap()-related macros in there too. We can't delete audioDB::unitNormAndInsertL2() quite yet, because it's used in insertion too, but we can delete the non-append branches. That's not very much code to lose, but every little helps.
author mas01cr
date Wed, 03 Dec 2008 14:53:20 +0000
parents 7e6c99481b8b
children e072aa1611f5 342822c2d49a
rev   line source
mas01ik@355 1 #include <stdio.h>
mas01ik@355 2 #include <stdlib.h>
mas01ik@355 3 #include <string.h>
mas01ik@355 4 #include <sysexits.h>
mas01ik@355 5 #include <fcntl.h>
mas01ik@355 6 #include <dirent.h>
mas01ik@355 7 #include <unistd.h>
mas01ik@355 8 #include <sys/stat.h>
mas01ik@355 9 /*
mas01ik@355 10 * * #define NDEBUG
mas01ik@355 11 * * */
mas01ik@355 12 #include <assert.h>
mas01ik@355 13
mas01ik@355 14 #include "../../audioDB_API.h"
mas01ik@355 15 #include "../test_utils_lib.h"
mas01ik@355 16
mas01ik@355 17
mas01ik@355 18 int main(int argc, char **argv){
mas01ik@355 19
mas01ik@355 20 int returnval=0;
mas01ik@355 21 adb_ptr mydbp={0};
mas01ik@355 22 int ivals[10];
mas01ik@355 23 double dvals[10];
mas01ik@355 24 adb_insert_t myinsert={0};
mas01ik@355 25 char * databasename="testdb";
mas01ik@355 26 adb_query_t myadbquery={0};
mas01ik@355 27 adb_queryresult_t myadbqueryresult={0};
mas01ik@355 28 int size=0;
mas01ik@355 29
mas01ik@355 30 /* remove old directory */
mas01ik@355 31 //if [ -f testdb ]; then rm -f testdb; fi
mas01ik@355 32 clean_remove_db(databasename);
mas01ik@355 33
mas01ik@355 34 /* create new db */
mas01ik@355 35 //${AUDIODB} -d testdb -N
mas01ik@355 36 mydbp=audiodb_create(databasename,0,0,0);
mas01ik@355 37
mas01ik@355 38 //intstring 2 > testfeature
mas01ik@355 39 //floatstring 0 1 >> testfeature
mas01ik@355 40 //floatstring 1 0 >> testfeature
mas01ik@355 41 //floatstring 1 0 >> testfeature
mas01ik@355 42 //floatstring 0 1 >> testfeature
mas01ik@355 43 ivals[0]=2;
mas01ik@355 44 dvals[0]=0; dvals[1]=1; dvals[2]=1; dvals[3]=0;
mas01ik@355 45 dvals[4]=1; dvals[5]=0; dvals[6]=0; dvals[7]=1;
mas01ik@355 46 maketestfile("testfeature",ivals,dvals,8);
mas01ik@355 47
mas01ik@355 48 //intstring 1 > testpower
mas01ik@355 49 //floatstring -0.5 >> testpower
mas01ik@355 50 //floatstring -1 >> testpower
mas01ik@355 51 //floatstring -1 >> testpower
mas01ik@355 52 //floatstring -0.5 >> testpower
mas01ik@355 53 ivals[0]=1;
mas01ik@355 54 dvals[0]=-0.5; dvals[1]=-1; dvals[2]=-1; dvals[3]=-0.5;
mas01ik@355 55 maketestfile("testpower",ivals,dvals,4);
mas01ik@355 56
mas01ik@355 57 //expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature -w testpower
mas01ik@355 58 myinsert.features="testfeature";
mas01ik@355 59 myinsert.power="testpower";
mas01ik@355 60 if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; }
mas01ik@355 61
mas01ik@355 62 //${AUDIODB} -d testdb -P
mas01ik@355 63 if(audiodb_power(mydbp)){ returnval=-1; };
mas01ik@355 64
mas01ik@355 65 //expect_clean_error_exit ${AUDIODB} -d testdb -I -f testfeature
mas01ik@355 66 myinsert.features="testfeature";
mas01ik@355 67 myinsert.power=NULL;
mas01ik@355 68 if (!audiodb_insert(mydbp,&myinsert)){ returnval=-1; }
mas01ik@355 69
mas01ik@355 70 //${AUDIODB} -d testdb -I -f testfeature -w testpower
mas01ik@355 71 myinsert.features="testfeature";
mas01ik@355 72 myinsert.power="testpower";
mas01ik@355 73 if (audiodb_insert(mydbp,&myinsert)){ returnval=-1; }
mas01ik@355 74 printf("returnval:%d\n",returnval);
mas01ik@355 75
mas01ik@355 76 //# sequence queries require L2NORM
mas01ik@355 77 //${AUDIODB} -d testdb -L
mas01ik@355 78 if(audiodb_l2norm(mydbp)){ returnval=-1; };
mas01ik@355 79
mas01ik@355 80 //echo "query points (0.0,0.5),(0.0,0.5),(0.5,0.0)"
mas01ik@355 81 //intstring 2 > testquery
mas01ik@355 82 //floatstring 0 0.5 >> testquery
mas01ik@355 83 //floatstring 0 0.5 >> testquery
mas01ik@355 84 //floatstring 0.5 0 >> testquery
mas01ik@355 85 ivals[0]=2;
mas01ik@355 86 dvals[0]=0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0.5; dvals[4]=0.5; dvals[5]=0;
mas01ik@355 87 maketestfile("testquery",ivals,dvals,6);
mas01ik@355 88
mas01ik@355 89 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 0.1 > testoutput
mas01ik@355 90 //audioDB -Q sequence -d testdb -f testquery -R 0.1 -l 1
mas01ik@355 91 //echo testfeature 1 > test-expected-output
mas01ik@355 92 //cmp testoutput test-expected-output
mas01ik@355 93 myadbquery.querytype="sequence";
mas01ik@355 94 myadbquery.feature="testquery";
mas01ik@355 95 //myadbquery.power="testquerypower";
mas01ik@355 96 myadbquery.sequencelength="1";
mas01ik@355 97 //myadbquery.qpoint="0";
mas01ik@355 98 //myadbquery.absolute_threshold=0.0;
mas01ik@355 99 //myadbquery.relative_threshold=0.1;
mas01ik@355 100 myadbquery.radius="0.1";
mas01ik@355 101 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 102 size=myadbqueryresult.sizeRlist;
mas01ik@355 103
mas01ik@355 104 dump_query(&myadbquery,&myadbqueryresult);
mas01ik@355 105
mas01ik@355 106 /* check the test values */
mas01ik@355 107 if (size != 1) {returnval = -1;};
mas01ik@355 108 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 109
mas01ik@355 110 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 0 -R 0.1 > testoutput
mas01ik@355 111 //echo testfeature 1 > test-expected-output
mas01ik@355 112 //cmp testoutput test-expected-output
mas01ik@355 113 myadbquery.querytype="sequence";
mas01ik@355 114 myadbquery.feature="testquery";
mas01ik@355 115 //myadbquery.power="testquerypower";
mas01ik@355 116 myadbquery.sequencelength="1";
mas01ik@355 117 myadbquery.qpoint="0";
mas01ik@355 118 //myadbquery.absolute_threshold=0.0;
mas01ik@355 119 //myadbquery.relative_threshold=0.1;
mas01ik@355 120 myadbquery.radius="0.1";
mas01ik@355 121 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 122 size=myadbqueryresult.sizeRlist;
mas01ik@355 123
mas01ik@355 124 /* check the test values */
mas01ik@355 125 if (size != 1) {returnval = -1;};
mas01ik@355 126 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 127
mas01ik@355 128 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 1 -R 0.1 > testoutput
mas01ik@355 129 //echo testfeature 1 > test-expected-output
mas01ik@355 130 //cmp testoutput test-expected-output
mas01ik@355 131 myadbquery.querytype="sequence";
mas01ik@355 132 myadbquery.feature="testquery";
mas01ik@355 133 //myadbquery.power="testquerypower";
mas01ik@355 134 myadbquery.sequencelength="1";
mas01ik@355 135 myadbquery.qpoint="1";
mas01ik@355 136 //myadbquery.absolute_threshold=0.0;
mas01ik@355 137 //myadbquery.relative_threshold=0.1;
mas01ik@355 138 myadbquery.radius="0.1";
mas01ik@355 139 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 140 size=myadbqueryresult.sizeRlist;
mas01ik@355 141
mas01ik@355 142 /* check the test values */
mas01ik@355 143 if (size != 1) {returnval = -1;};
mas01ik@355 144 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 145
mas01ik@355 146 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 0 -R 1.1 > testoutput
mas01ik@355 147 //echo testfeature 1 > test-expected-output
mas01ik@355 148 //cmp testoutput test-expected-output
mas01ik@355 149 myadbquery.querytype="sequence";
mas01ik@355 150 myadbquery.feature="testquery";
mas01cr@379 151 //myadbquery.power="testquerypower";
mas01ik@355 152 myadbquery.sequencelength="2";
mas01ik@355 153 myadbquery.qpoint="0";
mas01ik@355 154 //myadbquery.absolute_threshold=0.0;
mas01ik@355 155 //myadbquery.relative_threshold=0.1;
mas01ik@355 156 myadbquery.radius="1.1";
mas01ik@355 157 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 158 size=myadbqueryresult.sizeRlist;
mas01ik@355 159
mas01ik@355 160 /* check the test values */
mas01ik@355 161 if (size != 1) {returnval = -1;};
mas01ik@355 162 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 163
mas01ik@355 164 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 0 -R 0.9 > testoutput
mas01ik@355 165 //cat /dev/null > 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="2";
mas01ik@355 171 myadbquery.qpoint="0";
mas01ik@355 172 //myadbquery.absolute_threshold=0.0;
mas01ik@355 173 //myadbquery.relative_threshold=0.1;
mas01ik@355 174 myadbquery.radius="0.9";
mas01ik@355 175 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 176 size=myadbqueryresult.sizeRlist;
mas01ik@355 177
mas01ik@355 178 /* check the test values */
mas01ik@355 179 if (size != 0) {returnval = -1;};
mas01ik@355 180
mas01ik@355 181 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -p 1 -R 0.9 > testoutput
mas01ik@355 182 //echo testfeature 1 > test-expected-output
mas01ik@355 183 //cmp testoutput test-expected-output
mas01ik@355 184 myadbquery.querytype="sequence";
mas01ik@355 185 myadbquery.feature="testquery";
mas01ik@355 186 //myadbquery.power="testquerypower";
mas01ik@355 187 myadbquery.sequencelength="2";
mas01ik@355 188 myadbquery.qpoint="1";
mas01ik@355 189 myadbquery.radius="0.9";
mas01ik@355 190 //myadbquery.absolute_threshold=0.0;
mas01ik@355 191 //myadbquery.relative_threshold=0.1;
mas01ik@355 192 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 193 size=myadbqueryresult.sizeRlist;
mas01ik@355 194
mas01ik@355 195 /* check the test values */
mas01ik@355 196 if (size != 1) {returnval = -1;};
mas01ik@355 197 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 198
mas01ik@355 199 //echo "query points (0.0,0.5)p=-0.5,(0.0,0.5)p=-1,(0.5,0.0)p=-1"
mas01ik@355 200 //intstring 1 > testquerypower
mas01ik@355 201 //floatstring -0.5 -1 -1 >> testquerypower
mas01ik@355 202 ivals[0]=1;
mas01ik@355 203 dvals[0]=-0.5; dvals[1]=-1; dvals[2]=-1;
mas01ik@355 204 maketestfile("testquerypower",ivals,dvals,3);
mas01ik@355 205
mas01ik@355 206 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-1.4 -p 0 -R 1.1 > testoutput
mas01ik@355 207 //echo testfeature 1 > test-expected-output
mas01ik@355 208 //cmp testoutput test-expected-output
mas01ik@355 209 myadbquery.querytype="sequence";
mas01ik@355 210 myadbquery.feature="testquery";
mas01ik@355 211 myadbquery.power="testquerypower";
mas01ik@355 212 myadbquery.sequencelength="2";
mas01ik@355 213 myadbquery.qpoint="0";
mas01ik@355 214 myadbquery.absolute_threshold=-1.4;
mas01ik@355 215 myadbquery.relative_threshold=0.0;
mas01ik@355 216 myadbquery.radius="1.1";
mas01ik@355 217 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 218 size=myadbqueryresult.sizeRlist;
mas01ik@355 219
mas01ik@355 220 /* check the test values */
mas01ik@355 221 if (size != 1) {returnval = -1;};
mas01ik@355 222 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 223
mas01ik@355 224 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.8 -p 0 -R 1.1 > testoutput
mas01ik@355 225 //echo testfeature 1 > test-expected-output
mas01ik@355 226 //cmp testoutput test-expected-output
mas01ik@355 227 myadbquery.querytype="sequence";
mas01ik@355 228 myadbquery.feature="testquery";
mas01ik@355 229 myadbquery.power="testquerypower";
mas01ik@355 230 myadbquery.sequencelength="2";
mas01ik@355 231 myadbquery.qpoint="0";
mas01ik@355 232 myadbquery.absolute_threshold=-0.8;
mas01ik@355 233 //myadbquery.relative_threshold=0.1;
mas01ik@355 234 myadbquery.radius="1.1";
mas01ik@355 235 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 236 size=myadbqueryresult.sizeRlist;
mas01ik@355 237
mas01ik@355 238 /* check the test values */
mas01ik@355 239 if (size != 1) {returnval = -1;};
mas01ik@355 240 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 241
mas01ik@355 242 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.7 -p 0 -R 1.1 > testoutput
mas01ik@355 243 //cat /dev/null > test-expected-output
mas01ik@355 244 //cmp testoutput test-expected-output
mas01ik@355 245 myadbquery.querytype="sequence";
mas01ik@355 246 myadbquery.feature="testquery";
mas01ik@355 247 myadbquery.power="testquerypower";
mas01ik@355 248 myadbquery.sequencelength="2";
mas01ik@355 249 myadbquery.qpoint="0";
mas01ik@355 250 myadbquery.absolute_threshold=-0.7;
mas01ik@355 251 myadbquery.relative_threshold=0.0;
mas01ik@355 252 myadbquery.radius="1.1";
mas01ik@355 253 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 254 size=myadbqueryresult.sizeRlist;
mas01ik@355 255
mas01ik@355 256 /* check the test values */
mas01ik@355 257 if (size != 0) {returnval = -1;};
mas01ik@355 258
mas01ik@355 259 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-1.4 -p 1 -R 0.9 > testoutput
mas01ik@355 260 //echo testfeature 1 > test-expected-output
mas01ik@355 261 //cmp testoutput test-expected-output
mas01ik@355 262 myadbquery.querytype="sequence";
mas01ik@355 263 myadbquery.feature="testquery";
mas01ik@355 264 myadbquery.power="testquerypower";
mas01ik@355 265 myadbquery.sequencelength="2";
mas01ik@355 266 myadbquery.qpoint="1";
mas01ik@355 267 myadbquery.absolute_threshold=-1.4;
mas01ik@355 268 myadbquery.relative_threshold=0.0;
mas01ik@355 269 myadbquery.radius="0.9";
mas01ik@355 270 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 271 size=myadbqueryresult.sizeRlist;
mas01ik@355 272
mas01ik@355 273 /* check the test values */
mas01ik@355 274 if (size != 1) {returnval = -1;};
mas01ik@355 275 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 276
mas01ik@355 277 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --absolute-threshold=-0.9 -p 1 -R 0.9 > testoutput
mas01ik@355 278 //cat /dev/null > test-expected-output
mas01ik@355 279 //cmp testoutput test-expected-output
mas01ik@355 280 myadbquery.querytype="sequence";
mas01ik@355 281 myadbquery.feature="testquery";
mas01ik@355 282 myadbquery.power="testquerypower";
mas01ik@355 283 myadbquery.sequencelength="2";
mas01ik@355 284 myadbquery.qpoint="1";
mas01ik@355 285 myadbquery.absolute_threshold=-0.9;
mas01ik@355 286 myadbquery.relative_threshold=0.0;
mas01ik@355 287 myadbquery.radius="0.9";
mas01ik@355 288 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 289 size=myadbqueryresult.sizeRlist;
mas01ik@355 290
mas01ik@355 291 /* check the test values */
mas01ik@355 292 if (size != 0) {returnval = -1;};
mas01ik@355 293
mas01ik@355 294 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --relative-threshold=0.1 -p 0 -R 1.1 > testoutput
mas01ik@355 295 //echo testfeature 1 > test-expected-output
mas01ik@355 296 //cmp testoutput test-expected-output
mas01ik@355 297 myadbquery.querytype="sequence";
mas01ik@355 298 myadbquery.feature="testquery";
mas01ik@355 299 myadbquery.power="testquerypower";
mas01ik@355 300 myadbquery.sequencelength="2";
mas01ik@355 301 myadbquery.qpoint="0";
mas01ik@355 302 myadbquery.absolute_threshold=0.0;
mas01ik@355 303 myadbquery.relative_threshold=0.1;
mas01ik@355 304 myadbquery.radius="1.1";
mas01ik@355 305 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 306 size=myadbqueryresult.sizeRlist;
mas01ik@355 307
mas01ik@355 308 /* check the test values */
mas01ik@355 309 if (size != 1) {returnval = -1;};
mas01ik@355 310 if (testoneradiusresult(&myadbqueryresult,0,"testfeature",1)) {returnval = -1;};
mas01ik@355 311
mas01ik@355 312 //${AUDIODB} -d testdb -Q sequence -l 2 -f testquery -w testquerypower --relative-threshold=0.1 -p 0 -R 0.9 > testoutput
mas01ik@355 313 //cat /dev/null > test-expected-output
mas01ik@355 314 //cmp testoutput test-expected-output
mas01ik@355 315 myadbquery.querytype="sequence";
mas01ik@355 316 myadbquery.feature="testquery";
mas01ik@355 317 myadbquery.power="testquerypower";
mas01ik@355 318 myadbquery.sequencelength="2";
mas01ik@355 319 myadbquery.qpoint="0";
mas01ik@355 320 myadbquery.absolute_threshold=0.0;
mas01ik@355 321 myadbquery.relative_threshold=0.1;
mas01ik@355 322 myadbquery.radius="0.9";
mas01ik@355 323 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 324 size=myadbqueryresult.sizeRlist;
mas01ik@355 325
mas01ik@355 326 /* check the test values */
mas01ik@355 327 if (size != 0) {returnval = -1;};
mas01ik@355 328
mas01ik@355 329 //returnval=-1;
mas01ik@355 330 printf("returnval:%d\n",returnval);
mas01ik@355 331
mas01ik@355 332 return(returnval);
mas01ik@355 333 }
mas01ik@355 334