public static bool ValidadeEquation(string text)
        {
            if (!text.Any())
            {
                return(true);
            }
            //alterei para text.any() também
            ExpressionContext  context   = new ExpressionContext();
            VariableCollection variables = context.Variables;

            foreach (IInvariant invariant in InvariantNum.List())
            {
                if (text.Contains(invariant.getCode() + "_G"))
                {
                    context.Variables[invariant.getCode() + "_G"] = invariant.Calculate(new Graph(new int[0, 0]));
                }
                if (text.Contains(invariant.getCode() + "_lG"))
                {
                    context.Variables[invariant.getCode() + "_lG"] = invariant.Calculate(new Graph(new int[0, 0]));
                }
                if (text.Contains(invariant.getCode() + "_cG"))
                {
                    context.Variables[invariant.getCode() + "_cG"] = invariant.Calculate(new Graph(new int[0, 0]));
                }
            }
            IGenericExpression <bool> e = context.CompileGeneric <bool>(text);

            return(e.Evaluate());
        }
        public static bool EvaluateText(string text, Graph g)
        {
            if (!text.Any())
            {
                return(true);
            }
            //Alterei de text.count() == 0 para text.any()
            ExpressionContext  context   = new ExpressionContext();
            VariableCollection variables = context.Variables;

            foreach (IInvariant invariant in InvariantNum.List())
            {
                if (text.Contains(invariant.getCode() + "_G"))
                {
                    context.Variables[invariant.getCode() + "_G"] = invariant.Calculate(g);
                }
                if (text.Contains(invariant.getCode() + "_lG"))
                {
                    context.Variables[invariant.getCode() + "_lG"] = invariant.Calculate(Operation.Line(g));
                }
                if (text.Contains(invariant.getCode() + "_cG"))
                {
                    context.Variables[invariant.getCode() + "_cG"] = invariant.Calculate(Operation.Complement(g));
                }
            }
            IGenericExpression <bool> e = context.CompileGeneric <bool>(text);

            return(e.Evaluate());


            //throw new ExpressionCompileException();
        }
예제 #3
0
        private void Form1_Load(object sender, EventArgs e)
        {
            progressBar.Minimum = 0;
            progressBar.Maximum = 1;

            foreach (IInvariant invariant in InvariantNum.List())
            {
                ListOfInvariants.Text += "\n" + invariant.getCode() + ": " + invariant.getName();
            }
            ListOfInvariants.Text     += "\n" + "\n" + "\n";
            ListOfInvariants.Text     += "--- arguments --- \n Graph G \n Complement of graph: cG \n line graph: lG";
            buttonFill.Enabled         = false;
            buttonZoomOriginal.Enabled = false;
            buttonZoomOut.Enabled      = false;
            buttonZoomIn.Enabled       = false;
            buttonPrint.Enabled        = false;
            buttonExp2PNG.Enabled      = false;
        }
예제 #4
0
 private void showInvariantsCheck_CheckedChanged(object sender, EventArgs e)
 {
     if (showInvariantsCheck.Checked == true)
     {
         if (listOfG6.Visible == true)
         {
             foreach (IInvariant invariant in InvariantNum.List())
             {
                 listInvResults.Rows.Add(new string[]
                 {
                     invariant.getName(), invariant.Calculate(new Graph(listOfG6.SelectedItem.ToString())).ToString()
                 });
             }
             listInvResults.Columns[0].ReadOnly = true;
             listInvResults.Columns[1].ReadOnly = true;
             listInvResults.Visible             = true;
         }
     }
     else
     {
         listInvResults.Visible = false;
     }
 }