Beispiel #1
0
        public static void TestDoubleCalculator()
        {
            Console.Clear();
            ICalculator <double>      calc = new DoubleCalculator();
            INumberValidator <double> validator = new DoubleValidator();
            double value1, value2, result;

            while (true)
            {
                try
                {
                    Console.Write("Введите операцию (+ - * /): ");
                    ConsoleKeyInfo key = Console.ReadKey();
                    if (key.Key == ConsoleKey.Escape)
                    {
                        return;
                    }
                    char operation = key.KeyChar;
                    if (operations.IndexOf(operation) == -1)
                    {
                        Console.WriteLine("\r\nА вот и не правильно");
                        continue;
                    }
                    Console.Write("\r\nВведите 2 числа разделенных пробелом: ");
                    if (!validator.ValidateTwoNumbers(Console.ReadLine(), out value1, out value2))
                    {
                        Console.WriteLine("Неверный ввод. Придется повторить");
                        continue;
                    }
                    switch (operation)
                    {
                    case '+':
                        result = calc.Add(value1, value2);
                        break;

                    case '-':
                        result = calc.Subtract(value1, value2);
                        break;

                    case '*':
                        result = calc.Multiply(value1, value2);
                        break;

                    case '/':
                        result = calc.Divide(value1, value2);
                        break;

                    default:
                        continue;
                    }
                    Console.WriteLine($"{ value1}{ operation}{ value2}={ result}");
                }
                catch (Exception e)
                {
                    Console.WriteLine($"Exception {e.GetType().Name}: {e.Message}");
                }
            }
        }
Beispiel #2
0
        public void ExecuteOK(
            [Values(1)] double x,
            [Values(2)] double y,
            [Values("+", "-", "/", "*", "%", "log10", "sqrt", "^")] string operation
            )
        {
            string inputData         = x.ToString() + " " + operation + " " + y;
            var    mockUserInterface = new Mock <IUI>();

            mockUserInterface.Setup((_) => _.Input).Returns(() => inputData);
            mockUserInterface.Setup((_) => _.Output).Returns((a, __) => { Console.WriteLine(a); });

            var mockdataConverter = new Mock <IDataConverter <Data> >();

            mockdataConverter.Setup((_) => _.GetData(inputData)).Returns(new Data(x, y, operation));

            ICalculator <double> calculator = new DoubleCalculator(mockUserInterface.Object, mockdataConverter.Object);

            calculator.Execute();
        }
Beispiel #3
0
        public void ExecuteExeption(
            [Values(1)] double x,
            [Values(2)] double y,
            [Values("NAN")] string operation
            )
        {
            string inputData         = x.ToString() + " " + operation + " " + y;
            var    mockUserInterface = new Mock <IUI>();

            mockUserInterface.Setup((_) => _.Input).Returns(() => inputData);
            mockUserInterface.Setup((_) => _.Output).Returns((a, __) => { Console.WriteLine(a); });

            var mockdataConverter = new Mock <IDataConverter <Data> >();

            mockdataConverter.Setup((_) => _.GetData(inputData)).Returns(new Data(x, y, operation));

            ICalculator <double> calculator = new DoubleCalculator(mockUserInterface.Object, mockdataConverter.Object);

            Assert.Throws <NullReferenceException>(
                () => calculator.Execute()
                );
        }
 public void Initialization()
 {
     _calculator = new DoubleCalculator();
 }