public static Equation Add(this Equation equation, IEnumerable <Term> termsToAdd) { equation.AddToLeft(termsToAdd); equation.AddToRight(termsToAdd); return(equation); }
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()); }