Example #1
0
        public double Calculate(CalcOperations argOperation, double argFirstNumber, double argSecondNumber)
        {
            double resultOperation = 0;

            switch (argOperation)
            {
            case CalcOperations.Add:
                resultOperation = argFirstNumber + argSecondNumber;
                break;

            case CalcOperations.Subtract:
                resultOperation = argFirstNumber - argSecondNumber;

                break;

            case CalcOperations.Divide:
                resultOperation = argFirstNumber / argSecondNumber;

                break;

            case CalcOperations.Multiply:
                resultOperation = argFirstNumber * argSecondNumber;

                break;

            default:
                throw new InvalidOperationException("Specified operation is note recognized");
            }

            return(resultOperation);
        }
Example #2
0
        private void OperationOnNumber(CalcOperations op)
        {
            if (lastOperation == true)
            {
                calculation();
            }

            switch (op)
            {
            case CalcOperations.DIVIDE:
                this.op = CalcOperations.DIVIDE;
                break;

            case CalcOperations.MULTIPLICATION:
                this.op = CalcOperations.MULTIPLICATION;
                break;

            case CalcOperations.SUBSTRACTION:
                this.op = CalcOperations.SUBSTRACTION;
                break;

            case CalcOperations.ADDITION:
                this.op = CalcOperations.ADDITION;
                break;
            }

            if (this.op != CalcOperations.NONE)
            {
                Events.current.onDisplayResultUp(OperationResult());
            }
            lastOperation = true;
        }
Example #3
0
 private void ResetAll()
 {
     op            = CalcOperations.NONE;
     firstNumber   = 0;
     lastNumber    = 0;
     resetNum      = false;
     lastOperation = false;
 }
Example #4
0
        // sqrt 1/x +-
        private void oneOperandOperationBtnPressed(object param)
        {
            string oper = param.ToString();

            if (isCalcEnabled)
            {
                isOpEnded          = true;
                InputLength        = 0;
                isEqBtnPressedLast = false;
                switch (oper)
                {
                case ("r"):
                    Stack        += "sqrt(" + Input + ")";
                    Input         = CalcOperations.root(Input);
                    isCalcEnabled = ValidateOutput(Input);
                    break;

                case ("-1"):
                    Stack        += "reciproc(" + Input + ")";
                    Input         = CalcOperations.inv(Input);
                    isCalcEnabled = ValidateOutput(Input);
                    break;

                case ("+-"):
                    if (Input.Contains("-"))
                    {
                        Input = Input.Trim('-');
                    }
                    else
                    {
                        if (Input != "0")
                        {
                            string buf = Input;
                            Input  = "-";
                            Input += buf;
                        }
                    }
                    break;

                case ("%"):
                    if (FirstN == "")
                    {
                        Input = "0";
                    }
                    else
                    {
                        Input = CalcOperations.percent(FirstN, Input);
                    }
                    Stack += Input;
                    break;

                default:
                    break;
                }
            }
        }
Example #5
0
        public void DivideByZeroTest()
        {
            //Arrange
            double         num1 = 550;
            double         num2 = 0;
            CalcOperations calc = new CalcOperations();

            //Act & Assert
            Assert.ThrowsException <DivideByZeroException>(() => calc.Divide(num1, num2));
        }
Example #6
0
        public void SubtractTest()
        {
            //Arrange
            double         num1     = 550;
            double         num2     = 2300;
            double         expected = -1750;
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Subtract(num1, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #7
0
        public void MultiplyTest()
        {
            //Arrange
            double         num1     = 55;
            double         num2     = 2.3;
            double         expected = 126.49999999999999;
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Multiply(num1, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #8
0
        public void DivideTest()
        {
            //Arrange
            double         num1     = 550;
            double         num2     = 2;
            double         expected = 275;
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Divide(num1, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #9
0
        public void AddTest()
        {
            //Arrange
            double         num1     = 550;
            double         num2     = 550;
            double         expected = 1100;
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Add(num1, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #10
0
        public void EqualsAddTest()
        {
            //Arrange
            double         num1     = 550;
            double         num2     = 550;
            string         operand  = "+";
            double         expected = 1100;
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Equal(num1, operand, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #11
0
        public void EqualsDivideTest()
        {
            //Arrange
            double         num1     = 550;
            double         num2     = 2;
            double         expected = 275;
            string         operand  = "/";
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Equal(num1, operand, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #12
0
        public void EqualsMultiplyTest()
        {
            //Arrange
            double         num1     = 55;
            double         num2     = 2.3;
            double         expected = 126.49999999999999;
            string         operand  = "*";
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Equal(num1, operand, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
Example #13
0
        public void EqualsSubtractTest()
        {
            //Arrange
            double         num1     = 550;
            double         num2     = 2300;
            double         expected = -1750;
            string         operand  = "-";
            CalcOperations calc     = new CalcOperations();

            //Act
            double actual = calc.Equal(num1, operand, num2);

            //Assert
            Assert.AreEqual(expected, actual);
        }
        private void HandleOperations(CalcOperations co)
        {
            try
            {
                int val1 = int.Parse(txtFirstNum.Text);
                int val2 = int.Parse(txtSecondNum.Text);

                switch (co)
                {
                case CalcOperations.Add:
                    lstResult.Items.Add($"{val1} + {val2} = {val1 + val2}");
                    break;

                case CalcOperations.Subtract:
                    lstResult.Items.Add($"{val1} - {val2} = {val1 - val2}");
                    break;

                case CalcOperations.Multiply:
                    lstResult.Items.Add($"{val1} x {val2} = {val1 * val2}");
                    break;

                case CalcOperations.Divide:
                    lstResult.Items.Add($"{val1} / {val2} = {val1 / val2}");
                    break;
                }
                txtFirstNum.Text  = "";
                txtSecondNum.Text = "";
                // The following 2 lines are to try and focus the closest line in the result for screenreader users after calculation
                lstResult.SelectedItem = lstResult.Items[lstResult.Items.Count - 1];
                lstResult.Focus();
            }
            catch (DivideByZeroException)
            {
                lblErrMsg.Content    = "Felaktigt värde, du försöker dividera med 0!";
                lblErrMsg.Visibility = Visibility.Visible;
                // We set focus on this for screenreader users, it goes away when it looses focus
                lblErrMsg.Focus();
            }

            catch (FormatException)
            {
                lblErrMsg.Content    = "Felaktigt värde, ange enbart siffror!";
                lblErrMsg.Visibility = Visibility.Visible;
                // We set focus on this for screenreader users, it goes away when it looses focus
                lblErrMsg.Focus();
            }
        }
Example #15
0
        //calculates result
        private string Calculate(string operation, string input)
        {
            if (LastOp == "" || !isNumbBtnPressedLast)
            {
                LastOp = operation;
                FirstN = input;
                return(FirstN);
            }
            else
            {
                SecondN = input;
                switch (LastOp)
                {
                case ("+"):
                    FirstN = CalcOperations.plus(FirstN, SecondN);
                    LastOp = operation;
                    return(FirstN);

                case ("-"):
                    FirstN = CalcOperations.minus(FirstN, SecondN);
                    LastOp = operation;
                    return(FirstN);

                case ("*"):
                    FirstN = CalcOperations.mult(FirstN, SecondN);
                    LastOp = operation;
                    return(FirstN);

                case ("/"):
                    FirstN = CalcOperations.div(FirstN, SecondN);
                    LastOp = operation;
                    return(FirstN);

                default:
                    return("Invalid input");
                }
            }
        }
Example #16
0
 public void OperationClick(CalcOperations op) => onCalcOperation(op);