### Question:
LuceneSerializer { protected Query between(Operation<?> operation, QueryMetadata metadata) { verifyArguments(operation); Path<?> path = getPath(operation.getArg(0)); return range( path, toField(path), operation.getArg(1), operation.getArg(2), true, true, metadata); } LuceneSerializer(boolean lowerCase, boolean splitTerms);  LuceneSerializer(boolean lowerCase, boolean splitTerms, Locale sortLocale); Query toQuery(Expression<?> expr, QueryMetadata metadata); Sort toSort(List<? extends OrderSpecifier<?>> orderBys); static final LuceneSerializer DEFAULT; }### Answer:
@Test public void between() throws Exception { testQuery(title.between("Indiana", "Kundun"), "title:[indiana TO kundun]", 1); }
@Test public void between_numeric_integer() throws Exception { testQuery(year.between(1980, 2000), "year:[1980 TO 2000]", 1); }
@Test public void between_numeric_double() throws Exception { testQuery(gross.between(10.00, 19030.00), "gross:[10.0 TO 19030.0]", 1); }
@Test public void between_numeric() throws Exception { testQuery(longField.between(0L,2L), "longField:[0 TO 2]", 1); testQuery(shortField.between((short) 0,(short) 2), "shortField:[0 TO 2]", 1); testQuery(byteField.between((byte) 0,(byte) 2), "byteField:[0 TO 2]", 1); testQuery(floatField.between((float) 0.0,(float) 2.0), "floatField:[0.0 TO 2.0]", 1); }
@Test public void between_is_inclusive_from_start() throws Exception { testQuery(title.between("Jurassic", "Kundun"), "title:[jurassic TO kundun]", 1); }
@Test public void between_is_inclusive_to_end() throws Exception { testQuery(title.between("Indiana", "Jurassic"), "title:[indiana TO jurassic]", 1); }
@Test public void between_does_not_find_results() throws Exception { testQuery(title.between("Indiana", "Jurassib"), "title:[indiana TO jurassib]", 0); }
@Test public void between_empty_strings() throws Exception { testQuery(title.between("", ""), "title:[ TO ]", 0); }