public void ConvertInputStringToReversePolishSignature_InputExpressionIsProperlyConvertedInReversePolishSignature() { var parser = new ArithmeticExpressionParser(); const string inputArithmeticExpression = "(VII*IX)*(IX+(LVII*I))"; const string expectedReversePolishSignature = "$VII$$IX$*$IX$$LVII$$I$*+*"; var actualReversePolishSignature = parser.ConvertInputStringToReversePolishSignature(inputArithmeticExpression); Assert.AreEqual(expectedReversePolishSignature, actualReversePolishSignature); }
private string RecoursiveDescent(string input) { var result = ArithmeticExpressionParser.Parse(input); var builder = new StringBuilder(); builder.AppendLine($"Прочитанная строка: {result.ResultString};") .Append("Перечень состояний:"); foreach (var item in result.States) { builder.Append(" ➜ ").Append(item); } return(builder.ToString()); }
public void ConvertArabicNumberToRoman_ArabicNumberIsProperlyConvertedToRomanNotation() { if (!_isInitializedDictionary) { InitializeDictionary(); } var parser = new ArithmeticExpressionParser(); foreach (var romanNumber in _dictionaryOfArabicAndRomanNumbers.Values) { var arabicNumber = _dictionaryOfArabicAndRomanNumbers.FirstOrDefault(x => x.Value == romanNumber).Key; var expectedRomanNumber = romanNumber; var actualRomanNumberAfterConverting = parser.ConverterOfNumbers.ConvertArabicNumberToRoman(arabicNumber); Assert.AreEqual(expectedRomanNumber, actualRomanNumberAfterConverting); } }
public void ConvertRomanNumberToArabic_RomanNumberIsProperlyConvertedToArabicNotation() { if (!_isInitializedDictionary) { InitializeDictionary(); } var parser = new ArithmeticExpressionParser(); foreach (var arabicNumber in _dictionaryOfArabicAndRomanNumbers.Keys) { var romanNumber = _dictionaryOfArabicAndRomanNumbers[arabicNumber]; var expectedArabicNumber = arabicNumber; var actualArabicNumberAfterConverting = parser.ConverterOfNumbers.ConvertRomanNumberToArabic(romanNumber); Assert.AreEqual(expectedArabicNumber, actualArabicNumberAfterConverting); } }
public static void StartParser() { var arithparser = new ArithmeticExpressionParser<decimal>(); string input = string.Empty; while(true) { try { Console.Write(">>>"); input = Console.ReadLine(); Console.WriteLine(arithparser.Parse(input)); } catch(Exception e) { if(input == "exit") Environment.Exit(0); else Console.WriteLine("Error: {0}",e.Message); } } }