コード例 #1
0
        public void TestConfigWithUnaryOperator()
        {
            OperatorStruct[] ops = new OperatorStruct[] { new OperatorStruct("-", 5, true, false, false, false) };

            EquationConversion.ResetEquationConversion();

            // unittest-equationconversionconfigunary
            Assert.AreEqual(true, EquationConversion.ConfigureParser(ops, Solver.GetValidTerminators()));
        }
コード例 #2
0
        public void TestConfigWithNoOperators()
        {
            OperatorStruct[] ops = new OperatorStruct[] { };

            EquationConversion.ResetEquationConversion();

            // unittest-equationconversionconfignoops
            Assert.AreEqual(false, EquationConversion.ConfigureParser(ops, Solver.GetValidTerminators()));
        }
コード例 #3
0
        public void TestOperatorConstructor()
        {
            // unittest-operatordatastructureconstructor
            OperatorStruct op = new OperatorStruct("+", 1, false, true, false, true);

            Assert.AreEqual("+", op.GetOperator());
            Assert.AreEqual(1, op.GetPrecedence());
            Assert.AreEqual(false, op.IsUnary());
            Assert.AreEqual(true, op.IsBinary());
            Assert.AreEqual(false, op.IsTernary());
            Assert.AreEqual(true, op.IsLeftAssociative());
        }
コード例 #4
0
        public void TestFailedConfig()
        {
            EquationConversion.ResetEquationConversion();
            Consolidate.Initialize();

            // unittest-consolidatenoops
            OperatorStruct[] ops = new OperatorStruct[] { };
            int success          = Consolidate.ConvertAndCheckInputs("x+y", "x,2,3\ny,4,5", ops, Solver.GetValidTerminators(), System.Environment.NewLine, ",");

            Assert.AreEqual(-1, success);

            // unittest-consolidatenorightterm
            string[][] terminators = new string[][] { new string[] { "(", "" } };
            success = Consolidate.ConvertAndCheckInputs("x+y", "x,2,3\ny,4,5", Solver.GetValidOperators(), terminators, System.Environment.NewLine, ",");
            Assert.AreEqual(-1, success);

            // unittest-consolidatenoleftterm
            terminators = new string[][] { new string[] { "", ")" } };
            success     = Consolidate.ConvertAndCheckInputs("x+y", "x,2,3\ny,4,5", Solver.GetValidOperators(), terminators, System.Environment.NewLine, ",");
            Assert.AreEqual(-1, success);
        }
コード例 #5
0
        public void TestUnaryFunction()
        {
            OperatorStruct[] ops      = new OperatorStruct[] { new OperatorStruct("-", 5, true, false, false, false) };
            string           varToken = EquationConversion.GetVariableToken();

            EquationConversion.ResetEquationConversion();
            EquationConversion.ConfigureParser(ops, Solver.GetValidTerminators());

            if (EquationConversion.IsReady())
            {
                string constToken = EquationConversion.GetConstToken();

                // unittest-equationconversionparseunary
                EquationStruct unaryEq         = EquationConversion.MakeEquationTree("-x");
                EquationStruct targetStructure = new EquationStruct("-", "", new EquationStruct(varToken, "x", null, null), null);

                Assert.AreEqual(PrintEquation(targetStructure), PrintEquation(unaryEq));
                //Assert.AreEqual(true, CheckVariableList(new string[] { "x" }, EquationConversion.GetVariableList()));
            }
            else
            {
                Assert.Fail("Equation Parser could not be initialized.");
            }
        }
コード例 #6
0
 public void TestNoOpType()
 {
     // unittest-operatordatastructurenotype
     OperatorStruct op = new OperatorStruct("+", 1, false, false, false, true);
 }
コード例 #7
0
 public void TestOpType3()
 {
     // unittest-operatordatastructureoverloadedtype3
     OperatorStruct op = new OperatorStruct("+", 1, true, false, true, true);
 }
コード例 #8
0
 public void TestLowOpPrecedence()
 {
     // unittest-operatordatastructurelowprecedence
     OperatorStruct op = new OperatorStruct("+", 0, false, true, false, true);
 }
コード例 #9
0
 public void TestMissingOpSymbol()
 {
     // unittest-operatordatastructuremissingsym
     OperatorStruct op = new OperatorStruct("", 1, false, true, false, true);
 }