Пример #1
0
        public void TestMultiply()
        {
            CalculatorOperation cal = new CalculatorOperation();
            int result = cal.Multiply(5, 4);

            Assert.AreEqual(20, result);
        }
Пример #2
0
 public void PressButton(CalculatorOperation operation)
 {
     if (currentOperation == CalculatorOperation.None)
     {
         currentOperation = operation;
         return;
     }
     if (operation == CalculatorOperation.Equals)
     {
         if (currentOperation == CalculatorOperation.None || currentOperation == CalculatorOperation.Equals)
         {
             throw new InvalidOperationException("Operation sequence is not correct");
         }
         double value2 = values.Pop();
         double value1 = values.Pop();
         if (currentOperation == CalculatorOperation.Plus)
         {
             double result = value1 + value2;
             values.Push(result);
         }
         if (currentOperation == CalculatorOperation.Minus)
         {
             double result = value1 - value2;
             values.Push(result);
         }
     }
 }
Пример #3
0
 public void AddOperation(CalculatorOperation op)
 {
     if (Operation == null)
     {
         LeftValue = RightValue;
         OnDidChangeRight(this,
                          new CalculatorEventArgs("Левое значение приняло правое", null, RightValue, null));
         RightValue = null;
         OnDidChangeLeft(this,
                         new CalculatorEventArgs("Правое значение обнулено", null, null, null));
         Operation = op;
         OnDidChangeOperation(this,
                              new CalculatorEventArgs("Изменился оператор", null, null, Operation));
     }
     else if (Operation != null)
     {
         Compute();
         OnDidCompute(this,
                      new ComputeEventArgs(LeftValue.Value, RightValue.Value, Operation.Value, Result.Value));
         LeftValue = Result;
         OnDidChangeRight(this,
                          new CalculatorEventArgs("Левое значение приняло результат", Result, null, null));
         RightValue = null;
         OnDidChangeLeft(this,
                         new CalculatorEventArgs("Правое значение обнулено", null, null, null));
         Operation = op;
         OnDidChangeOperation(this,
                              new CalculatorEventArgs("Изменился оператор", null, null, Operation));
     }
 }
        protected override void Execute(CodeActivityContext context)
        {
            FirstNumber.Set(context, 0);
            SecondNumber.Set(context, 0);
            Operation.Set(context, CalculatorOperation.Unknown);

            String line = Expression.Get(context);

            if (!String.IsNullOrEmpty(line))
            {
                String[] arguments = line.Split(' ');
                if (arguments.Length == 3)
                {
                    Double number = 0;
                    if (Double.TryParse(arguments[0], out number))
                    {
                        FirstNumber.Set(context, number);
                    }

                    CalculatorOperation op = CalculatorOperation.Unknown;
                    Enum.TryParse <CalculatorOperation>(arguments[1], out op);
                    Operation.Set(context, op);

                    if (Double.TryParse(arguments[2], out number))
                    {
                        SecondNumber.Set(context, number);
                    }
                }
            }
        }
Пример #5
0
        public void TestAdd()
        {
            CalculatorOperation cal = new CalculatorOperation();
            int result = cal.Add(5, 4);

            Assert.AreEqual(9, result);
        }
Пример #6
0
        //public override void ContinueExpression(CalculatorOperation operation)
        //{
        //    return;
        //}

        public override void FinishExpression(CalculatorOperation operation)
        {
            CalculationOperation        = operation;
            CalculationOperation.Result = CalculationOperation.SecondArgument;
            Expression = $"{calculator.CalculatorState.CalculationOperation.Result} = {calculator.CalculatorState.CalculationOperation.Result}";
            Reset      = true;
        }
