示例#1
0
        public void testHashCode()
        {
            Term cons1 = new Constant("C1");
            Term cons2 = new Constant("C2");
            Term var1  = new Variable("v1");
            ICollection <Term> pts1 = CollectionFactory.CreateQueue <Term>();
            ICollection <Term> pts2 = CollectionFactory.CreateQueue <Term>();

            pts1.Add(cons1);
            pts1.Add(cons2);
            pts1.Add(var1);
            pts2.Add(cons2);
            pts2.Add(cons1);
            pts2.Add(var1);

            Clause c1 = new Clause();
            Clause c2 = new Clause();

            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());

            c1.addNegativeLiteral(new Predicate("Pred1", pts1));
            Assert.AreNotEqual(c1.GetHashCode(), c2.GetHashCode());
            c2.addNegativeLiteral(new Predicate("Pred1", pts1));
            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());

            c1.addPositiveLiteral(new Predicate("Pred1", pts1));
            Assert.AreNotEqual(c1.GetHashCode(), c2.GetHashCode());
            c2.addPositiveLiteral(new Predicate("Pred1", pts1));
            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());
        }
示例#2
0
        public void testHashCode()
        {
            Term        cons1 = new Constant("C1");
            Term        cons2 = new Constant("C2");
            Term        var1  = new Variable("v1");
            List <Term> pts1  = new List <Term>();
            List <Term> pts2  = new List <Term>();

            pts1.Add(cons1);
            pts1.Add(cons2);
            pts1.Add(var1);
            pts2.Add(cons2);
            pts2.Add(cons1);
            pts2.Add(var1);

            Clause c1 = new Clause();
            Clause c2 = new Clause();

            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());

            c1.addNegativeLiteral(new Predicate("Pred1", pts1));
            Assert.AreNotSame(c1.GetHashCode(), c2.GetHashCode());
            c2.addNegativeLiteral(new Predicate("Pred1", pts1));
            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());

            c1.addPositiveLiteral(new Predicate("Pred1", pts1));
            Assert.AreNotSame(c1.GetHashCode(), c2.GetHashCode());
            c2.addPositiveLiteral(new Predicate("Pred1", pts1));
            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());
        }
示例#3
0
        public void testHashCode()
        {
            Clause clause1 = new Clause();
            Clause clause2 = new Clause();

            Assert.IsTrue(clause1.GetHashCode() == clause2.GetHashCode());

            clause1 = new Clause(LITERAL_P);
            clause2 = new Clause(LITERAL_P);
            Assert.IsTrue(clause1.GetHashCode() == clause2.GetHashCode());

            clause1 = new Clause(LITERAL_P, LITERAL_Q);
            clause2 = new Clause(LITERAL_P, LITERAL_Q);
            Assert.IsTrue(clause1.GetHashCode() == clause2.GetHashCode());

            clause1 = new Clause(LITERAL_R, LITERAL_P, LITERAL_Q);
            clause2 = new Clause(LITERAL_P, LITERAL_Q, LITERAL_R);
            Assert.IsTrue(clause1.GetHashCode() == clause2.GetHashCode());

            clause1 = new Clause(LITERAL_P);
            clause2 = new Clause(LITERAL_Q);
            Assert.IsFalse(clause1.GetHashCode() == clause2.GetHashCode());

            clause1 = new Clause(LITERAL_P, LITERAL_Q);
            clause2 = new Clause(LITERAL_P, LITERAL_R);
            Assert.IsFalse(clause1.GetHashCode() == clause2.GetHashCode());
        }
示例#4
0
        public void testHashCode()
        {
            Term cons1 = new Constant("C1");
            Term cons2 = new Constant("C2");
            Term var1 = new Variable("v1");
            List<Term> pts1 = new List<Term>();
            List<Term> pts2 = new List<Term>();
            pts1.Add(cons1);
            pts1.Add(cons2);
            pts1.Add(var1);
            pts2.Add(cons2);
            pts2.Add(cons1);
            pts2.Add(var1);

            Clause c1 = new Clause();
            Clause c2 = new Clause();
            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());

            c1.addNegativeLiteral(new Predicate("Pred1", pts1));
            Assert.AreNotSame(c1.GetHashCode(), c2.GetHashCode());
            c2.addNegativeLiteral(new Predicate("Pred1", pts1));
            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());

            c1.addPositiveLiteral(new Predicate("Pred1", pts1));
            Assert.AreNotSame(c1.GetHashCode(), c2.GetHashCode());
            c2.addPositiveLiteral(new Predicate("Pred1", pts1));
            Assert.AreEqual(c1.GetHashCode(), c2.GetHashCode());
        }