static void Main(string[] args) { const string prompt = "TimeMath>"; string input; Console.WriteLine(Properties.Resources.Introduction); while (true) { Console.Write(prompt); input = Console.ReadLine(); if (input.Contains("exit")) { break; } else if (input.ToLower() == "examples") { Console.WriteLine(Properties.Resources.Examples.Replace(@"\n", Environment.NewLine)); } else if (input.ToLower() == "help") { Console.WriteLine(Properties.Resources.Usage.Replace(@"\n", Environment.NewLine)); } else { string improvedInput = UIHelper.ApplyAllImprovemnets(input); string response = NaturalLanguageCalculator.Calculate(improvedInput); if (response == null) { Console.WriteLine(UIHelper.ExplainSyntaxError(improvedInput)); } else { Console.WriteLine(response); } } } }
public void NaturalLanguageCalculation() { Assert.AreEqual("January 6, 2000", NaturalLanguageCalculator.Calculate("Jan 1 2000 + 5 days")); Assert.AreEqual("February 20, 2000", NaturalLanguageCalculator.Calculate("Jan 1 2000 + 50 days")); Assert.AreEqual("28 years 10 months", NaturalLanguageCalculator.Calculate("Oct 1, 1990 - Aug 1 2019")); }