annotate bindings/java/test/TestQuery.java @ 770:c54bc2ffbf92 tip

update tags
author convert-repo
date Fri, 16 Dec 2011 11:34:01 +0000
parents a9978a6d0bb3
children
rev   line source
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 }