Ejemplo n.º 1
0
 def check(self, atom1, atom2):
     atom1 = compile.parse1(atom1)
     atom2 = compile.parse1(atom2)
     unifier = unify.BiUnifier()
     changes = unify.match_atoms(atom1, unifier, atom2)
     self.assertIsNotNone(changes)
     self.assertEqual(atom1.plug(unifier), atom2)
Ejemplo n.º 2
0
    def test_sequence(self):
        atom1 = compile.parse1('p(x, y)')
        atom2 = compile.parse1('p(1, 2)')
        unifier = unify.BiUnifier()
        changes = unify.match_atoms(atom1, unifier, atom2)
        self.assertIsNotNone(changes)

        atom3 = compile.parse1('q(y, z)')
        atom4 = compile.parse1('q(2, 3)')
        changes = unify.match_atoms(atom3, unifier, atom4)
        self.assertIsNotNone(changes)

        atom5 = compile.parse1('r(x, y, z, z)')
        atom6 = compile.parse1('r(1, 2, 3, 3)')
        changes = unify.match_atoms(atom5, unifier, atom6)
        self.assertIsNotNone(changes)

        self.assertEqual(atom1.plug(unifier), atom2)
        self.assertEqual(atom3.plug(unifier), atom4)
        self.assertEqual(atom5.plug(unifier), atom6)
Ejemplo n.º 3
0
 def cherr(self, atom1, atom2):
     atom1 = compile.parse1(atom1)
     atom2 = compile.parse1(atom2)
     unifier = unify.BiUnifier()
     self.assertIsNone(unify.match_atoms(atom1, unifier, atom2))
Ejemplo n.º 4
0
 def new_bi_unifier(cls, dictionary=None):
     """Return a unifier compatible with unify.bi_unify."""
     return unify.BiUnifier(dictionary=dictionary)