use of com.vaticle.typedb.core.pattern.Disjunction in project grakn by graknlabs.
the class TypeInferenceTest method cannot_insert_if_role_is_too_general.
@Test
public void cannot_insert_if_role_is_too_general() {
define_custom_schema("define" + " person sub entity, plays marriage:husband, plays marriage:wife;" + " partnership sub relation, relates partner;" + " marriage sub partnership, relates husband as partner, relates wife as partner;");
String queryString = "match $x isa person; (partner: $x) isa marriage;";
Disjunction disjunction = createDisjunction(queryString);
transaction.logic().typeInference().applyCombination(disjunction);
assertThrows(() -> transaction.logic().putRule("marriage-rule", TypeQL.parsePattern("{$x isa person;}").asConjunction(), TypeQL.parseVariable("(partner: $x) isa marriage").asThing()));
}
use of com.vaticle.typedb.core.pattern.Disjunction in project grakn by graknlabs.
the class TypeInferenceTest method relation_anon_isa.
@Test
public void relation_anon_isa() throws IOException {
define_standard_schema("basic-schema");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match (wife: $yoko);";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$yoko", set("woman"));
put("$_0", set("marriage"));
put("$_relation:wife", set("marriage:wife"));
}
};
assertEquals(expected, resolvedTypeMap(disjunction.conjunctions().get(0)));
}
use of com.vaticle.typedb.core.pattern.Disjunction in project grakn by graknlabs.
the class TypeInferenceTest method isa_inference.
@Test
public void isa_inference() throws IOException {
define_standard_schema("basic-schema");
String queryString = "match $p isa person;";
TypeInference typeInference = transaction.logic().typeInference();
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$p", set("person", "man", "woman"));
put("$_person", set("person"));
}
};
assertEquals(expected, resolvedTypeMap(disjunction.conjunctions().get(0)));
}
use of com.vaticle.typedb.core.pattern.Disjunction in project grakn by graknlabs.
the class TypeInferenceTest method value_comparision_between_double_long.
@Test
public void value_comparision_between_double_long() throws IOException {
define_custom_schema("define" + " house-number sub attribute, value long;" + " length sub attribute, value double;" + " name sub attribute, value string;");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match $x = 1; $y = 1.0; $z = 'bob';";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$x", set("house-number", "length"));
put("$y", set("house-number", "length"));
put("$z", set("name"));
}
};
assertEquals(expected, resolvedTypeMap(disjunction.conjunctions().get(0)));
}
use of com.vaticle.typedb.core.pattern.Disjunction in project grakn by graknlabs.
the class TypeInferenceTest method plays_hierarchy.
@Test
public void plays_hierarchy() throws IOException {
define_standard_schema("basic-schema");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match (spouse: $john) isa marriage;";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$john", set("person", "man", "woman"));
put("$_0", set("marriage"));
put("$_marriage:spouse", set("marriage:spouse"));
put("$_marriage", set("marriage"));
}
};
assertEquals(expected, resolvedTypeMap(disjunction.conjunctions().get(0)));
}
Aggregations