comparison libtests/0048/prog1.c @ 598:b2a941a372fb

Test for audiodb_retrieve_datum() The good news: my fix for audiodb_track_id_datum()'s timesTable handling looks correct. The bad news: we need to NULL out fields we don't fill with data. Do so.
author mas01cr
date Wed, 12 Aug 2009 14:57:11 +0000
parents
children
comparison
equal deleted inserted replaced
597:fac63f65753e 598:b2a941a372fb
1 #include "audioDB_API.h"
2 #include "test_utils_lib.h"
3
4 int main(int argc, char **argv) {
5 adb_t *adb;
6
7 clean_remove_db(TESTDB);
8 if(!(adb = audiodb_create(TESTDB, 0, 0, 0)))
9 return 1;
10
11 adb_datum_t datum1 = {2, 2, "testfeature01", (double[4]) {0, 0.5, 0.5, 0},
12 NULL, (double[4]) {0, 1, 1, 2}};
13 adb_datum_t datum2 = {3, 2, "testfeature10", (double[6]) {0.5, 0, 0, 0.5, 0.5, 0},
14 NULL, (double[6]) {0, 2, 2, 3, 3, 4}};
15 if(audiodb_insert_datum(adb, &datum1))
16 return 1;
17 if(audiodb_insert_datum(adb, &datum2))
18 return 1;
19 if(audiodb_l2norm(adb))
20 return 1;
21
22 adb_datum_t retrieve;
23 if(!(audiodb_retrieve_datum(adb, "testfeature", &retrieve)))
24 return 1;
25
26 if(audiodb_retrieve_datum(adb, "testfeature01", &retrieve))
27 return 1;
28 if(retrieve.nvectors != 2)
29 return 1;
30 if(retrieve.dim != 2)
31 return 1;
32 if(strcmp(retrieve.key, "testfeature01"))
33 return 1;
34 if(memcmp(retrieve.data, datum1.data, 4*sizeof(double)))
35 return 1;
36 if(retrieve.power)
37 return 1;
38 if(memcmp(retrieve.times, datum1.times, 4*sizeof(double)))
39 return 1;
40 if(audiodb_free_datum(adb, &retrieve))
41 return 1;
42
43 if(audiodb_retrieve_datum(adb, "testfeature10", &retrieve))
44 return 1;
45 if(retrieve.nvectors != 3)
46 return 1;
47 if(retrieve.dim != 2)
48 return 1;
49 if(strcmp(retrieve.key, "testfeature10"))
50 return 1;
51 if(memcmp(retrieve.data, datum2.data, 6*sizeof(double)))
52 return 1;
53 if(retrieve.power)
54 return 1;
55 if(memcmp(retrieve.times, datum2.times, 6*sizeof(double)))
56 return 1;
57 if(audiodb_free_datum(adb, &retrieve))
58 return 1;
59
60 audiodb_close(adb);
61
62 return 104;
63 }