using System;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var withSpaces = FailureDescription.MemoryFailureTest.ToStringWithSpaces();
Console.WriteLine(withSpaces);
}
}
public static class EnumExtensions
{
public static string ToStringWithSpaces(this Enum value)
{
var withSpaces =
Regex
.Matches(value.ToString(), @"([A-Z][a-z]+)(?=[A-Z]|$)")
.Cast<Match>()
.Select(m => m.Groups[1].Value)
.Aggregate((str, next) => (str = str + " " + next));
return withSpaces;
}
}
public enum FailureDescription
{
MemoryFailureTest,
Fragmentation,
SegmentationFault
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQ7CnVzaW5nIFN5c3RlbS5UZXh0LlJlZ3VsYXJFeHByZXNzaW9uczsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKCXsKCQl2YXIgd2l0aFNwYWNlcyA9IEZhaWx1cmVEZXNjcmlwdGlvbi5NZW1vcnlGYWlsdXJlVGVzdC5Ub1N0cmluZ1dpdGhTcGFjZXMoKTsKCQlDb25zb2xlLldyaXRlTGluZSh3aXRoU3BhY2VzKTsKCX0KfQoKcHVibGljIHN0YXRpYyBjbGFzcyBFbnVtRXh0ZW5zaW9ucwp7CglwdWJsaWMgc3RhdGljIHN0cmluZyBUb1N0cmluZ1dpdGhTcGFjZXModGhpcyBFbnVtIHZhbHVlKQoJewoJICAgIHZhciB3aXRoU3BhY2VzID0KCSAgICAgICAgUmVnZXgKCSAgICAgICAgLk1hdGNoZXModmFsdWUuVG9TdHJpbmcoKSwgQCIoW0EtWl1bYS16XSspKD89W0EtWl18JCkiKQoJICAgICAgICAuQ2FzdDxNYXRjaD4oKQoJICAgICAgICAuU2VsZWN0KG0gPT4gbS5Hcm91cHNbMV0uVmFsdWUpCgkgICAgICAgIC5BZ2dyZWdhdGUoKHN0ciwgbmV4dCkgPT4gKHN0ciA9IHN0ciArICIgIiArIG5leHQpKTsKCSAgICByZXR1cm4gd2l0aFNwYWNlczsKCX0KfQogICAgCnB1YmxpYyBlbnVtIEZhaWx1cmVEZXNjcmlwdGlvbgp7CiAgICBNZW1vcnlGYWlsdXJlVGVzdCwKICAgIEZyYWdtZW50YXRpb24sCiAgICBTZWdtZW50YXRpb25GYXVsdAp9