static string EnglishToPigLatin(string english)
if (IsVowel(english[0])) {
var firstConsCount = english.TakeWhile(IsConsonant).Count();
if (firstConsCount > 1) {
return english.Substring(firstConsCount) + english.Substring(0, firstConsCount) + "ay";
return english.Substring(1) + english[0] + "ay";
static bool IsVowel(char c) => "aeiou".Contains(c, StringComparison.InvariantCultureIgnoreCase);
static bool IsConsonant(char c) => !IsVowel(c);
public static void Main()
Test("latin", "atinlay");
Test("banana", "ananabay");
Test("smile", "ilesmay");
Test("string", "ingstray");
Test("angel", "angelay");
static void Test(string input, string expected)
Console.WriteLine("Test: " + input);
var actual = EnglishToPigLatin(input);
Console.WriteLine("PASS.\n");
Console.WriteLine("FAIL:");
Console.WriteLine(" Expected: " + expected);
Console.WriteLine(" Actual : " + actual);
Console.WriteLine($"{pass} / {pass + fail} tests passed.\n");
Console.WriteLine(fail == 0 ? "SUCCESS!" : "FAILURE!");