Mercurial > hg > audiodb
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 } |