public void TestVariables()
        {
            LogicExpression       test   = x & x;
            VariableLister <bool> lister = new VariableLister <bool>();

            test.Accept(lister);
            Assert.AreEqual(1, lister.Variables.Count(), "There should only be one variable");
            Assert.AreEqual("x", lister.Variables.First());
        }
        public void TestNumVariables()
        {
            NumExpression         numTest = n;
            LogicExpression       test    = new NumRelation(NumRels.EQ, n, m) | y;
            VariableLister <bool> lister  = new VariableLister <bool>();

            test.Accept(lister);
            Assert.AreEqual(3, lister.Variables.Count(), "There should be three variables");
            Assert.IsTrue(lister.Variables.Contains("y"));
            Assert.IsTrue(lister.Variables.Contains("n"));
            Assert.IsTrue(lister.Variables.Contains("m"));

            test   = (new NumThe("n", n == two)) == two;
            lister = new VariableLister <bool>();
            test.Accept(lister);
            Assert.AreEqual(1, lister.Variables.Count);
            Assert.IsTrue(lister.Variables.Contains("n"));
        }
Beispiel #3
0
        public void TestLambdas()
        {
            SortedSet <string> variables;
            var test = new LambdaExpression("x", x);
            VariableLister <bool> lister = new VariableLister <bool>();

            test.Accept(lister);
            Assert.AreEqual(1, lister.Variables.Count);
            Assert.IsTrue(lister.Variables.Contains("x"));

            test = new LambdaExpression("x", x);
            FreeVariableLister freeLister = new FreeVariableLister();

            variables = test.Accept(freeLister);
            Assert.AreEqual(0, variables.Count);

            test       = new LambdaExpression("x", logicLoop);
            freeLister = new FreeVariableLister();
            variables  = test.Accept(freeLister);
            Assert.AreEqual(0, variables.Count);
        }