public void testHashCodeAndEquals() { DoubleValuesSource vs1 = DoubleValuesSource.fromDoubleField("double"); DoubleValuesSource vs2 = DoubleValuesSource.fromDoubleField("double"); assertEquals(vs1, vs2); assertEquals(vs1.hashCode(), vs2.hashCode()); DoubleValuesSource v3 = DoubleValuesSource.fromLongField("long"); assertFalse(vs1.equals(v3)); }
public void testSortMissing() throws Exception { DoubleValuesSource onefield = DoubleValuesSource.fromDoubleField("onefield"); TopDocs results = searcher.search(new MatchAllDocsQuery(), 1, new Sort(onefield.getSortField(true))); FieldDoc first = (FieldDoc) results.scoreDocs[0]; assertEquals(45.72, first.fields[0]); }
// Take a Sort, and replace any field sorts with Sortables Sort convertSortToSortable(Sort sort) { SortField original[] = sort.getSort(); SortField mutated[] = new SortField[original.length]; for (int i = 0; i < mutated.length; i++) { if (random().nextInt(3) > 0) { SortField s = original[i]; boolean reverse = s.getType() == SortField.Type.SCORE || s.getReverse(); switch (s.getType()) { case INT: mutated[i] = DoubleValuesSource.fromIntField(s.getField()).getSortField(reverse); break; case LONG: mutated[i] = DoubleValuesSource.fromLongField(s.getField()).getSortField(reverse); break; case FLOAT: mutated[i] = DoubleValuesSource.fromFloatField(s.getField()).getSortField(reverse); break; case DOUBLE: mutated[i] = DoubleValuesSource.fromDoubleField(s.getField()).getSortField(reverse); break; case SCORE: mutated[i] = DoubleValuesSource.SCORES.getSortField(reverse); break; default: mutated[i] = original[i]; } } else { mutated[i] = original[i]; } } return new Sort(mutated); }