mas01mj@725
|
1 import junit.framework.*;
|
mas01mj@725
|
2 import java.io.File;
|
mas01mj@727
|
3 import java.util.Vector;
|
mas01mj@725
|
4 import org.omras2.*;
|
mas01mj@725
|
5
|
mas01mj@725
|
6 public class TestQuery extends TestCase
|
mas01mj@725
|
7 {
|
mas01mj@725
|
8 File testDBFile;
|
mas01mj@725
|
9 File testFeatureFile;
|
mas01mj@725
|
10 protected void setUp()
|
mas01mj@725
|
11 {
|
mas01mj@725
|
12 testDBFile = new File("testfiles/test.adb");
|
mas01mj@725
|
13 testFeatureFile = new File("testfiles/testfeature");
|
mas01mj@725
|
14 if(testDBFile.exists())
|
mas01mj@725
|
15 testDBFile.delete();
|
mas01mj@725
|
16 }
|
mas01mj@725
|
17
|
mas01mj@725
|
18 public void testQuery()
|
mas01mj@725
|
19 {
|
mas01mj@725
|
20 // Insert the same feature twice
|
mas01mj@725
|
21 AudioDB testDB = new AudioDB(testDBFile);
|
mas01mj@725
|
22 assertTrue("DB created", testDB.create(1, 2, 1));
|
mas01mj@725
|
23 testDB.open(AudioDB.Mode.O_RDWR);
|
mas01mj@725
|
24 assertTrue("Insert feature file", testDB.insert("feat1", testFeatureFile));
|
mas01mj@725
|
25 assertTrue("Insert feature file again", testDB.insert("feat2", testFeatureFile));
|
mas01mj@725
|
26 testDB.close();
|
mas01mj@725
|
27
|
mas01mj@725
|
28 testDB.open(AudioDB.Mode.O_RDONLY);
|
mas01mj@725
|
29 Status status = testDB.getStatus();
|
mas01mj@725
|
30 assertEquals("Two features", 2, status.getNumFiles());
|
mas01mj@726
|
31
|
mas01mj@726
|
32 Query query = new Query();
|
mas01mj@726
|
33 query.setSeqLength(1);
|
mas01mj@726
|
34 query.setSeqStart(0);
|
mas01mj@727
|
35 query.setIncludeKeys(new String[]{"feat1"});
|
mas01mj@727
|
36 query.setExcludeKeys(new String[]{"feat2"});
|
mas01mj@727
|
37 Vector<Result> results = testDB.query("feat1", query);
|
mas01mj@729
|
38 }
|
mas01mj@729
|
39
|
mas01mj@729
|
40 public void testDataQuery()
|
mas01mj@729
|
41 {
|
mas01mj@729
|
42 // Insert the same feature twice
|
mas01mj@729
|
43 AudioDB testDB = new AudioDB(testDBFile);
|
mas01mj@729
|
44 assertTrue("DB created", testDB.create(1, 2, 1));
|
mas01mj@729
|
45 testDB.open(AudioDB.Mode.O_RDWR);
|
mas01mj@729
|
46 assertTrue("Insert feature file", testDB.insert("feat1", testFeatureFile));
|
mas01mj@729
|
47 assertTrue("Insert feature file again", testDB.insert("feat2", testFeatureFile));
|
mas01mj@729
|
48 testDB.close();
|
mas01mj@729
|
49
|
mas01mj@729
|
50 testDB.open(AudioDB.Mode.O_RDONLY);
|
mas01mj@729
|
51 Status status = testDB.getStatus();
|
mas01mj@729
|
52 assertEquals("Two features", 2, status.getNumFiles());
|
mas01mj@729
|
53
|
mas01mj@729
|
54 Query query = new Query();
|
mas01mj@729
|
55 query.setSeqLength(1);
|
mas01mj@729
|
56 query.setSeqStart(0);
|
mas01mj@729
|
57 query.setIncludeKeys(new String[]{"feat1"});
|
mas01mj@729
|
58 query.setExcludeKeys(new String[]{"feat2"});
|
mas01mj@729
|
59
|
mas01mj@729
|
60 Datum datum = new Datum();
|
mas01mj@729
|
61 datum.setData(new double[]{0.0, 2.2, 1.1});
|
mas01mj@729
|
62 datum.setNvectors(3);
|
mas01mj@729
|
63 datum.setDim(1);
|
mas01mj@729
|
64 query.setDatum(datum);
|
mas01mj@729
|
65
|
mas01mj@729
|
66 Vector<Result> results = testDB.query(query);
|
mas01mj@729
|
67 if(results != null)
|
mas01mj@727
|
68 {
|
mas01mj@729
|
69 System.out.println("Here with "+results);
|
mas01mj@729
|
70 }
|
mas01mj@725
|
71 }
|
mas01mj@729
|
72
|
mas01mj@727
|
73 /*
|
mas01mj@727
|
74 public void testAdvanced()
|
mas01mj@727
|
75 {
|
mas01mj@727
|
76 AudioDB testDB = new AudioDB(new File("testfiles/9.adb"));
|
mas01mj@727
|
77 testDB.open(AudioDB.Mode.O_RDONLY);
|
mas01mj@727
|
78 Status status = testDB.getStatus();
|
mas01mj@727
|
79 System.out.println(status.getNumFiles());
|
mas01mj@727
|
80 Query query = new Query();
|
mas01mj@729
|
81 query.setSeqLength(1);
|
mas01mj@727
|
82 query.setSeqStart(0);
|
mas01mj@728
|
83 query.setExcludeKeys(new String[]{"KSA_CHARM_27", "KSA_CHARM_300"});
|
mas01mj@729
|
84
|
mas01mj@729
|
85 Datum datum = new Datum();
|
mas01mj@729
|
86 datum.setData(new double[]{0.0, 2.2, 1.1, 4, 2, 6, 3, 8, 2, 4, 5, 8});
|
mas01mj@729
|
87 datum.setDim(12);
|
mas01mj@729
|
88 datum.setNvectors(1);
|
mas01mj@729
|
89 query.setDatum(datum);
|
mas01mj@729
|
90
|
mas01mj@729
|
91 Vector<Result> results = testDB.query(query);
|
mas01mj@729
|
92
|
mas01mj@727
|
93 System.out.println(results.size());
|
mas01mj@727
|
94 for(Result result: results)
|
mas01mj@727
|
95 {
|
mas01mj@727
|
96 System.out.print(result.getKey());
|
mas01mj@727
|
97 System.out.print(" "+result.getDistance());
|
mas01mj@727
|
98 System.out.print(" "+result.getQpos());
|
mas01mj@727
|
99 System.out.println(" "+result.getIpos());
|
mas01mj@727
|
100 }
|
mas01mj@727
|
101
|
mas01mj@729
|
102 }
|
mas01mj@729
|
103 */
|
mas01mj@725
|
104 }
|