예제 #1
0
 void OneCalculator(object sender, EventArgs e)
 {
     try
     {
         double       firstArgument = Convert.ToDouble(firstElement.Text);
         IOneArgument oneCalculator = OneArgumentFactory.CreateCalculator(((Button)sender).Name);
         double       result        = oneCalculator.OneCalculate(firstArgument);
         Conclusion.Text = result.ToString();
     }
     catch (FormatException exception)
     {
         firstElement.Text = "";
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
 }
예제 #2
0
 /// <summary>
 /// Function for operations with one argument
 /// </summary>
 /// <param name="sender">Button, that activated ivent</param>
 /// <param name="e">Operation type</param>
 private void CalculatorSingleArgument(object sender, EventArgs e)
 {
     try
     {
         {
             var    validator     = new Validator();
             double firstArgument = validator.ValidateNumber(FirstInput.Text);
             string operationName = (((Button)sender).Name);
             var    operation     = OneArgumentFactory.CreateCalculator(operationName);
             double result        = operation.Calculate(firstArgument);
             Value.Text = Convert.ToString(result);
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message, "Error", MessageBoxButtons.OK);
     }
 }
예제 #3
0
 private void OneArgumentOperationButtonClick(object sender, EventArgs e)
 {
     try
     {
         var argument   = Convert.ToDouble(firstInputField.Text);
         var calculator = OneArgumentFactory.CreateCalculator(((Button)sender).Name);
         var result     = calculator.Calculate(argument);
         outputField.Text = result.ToString(CultureInfo.InvariantCulture);
     }
     catch (DivideByZeroException exception)
     {
         outputField.Text = "Ошибка";
         MessageBox.Show("Нельзя делить на ноль", "Возникло исключение", MessageBoxButtons.OK);
     }
     catch (Exception exception)
     {
         outputField.Text = "Ошибка";
         MessageBox.Show(exception.Message, "Возникло исключение", MessageBoxButtons.OK);
     }
 }
예제 #4
0
        public void ArcSinusExeptionTest()
        {
            IOneArgumentCalculator calculator = OneArgumentFactory.CreateCalculator("arccos");

            Assert.Throws <Exception>(() => calculator.Calculate(5));
        }
예제 #5
0
        public void Log2xExeptionTest()
        {
            IOneArgumentCalculator calculator = OneArgumentFactory.CreateCalculator("log2x");

            Assert.Throws <Exception>(() => calculator.Calculate(0));
        }
예제 #6
0
        public void CalculateTest(string name, Type type)
        {
            var calculator = OneArgumentFactory.CreateCalculator(name);

            Assert.IsInstanceOf(type, calculator);
        }
예제 #7
0
        public void ReverseExeptionTest()
        {
            IOneArgumentCalculator calculator = OneArgumentFactory.CreateCalculator("reverse");

            Assert.Throws <Exception>(() => calculator.Calculate(0));
        }
예제 #8
0
        public void MyCalculateTest()
        {
            IOneArgumentCalculator calculator = OneArgumentFactory.CreateCalculate("Log2x");

            Assert.Throws <Exception>(() => calculator.Calculate(-3));
        }
        public void CreateCalculator(Type expectedTypeOfOperation, string nameOfOperation)
        {
            Type resultType = OneArgumentFactory.CreateCalculator(nameOfOperation).GetType();

            Assert.AreEqual(expectedTypeOfOperation, resultType);
        }