private void SolveForVariablesOnBothSide(Equation eq)
        {
            //IVariable firstVar = Left.Variables.First();

            IsolateSingleVariable(eq);
        }
 public static bool OnlyArithmeticTokens(this Equation source)
 {
     return(source.LeftHandSide.OnlyArithmeticTokens() && source.RightHandSide.OnlyArithmeticTokens());
 }
 public static void Substitute(this Equation source, IVariable variable, Token[] expression)
 {
     source.LeftHandSide.Substitute(variable, expression);
     source.RightHandSide.Substitute(variable, expression);
 }
 public static void ApplyToBothSides(this Equation source, OperatorExpressionPair pair)
 {
     source.LeftHandSide.Insert(pair);
     source.RightHandSide.Insert(pair);
 }
 public static int GetDistinctVariableCount(this Equation source)
 {
     return(source.LeftHandSide.Variables.Concat(source.RightHandSide.Variables).Distinct().Count());
 }