Mercurial > hg > audiodb
comparison libtests/0032/prog1.c @ 494:1327b5cf4cb5 api-inversion
Finish rewriting libtests.
author | mas01cr |
---|---|
date | Sat, 10 Jan 2009 15:33:16 +0000 |
parents | f4dc8e47ee37 |
children | 9d8aee621afb |
comparison
equal
deleted
inserted
replaced
493:1950d76be128 | 494:1327b5cf4cb5 |
---|---|
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 const char *keys[2]; | |
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; | |
11 if(audiodb_l2norm(adb)) | |
12 return 1; | |
6 | 13 |
7 int returnval=0; | 14 adb_datum_t datum1 = {1, 2, "testfeature01", (double[2]) {0, 1}}; |
8 adb_ptr mydbp={0}; | 15 adb_datum_t datum2 = {1, 2, "testfeature10", (double[2]) {1, 0}}; |
9 int ivals[10]; | 16 if(audiodb_insert_datum(adb, &datum1)) |
10 double dvals[10]; | 17 return 1; |
11 adb_insert_t myinsert={0}; | 18 if(audiodb_insert_datum(adb, &datum2)) |
12 char * databasename="testdb"; | 19 return 1; |
13 adb_query_t myadbquery={0}; | |
14 adb_queryresult_t myadbqueryresult={0}; | |
15 int size=0; | |
16 | 20 |
21 adb_datum_t query = {1, 2, "testquery", (double[2]) {0, 0.5}}; | |
17 | 22 |
18 /* remove old directory */ | 23 adb_query_id_t qid = {0}; |
19 //if [ -f testdb ]; then rm -f testdb; fi | 24 qid.datum = &query; |
20 clean_remove_db(databasename); | 25 qid.sequence_length = 1; |
26 qid.sequence_start = 0; | |
27 adb_query_parameters_t parms = | |
28 {ADB_ACCUMULATION_PER_TRACK, ADB_DISTANCE_DOT_PRODUCT, 10, 10}; | |
29 adb_query_refine_t refine = {0}; | |
30 refine.hopsize = 1; | |
21 | 31 |
22 /* create new db */ | 32 adb_query_spec_t spec; |
23 //${AUDIODB} -d testdb -N | 33 spec.qid = qid; |
24 mydbp=audiodb_create(databasename,0,0,0); | 34 spec.params = parms; |
35 spec.refine = refine; | |
25 | 36 |
26 /* turn on l2 power */ | 37 adb_query_results_t *results = audiodb_query_spec(adb, &spec); |
27 //${AUDIODB} -d testdb -L | 38 if(!results || results->nresults != 2) return 1; |
28 if (audiodb_l2norm(mydbp)) {returnval=-1;}; | 39 result_present_or_fail(results, "testfeature01", 0.5, 0, 0); |
40 result_present_or_fail(results, "testfeature10", 0, 0, 0); | |
41 audiodb_query_free_results(adb, &spec, results); | |
29 | 42 |
30 /* make feature files */ | 43 spec.refine.flags = ADB_REFINE_INCLUDE_KEYLIST; |
31 //intstring 2 > testfeature01 | 44 spec.refine.include.nkeys = 0; |
32 //floatstring 0 1 >> testfeature01 | 45 results = audiodb_query_spec(adb, &spec); |
33 //intstring 2 > testfeature10 | 46 if(!results || results->nresults != 0) return 1; |
34 //floatstring 1 0 >> testfeature10 | 47 audiodb_query_free_results(adb, &spec, results); |
35 ivals[0]=2; | |
36 dvals[0]=0; dvals[1]=1; | |
37 maketestfile("testfeature01",ivals,dvals,2); | |
38 ivals[0]=2; | |
39 dvals[0]=1; dvals[1]=0; | |
40 maketestfile("testfeature10",ivals,dvals,2); | |
41 | 48 |
49 spec.refine.include.nkeys = 1; | |
50 spec.refine.include.keys = keys; | |
51 spec.refine.include.keys[0] = "testfeature01"; | |
52 results = audiodb_query_spec(adb, &spec); | |
53 if(!results || results->nresults != 1) return 1; | |
54 result_present_or_fail(results, "testfeature01", 0.5, 0, 0); | |
55 audiodb_query_free_results(adb, &spec, results); | |
42 | 56 |
43 /* insertions */ | 57 spec.refine.include.keys[0] = "testfeature10"; |
44 //${AUDIODB} -d testdb -I -f testfeature01 | 58 results = audiodb_query_spec(adb, &spec); |
45 //${AUDIODB} -d testdb -I -f testfeature10 | 59 if(!results || results->nresults != 1) return 1; |
46 myinsert.features="testfeature01"; | 60 result_present_or_fail(results, "testfeature10", 0, 0, 0); |
47 if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; | 61 audiodb_query_free_results(adb, &spec, results); |
48 myinsert.features="testfeature10"; | |
49 if(audiodb_insert(mydbp,&myinsert)) {returnval = -1; }; | |
50 | |
51 | 62 |
52 /* query */ | 63 spec.refine.include.nkeys = 2; |
53 //echo "query point (0.0,0.5)" | 64 spec.refine.include.keys[0] = "testfeature01"; |
54 //intstring 2 > testquery | 65 spec.refine.include.keys[1] = "testfeature10"; |
55 //floatstring 0 0.5 >> testquery | 66 results = audiodb_query_spec(adb, &spec); |
56 ivals[0]=2; | 67 if(!results || results->nresults != 2) return 1; |
57 dvals[0]=0; dvals[1]=0.5; | 68 result_present_or_fail(results, "testfeature01", 0.5, 0, 0); |
58 maketestfile("testquery",ivals,dvals,2); | 69 result_present_or_fail(results, "testfeature10", 0, 0, 0); |
70 audiodb_query_free_results(adb, &spec, results); | |
59 | 71 |
60 /* test a sequence query */ | 72 spec.refine.include.nkeys = 0; |
61 //${AUDIODB} -d testdb -Q track -l 1 -f testquery > testoutput | 73 spec.refine.include.keys = NULL; |
62 //echo testfeature01 0.5 0 0 > test-expected-output | 74 spec.refine.flags = ADB_REFINE_EXCLUDE_KEYLIST; |
63 //echo testfeature10 0 0 0 >> test-expected-output | 75 spec.refine.exclude.nkeys = 1; |
64 //cmp testoutput test-expected-output | 76 spec.refine.exclude.keys = keys; |
65 myadbquery.querytype="track"; | 77 spec.refine.exclude.keys[0] = "testfeature10"; |
66 myadbquery.feature="testquery"; | 78 results = audiodb_query_spec(adb, &spec); |
67 myadbquery.sequencelength="1"; | 79 if(!results || results->nresults != 1) return 1; |
68 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | 80 result_present_or_fail(results, "testfeature01", 0.5, 0, 0); |
69 size=myadbqueryresult.sizeRlist; | 81 audiodb_query_free_results(adb, &spec, results); |
70 | 82 |
71 /* check the test values */ | 83 spec.refine.exclude.keys[0] = "testfeature01"; |
72 if (size != 2) {returnval = -1;}; | 84 results = audiodb_query_spec(adb, &spec); |
73 if (testoneresult(&myadbqueryresult,0,"testfeature01",0.5,0,0)) {returnval = -1;}; | 85 if(!results || results->nresults != 1) return 1; |
74 if (testoneresult(&myadbqueryresult,1,"testfeature10",0,0,0)) {returnval = -1;}; | 86 result_present_or_fail(results, "testfeature10", 0, 0, 0); |
87 audiodb_query_free_results(adb, &spec, results); | |
75 | 88 |
76 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K /dev/null > testoutput | 89 return 104; |
77 //cat /dev/null > test-expected-output | |
78 //cmp testoutput test-expected-output | |
79 myadbquery.querytype="track"; | |
80 myadbquery.feature="testquery"; | |
81 myadbquery.keylist="/dev/null"; | |
82 myadbquery.sequencelength="1"; | |
83 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
84 size=myadbqueryresult.sizeRlist; | |
85 | |
86 /* check the test values */ | |
87 if (size != 0) {returnval = -1;}; | |
88 | |
89 | |
90 | |
91 //echo testfeature01 > testkl.txt | |
92 makekeylistfile("testkl.txt","testfeature01"); | |
93 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput | |
94 //echo testfeature01 0.5 0 0 > test-expected-output | |
95 //cmp testoutput test-expected-output | |
96 myadbquery.querytype="track"; | |
97 myadbquery.feature="testquery"; | |
98 myadbquery.keylist="testkl.txt"; | |
99 myadbquery.sequencelength="1"; | |
100 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
101 | |
102 size=myadbqueryresult.sizeRlist; | |
103 | |
104 /* check the test values */ | |
105 if (size != 1) {returnval = -1;}; | |
106 if (testoneresult(&myadbqueryresult,0,"testfeature01",0.5,0,0)) {returnval = -1;}; | |
107 | |
108 | |
109 | |
110 | |
111 //echo testfeature10 > testkl.txt | |
112 makekeylistfile("testkl.txt","testfeature10"); | |
113 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput | |
114 //echo testfeature10 0 0 0 > test-expected-output | |
115 //cmp testoutput test-expected-output | |
116 myadbquery.querytype="track"; | |
117 myadbquery.feature="testquery"; | |
118 myadbquery.keylist="testkl.txt"; | |
119 myadbquery.sequencelength="1"; | |
120 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
121 | |
122 size=myadbqueryresult.sizeRlist; | |
123 | |
124 /* check the test values */ | |
125 if (size != 1) {returnval = -1;}; | |
126 if (testoneresult(&myadbqueryresult,0,"testfeature10",0,0,0)) {returnval = -1;}; | |
127 | |
128 | |
129 | |
130 //echo testfeature10 > testkl.txt | |
131 makekeylistfile("testkl.txt","testfeature10"); | |
132 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt -r 1 > testoutput | |
133 //echo testfeature10 0 0 0 > test-expected-output | |
134 //cmp testoutput test-expected-output | |
135 myadbquery.querytype="track"; | |
136 myadbquery.feature="testquery"; | |
137 myadbquery.keylist="testkl.txt"; | |
138 myadbquery.sequencelength="1"; | |
139 myadbquery.resultlength="1"; | |
140 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
141 | |
142 size=myadbqueryresult.sizeRlist; | |
143 | |
144 /* check the test values */ | |
145 if (size != 1) {returnval = -1;}; | |
146 if (testoneresult(&myadbqueryresult,0,"testfeature10",0,0,0)) {returnval = -1;}; | |
147 | |
148 //echo "query point (0.5,0.0)" | |
149 //intstring 2 > testquery | |
150 //floatstring 0.5 0 >> testquery | |
151 ivals[0]=2; | |
152 dvals[0]=0.5; dvals[1]=0.0; | |
153 maketestfile("testquery",ivals,dvals,2); | |
154 | |
155 //${AUDIODB} -d testdb -Q track -l 1 -f testquery > testoutput | |
156 //echo testfeature10 0.5 0 0 > test-expected-output | |
157 //echo testfeature01 0 0 0 >> test-expected-output | |
158 //cmp testoutput test-expected-output | |
159 myadbquery.querytype="track"; | |
160 myadbquery.feature="testquery"; | |
161 myadbquery.keylist=NULL; | |
162 myadbquery.sequencelength="1"; | |
163 myadbquery.resultlength=NULL; | |
164 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
165 | |
166 size=myadbqueryresult.sizeRlist; | |
167 | |
168 /* check the test values */ | |
169 if (size != 2) {returnval = -1;}; | |
170 if (testoneresult(&myadbqueryresult,0,"testfeature10",0.5,0,0)) {returnval = -1;}; | |
171 if (testoneresult(&myadbqueryresult,1,"testfeature01",0,0,0)) {returnval = -1;}; | |
172 | |
173 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K /dev/null > testoutput | |
174 //cat /dev/null > test-expected-output | |
175 //cmp testoutput test-expected-output | |
176 myadbquery.querytype="track"; | |
177 myadbquery.feature="testquery"; | |
178 myadbquery.keylist="/dev/null"; | |
179 myadbquery.sequencelength="1"; | |
180 myadbquery.resultlength=NULL; | |
181 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
182 | |
183 size=myadbqueryresult.sizeRlist; | |
184 | |
185 /* check the test values */ | |
186 if (size != 0) {returnval = -1;}; | |
187 | |
188 //echo testfeature10 > testkl.txt | |
189 makekeylistfile("testkl.txt","testfeature10"); | |
190 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput | |
191 //echo testfeature10 0.5 0 0 > test-expected-output | |
192 //cmp testoutput test-expected-output | |
193 myadbquery.querytype="track"; | |
194 myadbquery.feature="testquery"; | |
195 myadbquery.keylist="testkl.txt"; | |
196 myadbquery.sequencelength="1"; | |
197 myadbquery.resultlength=NULL; | |
198 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
199 | |
200 size=myadbqueryresult.sizeRlist; | |
201 | |
202 /* check the test values */ | |
203 if (size != 1) {returnval = -1;}; | |
204 if (testoneresult(&myadbqueryresult,0,"testfeature10",0.5,0,0)) {returnval = -1;}; | |
205 | |
206 //echo testfeature01 > testkl.txt | |
207 makekeylistfile("testkl.txt","testfeature01"); | |
208 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt > testoutput | |
209 //echo testfeature01 0 0 0 > test-expected-output | |
210 //cmp testoutput test-expected-output | |
211 myadbquery.querytype="track"; | |
212 myadbquery.feature="testquery"; | |
213 myadbquery.keylist="testkl.txt"; | |
214 myadbquery.sequencelength="1"; | |
215 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
216 | |
217 size=myadbqueryresult.sizeRlist; | |
218 | |
219 /* check the test values */ | |
220 if (size != 1) {returnval = -1;}; | |
221 if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; | |
222 | |
223 //echo testfeature01 > testkl.txt | |
224 makekeylistfile("testkl.txt","testfeature01"); | |
225 //${AUDIODB} -d testdb -Q track -l 1 -f testquery -K testkl.txt -r 1 > testoutput | |
226 //echo testfeature01 0 0 0 > test-expected-output | |
227 //cmp testoutput test-expected-output | |
228 myadbquery.querytype="track"; | |
229 myadbquery.feature="testquery"; | |
230 myadbquery.keylist="testkl.txt"; | |
231 myadbquery.sequencelength="1"; | |
232 myadbquery.resultlength="1"; | |
233 audiodb_query(mydbp,&myadbquery,&myadbqueryresult); | |
234 | |
235 size=myadbqueryresult.sizeRlist; | |
236 | |
237 /* check the test values */ | |
238 if (size != 1) {returnval = -1;}; | |
239 if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;}; | |
240 | |
241 | |
242 | |
243 | |
244 // printf("returnval:%d\n", returnval); | |
245 | |
246 return(returnval); | |
247 } | 90 } |
248 |