/// <summary>
        /// Adds input constraint to current
        /// </summary>
        /// <param name="constraint">Constraint that must be equal</param>
        /// <exception cref="FormatException">If one of the constraints is not equal</exception>
        public void Add(Constraint constraint)
        {
            if (constraint.Sign != "=" || Sign != "=")
                throw new FormatException("Constraints must be equal constraints");

            var current = new EqualityConstraint(LeftSide, RightSide);
            var input = new EqualityConstraint(constraint.LeftSide, constraint.RightSide);

            current.Add(input);

            _leftSide = new List<Variable>(current.LeftSide);
            _rightSide = current.RightSide;
        }
 /// <summary>
 /// Adds limitation to current limitation
 /// </summary>
 public void Add(EqualityConstraint limitation)
 {
     foreach (var var in limitation.LeftSide)
         AddVariable(var, false);
     SetRightSide(RightSide + limitation.RightSide);
 }
 /// <summary>
 /// Subtracts limitation from current limitation
 /// </summary>
 public void Subtract(EqualityConstraint limitation)
 {
     foreach (var var in limitation.LeftSide)
         AddVariable(new Variable(var.Coefficient * -1, var.Label, var.Power), false);
     SetRightSide(RightSide - limitation.RightSide);
 }
 /// <summary>
 /// Represents copy of math limitation(equality)
 /// </summary>
 public EqualityConstraint(EqualityConstraint limitation)
     : base(limitation)
 {
 }