Exemplo n.º 1
0
  def test_unify_fun_var(self):
    a = Fun(Fun(Var('a'), Int()), Var('a'))
    b = Var('b')

    s = Sustitucion()
    s.push(Var('b'), Fun(Fun(Var('a'), Int()), Var('a')))

    self.assertEqual(a.unify(b), s)
Exemplo n.º 2
0
  def test_unify_simple(self):
    a = Fun(Var('a'), Var('b'))
    b = Fun(Bool(), Int())

    s = Sustitucion()
    s.push(Var('a'), Bool())
    s.push(Var('b'), Int())

    self.assertEqual(a.unify(b), s)
Exemplo n.º 3
0
  def test_unify_paren(self):
    a = Fun(Paren(Paren(Fun(Var('a'), Int()))), Var('a'))
    b = Fun(Paren(Var('b')), Paren(Fun(Var('c'), Paren(Int()))))

    s = Sustitucion()
    s.push(Var('b'), Fun(Fun(Var('c'), Int()), Int()))
    s.push(Var('a'), Fun(Var('c'), Int()))

    self.assertEqual(a.unify(b), s)