Пример #7
0
        public string ExecuteOperation(CalculatorOperation operation)
        {
            var result = "";

            switch (operation)
            {
            case CalculatorOperation.Add:
                result = (num1 + num2).ToString("0.00");
                break;

            case CalculatorOperation.Subtract:
                result = (num1 - num2).ToString("0.00");
                break;

            case CalculatorOperation.Multiply:
                result = (num1 * num2).ToString("0.00");
                break;

            case CalculatorOperation.Divide:
                if (num2 == 0)
                {
                    result = "Invalid operation";
                }
                else
                {
                    result = (num1 / num2).ToString("0.00");
                }

                break;
            }

            return(result);
        }
 public override void PerformOperation(CalculatorOperation operation)
 {
     CalculationOperation.ExecuteOperation = operation.ExecuteOperation;
     CalculationOperation.OperationSymbol  = operation.OperationSymbol;
     Expression  = Expression.Remove(Expression.Count() - 2, 2);
     Expression += $"{CalculationOperation.OperationSymbol} ";
 }
Пример #9
0
        public void AddOperation(CalculatorOperation op)
        {
            countAfterPoint = 1;
            isPoint         = false;
            if (LeftValue == null)
            {
                LeftValue = 0;
            }
            if (Operation != null)
            {
                if (RightValue != 0)
                {
                    Compute();
                }
            }

            else
            {
                LeftValue = RightValue;
                OnDidChangeLeft?.Invoke(this, new CalculatorEventArgs("Left change", LeftValue, RightValue, Operation));
            }
            Operation  = op;
            RightValue = null;
            OnDidChangeOperation?.Invoke(this, new CalculatorEventArgs("Change operation", LeftValue, RightValue, Operation));
        }
Пример #10
0
        public int Operation(int num1, int num2, CalculatorOperation calculatorOperation)
        {
            //Add if for num1/2

            switch (calculatorOperation)
            {
            case CalculatorOperation.Add:
                return(Add(num1, num2));

            case CalculatorOperation.Subtract:
                return(Add(num1, num2));

            case CalculatorOperation.Divide:
                return(Add(num1, num2));    // I know these are wrong.

            case CalculatorOperation.Multiply:
                return(Add(num1, num2));

            case CalculatorOperation.Modulus:
                return(Add(num1, num2));

            default:
                return(0);
            }
        }
Пример #11
0
        public static int GetNextValue(int currentValue, CalculatorOperation operation, int number)
        {
            // Adjust the calculation for the current operation.
            switch (operation)
            {
            case CalculatorOperation.Addition:
                currentValue += number;
                break;

            case CalculatorOperation.Subtraction:
                currentValue -= number;
                break;

            case CalculatorOperation.Multiplication:
                currentValue *= number;
                break;

            case CalculatorOperation.Division:
                // We'll ignore that integer division is error-prone for the purposes of this exercise.
                currentValue /= number;
                break;

            default:
                throw new ArgumentException($@"Unrecognized operation ""{operation}"".", nameof(operation));
            }

            return(currentValue);
        }
Пример #12
0
        private static void OnAdded(IAsyncResult itfAsyncResult)
        {
            AsyncResult         asyncResult = (AsyncResult)itfAsyncResult;
            CalculatorOperation operation   = (CalculatorOperation)asyncResult.AsyncDelegate;
            int result = operation.EndInvoke(itfAsyncResult);

            Console.WriteLine("The result of the asynchronous invocation is also {0}.", result);
        }
Пример #13
0
        public void resultShouldBeThirteen()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.add(7, 6);

            Assert.That(result, Is.EqualTo(13));
        }
        public void resultShouldBeThirteenWhenPassSevenSix()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.add(7, 6);

            Assert.AreEqual(13, result);
        }
Пример #15
0
        public CalculationResponse Calculate(CalculatorOperation operation, double first, double second)
        {
            var result = _calculator.Calculate(operation, first, second);

            return(new CalculationResponse {
                Result = result
            });
        }
Пример #16
0
        public void resultShouldBeThirteen()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.add(7, 6);

            Assert.That(result, Is.EqualTo(13));
        }
Пример #17
0
        public void resultShouldBeFortyTwoWhenPassSevenSix()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.mul(7, 6);

            Assert.AreEqual(42, result);
        }
Пример #18
0
        public void resultShouldBeThirteenWhenPassSevenSix()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.add(7, 6);

            Assert.AreEqual(13, result);
        }
Пример #19
0
        public void resultShouldBeFortyTwo()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.mul(7, 6);

            Assert.That(result, Is.EqualTo(42));
        }
