public void TestDefault() { model.String = "sqrrqabccbatudefggfedvwhijkllkjihxymnnmzpop"; model.Run(); var res = model.GetResults().OrderByDescending(p => p.Palindrome.Length).GroupBy(p => p.Palindrome) .Where(group => group.Count() == 1).SelectMany(o => o).Take(3).ToList(); Assert.IsTrue(res[0].Palindrome.Equals("hijkllkjih") && res[0].Index == 23); Assert.IsTrue(res[1].Palindrome.Equals("defggfed") && res[1].Index == 13); Assert.IsTrue(res[2].Palindrome.Equals("abccba") && res[2].Index == 5); }
static void Main(string[] args) { PalindromesFinder model = new PalindromesFinder(); StringBuilder sb = new StringBuilder(); while (true) { sb.Clear(); Console.WriteLine("Enter a string and press enter (Ctrl+C to quit)"); while (true) { var pressedKey = Console.ReadKey(true); if (char.IsLetter(pressedKey.KeyChar)) { var @char = Char.ToLower(pressedKey.KeyChar); Console.Write(@char); sb.Append(@char); } else if (pressedKey.Key == ConsoleKey.Backspace && sb.Length > 0) { Console.Write("\b \b"); sb.Length--; } else if (pressedKey.Key == ConsoleKey.Enter) { Console.Write('\n'); Console.WriteLine("------------------"); break; } } try { model.String = sb.ToString(); model.Run(); var results = GetThreeLongestUniquePalindromes(model.GetResults()); foreach (var palindrome in results) { Console.WriteLine($"Text: {palindrome.Palindrome}, Index: {palindrome.Index}, Length: {palindrome.Palindrome.Length}"); Console.WriteLine("------------------"); } } catch (Exception exc) { Console.WriteLine($"An error occured: {exc.Message}"); continue; } } }