Search in sources :

Example 6 with ThingVariable

use of com.vaticle.typedb.core.pattern.variable.ThingVariable in project grakn by graknlabs.

the class AlphaEquivalenceTest method test_relation_with_duplicate_roleplayers_equivalent.

@Test
public void test_relation_with_duplicate_roleplayers_equivalent() {
    ThingVariable r = parseVariables("r", "$r(friend: $p, friend: $p) isa friendship").asThing();
    ThingVariable q = parseVariables("q", "$q(friend: $s, friend: $s) isa friendship").asThing();
    testAlphaEquivalenceSymmetricReflexive(r, q, true);
    AlphaEquivalence alphaEq = r.alphaEquals(q);
    Map<String, String> varNameMap = alphaMapToStringMap(alphaEq.asValid());
    assertEquals(varNameMap.get("$r"), "$q");
    assertEquals(varNameMap.get("$p"), "$s");
    assertEquals(varNameMap.get("$_friendship:friend"), "$_friendship:friend");
    assertEquals(varNameMap.get("$_friendship:friend"), "$_friendship:friend");
    assertEquals(varNameMap.get("$_friendship"), "$_friendship");
}
Also used : ThingVariable(com.vaticle.typedb.core.pattern.variable.ThingVariable) Test(org.junit.Test)

Example 7 with ThingVariable

use of com.vaticle.typedb.core.pattern.variable.ThingVariable in project grakn by graknlabs.

the class AlphaEquivalenceTest method test_has_label_not_equivalent.

@Test
public void test_has_label_not_equivalent() {
    ThingVariable p = parseVariables("p", "$p has age 30", "$p isa person").asThing();
    ThingVariable q = parseVariables("q", "$q has years 30", "$q isa person").asThing();
    testAlphaEquivalenceSymmetricReflexive(p, q, false);
}
Also used : ThingVariable(com.vaticle.typedb.core.pattern.variable.ThingVariable) Test(org.junit.Test)

Example 8 with ThingVariable

use of com.vaticle.typedb.core.pattern.variable.ThingVariable in project grakn by graknlabs.

the class AlphaEquivalenceTest method test_relation_with_three_roles_equivalent.

@Test
public void test_relation_with_three_roles_equivalent() {
    ThingVariable r = parseVariables("r", "$r(buyer: $p, seller: $c, produce: $u) isa transaction").asThing();
    ThingVariable q = parseVariables("q", "$q(buyer: $s, seller: $t, produce: $v) isa transaction").asThing();
    AlphaEquivalence alphaEq = r.alphaEquals(q);
    Map<String, String> varNameMap = alphaMapToStringMap(alphaEq.asValid());
    assertEquals(varNameMap.get("$r"), "$q");
    assertEquals(varNameMap.get("$p"), "$s");
    assertEquals(varNameMap.get("$c"), "$t");
    assertEquals(varNameMap.get("$u"), "$v");
    assertEquals(varNameMap.get("$_transaction:buyer"), "$_transaction:buyer");
    assertEquals(varNameMap.get("$_transaction:seller"), "$_transaction:seller");
    assertEquals(varNameMap.get("$_transaction:produce"), "$_transaction:produce");
    assertEquals(varNameMap.get("$_transaction"), "$_transaction");
    testAlphaEquivalenceSymmetricReflexive(r, q, true);
}
Also used : ThingVariable(com.vaticle.typedb.core.pattern.variable.ThingVariable) Test(org.junit.Test)

Example 9 with ThingVariable

use of com.vaticle.typedb.core.pattern.variable.ThingVariable in project grakn by graknlabs.

the class AlphaEquivalenceTest method test_value_and_has_label_equivalent.

@Test
public void test_value_and_has_label_equivalent() {
    ThingVariable p = parseVariables("p", "$p has age 30", "$p isa person").asThing();
    ThingVariable q = parseVariables("q", "$q has age 30", "$q isa person").asThing();
    AlphaEquivalence alphaEq = p.alphaEquals(q);
    Map<String, String> varNameMap = alphaMapToStringMap(alphaEq.asValid());
    assertEquals(varNameMap.get("$p"), "$q");
    assertEquals(varNameMap.get("$_age"), "$_age");
    assertEquals(varNameMap.get("$_person"), "$_person");
    testAlphaEquivalenceSymmetricReflexive(p, q, true);
}
Also used : ThingVariable(com.vaticle.typedb.core.pattern.variable.ThingVariable) Test(org.junit.Test)

Example 10 with ThingVariable

use of com.vaticle.typedb.core.pattern.variable.ThingVariable in project grakn by graknlabs.

the class AlphaEquivalenceTest method test_relation_with_duplicate_roles_equivalent.

@Test
public void test_relation_with_duplicate_roles_equivalent() {
    ThingVariable r = parseVariables("r", "$r(sibling: $p, sibling: $c) isa siblingship", "$p isa person").asThing();
    ThingVariable q = parseVariables("q", "$q(sibling: $s, sibling: $t) isa siblingship", "$s isa person").asThing();
    testAlphaEquivalenceSymmetricReflexive(r, q, true);
    AlphaEquivalence alphaEq = r.alphaEquals(q);
    Map<String, String> varNameMap = alphaMapToStringMap(alphaEq.asValid());
    assertEquals(varNameMap.get("$r"), "$q");
    assertEquals(varNameMap.get("$p"), "$s");
    assertEquals(varNameMap.get("$c"), "$t");
    assertEquals(varNameMap.get("$_siblingship:sibling"), "$_siblingship:sibling");
    assertEquals(varNameMap.get("$_siblingship:sibling"), "$_siblingship:sibling");
    assertEquals(varNameMap.get("$_siblingship"), "$_siblingship");
}
Also used : ThingVariable(com.vaticle.typedb.core.pattern.variable.ThingVariable) Test(org.junit.Test)

Aggregations

ThingVariable (com.vaticle.typedb.core.pattern.variable.ThingVariable)12 Test (org.junit.Test)11 Pair (com.vaticle.typedb.common.collection.Pair)1 Identifier (com.vaticle.typedb.core.traversal.common.Identifier)1