Unify() public method

public Unify ( AbstractTerm term ) : bool
term AbstractTerm
return bool
Example #1
0
        public void Unify_lis_str()
        {
            ListTerm list = new ListTerm();
            StructureTerm con = new StructureTerm("s", 2);

            Assert.IsFalse(list.Unify(con));
        }
Example #2
0
        public void Unify_lis_ref()
        {
            ListTerm list = new ListTerm();
            list.Next = new ConstantTerm("ali");
            list.Next.Next = new ConstantTerm("samir");

            AbstractTerm term = new AbstractTerm();

            Assert.IsTrue(list.Unify(term));

            Assert.AreSame(list.Head, term.Head);
            Assert.AreSame(list.Tail, term.Tail);
        }
Example #3
0
        public void Unify_lis_con()
        {
            ListTerm list = new ListTerm();
            ConstantTerm con = new ConstantTerm();

            Assert.IsFalse(list.Unify(con));
        }
Example #4
0
        public void Unify_lis_ne_lis()
        {
            ListTerm list1 = new ListTerm();
            list1.Next = new ConstantTerm("ali");
            list1.Next.Next = new ConstantTerm("[]");

            ListTerm list2 = new ListTerm();
            list2.Next = new ConstantTerm("ali");
            list2.Next.Next = new ConstantTerm("foo");

            Assert.IsFalse(list1.Unify(list2));
        }
Example #5
0
        public void Unify_list_ref_lis()
        {
            ListTerm list1 = new ListTerm();
            list1.Next = new AbstractTerm();
            list1.Next.Next = new ConstantTerm("[]");

            ListTerm list2 = new ListTerm();
            list2.Next = new ConstantTerm("ali");
            list2.Next.Next = new ConstantTerm("[]");

            Assert.IsTrue(list1.Unify(list2));

            Assert.AreEqual(list1.Head.Data(), list2.Head.Data());
        }