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 adb_query_t myadbquery2={0};
|
mas01ik@355
|
16 adb_queryresult_t myadbqueryresult2={0};
|
mas01ik@355
|
17 adb_query_t myadbquery3={0};
|
mas01ik@355
|
18 adb_queryresult_t myadbqueryresult3={0};
|
mas01ik@355
|
19 int size=0;
|
mas01ik@355
|
20 adb_insert_t ins1[2]={{0},{0}};
|
mas01ik@355
|
21
|
mas01ik@355
|
22 /* remove old directory */
|
mas01ik@355
|
23 //if [ -f testdb ]; then rm -f testdb; fi
|
mas01ik@355
|
24 clean_remove_db(databasename);
|
mas01ik@355
|
25
|
mas01ik@355
|
26 /* create new db */
|
mas01ik@355
|
27 //${AUDIODB} -d testdb -N
|
mas01ik@355
|
28 mydbp=audiodb_create(databasename,0,0,0);
|
mas01ik@355
|
29
|
mas01ik@355
|
30 //intstring 2 > testfeature01
|
mas01ik@355
|
31 //floatstring 0 1 >> testfeature01
|
mas01ik@355
|
32 //intstring 2 > testfeature10
|
mas01ik@355
|
33 //floatstring 1 0 >> testfeature10
|
mas01ik@355
|
34 ivals[0]=2;
|
mas01ik@355
|
35 dvals[0]=0; dvals[1]=1;
|
mas01ik@355
|
36 maketestfile("testfeature01",ivals,dvals,2);
|
mas01ik@355
|
37 ivals[0]=2;
|
mas01ik@355
|
38 dvals[0]=1; dvals[1]=0;
|
mas01ik@355
|
39 maketestfile("testfeature10",ivals,dvals,2);
|
mas01ik@355
|
40
|
mas01ik@355
|
41 //cat > testfeaturefiles <<EOF
|
mas01ik@355
|
42 //testfeature01
|
mas01ik@355
|
43 //testfeature10
|
mas01ik@355
|
44 //EOF
|
mas01ik@355
|
45 ins1[0].features="testfeature01";
|
mas01ik@355
|
46 ins1[1].features="testfeature10";
|
mas01ik@355
|
47
|
mas01ik@355
|
48 //audioDB -B -d testdb -F tempfeatures
|
mas01ik@355
|
49 //${AUDIODB} -d testdb -B -F testfeaturefiles
|
mas01ik@355
|
50 if(audiodb_batchinsert(mydbp,ins1,2)){
|
mas01ik@355
|
51 returnval=-1;
|
mas01ik@355
|
52 };
|
mas01ik@355
|
53
|
mas01ik@355
|
54 //# sequence queries require L2NORM
|
mas01ik@355
|
55 //${AUDIODB} -d testdb -L
|
mas01ik@355
|
56 if(audiodb_l2norm(mydbp)){
|
mas01ik@355
|
57 returnval=-1;
|
mas01ik@355
|
58 };
|
mas01ik@355
|
59
|
mas01ik@355
|
60 ////echo "query point (0.0,0.5)"
|
mas01ik@355
|
61 ////intstring 2 > testquery
|
mas01ik@355
|
62 ////floatstring 0 0.5 >> testquery
|
mas01ik@355
|
63 ////floatstring 0.5 0 >> testquery
|
mas01ik@355
|
64
|
mas01ik@355
|
65 ivals[0]=2;
|
mas01ik@355
|
66 dvals[0]=0; dvals[1]=0.5;
|
mas01ik@355
|
67 dvals[2]=0.5; dvals[3]=0;
|
mas01ik@355
|
68 maketestfile("testquery",ivals,dvals,4);
|
mas01ik@355
|
69
|
mas01ik@355
|
70
|
mas01ik@355
|
71
|
mas01ik@355
|
72 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 0 > testoutput
|
mas01ik@355
|
73 //echo testfeature01 0 0 0 > test-expected-output
|
mas01ik@355
|
74 //echo testfeature10 2 0 0 >> test-expected-output
|
mas01ik@355
|
75 //cmp testoutput test-expected-output
|
mas01ik@355
|
76 myadbquery.querytype="sequence";
|
mas01ik@355
|
77 myadbquery.feature="testquery";
|
mas01ik@355
|
78 myadbquery.sequencelength="1";
|
mas01ik@355
|
79 myadbquery.qpoint="0";
|
mas01ik@355
|
80 audiodb_query(mydbp,&myadbquery,&myadbqueryresult);
|
mas01ik@355
|
81 size=myadbqueryresult.sizeRlist;
|
mas01ik@355
|
82
|
mas01ik@355
|
83 //printf("size:%d\n",size);
|
mas01ik@355
|
84
|
mas01ik@355
|
85 //dump_query(&myadbquery,&myadbqueryresult);
|
mas01ik@355
|
86 ///* check the test values */
|
mas01ik@355
|
87 if (size != 2) {returnval = -1;};
|
mas01ik@355
|
88 if (testoneresult(&myadbqueryresult,0,"testfeature01",0,0,0)) {returnval = -1;};
|
mas01ik@355
|
89 if (testoneresult(&myadbqueryresult,1,"testfeature10",2,0,0)) {returnval = -1;};
|
mas01ik@355
|
90
|
mas01ik@355
|
91
|
mas01ik@355
|
92
|
mas01ik@355
|
93 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -p 0 > testoutput
|
mas01ik@355
|
94 //echo testfeature01 0 0 0 > test-expected-output
|
mas01ik@355
|
95 //cmp testoutput test-expected-output
|
mas01ik@355
|
96 myadbquery2.querytype="sequence";
|
mas01ik@355
|
97 myadbquery2.feature="testquery";
|
mas01ik@355
|
98 myadbquery2.sequencelength="1";
|
mas01ik@355
|
99 myadbquery2.resultlength="1";
|
mas01ik@355
|
100 myadbquery2.qpoint="0";
|
mas01ik@355
|
101 audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2);
|
mas01ik@355
|
102 size=myadbqueryresult2.sizeRlist;
|
mas01ik@355
|
103
|
mas01ik@355
|
104 ///* check the test values */
|
mas01ik@355
|
105 if (size != 1) {returnval = -1;};
|
mas01ik@355
|
106 if (testoneresult(&myadbqueryresult2,0,"testfeature01",0,0,0)) {returnval = -1;};
|
mas01ik@355
|
107
|
mas01ik@355
|
108
|
mas01ik@355
|
109 //echo "query point (0.5,0.0)"
|
mas01ik@355
|
110
|
mas01ik@355
|
111 //${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -p 1 > testoutput
|
mas01ik@355
|
112 //echo testfeature10 0 1 0 > test-expected-output
|
mas01ik@355
|
113 //echo testfeature01 2 1 0 >> test-expected-output
|
mas01ik@355
|
114 //cmp testoutput test-expected-output
|
mas01ik@355
|
115 myadbquery3.querytype="sequence";
|
mas01ik@355
|
116 myadbquery3.feature="testquery";
|
mas01ik@355
|
117 myadbquery3.sequencelength="1";
|
mas01ik@355
|
118 myadbquery3.qpoint="1";
|
mas01ik@355
|
119 audiodb_query(mydbp,&myadbquery3,&myadbqueryresult3);
|
mas01ik@355
|
120 size=myadbqueryresult3.sizeRlist;
|
mas01ik@355
|
121
|
mas01ik@355
|
122 // dump_query(&myadbquery3,&myadbqueryresult3);
|
mas01ik@355
|
123 if (size != 2) {returnval = -1;};
|
mas01ik@355
|
124 if (testoneresult(&myadbqueryresult3,0,"testfeature10",0,1,0)) {returnval = -1;};
|
mas01ik@355
|
125 if (testoneresult(&myadbqueryresult3,1,"testfeature01",2,1,0)) {returnval = -1;};
|
mas01ik@355
|
126
|
mas01ik@355
|
127
|
mas01ik@355
|
128 ////${AUDIODB} -d testdb -Q sequence -l 1 -f testquery -r 1 -p 1 > testoutput
|
mas01ik@355
|
129 ////echo testfeature10 0 1 0 > test-expected-output
|
mas01ik@355
|
130 ////cmp testoutput test-expected-output
|
mas01ik@355
|
131 myadbquery2.querytype="sequence";
|
mas01ik@355
|
132 myadbquery2.feature="testquery";
|
mas01ik@355
|
133 myadbquery2.sequencelength="1";
|
mas01ik@355
|
134 myadbquery2.qpoint="1";
|
mas01ik@355
|
135 myadbquery2.resultlength="1";
|
mas01ik@355
|
136 audiodb_query(mydbp,&myadbquery2,&myadbqueryresult2);
|
mas01ik@355
|
137 size=myadbqueryresult2.sizeRlist;
|
mas01ik@355
|
138
|
mas01ik@355
|
139 if (size != 1) {returnval = -1;};
|
mas01ik@355
|
140 if (testoneresult(&myadbqueryresult2,0,"testfeature10",0,1,0)) {returnval = -1;};
|
mas01ik@355
|
141
|
mas01ik@355
|
142
|
mas01ik@355
|
143 // printf("returnval:%d\n",returnval);
|
mas01ik@355
|
144
|
mas01ik@355
|
145 return(returnval);
|
mas01ik@355
|
146 }
|
mas01ik@355
|
147
|