comparison libtests/0028/prog1.c @ 492:f6b126b018d8 api-inversion

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