Пример #20
0
        public void resultShouldBeFortyTwo()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.mul(7, 6);

            Assert.That(result, Is.EqualTo(42));
           
        }
Пример #21
0
        private CalculationTask CreateCalculationTask(CalculatorOperation item1, CalculatorOperation item2, string version)
        {
            var operationtask = calculatorServiceFinder.FindByCalculatorOperation(item2.Operation, version);
            var continueWith  = operationtask.ContinueWith(operation =>
                                                           httpClient.GetStringAsync(operation.Result, item2.Operation, item1.Value, item2.Value));


            return(new CalculationTask(continueWith, item2.Operation));
        }
Пример #22
0
        public void CalculatorOperationTest6()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();
            List <string>       input = new List <string> {
                "5", "+", "6", "+"
            };

            Assert.ThrowsException <System.FormatException>(() => calculatorOperation.PerformCalculation(input));
        }
Пример #23
0
        public void TestDivide()
        {
            CalculatorOperation cal = new CalculatorOperation();
            int numerator           = 4;
            int denominator         = 0;
            int actualResult;

            actualResult = cal.Divide(numerator, denominator);
        }
 public override void FinishExpression(CalculatorOperation operation)
 {
     CalculationOperation.SecondArgument = operation.SecondArgument;
     CalculationOperation.Result         = CalculationOperation.ExecuteOperation(CalculationOperation.FirstArgument, CalculationOperation.SecondArgument);
     Expression += $" {operation.SecondArgument} = {CalculationOperation.Result}";
     calculator.CalculatorState = new InitialState(calculator);
     calculator.CalculatorState.CalculationOperation = CalculationOperation;
     calculator.CalculatorState.Expression           = Expression;
 }
Пример #25
0
        static void Main(string[] args)
        {
            double radius = 1.5;
            var    c1     = new Circle(radius);

            var output = new CalculatorOperation();

            output.Write(radius, c1);
        }
        public void resultShouldBeFortyTwoWhenPassSevenSix()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();

            float result = calculatorOperation.mul(7, 6);

            Assert.AreEqual(42, result);
          
        }
Пример #27
0
            public CalculatorResult(CalculatorOperation operation, long result)
            {
                if (operation == null)
                {
                    throw new ArgumentNullException("operation");
                }

                _id     = operation._id;
                _result = result;
            }
        private static void TesAdd(string input, int expectedREsult)
        {
            //Arrange
            CalculatorOperation cal = new CalculatorOperation();
            //Act
            var result = cal.Add(input);

            //Assert
            Assert.AreEqual(expectedREsult, result);
        }
Пример #29
0
        public void ShouldInitializeStoreStateWithFirstValue(int value, CalculatorOperation operation)
        {
            var store = NewCalculator();

            store.CommitNumber(value, operation);

            var storeCurrentValue = GetCurrentCalculatorValue(store);

            Assert.IsTrue(storeCurrentValue.HasValue);
            Assert.AreEqual(value, storeCurrentValue);
        }
Пример #30
0
        public void CalculatorOperationTest2()
        {
            CalculatorOperation calculatorOperation = new CalculatorOperation();
            List <string>       input = new List <string> {
                "5", "2", "*", "10", "+"
            };
            var actualResult   = calculatorOperation.PerformCalculation(input);
            var expectedResult = 20;

            Assert.AreEqual(expectedResult, actualResult);
        }
Пример #31
0
        public void ShouldReturnSumAfterTwoDigitsAdded(CalculatorOperation operation, int[] numbers, int expectedValue)
        {
            var store = NewCalculator();

            foreach (var number in numbers)
            {
                store.CommitNumber(number, operation);
            }

            var result = store.GetResult();

            Assert.AreEqual(expectedValue, result);
        }
Пример #32
0
        public override void PerformOperation(CalculatorOperation operation)
        {
            calculator.CalculatorState = new OperationChoosingState(calculator);
            calculator.CalculatorState.CalculationOperation = new CalculatorOperation
            {
                FirstArgument    = operation.SecondArgument,
                ExecuteOperation = operation.ExecuteOperation,
                OperationSymbol  = operation.OperationSymbol,
                Result           = operation.SecondArgument
            };

            calculator.CalculatorState.Expression = $"{calculator.CalculatorState.CalculationOperation.FirstArgument} {calculator.CalculatorState.CalculationOperation.OperationSymbol} ";
        }
