Search in sources :

Example 11 with TypeQLQuery

use of com.vaticle.typeql.lang.query.TypeQLQuery in project typeql-lang-java by vaticle.

the class NormalisationTest method negatedDisjunction.

@Test
public void negatedDisjunction() {
    String query = "match\n" + "$com isa company;\n" + "not {\n" + "    $com has name $n1;\n" + "    {\n" + "        $n1 \"the-company\";\n" + "    } or {\n" + "        $n1 \"other-company\";\n" + "    };\n" + "}; ";
    TypeQLMatch typeqlMatch = TypeQL.parseQuery(query).asMatch();
    Disjunction<Conjunction<Conjunctable>> normalised = typeqlMatch.conjunction().normalise();
    String expected = "match\n" + "$com isa company;\n" + "not {\n" + "    {\n" + "        $com has name $n1;\n" + "        $n1 \"the-company\";\n" + "    } or {\n" + "        $com has name $n1;\n" + "        $n1 \"other-company\";\n" + "    };\n" + "};";
    TypeQLQuery expectedQuery = TypeQL.parseQuery(expected);
    Disjunction<? extends Pattern> inner = expectedQuery.asMatch().conjunction().patterns().get(1).asNegation().pattern().asDisjunction();
    assertEquals(expected, expectedQuery.toString());
}
Also used : Conjunction(com.vaticle.typeql.lang.pattern.Conjunction) TypeQLMatch(com.vaticle.typeql.lang.query.TypeQLMatch) TypeQLQuery(com.vaticle.typeql.lang.query.TypeQLQuery) Test(org.junit.Test)

Aggregations

TypeQLQuery (com.vaticle.typeql.lang.query.TypeQLQuery)11 Test (org.junit.Test)6 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)5 TypeQLMatch (com.vaticle.typeql.lang.query.TypeQLMatch)2 TypeDB (com.vaticle.typedb.core.TypeDB)1 ConceptMap (com.vaticle.typedb.core.concept.answer.ConceptMap)1 Attribute (com.vaticle.typedb.core.concept.thing.Attribute)1 Conjunction (com.vaticle.typeql.lang.pattern.Conjunction)1 Given (io.cucumber.java.en.Given)1