use of ai.grakn.graql.Query in project grakn by graknlabs.
the class QueryParserTest method testParseListOneInsertWithWhitespacePrefix.
@Test
public void testParseListOneInsertWithWhitespacePrefix() {
String insertString = " insert $x isa movie;";
List<Query<?>> queries = Graql.parser().parseList(insertString).collect(toList());
assertEquals(ImmutableList.of(insert(var("x").isa("movie"))), queries);
}
use of ai.grakn.graql.Query in project grakn by graknlabs.
the class QueryParserTest method testParseListOneInsertWithPrefixComment.
@Test
public void testParseListOneInsertWithPrefixComment() {
String insertString = "#hola\ninsert $x isa movie;";
List<Query<?>> queries = Graql.parser().parseList(insertString).collect(toList());
assertEquals(ImmutableList.of(insert(var("x").isa("movie"))), queries);
}
use of ai.grakn.graql.Query in project grakn by graknlabs.
the class QueryParserTest method whenParsingAVeryLargeQuery_DontRunOutOfMemory.
@Test
public void whenParsingAVeryLargeQuery_DontRunOutOfMemory() {
int bigNumber = 1 << 20;
String queryText1 = "match $x isa movie; insert ($x, $x) isa has-genre;";
String queryText2 = "match $x isa person; insert ($x, $x) isa has-genre;";
Query query1 = Graql.parse(queryText1);
Query query2 = Graql.parse(queryText2);
String massiveQuery = Strings.repeat(queryText1 + queryText2, bigNumber);
final int[] count = { 0, 0 };
Graql.parser().parseList(new StringReader(massiveQuery)).forEach(q -> {
if (q.equals(query1)) {
count[0]++;
} else if (q.equals(query2)) {
count[1]++;
} else {
fail("Bad query: " + q);
}
});
assertEquals(bigNumber, count[0]);
assertEquals(bigNumber, count[1]);
}
use of ai.grakn.graql.Query in project grakn by graknlabs.
the class QueryParserTest method testParseMatchInsertBeforeAndAfter.
@Test
public void testParseMatchInsertBeforeAndAfter() {
String matchString = "match $y isa movie; limit 1;";
String insertString = "insert $x isa movie;";
String getString = matchString + " get;";
String matchInsert = matchString + insertString;
List<String> options = newArrayList(getString + matchInsert, insertString + matchInsert, matchInsert + getString, matchInsert + insertString);
options.forEach(option -> {
List<Query<?>> queries = Graql.parser().parseList(option).collect(toList());
assertEquals(option, 2, queries.size());
});
}
use of ai.grakn.graql.Query in project grakn by graknlabs.
the class QueryParserTest method whenParsingAnInfiniteListOfQueriesAndRetrievingFirstFewQueries_Terminate.
@Test
public void whenParsingAnInfiniteListOfQueriesAndRetrievingFirstFewQueries_Terminate() {
String queryText1 = "match $x isa movie; insert ($x, $x) isa has-genre;";
String queryText2 = "match $x isa person; insert ($x, $x) isa has-genre;";
Query query1 = Graql.parse(queryText1);
Query query2 = Graql.parse(queryText2);
char[] queryChars = (queryText1 + queryText2).toCharArray();
InputStream infStream = new InputStream() {
int pos = 0;
@Override
public int read() throws IOException {
char c = queryChars[pos];
pos += 1;
if (pos >= queryChars.length) {
pos -= queryChars.length;
}
return c;
}
};
Stream<Query<?>> queries = Graql.parser().parseList(new InputStreamReader(infStream));
Iterator<Query<?>> iterator = queries.iterator();
assertEquals(query1, iterator.next());
assertEquals(query2, iterator.next());
assertEquals(query1, iterator.next());
assertEquals(query2, iterator.next());
assertTrue(iterator.hasNext());
}
Aggregations