Пример #1
0
        public void ParseMultipleOps_OperatorPrecedence_MulAdd()
        {
            var t      = new TermParse();
            var result = t.Parse("2 * 2 + 4");

            Assert.AreEqual(result.Eval(null), 8f);
        }
Пример #2
0
        public void ParseMultipleOps_Brackets_EvaluatedCorrectly()
        {
            var t      = new TermParse();
            var result = t.Parse("2 * (2 + 4)");

            Assert.AreEqual(result.Eval(null), 12f);
        }
Пример #3
0
        public void ParseJustAString_YieldsVariableLookupNode()
        {
            var t      = new TermParse();
            var result = t.Parse("ThisIsAVariable");

            Assert.IsTrue(result is VarRefNode);
        }
Пример #4
0
        public void ParseNoOperators_YieldsStaticValue()
        {
            var t      = new TermParse();
            var result = t.Parse("11");

            Assert.IsTrue(result is StaticValueNode);
        }
Пример #5
0
        public void ParseAdd_CreatesAdderNode()
        {
            var t      = new TermParse();
            var result = t.Parse("1 + 1");

            Assert.IsTrue(result is AddNode);
        }
Пример #6
0
        public void Parse_VarIsEvaluated()
        {
            var vt = new SymbolTable();

            vt.Register("x", 2.0f);
            var t      = new TermParse();
            var result = t.Parse("x * 2");

            Assert.AreEqual(result.Eval(vt), 4.0f);
        }
Пример #7
0
        public void ParseMultipleOps_OperatorPrecedence_AddMul()
        {
            var t      = new TermParse();
            var result = t.Parse("1 + 1 * 4");

            Assert.IsTrue(result is AddNode);

            var n = result as AddNode;

            Assert.IsTrue(n.Right is MulNode);
            Assert.AreEqual(result.Eval(null), 5f);
        }
Пример #8
0
 public void AddEval()
 {
     Assert.AreEqual(3, (float)tp.Parse("2+1").Eval(null));
 }