Exemplo n.º 1
0
        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}");
            }
        }
Exemplo n.º 2
0
        public Operations(IEnumerable <CalcOperation> calc)
        {
            _calcs = calc;

            var orderOperationsProvider = new OrderOperaionProvider(calc);

            _orderedCalcs = orderOperationsProvider.Order();
        }