mas01mj@725: import junit.framework.*; mas01mj@725: import java.io.File; mas01mj@727: import java.util.Vector; mas01mj@725: import org.omras2.*; mas01mj@725: mas01mj@725: public class TestQuery extends TestCase mas01mj@725: { mas01mj@725: File testDBFile; mas01mj@725: File testFeatureFile; mas01mj@725: protected void setUp() mas01mj@725: { mas01mj@725: testDBFile = new File("testfiles/test.adb"); mas01mj@725: testFeatureFile = new File("testfiles/testfeature"); mas01mj@725: if(testDBFile.exists()) mas01mj@725: testDBFile.delete(); mas01mj@725: } mas01mj@725: mas01mj@725: public void testQuery() mas01mj@725: { mas01mj@725: // Insert the same feature twice mas01mj@725: AudioDB testDB = new AudioDB(testDBFile); mas01mj@725: assertTrue("DB created", testDB.create(1, 2, 1)); mas01mj@725: testDB.open(AudioDB.Mode.O_RDWR); mas01mj@725: assertTrue("Insert feature file", testDB.insert("feat1", testFeatureFile)); mas01mj@725: assertTrue("Insert feature file again", testDB.insert("feat2", testFeatureFile)); mas01mj@725: testDB.close(); mas01mj@725: mas01mj@725: testDB.open(AudioDB.Mode.O_RDONLY); mas01mj@725: Status status = testDB.getStatus(); mas01mj@725: assertEquals("Two features", 2, status.getNumFiles()); mas01mj@726: mas01mj@726: Query query = new Query(); mas01mj@726: query.setSeqLength(1); mas01mj@726: query.setSeqStart(0); mas01mj@727: query.setIncludeKeys(new String[]{"feat1"}); mas01mj@727: query.setExcludeKeys(new String[]{"feat2"}); mas01mj@727: Vector results = testDB.query("feat1", query); mas01mj@729: } mas01mj@729: mas01mj@729: public void testDataQuery() mas01mj@729: { mas01mj@729: // Insert the same feature twice mas01mj@729: AudioDB testDB = new AudioDB(testDBFile); mas01mj@729: assertTrue("DB created", testDB.create(1, 2, 1)); mas01mj@729: testDB.open(AudioDB.Mode.O_RDWR); mas01mj@729: assertTrue("Insert feature file", testDB.insert("feat1", testFeatureFile)); mas01mj@729: assertTrue("Insert feature file again", testDB.insert("feat2", testFeatureFile)); mas01mj@729: testDB.close(); mas01mj@729: mas01mj@729: testDB.open(AudioDB.Mode.O_RDONLY); mas01mj@729: Status status = testDB.getStatus(); mas01mj@729: assertEquals("Two features", 2, status.getNumFiles()); mas01mj@729: mas01mj@729: Query query = new Query(); mas01mj@729: query.setSeqLength(1); mas01mj@729: query.setSeqStart(0); mas01mj@729: query.setIncludeKeys(new String[]{"feat1"}); mas01mj@729: query.setExcludeKeys(new String[]{"feat2"}); mas01mj@729: mas01mj@729: Datum datum = new Datum(); mas01mj@729: datum.setData(new double[]{0.0, 2.2, 1.1}); mas01mj@729: datum.setNvectors(3); mas01mj@729: datum.setDim(1); mas01mj@729: query.setDatum(datum); mas01mj@729: mas01mj@729: Vector results = testDB.query(query); mas01mj@729: if(results != null) mas01mj@727: { mas01mj@729: System.out.println("Here with "+results); mas01mj@729: } mas01mj@725: } mas01mj@729: mas01mj@727: /* mas01mj@727: public void testAdvanced() mas01mj@727: { mas01mj@727: AudioDB testDB = new AudioDB(new File("testfiles/9.adb")); mas01mj@727: testDB.open(AudioDB.Mode.O_RDONLY); mas01mj@727: Status status = testDB.getStatus(); mas01mj@727: System.out.println(status.getNumFiles()); mas01mj@727: Query query = new Query(); mas01mj@729: query.setSeqLength(1); mas01mj@727: query.setSeqStart(0); mas01mj@728: query.setExcludeKeys(new String[]{"KSA_CHARM_27", "KSA_CHARM_300"}); mas01mj@729: mas01mj@729: Datum datum = new Datum(); mas01mj@729: datum.setData(new double[]{0.0, 2.2, 1.1, 4, 2, 6, 3, 8, 2, 4, 5, 8}); mas01mj@729: datum.setDim(12); mas01mj@729: datum.setNvectors(1); mas01mj@729: query.setDatum(datum); mas01mj@729: mas01mj@729: Vector results = testDB.query(query); mas01mj@729: mas01mj@727: System.out.println(results.size()); mas01mj@727: for(Result result: results) mas01mj@727: { mas01mj@727: System.out.print(result.getKey()); mas01mj@727: System.out.print(" "+result.getDistance()); mas01mj@727: System.out.print(" "+result.getQpos()); mas01mj@727: System.out.println(" "+result.getIpos()); mas01mj@727: } mas01mj@727: mas01mj@729: } mas01mj@729: */ mas01mj@725: }