use of com.vaticle.typedb.core.pattern.Disjunction in project grakn by graknlabs.
the class TypeInferenceTest method has_reverse.
@Test
public void has_reverse() throws IOException {
define_standard_schema("basic-schema");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match" + " $p isa! person;" + " $p has $a;";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$a", set("name", "email"));
put("$p", set("person"));
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 has_inference_variable_with_attribute_type.
@Test
public void has_inference_variable_with_attribute_type() throws IOException {
define_standard_schema("basic-schema");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match $p has name $a;";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$p", set("person", "man", "woman", "dog"));
put("$a", set("name"));
put("$_name", 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 has_inference.
@Test
public void has_inference() throws IOException {
define_standard_schema("basic-schema");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match $p has name 'bob';";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$p", set("person", "man", "woman", "dog"));
put("$_name", set("name"));
put("$_0", 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 infer_is_attribute_from_ownership.
@Test
public void infer_is_attribute_from_ownership() throws IOException {
define_standard_schema("test-type-inference");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match $x has $y;";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$x", set("person", "company", "friendship", "employment"));
put("$y", set("name", "age", "ref"));
}
};
assertEquals(expected, resolvedTypeMap(disjunction.conjunctions().get(0)));
}
use of com.vaticle.typedb.core.pattern.Disjunction in project grakn by graknlabs.
the class TypeInferenceTest method simple_always_infers_its_supers.
@Test
public void simple_always_infers_its_supers() {
define_custom_schema("define" + " animal sub entity;" + " person sub animal;" + " man sub person;" + " greek sub man;" + " socrates sub greek;");
TypeInference typeInference = transaction.logic().typeInference();
String queryString = "match $x isa $y;" + " $y sub $z;" + " $z sub $w;" + " $w sub person;";
Disjunction disjunction = createDisjunction(queryString);
typeInference.applyCombination(disjunction);
Map<String, Set<String>> expected = new HashMap<>() {
{
put("$x", set("person", "man", "greek", "socrates"));
put("$y", set("person", "man", "greek", "socrates"));
put("$z", set("person", "man", "greek", "socrates"));
put("$w", set("person", "man", "greek", "socrates"));
put("$_person", set("person"));
}
};
assertEquals(expected, resolvedTypeMap(disjunction.conjunctions().get(0)));
}
Aggregations