1 21 package com.db4o.db4ounit.common.fieldindex; 22 23 import com.db4o.ObjectSet; 24 import com.db4o.config.*; 25 import com.db4o.query.*; 26 27 import db4ounit.ArrayAssert; 28 import db4ounit.extensions.AbstractDb4oTestCase; 29 30 33 public class DoubleFieldIndexTestCase extends AbstractDb4oTestCase { 34 35 public static void main(String [] args) { 36 new DoubleFieldIndexTestCase().runSolo(); 37 } 38 39 public static class Item { 40 public double value; 41 42 public Item() { 43 } 44 45 public Item(double value_) { 46 value = value_; 47 } 48 } 49 50 protected void configure(Configuration config){ 51 indexField(config,Item.class, "value"); 52 } 53 54 protected void store() throws Exception { 55 db().set(new Item(0.5)); 56 db().set(new Item(1.1)); 57 db().set(new Item(2)); 58 } 59 60 public void testEqual() { 61 final Query query = newQuery(Item.class); 62 query.descend("value").constrain(new Double (1.1)); 63 64 assertItems(new double[] { 1.1 }, query.execute()); 65 } 66 67 public void testGreater() { 68 final Query query = newQuery(Item.class); 69 final Query descend = query.descend("value"); 70 descend.constrain(new Double (1)).greater(); 71 descend.orderAscending(); 72 73 assertItems(new double[] { 1.1, 2 }, query.execute()); 74 } 75 76 private void assertItems(double[] expected, ObjectSet set) { 77 ArrayAssert.areEqual(expected, toDoubleArray(set)); 78 } 79 80 private double[] toDoubleArray(ObjectSet set) { 81 double[] array = new double[set.size()]; 82 for (int i = 0; i < array.length; i++) { 83 array[i] = ((Item)set.next()).value; 84 } 85 return array; 86 } 87 88 } 89 | Popular Tags |