Beispiel #1
0
 public void Setup()
 {
     _equationPartsIdentifier = A.Fake <IEquationPartsIdentifier>();
     _mathsRuleResolver       = A.Fake <IMathsRuleResolver>();
     _mathsResolver           = new MathsResolver(_equationPartsIdentifier,
                                                  new List <IMathsRuleResolver> {
         _mathsRuleResolver
     });
 }
Beispiel #2
0
 private List <string> ResolveGeneric(List <string> equationList, IMathsRuleResolver mathsRuleResolver)
 {
     while (equationList.Contains(mathsRuleResolver.Operator))
     {
         var i = 0;
         while (i < equationList.Count)
         {
             if (equationList[i] == mathsRuleResolver.Operator)
             {
                 if (FirstTermIsNegative(equationList, i) && SecondTermIsNegative(equationList, i))
                 {
                     equationList[i - 2] = PrependPosSign(mathsRuleResolver.BothNegativeResolution(equationList, i));
                     equationList.RemoveRange(i - 1, 4);
                 }
                 else if (FirstTermIsNegative(equationList, i))
                 {
                     equationList[i - 2] = PrependPosSign(mathsRuleResolver.FirstTermNegativeResolution(equationList, i));
                     equationList.RemoveRange(i - 1, 3);
                 }
                 else if (SecondTermIsNegative(equationList, i))
                 {
                     equationList[i - 1] = PrependPosSign(mathsRuleResolver.SecondTermNegativeResolution(equationList, i));
                     equationList.RemoveRange(i, 3);
                 }
                 else if (i == 0)
                 {
                     equationList[i] = PrependPosSign(mathsRuleResolver.BothPositiveResolution(equationList, i));
                     equationList.RemoveRange(i + 1, 1);
                 }
                 else
                 {
                     equationList[i - 1] = PrependPosSign(mathsRuleResolver.BothPositiveResolution(equationList, i));
                     equationList.RemoveRange(i, 2);
                 }
                 i = equationList.Count;
             }
             i++;
         }
     }
     return(equationList);
 }