示例#1
0
        public void Issue138Variable()
        {
            var x = Math.FileLookupInterpolate2D(new Series(), new Series(), "");

            string equation = "FileLookupInterpolate2D(rir_fb, rir_ra, \"rir_q_2da.txt\") +FileLookupInterpolate2D(rir_fb, rir_rb, \"rir_q_2d.txt\")";
            var    vars     = VariableParser.Default().GetAllVariables(equation);

            Assert.IsTrue(Array.IndexOf(vars, "rir_fb") >= 0, "rir_fb");
            Assert.IsTrue(Array.IndexOf(vars, "rir_ra") >= 0, "rir_ra");
            Assert.IsTrue(Array.IndexOf(vars, "rir_rb") >= 0, "rir_rb");
        }
示例#2
0
        public void VariableNames()
        {
            string equation = "Merge()"; // not a variable

            Assert.AreEqual(0, VariableParser.Default().GetAllVariables(equation).Length);

            equation = "Merge(series1,'series 2')+'Series 5'";
            var vars = VariableParser.Default().GetAllVariables(equation);

            Assert.AreEqual("series1", vars[0]);
            Assert.AreEqual("series 2", vars[1]);
            Assert.AreEqual("Series 5", vars[2]);


            equation = "'jck af'+two";
            vars     = VariableParser.Default().GetAllVariables(equation);
            Assert.AreEqual(2, vars.Length);
        }
示例#3
0
        internal List <string> GetDependentVariables()
        {
            List <string> rval     = new List <string>();
            string        equation = ExpressionPreProcessor();

            foreach (var n in VariableParser.Default().GetAllVariables(equation))
            {
                if (this.Table.TableName == n)
                {
                    Logger.WriteLine("warning: possible recursive dependency: " + n);
                    continue;
                }

                if (rval.Contains(n))
                {
                    continue;
                }

                rval.Add(n);
            }

            return(rval);
        }