Esempio n. 1
0
        [TestCase(-2, CalcOperatorType.Division, 3, 2, -0.67)]  // 1 / 6
        public void Precision(double op1, CalcOperatorType calcType, double op2, int precision, double expected)
        {
            var sut = new CalculatorAPI();

            sut.AddNumber(op1);
            sut.AddOperator(new CalcOperator(calcType));
            sut.AddNumber(op2);

            Assert.AreEqual(expected, sut.Value(precision));
        }
Esempio n. 2
0
        [TestCase(6, CalcOperatorType.Division, 0.5, 12)]        // 6 / 0.5
        public void TwoOperandsAPI(double op1, CalcOperatorType calcType, double op2, double expected)
        {
            var sut = new CalculatorAPI();

            sut.AddNumber(op1);
            sut.AddOperator(new CalcOperator(calcType));
            sut.AddNumber(op2);

            Assert.AreEqual(expected, sut.Value());
        }
Esempio n. 3
0
        [TestCase(10, CalcOperatorType.Subtraction, 4, CalcOperatorType.Division, 2, 8)]   // 10 - 4 / 2
        public void ThreeOperandsException(double op1, CalcOperatorType calcType1, double op2, CalcOperatorType calcType2, double op3, double result)
        {
            var sut = new CalculatorAPI();

            sut.AddNumber(op1);
            sut.AddOperator(new CalcOperator(calcType1));
            sut.AddNumber(op2);

            var ex = Assert.Throws <CalculatorException>(() => sut.AddOperator(new CalcOperator(calcType2)));

            Assert.AreEqual("API does not support BEDMAS processing.", ex.Message);
        }
Esempio n. 4
0
        [TestCase(3, CalcOperatorType.Addition, 2, 1)] // 3 + 2 1
        public void TooManyOperandExceptionAPI(double op1, CalcOperatorType calcType, double op2, double op3)
        {
            var sut = new CalculatorAPI();

            sut.AddNumber(op1);
            sut.AddOperator(new CalcOperator(calcType));
            sut.AddNumber(op2);
            sut.AddNumber(op3);

            double x;
            var    ex = Assert.Throws <System.AggregateException>(() => x = sut.Value());

            Assert.AreEqual("One or more errors occurred. (Response status code does not indicate success: 400 (Bad Request).)", ex.Message);
        }