public void TestRandomText() { // Validate basic numbers. var result = InputStringParser.Parse("how much wood could a woodchuck chuck if a woodchuck could chuck wood?"); Debug.Assert(result.ResultType == ResultType.Question); }
public void TestValidUnitInformation() { // Validate basic numbers. var result = InputStringParser.Parse("glob is I"); Debug.Assert(result.ResultType == ResultType.UnitInfo && result.Tokens.Count == 2); }
public void TestMetalInformation() { // Validate basic numbers. var result = InputStringParser.Parse("glob glob Silver is 34 Credits"); Debug.Assert(result.ResultType == ResultType.MetalInfo); }
public void TestInValidInput() { var result = InputStringParser.Parse("glob is"); Debug.Assert(result.ResultType == ResultType.Unknown); result = InputStringParser.Parse("glob"); Debug.Assert(result.ResultType == ResultType.Unknown); }
public void TestQuestionInformation() { // Validate basic numbers. var result = InputStringParser.Parse("how many Credits is glob prok Silver ?"); Debug.Assert(result.ResultType == ResultType.Question); result = InputStringParser.Parse("glob Silver ?"); Debug.Assert(result.ResultType == ResultType.Question); }
public void Calculator_GetsSumNumberSentenceForString(string inputString, string expectedNumberSentence) { var parser = new InputStringParser(); parser.Settings.AllowNegativeValues = true; var sut = new StringCalculator(parser); var numberSentence = sut.Calculate(inputString, new AdditionOperation()).NumberSentence; Assert.Equal(expectedNumberSentence, numberSentence); }
public void Calculator_GetsProductForString(string inputString, int expectedProduct) { var parser = new InputStringParser(); parser.Settings.AllowNegativeValues = true; parser.Settings.Delimiters.Add("\n"); var sut = new StringCalculator(parser); var product = sut.Calculate(inputString, new MultiplicationOperation()).Result; Assert.Equal(expectedProduct, product); }
public void Calculator_GetsDifferenceForString(string inputString, int expectedDifference) { var parser = new InputStringParser(); parser.Settings.AllowNegativeValues = true; parser.Settings.Delimiters.Add("\n"); var sut = new StringCalculator(parser); var difference = sut.Calculate(inputString, new SubtractionOperation()).Result; Assert.Equal(expectedDifference, difference); }
public void Calculator_GetsSumForString(string inputString, int expectedSum) { var parser = new InputStringParser(); parser.Settings.AllowNegativeValues = true; parser.Settings.Delimiters.Add("\n"); var sut = new StringCalculator(parser); var sum = sut.Calculate(inputString, new AdditionOperation()).Result; Assert.Equal(expectedSum, sum); }
public void Calculator_GetsQuotientForString(string inputString, int expectedQuotient) { var parser = new InputStringParser(); parser.Settings.AllowNegativeValues = true; parser.Settings.Delimiters.Add("\n"); var sut = new StringCalculator(parser); var quotient = sut.Calculate(inputString, new DivisionOperation()).Result; Assert.Equal(expectedQuotient, quotient); }
public void Calculator_ShouldThrowExceptionForNegativeValues(string inputString, int[] valuesInExceptionMessage) { var parser = new InputStringParser(); parser.Settings.AllowNegativeValues = false; parser.Settings.Delimiters.Add("\n"); var sut = new StringCalculator(parser); var ex = Assert.Throws <NegativeValuesNotSupportedException>(() => sut.Calculate(inputString, new AdditionOperation())); foreach (var number in valuesInExceptionMessage) { Assert.Contains(number.ToString(), ex.Message); } }
static void Main(string[] args) { var parser = new InputStringParser(); IOperation operation = new AdditionOperation();; var argValues = CommandLine.Parser.Default.ParseArguments <CommandLineArgumentOptions>(args); if (!argValues.Errors.Any()) { // Values are available here if (!string.IsNullOrEmpty(argValues.Value.AlternateDelimiter)) { parser.Settings.Delimiters.Add(argValues.Value.AlternateDelimiter); } parser.Settings.AllowNegativeValues = argValues.Value.AllowNegativeValues; parser.Settings.MaximumValue = argValues.Value.MaximumValue; if (argValues.Value.Operation == Operations.Add) { operation = new AdditionOperation(); } else if (argValues.Value.Operation == Operations.Subtract) { operation = new SubtractionOperation(); } else if (argValues.Value.Operation == Operations.Multiply) { operation = new MultiplicationOperation(); } else if (argValues.Value.Operation == Operations.Divide) { operation = new DivisionOperation(); } } else { return; } var calculator = new StringCalculator(parser); Console.WriteLine(calculator.PromptString); Console.WriteLine("Multiline strings may be entered. Input an empty line to terminate the input. " + "The application will repeat execution until the console is closed or terminated with 'Ctrl+C'"); while (true) { try { string line; string input = string.Empty; while (!String.IsNullOrWhiteSpace(line = Console.ReadLine())) { input += line + "\n"; } var result = calculator.Calculate(input.Trim(), operation).NumberSentence; Console.WriteLine($"Result: {result}"); } catch (Exception ex) { Console.WriteLine($"Error Calculating Value. Error details: {ex.Message}"); } Console.WriteLine("\n"); } }
public void SetUp() { _result = InputStringParser.TryParseString("dsfdsfg:tttt?345", out _password, out _checkChar, out _minValue, out _maxValue); }
public void SetUp() { _result = InputStringParser.TryParseString("1-3 a: abcde", out _password, out _checkChar, out _minValue, out _maxValue); }