Пример #1
0
        public static Equation Add(this Equation equation, IEnumerable <Term> termsToAdd)
        {
            equation.AddToLeft(termsToAdd);
            equation.AddToRight(termsToAdd);

            return(equation);
        }
Пример #2
0
        public static Equation ReplaceVarWithExpression(this Equation equation, Variable varToReplace, IEnumerable <Term> aliasExpr)
        {
            var foundOnLeft  = equation.LeftSide.SingleOrDefault(term => term.Variable?.Equals(varToReplace) ?? false);
            var foundOnRight = equation.RightSide.SingleOrDefault(term => term.Variable?.Equals(varToReplace) ?? false);

            if (foundOnLeft != null)
            {
                equation.AddToLeft(new Term[] { new Term {
                                                    SignedCoefficient = foundOnLeft.SignedCoefficient * -1, Variable = varToReplace
                                                } });
                equation.AddToLeft(aliasExpr.Copy().Multiply(foundOnLeft.SignedCoefficient));
            }
            if (foundOnRight != null)
            {
                equation.AddToRight(new Term[] { new Term {
                                                     SignedCoefficient = foundOnRight.SignedCoefficient * -1, Variable = varToReplace
                                                 } });
                equation.AddToRight(aliasExpr.Copy().Multiply(foundOnRight.SignedCoefficient));
            }

            return(equation);
        }
 public void Extensions_AddToRight()
 {
     Assert.AreEqual("-3y1 +2y2 +1y3 +4y4 <= +5 +1y1 -2y2 +5y3", _eq.AddToRight(_terms).ToString());
 }