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()); }