AIMA.Test.Core.Unit.Logic.Propositional.Parsing.PEParserTest.testComplexSentenceParse C# (CSharp) Method

testComplexSentenceParse() private method

private testComplexSentenceParse ( ) : void
return void
        public void testComplexSentenceParse()
        {
            BinarySentence sen = (BinarySentence)parser
                    .parse("((OR  NORVIG AIMA LISP) AND TRUE)");
            Assert.AreEqual(typeof(BinarySentence), sen.GetType());

            sen = (BinarySentence)parser
                    .parse("((OR  NORVIG AIMA LISP) AND (((LISP => COOL))))");
            Assert.AreEqual(typeof(BinarySentence), sen.GetType());
            Assert.AreEqual(
                    " ( ( OR NORVIG AIMA LISP  )  AND  ( LISP => COOL ) )", sen
                            .ToString());

            String s = "((NOT (P AND Q ))  AND ((NOT (R AND S))))";
            sen = (BinarySentence)parser.parse(s);
            Assert.AreEqual(
                    " (  ( NOT  ( P AND Q ) )  AND  ( NOT  ( R AND S ) )  )", sen
                            .ToString());

            s = "((P AND Q) OR (S AND T))";
            sen = (BinarySentence)parser.parse(s);
            Assert
                    .AreEqual(" (  ( P AND Q ) OR  ( S AND T ) )", sen
                            .ToString());
            Assert.AreEqual("OR", sen.getOperator());

            s = "(NOT ((P AND Q) => (S AND T)))";
            UnarySentence nsen = (UnarySentence)parser.parse(s);
            // AreEqual("=>",sen.getOperator());
            s = "(NOT (P <=> (S AND T)))";
            nsen = (UnarySentence)parser.parse(s);
            Assert.AreEqual(" ( NOT  ( P <=>  ( S AND T ) ) ) ", nsen
                    .ToString());

            s = "(P <=> (S AND T))";
            sen = (BinarySentence)parser.parse(s);

            s = "(P => Q)";
            sen = (BinarySentence)parser.parse(s);

            s = "((P AND Q) => R)";
            sen = (BinarySentence)parser.parse(s);
        }
    }