annotate libtests/0033/prog1.c @ 493:1950d76be128 api-inversion

Even more audiodb_query() deletion Make result_present_or_fail() be a little bit friendlier when comparing distances.
author mas01cr
date Sat, 10 Jan 2009 15:33:11 +0000
parents e072aa1611f5
children 1327b5cf4cb5
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 char * databasename="testdb";
mas01ik@355 13 adb_query_t myadbquery={0};
mas01ik@355 14 adb_queryresult_t myadbqueryresult={0};
mas01ik@355 15 int size=0;
mas01ik@355 16
mas01ik@355 17 /* remove old directory */
mas01ik@355 18 //if [ -f testdb ]; then rm -f testdb; fi
mas01ik@355 19 clean_remove_db(databasename);
mas01ik@355 20
mas01ik@355 21 /* create new db */
mas01ik@355 22 //${AUDIODB} -d testdb -N
mas01ik@355 23 mydbp=audiodb_create(databasename,0,0,0);
mas01ik@355 24
mas01ik@355 25 //intstring 2 > testfeature01
mas01ik@355 26 //floatstring 0 1 >> testfeature01
mas01ik@355 27 //intstring 2 > testfeature10
mas01ik@355 28 //floatstring 1 0 >> testfeature10
mas01ik@355 29 ivals[0]=2;
mas01ik@355 30 dvals[0]=0; dvals[1]=1;
mas01ik@355 31 maketestfile("testfeature01",ivals,dvals,2);
mas01ik@355 32 ivals[0]=2;
mas01ik@355 33 dvals[0]=1; dvals[1]=0;
mas01ik@355 34 maketestfile("testfeature10",ivals,dvals,2);
mas01ik@355 35
mas01ik@355 36 //${AUDIODB} -d testdb -I -f testfeature01
mas01ik@355 37 //${AUDIODB} -d testdb -I -f testfeature10
mas01ik@355 38 myinsert.features="testfeature01";
mas01ik@355 39 if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; };
mas01ik@355 40 myinsert.features="testfeature10";
mas01ik@355 41 if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; };
mas01ik@355 42
mas01ik@355 43 //# sequence queries require L2NORM
mas01ik@355 44 //${AUDIODB} -d testdb -L
mas01ik@355 45 if (audiodb_l2norm(mydbp)) {returnval=-1;};
mas01ik@355 46
mas01ik@355 47 //echo "query point (0.0,0.5)"
mas01ik@355 48 //intstring 2 > testquery
mas01ik@355 49 //floatstring 0 0.5 >> testquery
mas01ik@355 50 ivals[0]=2;
mas01ik@355 51 dvals[0]=0; dvals[1]=0.5;
mas01ik@355 52 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 53
mas01ik@355 54 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput
mas01ik@355 55 //audioDB -Q sequence -d testdb -f testquery -R 5 -l 1
mas01ik@355 56 //echo testfeature01 1 > test-expected-output
mas01ik@355 57 //echo testfeature10 1 >> test-expected-output
mas01ik@355 58 //cmp testoutput test-expected-output
mas01ik@355 59 myadbquery.querytype="sequence";
mas01ik@355 60 myadbquery.feature="testquery";
mas01ik@355 61 myadbquery.sequencelength="1";
mas01ik@355 62 myadbquery.radius="5";
mas01ik@355 63 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 64 size=myadbqueryresult.sizeRlist;
mas01ik@355 65
mas01ik@355 66 /* check the test values */
mas01ik@355 67 if (size != 2) {returnval = -1;};
mas01ik@355 68 if (testoneradiusresult(&myadbqueryresult,0,"testfeature01",1)) {returnval = -1;};
mas01ik@355 69 if (testoneradiusresult(&myadbqueryresult,1,"testfeature10",1)) {returnval = -1;};
mas01ik@355 70
mas01ik@355 71 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K /dev/null -R 5 > testoutput
mas01ik@355 72 //cat /dev/null > test-expected-output
mas01ik@355 73 //cmp testoutput test-expected-output
mas01ik@355 74 myadbquery.querytype="sequence";
mas01ik@355 75 myadbquery.feature="testquery";
mas01ik@355 76 myadbquery.keylist="/dev/null";
mas01ik@355 77 myadbquery.sequencelength="1";
mas01ik@355 78 myadbquery.radius="5";
mas01ik@355 79 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 80 size=myadbqueryresult.sizeRlist;
mas01ik@355 81
mas01ik@355 82 /* check the test values */
mas01ik@355 83 if (size != 0) {returnval = -1;};
mas01ik@355 84
mas01ik@355 85
mas01ik@355 86
mas01ik@355 87 //echo testfeature01 > testkl.txt
mas01ik@355 88 makekeylistfile("testkl.txt","testfeature01");
mas01ik@355 89 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -R 5 > testoutput
mas01ik@355 90 //echo testfeature01 1 > test-expected-output
mas01ik@355 91 //cmp testoutput test-expected-output
mas01ik@355 92 myadbquery.querytype="sequence";
mas01ik@355 93 myadbquery.feature="testquery";
mas01ik@355 94 myadbquery.keylist="testkl.txt";
mas01ik@355 95 myadbquery.sequencelength="1";
mas01ik@355 96 myadbquery.radius="5";
mas01ik@355 97 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 98 size=myadbqueryresult.sizeRlist;
mas01ik@355 99
mas01ik@355 100 /* check the test values */
mas01ik@355 101 if (size != 1) {returnval = -1;};
mas01ik@355 102 if (testoneradiusresult(&myadbqueryresult,0,"testfeature01",1)) {returnval = -1;};
mas01ik@355 103
mas01ik@355 104 //echo testfeature10 > testkl.txt
mas01ik@355 105 makekeylistfile("testkl.txt","testfeature10");
mas01ik@355 106 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -R 5 > testoutput
mas01ik@355 107 //echo testfeature10 1 > test-expected-output
mas01ik@355 108 //cmp testoutput test-expected-output
mas01ik@355 109 myadbquery.querytype="sequence";
mas01ik@355 110 myadbquery.feature="testquery";
mas01ik@355 111 myadbquery.keylist="testkl.txt";
mas01ik@355 112 myadbquery.sequencelength="1";
mas01ik@355 113 myadbquery.radius="5";
mas01ik@355 114 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 115 size=myadbqueryresult.sizeRlist;
mas01ik@355 116
mas01ik@355 117 /* check the test values */
mas01ik@355 118 if (size != 1) {returnval = -1;};
mas01ik@355 119 if (testoneradiusresult(&myadbqueryresult,0,"testfeature10",1)) {returnval = -1;};
mas01ik@355 120
mas01ik@355 121 //echo testfeature10 > testkl.txt
mas01ik@355 122 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 -R 5 > testoutput
mas01ik@355 123 //echo testfeature10 1 > test-expected-output
mas01ik@355 124 //cmp testoutput test-expected-output
mas01ik@355 125 myadbquery.querytype="sequence";
mas01ik@355 126 myadbquery.feature="testquery";
mas01ik@355 127 myadbquery.keylist="testkl.txt";
mas01ik@355 128 myadbquery.sequencelength="1";
mas01ik@355 129 myadbquery.radius="5";
mas01ik@355 130 myadbquery.resultlength="1";
mas01ik@355 131 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 132 size=myadbqueryresult.sizeRlist;
mas01ik@355 133
mas01ik@355 134 /* check the test values */
mas01ik@355 135 if (size != 1) {returnval = -1;};
mas01ik@355 136 if (testoneradiusresult(&myadbqueryresult,0,"testfeature10",1)) {returnval = -1;};
mas01ik@355 137
mas01ik@355 138
mas01ik@355 139 //# NB: one might be tempted to insert a test here for having both keys
mas01ik@355 140 //# in the keylist, but in non-database order, and then checking that
mas01ik@355 141 //# the result list is also in that non-database order. I think that
mas01ik@355 142 //# would be misguided, as the efficient way of dealing with such a
mas01ik@355 143 //# keylist is to advance as-sequentially-as-possible through the
mas01ik@355 144 //# database; it just so happens that our current implementation is not
mas01ik@355 145 //# so smart.
mas01ik@355 146
mas01ik@355 147 //echo "query point (0.5,0.0)"
mas01ik@355 148 //intstring 2 > testquery
mas01ik@355 149 //floatstring 0.5 0 >> testquery
mas01ik@355 150 ivals[0]=2;
mas01ik@355 151 dvals[0]=0.5; dvals[1]=0.0;
mas01ik@355 152 maketestfile("testquery",ivals,dvals,2);
mas01ik@355 153
mas01ik@355 154 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput
mas01ik@355 155 //echo testfeature01 1 > test-expected-output
mas01ik@355 156 //echo testfeature10 1 >> test-expected-output
mas01ik@355 157 //cmp testoutput test-expected-output
mas01ik@355 158 myadbquery.querytype="sequence";
mas01ik@355 159 myadbquery.feature="testquery";
mas01ik@355 160 myadbquery.keylist=NULL;
mas01ik@355 161 myadbquery.sequencelength="1";
mas01ik@355 162 myadbquery.radius="5";
mas01ik@355 163 myadbquery.resultlength=NULL;
mas01ik@355 164 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 165 size=myadbqueryresult.sizeRlist;
mas01ik@355 166
mas01ik@355 167 /* check the test values */
mas01ik@355 168 if (size != 2) {returnval = -1;};
mas01ik@355 169 if (testoneradiusresult(&myadbqueryresult,0,"testfeature01",1)) {returnval = -1;};
mas01ik@355 170 if (testoneradiusresult(&myadbqueryresult,1,"testfeature10",1)) {returnval = -1;};
mas01ik@355 171
mas01ik@355 172 //echo testfeature10 > testkl.txt
mas01ik@355 173 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -K testkl.txt -r 1 -R 5 > testoutput
mas01ik@355 174 //echo testfeature10 1 > test-expected-output
mas01ik@355 175 //cmp testoutput test-expected-output
mas01ik@355 176 myadbquery.querytype="sequence";
mas01ik@355 177 myadbquery.feature="testquery";
mas01ik@355 178 myadbquery.keylist="testkl.txt";
mas01ik@355 179 myadbquery.sequencelength="1";
mas01ik@355 180 myadbquery.radius="5";
mas01ik@355 181 myadbquery.resultlength="1";
mas01ik@355 182 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
mas01ik@355 183 size=myadbqueryresult.sizeRlist;
mas01ik@355 184
mas01ik@355 185 /* check the test values */
mas01ik@355 186 if (size != 1) {returnval = -1;};
mas01ik@355 187 if (testoneradiusresult(&myadbqueryresult,0,"testfeature10",1)) {returnval = -1;};
mas01ik@355 188
mas01ik@355 189
mas01ik@355 190 //fprintf(stderr,"returnval:%d\n",returnval);
mas01ik@355 191 return(returnval);
mas01ik@355 192 }
mas01ik@355 193