use of ai.grakn.graql.Match in project grakn by graknlabs.
the class MatchTest method testPredicateQuery1.
@Test
public void testPredicateQuery1() {
Match query = qb.match(x.isa("movie").has("title", t), or(t.val(eq("Apocalypse Now")), and(t.val(lt("Juno")), t.val(gt("Godfather"))), t.val(eq("Spy"))), t.val(neq("Apocalypse Now")));
assertThat(query, variable(x, containsInAnyOrder(hocusPocus, heat, spy)));
}
use of ai.grakn.graql.Match in project grakn by graknlabs.
the class MatchTest method whenQueryingForTitlesWithEqualValues_ResultsAreCorrect.
@Test
public void whenQueryingForTitlesWithEqualValues_ResultsAreCorrect() {
// This is an edge-case which fooled the resource-index optimiser
Match query = qb.match(x.isa("title").val(y));
assertThat(query, iterableWithSize(greaterThan(3)));
query.forEach(result -> {
Concept cx = result.get(x);
Concept cy = result.get(y);
assertEquals(cx.asAttribute().getValue(), cy.asAttribute().getValue());
});
}
use of ai.grakn.graql.Match in project grakn by graknlabs.
the class MatchTest method testMatchDataType.
@Test
public void testMatchDataType() {
Match query = qb.match(x.datatype(AttributeType.DataType.DOUBLE));
assertThat(query, variable(x, contains(tmdbVoteAverage)));
query = qb.match(x.datatype(AttributeType.DataType.LONG));
assertThat(query, variable(x, containsInAnyOrder(tmdbVoteCount, runtime)));
query = qb.match(x.datatype(AttributeType.DataType.BOOLEAN));
assertThat(query, variable(x, empty()));
query = qb.match(x.datatype(AttributeType.DataType.STRING));
assertThat(query, variable(x, containsInAnyOrder(title, gender, realName, name, provenance)));
query = qb.match(x.datatype(AttributeType.DataType.DATE));
assertThat(query, variable(x, contains(releaseDate)));
}
use of ai.grakn.graql.Match in project grakn by graknlabs.
the class MatchTest method testProductionQuery.
@Test
public void testProductionQuery() {
Match query = qb.match(x.isa("production"));
assertThat(query, variable(x, containsAllMovies));
}
use of ai.grakn.graql.Match in project grakn by graknlabs.
the class MatchTest method whenQueryingForSameRoleTwice_ReturnResultsWithMultipleRolePlayers.
@Test
public void whenQueryingForSameRoleTwice_ReturnResultsWithMultipleRolePlayers() {
Match query = qb.match(var().rel("production-with-cluster", x).rel("production-with-cluster", y).rel(z), z.has("name", "1"));
assertThat(query, results(containsInAnyOrder(allOf(hasEntry(is(x), hocusPocus), hasEntry(is(y), theMuppets)), allOf(hasEntry(is(x), theMuppets), hasEntry(is(y), hocusPocus)))));
}
Aggregations