bindings.add(new SortField("popularity", SortField.Type.LONG));
ValueSource vs = expr.getValueSource(bindings);
assertEquals(1, reader.leaves().size());
AtomicReaderContext leaf = reader.leaves().get(0);
FunctionValues values = vs.getValues(new HashMap<String,Object>(), leaf);
assertEquals(10, values.doubleVal(0), 0);
assertEquals(10, values.floatVal(0), 0);
assertEquals(10, values.longVal(0));
assertEquals(10, values.intVal(0));
assertEquals(10, values.shortVal(0));
assertEquals(10, values.byteVal(0));
assertEquals("10.0", values.strVal(0));
assertEquals(new Double(10), values.objectVal(0));
assertEquals(40, values.doubleVal(1), 0);
assertEquals(40, values.floatVal(1), 0);
assertEquals(40, values.longVal(1));
assertEquals(40, values.intVal(1));
assertEquals(40, values.shortVal(1));
assertEquals(40, values.byteVal(1));
assertEquals("40.0", values.strVal(1));
assertEquals(new Double(40), values.objectVal(1));
assertEquals(4, values.doubleVal(2), 0);
assertEquals(4, values.floatVal(2), 0);
assertEquals(4, values.longVal(2));
assertEquals(4, values.intVal(2));
assertEquals(4, values.shortVal(2));
assertEquals(4, values.byteVal(2));
assertEquals("4.0", values.strVal(2));
assertEquals(new Double(4), values.objectVal(2));
}