@Test public void testIdQuery() throws Exception { Reference ref = createReference("_id", DataTypes.STRING); Query query = convert(whereClause(EqOperator.NAME, ref, Literal.newLiteral("i1"))); assertThat(query, instanceOf(TermQuery.class)); assertThat(query.toString(), is("_uid:default#i1")); }
@Test public void testAnyEqArrayReference() throws Exception { Reference ref = createReference("d_array", new ArrayType(DataTypes.DOUBLE)); Literal doubleLiteral = Literal.newLiteral(1.5d); Query query = convert(whereClause(AnyEqOperator.NAME, doubleLiteral, ref)); assertThat(query.toString(), is("d_array:[1.5 TO 1.5]")); }
@Test public void testGteQuery() throws Exception { Query query = convert( new WhereClause( createFunction( GteOperator.NAME, DataTypes.BOOLEAN, createReference("x", DataTypes.INTEGER), Literal.newLiteral(10)))); assertThat(query, instanceOf(NumericRangeQuery.class)); assertThat(query.toString(), is("x:[10 TO *}")); }
@Test public void testAnyGreaterAndSmaller() throws Exception { Reference arrayRef = createReference("d_array", new ArrayType(DataTypes.DOUBLE)); Literal doubleLiteral = Literal.newLiteral(1.5d); Reference ref = createReference("d", DataTypes.DOUBLE); Literal arrayLiteral = Literal.newLiteral(new Object[] {1.2d, 3.5d}, new ArrayType(DataTypes.DOUBLE)); // 1.5d < ANY (d_array) Query ltQuery = convert(whereClause(AnyLtOperator.NAME, doubleLiteral, arrayRef)); assertThat(ltQuery.toString(), is("d_array:{1.5 TO *}")); // d < ANY ([1.2, 3.5]) Query ltQuery2 = convert(whereClause(AnyLtOperator.NAME, ref, arrayLiteral)); assertThat(ltQuery2.toString(), is("(d:{* TO 1.2} d:{* TO 3.5})~1")); // 1.5d <= ANY (d_array) Query lteQuery = convert(whereClause(AnyLteOperator.NAME, doubleLiteral, arrayRef)); assertThat(lteQuery.toString(), is("d_array:[1.5 TO *}")); // d <= ANY ([1.2, 3.5]) Query lteQuery2 = convert(whereClause(AnyLteOperator.NAME, ref, arrayLiteral)); assertThat(lteQuery2.toString(), is("(d:{* TO 1.2] d:{* TO 3.5])~1")); // 1.5d > ANY (d_array) Query gtQuery = convert(whereClause(AnyGtOperator.NAME, doubleLiteral, arrayRef)); assertThat(gtQuery.toString(), is("d_array:{* TO 1.5}")); // d > ANY ([1.2, 3.5]) Query gtQuery2 = convert(whereClause(AnyGtOperator.NAME, ref, arrayLiteral)); assertThat(gtQuery2.toString(), is("(d:{1.2 TO *} d:{3.5 TO *})~1")); // 1.5d >= ANY (d_array) Query gteQuery = convert(whereClause(AnyGteOperator.NAME, doubleLiteral, arrayRef)); assertThat(gteQuery.toString(), is("d_array:{* TO 1.5]")); // d >= ANY ([1.2, 3.5]) Query gteQuery2 = convert(whereClause(AnyGteOperator.NAME, ref, arrayLiteral)); assertThat(gteQuery2.toString(), is("(d:[1.2 TO *} d:[3.5 TO *})~1")); }