示例#1
0
        static void Main(string[] args)
        {
            SetOptions(args);

            try
            {
                var operation  = GetOperation();
                var delimiters = GetDelimiters();
                var input      = GetInput();



                var calculator = CalculatorBuilder
                                 .With(input)
                                 .And(delimiters)
                                 .ValidNumbers()
                                 .FilterNegative(allowNegatives)
                                 .FilterGreaterThan(upperBound)
                                 .For(operation);


                var result  = calculator.Calculate();
                var formula = calculator.Formula();

                Console.WriteLine(string.Format("Result : {0}", result));
                Console.WriteLine(string.Format("Formula : {0}", formula));
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }

            Console.Read();
        }
 public void ShouldThrowExceptionWhenInputHasNegativeNumbers(string input)
 {
     Assert.Throws <ArgumentException>(() =>
                                       CalculatorBuilder
                                       .With(input)
                                       .And(delimiter)
                                       .ValidNumbers()
                                       .FilterNegative(false)
                                       .FilterGreaterThan(1000)
                                       .For('+')
                                       .Calculate());
 }
        public void ShouldIgnoreTextOrEmptyValueAndReturnCorrectSumAndFormula(string input, int expectedSum, string expectedFormula)
        {
            var actualResult = CalculatorBuilder
                               .With(input)
                               .And(delimiter)
                               .ValidNumbers()
                               .FilterNegative(false)
                               .FilterGreaterThan(1000)
                               .For('+');

            Assert.AreEqual(expectedSum, actualResult.Calculate());
            Assert.AreEqual(expectedFormula, actualResult.Formula());
        }
 public void ShouldReturnNegativeNumbersWithExceptionWhenInputHasNegativeNumbers(string input)
 {
     Assert.That(() =>
                 CalculatorBuilder
                 .With(input)
                 .And(delimiter)
                 .ValidNumbers()
                 .FilterNegative(false)
                 .FilterGreaterThan(1000)
                 .For('+')
                 .Calculate(),
                 Throws.TypeOf <ArgumentException>().With.Message
                 .EqualTo("Negatives not allowed. -3,-1"));
 }
        public void ShouldReturnCorrectSumAndFormulaForCommaSeparatedNumbers
            (string input,
            bool allowNegative,
            int upperBound,
            int expectedSum,
            string expectedFormula)
        {
            var actualResult = CalculatorBuilder
                               .With(input)
                               .And(delimiter)
                               .ValidNumbers()
                               .FilterNegative(allowNegative)
                               .FilterGreaterThan(upperBound)
                               .For('+');

            Assert.AreEqual(expectedSum, actualResult.Calculate());
            Assert.AreEqual(expectedFormula, actualResult.Formula());
        }