Пример #33
0
 public override void PerformOperation(CalculatorOperation operation)
 {
     CalculationOperation.SecondArgument = operation.SecondArgument;
     CalculationOperation.Result         = CalculationOperation.ExecuteOperation(CalculationOperation.FirstArgument, CalculationOperation.SecondArgument);
     calculator.CalculatorHistory?.AddToHistory(CalculationOperation);
     Expression += $"{CalculationOperation.SecondArgument} {operation.OperationSymbol} ";
     CalculationOperation.FirstArgument = CalculationOperation.Result;
     calculator.CalculatorState         = new OperationChoosingState(calculator);
     calculator.CalculatorState.CalculationOperation = CalculationOperation;
     CalculationOperation.OperationSymbol            = operation.OperationSymbol;
     CalculationOperation.ExecuteOperation           = operation.ExecuteOperation;
     calculator.CalculatorState.Expression           = Expression;
 }
Пример #34
0
        //public override void ContinueExpression(CalculatorOperation operation)
        //{

        //    calculator.CalculatorState = new OperationChoosingState(calculator) { Reset = true };
        //    CalculationOperation.FirstArgument = CalculationOperation.Result;
        //    CalculationOperation.ExecuteOperation = operation.ExecuteOperation;
        //    calculator.CalculatorState.CalculationOperation = CalculationOperation;
        //}

        public override void FinishExpression(CalculatorOperation operation)
        {
            CalculationOperation.SecondArgument = operation.SecondArgument;
            CalculationOperation.Result         = CalculationOperation.ExecuteOperation(CalculationOperation.FirstArgument, CalculationOperation.SecondArgument);
            calculator.CalculatorHistory?.AddToHistory(CalculationOperation);
            Expression += $"{CalculationOperation.SecondArgument} = {CalculationOperation.Result}";
            calculator.CalculatorState = new InitialState(calculator)
            {
                Reset = true,
                CalculationOperation = CalculationOperation,
                Expression           = Expression
            };
        }
Пример #35
0
 private void OnEqualsButtonPressed()
 {
     if (!(currentOperation == CalculatorOperation.None || isOperationButtonPressed == true))
     {
         switch (currentOperation)
         {
             case CalculatorOperation.Add:
                 currentNumber += firstNumber;
                 break;
             case CalculatorOperation.Subtract:
                 currentNumber = firstNumber - currentNumber;
                 break;
             case CalculatorOperation.Multiply:
                 currentNumber *= firstNumber;
                 break;
             case CalculatorOperation.Divide:
                 if (currentNumber != 0)
                 {
                     currentNumber = firstNumber / currentNumber;
                 }
                 else
                 {
                     ScreenTextBlock.Text = "Can't divide by zero.";
                 }
                 break;
             default:
                 throw new NotSupportedException(String.Format("Unsupported operation: {0}",
                     Enum.GetName(typeof(CalculatorOperation), currentOperation)));
         }
         if (!(currentOperation == CalculatorOperation.Divide && currentNumber == 0))
         {
             OnValueChanged();
         }
         currentOperation = CalculatorOperation.None;
         isCalculationDone = true;
     }
 }
            public CalculatorResult(CalculatorOperation operation, long result)
            {
                if (operation == null)
                    throw new ArgumentNullException("operation");

                _id = operation._id;
                _result = result;
            }
Пример #37
0
 private void OnClearButtonPressed()
 {
     firstNumber = new Number(0);
     currentNumber = new Number(0);
     isOperationButtonPressed = false;
     isFloatButtonPressed = false;
     isEnteringSecondNumber = false;
     isCalculationDone = false;
     currentOperation = CalculatorOperation.None;
     OnValueChanged();
 }
Пример #38
0
        private void OnOperationButtonPressed(CalculatorOperation operation)
        {
            if (isEnteringSecondNumber)
            {
                OnEqualsButtonPressed();
            }

            currentOperation = operation;
            isOperationButtonPressed = true;
            isFloatButtonPressed = false;
        }