Search in sources :

Example 6 with Query

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);
}
Also used : ConnectedComponentQuery(ai.grakn.graql.analytics.ConnectedComponentQuery) AggregateQuery(ai.grakn.graql.AggregateQuery) DefineQuery(ai.grakn.graql.DefineQuery) UndefineQuery(ai.grakn.graql.UndefineQuery) DeleteQuery(ai.grakn.graql.DeleteQuery) InsertQuery(ai.grakn.graql.InsertQuery) GetQuery(ai.grakn.graql.GetQuery) Query(ai.grakn.graql.Query) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Example 7 with Query

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);
}
Also used : ConnectedComponentQuery(ai.grakn.graql.analytics.ConnectedComponentQuery) AggregateQuery(ai.grakn.graql.AggregateQuery) DefineQuery(ai.grakn.graql.DefineQuery) UndefineQuery(ai.grakn.graql.UndefineQuery) DeleteQuery(ai.grakn.graql.DeleteQuery) InsertQuery(ai.grakn.graql.InsertQuery) GetQuery(ai.grakn.graql.GetQuery) Query(ai.grakn.graql.Query) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Example 8 with Query

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]);
}
Also used : ConnectedComponentQuery(ai.grakn.graql.analytics.ConnectedComponentQuery) AggregateQuery(ai.grakn.graql.AggregateQuery) DefineQuery(ai.grakn.graql.DefineQuery) UndefineQuery(ai.grakn.graql.UndefineQuery) DeleteQuery(ai.grakn.graql.DeleteQuery) InsertQuery(ai.grakn.graql.InsertQuery) GetQuery(ai.grakn.graql.GetQuery) Query(ai.grakn.graql.Query) StringReader(java.io.StringReader) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Example 9 with Query

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());
    });
}
Also used : ConnectedComponentQuery(ai.grakn.graql.analytics.ConnectedComponentQuery) AggregateQuery(ai.grakn.graql.AggregateQuery) DefineQuery(ai.grakn.graql.DefineQuery) UndefineQuery(ai.grakn.graql.UndefineQuery) DeleteQuery(ai.grakn.graql.DeleteQuery) InsertQuery(ai.grakn.graql.InsertQuery) GetQuery(ai.grakn.graql.GetQuery) Query(ai.grakn.graql.Query) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Example 10 with Query

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());
}
Also used : ConnectedComponentQuery(ai.grakn.graql.analytics.ConnectedComponentQuery) AggregateQuery(ai.grakn.graql.AggregateQuery) DefineQuery(ai.grakn.graql.DefineQuery) UndefineQuery(ai.grakn.graql.UndefineQuery) DeleteQuery(ai.grakn.graql.DeleteQuery) InsertQuery(ai.grakn.graql.InsertQuery) GetQuery(ai.grakn.graql.GetQuery) Query(ai.grakn.graql.Query) InputStreamReader(java.io.InputStreamReader) InputStream(java.io.InputStream) CoreMatchers.containsString(org.hamcrest.CoreMatchers.containsString) Test(org.junit.Test)

Aggregations

Query (ai.grakn.graql.Query)21 Test (org.junit.Test)15 GetQuery (ai.grakn.graql.GetQuery)13 InsertQuery (ai.grakn.graql.InsertQuery)13 DefineQuery (ai.grakn.graql.DefineQuery)12 AggregateQuery (ai.grakn.graql.AggregateQuery)11 DeleteQuery (ai.grakn.graql.DeleteQuery)11 UndefineQuery (ai.grakn.graql.UndefineQuery)11 ConnectedComponentQuery (ai.grakn.graql.analytics.ConnectedComponentQuery)11 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)11 Keyspace (ai.grakn.Keyspace)4 BatchExecutorClient (ai.grakn.client.BatchExecutorClient)3 SimpleURI (ai.grakn.util.SimpleURI)2 List (java.util.List)2 Optional (java.util.Optional)2 Collectors (java.util.stream.Collectors)2 Logger (org.slf4j.Logger)2 LoggerFactory (org.slf4j.LoggerFactory)2 API (ai.grakn.API)1 GraknTx (ai.grakn.GraknTx)1