public void OrderTest1() { //+2-2*2/3+4+4*2/3 var operations = new List <CalcOperation>(); operations.Add(new CalcOperation(CalcOperation.EOperation.Plus, new Constant(2))); operations.Add(new CalcOperation(CalcOperation.EOperation.Minus, new Constant(2))); operations.Add(new CalcOperation(CalcOperation.EOperation.Multiply, new Constant(2))); operations.Add(new CalcOperation(CalcOperation.EOperation.Divide, new Constant(3))); operations.Add(new CalcOperation(CalcOperation.EOperation.Plus, new Constant(4))); operations.Add(new CalcOperation(CalcOperation.EOperation.Plus, new Constant(4))); operations.Add(new CalcOperation(CalcOperation.EOperation.Multiply, new Constant(2))); operations.Add(new CalcOperation(CalcOperation.EOperation.Divide, new Constant(3))); var orderProvider = new OrderOperaionProvider(operations); var resultOperations = orderProvider.Order(); string result = String.Join(String.Empty, resultOperations); string compare = "-2*2/3+4*2/3+2+4"; if (!String.Equals(result, compare)) { throw new Exception($"{result} != {compare}"); } }
public Operations(IEnumerable <CalcOperation> calc) { _calcs = calc; var orderOperationsProvider = new OrderOperaionProvider(calc); _orderedCalcs = orderOperationsProvider.Order(); }