private void ButtonOperation_Click(object sender, RoutedEventArgs e)
        {
            MathsOperation operation = MathsOperation.None;

            switch ((sender as Button).Name)
            {
            case "ButtonEquals":
                operation = MathsOperation.None;
                break;

            case "ButtonPlus":
                operation = MathsOperation.Add;
                break;

            case "ButtonMinus":
                operation = MathsOperation.Subtract;
                break;

            case "ButtonMultiply":
                operation = MathsOperation.Multiply;
                break;

            case "ButtonDivide":
                operation = MathsOperation.Divide;
                break;

            case "ButtonExponent":
                operation = MathsOperation.Power;
                break;

            case "ButtonModulo":
                operation = MathsOperation.Modulo;
                break;

            case "ButtonNaturalLog":
                operation = MathsOperation.NaturalLog;
                break;

            case "ButtonLog10":
                operation = MathsOperation.Log10;
                break;

            case "ButtonSqrt":
                operation = MathsOperation.Sqrt;
                break;

            case "ButtonEx":
                operation = MathsOperation.Ex;
                break;
            }

            OperationButtonClicked(operation);
        }
Пример #2
0
        public void TestAddition()
        {
            MathsOperation mathsOperation = new MathsOperation();

            Assert.AreEqual(3, mathsOperation.Addtion(1, 2));
        }
        /// <summary>
        /// Method used for executing an operation and displaying its result. Called whenever a button is pressed.
        /// If two operations have been called (eg. num1 + num2 +), then the first operation is executed, and the second one is stored for later.
        /// </summary>
        /// <param name="newOperation">The operation pressed, None if pressed Equals</param>
        private void OperationButtonClicked(MathsOperation newOperation)
        {
            // Do the check here

            if (ViewModel.MathsOperation != MathsOperation.None)
            {
                // If the operation isn't none, then perform that operation and save the new one
                // eg. value1 + value2 + value3 = ; first add value1+value2, then add value3

                string result = "ERR";

                ViewModel.NumbersAsStrings.Add(ResultBlock.Text);

                switch (ViewModel.MathsOperation)
                {
                case MathsOperation.Add:
                    result = ViewModel.Add();
                    break;

                case MathsOperation.Subtract:
                    result = ViewModel.Subtract();
                    break;

                case MathsOperation.Multiply:
                    result = ViewModel.Multiply();
                    break;

                case MathsOperation.Divide:
                    result = ViewModel.Divide();
                    break;

                case MathsOperation.Power:
                    result = ViewModel.RaiseToPower();
                    break;

                case MathsOperation.Modulo:
                    result = ViewModel.Modulo();
                    break;

                case MathsOperation.NaturalLog:
                    result = ViewModel.NaturalLog();
                    break;

                case MathsOperation.Log10:
                    result = ViewModel.Log10();
                    break;

                case MathsOperation.Sqrt:
                    result = ViewModel.Sqrt();
                    break;

                case MathsOperation.Ex:
                    result = ViewModel.Ex();
                    break;
                }

                ResultBlock.Text = result;
            }
            else
            {
                ResultBlock.Text = "";
            }

            ViewModel.NumbersAsStrings.Clear();
            ViewModel.NumbersAsStrings.Add(ResultBlock.Text);

            ViewModel.MathsOperation = newOperation;
        }