comparison libtests/0010/prog1.c @ 355:94c18f128ce8

First version of the API, committed to the main trunk. Thanks Christophe, for all the help!
author mas01ik
date Wed, 12 Nov 2008 10:21:06 +0000
parents
children e072aa1611f5 342822c2d49a
comparison
equal deleted inserted replaced
354:4871a3ed9e36 355:94c18f128ce8
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 #include <sysexits.h>
5 #include <fcntl.h>
6 #include <dirent.h>
7 #include <unistd.h>
8 #include <sys/stat.h>
9 /*
10 * * #define NDEBUG
11 * * */
12 #include <assert.h>
13
14 #include "../../audioDB_API.h"
15 #include "../test_utils_lib.h"
16
17
18 int main(int argc, char **argv){
19
20 int returnval=0;
21 adb_ptr mydbp={0};
22 int ivals[10];
23 double dvals[10];
24 adb_insert_t myinsert={0};
25 unsigned int myerr=0;
26 char * databasename="testdb";
27 adb_query_t myadbquery={0};
28 adb_queryresult_t myadbqueryresult={0};
29 int size=0;
30
31 /* clean */
32 //if [ -f testdb ]; then rm -f testdb; fi
33 clean_remove_db(databasename);
34
35 /* new db */
36 //${AUDIODB} -d testdb -N
37 mydbp=audiodb_create(databasename,0,0,0);
38
39 /* test feature files */
40 //intstring 2 > testfeature01
41 //floatstring 0 1 >> testfeature01
42 ivals[0]=2;
43 dvals[0]=0; dvals[1]=1;
44 maketestfile("testfeature01",ivals,dvals,2);
45 //intstring 2 > testfeature10
46 //floatstring 1 0 >> testfeature10
47 ivals[0]=2;
48 dvals[0]=1; dvals[1]=0;
49 maketestfile("testfeature10",ivals,dvals,2);
50
51 /* inserts */
52 //${AUDIODB} -d testdb -I -f testfeature01
53 //${AUDIODB} -d testdb -I -f testfeature10
54 myinsert.features="testfeature01";
55 myerr=audiodb_insert(mydbp,&myinsert);
56 myinsert.features="testfeature10";
57 myerr=audiodb_insert(mydbp,&myinsert);
58
59 /* l2norm */
60 //# sequence queries require L2NORM
61 //${AUDIODB} -d testdb -L
62 audiodb_l2norm(mydbp);
63
64 /* query 1 */
65 //echo "query point (0.0,0.5)"
66 //intstring 2 > testquery
67 //floatstring 0 0.5 >> testquery
68 ivals[0]=2;
69 dvals[0]=0; dvals[1]=0.5; dvals[2]=0; dvals[3]=0;
70 maketestfile("testquery",ivals,dvals,2);
71
72 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput
73 //echo testfeature01 1 > test-expected-output
74 //echo testfeature10 1 >> test-expected-output
75 //cmp testoutput test-expected-output
76
77 myadbquery.querytype="sequence";
78 myadbquery.feature="testquery";
79 myadbquery.sequencelength="1";
80 myadbquery.radius="5";
81 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
82 size=myadbqueryresult.sizeRlist;
83
84 dump_query(&myadbquery,&myadbqueryresult);
85 /* check the test values */
86 if (size != 2) {returnval = -1;};
87 //if (testoneresult(&myadbqueryresult,0,"testfeature",1,0,0)) {returnval = -1;};
88 //if (testoneresult(&myadbqueryresult,1,"testfeature",1,0,0)) {returnval = -1;};
89
90
91 /* query 2 */
92 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -R 5 > testoutput
93 //echo testfeature01 1 > test-expected-output
94 //cmp testoutput test-expected-output
95 //
96 //echo "query point (0.5,0.0)"
97 //intstring 2 > testquery
98 //floatstring 0.5 0 >> testquery
99
100
101 /* query 3 */
102 //# FIXME: because there's only one point in each track (and the query),
103 //# the ordering is essentially database order. We need these test
104 //# cases anyway because we need to test non-segfaulting, non-empty
105 //# results...
106 //
107 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -R 5 > testoutput
108 //echo testfeature01 1 > test-expected-output
109 //echo testfeature10 1 >> test-expected-output
110 //cmp testoutput test-expected-output
111
112
113
114 /* query 4 */
115 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -R 5 > testoutput
116 //echo testfeature01 1 > test-expected-output
117 //cmp testoutput test-expected-output
118
119
120 printf("returnval:%d\n",returnval);
121 //returnval=-1;
122
123 return(returnval);
124 }
125