private static string[] ReadTestData() { // the benchmark data is from http://lh3lh3.users.sourceforge.net/reb.shtml const string resourceName = "Regex.Data.howto"; var resourceStream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName); if (resourceStream == null) { throw new InvalidOperationException($"Resource '{resourceName}' is not found"); } var content = new byte[resourceStream.Length]; if (resourceStream.Read(content, 0, content.Length) != content.Length) { throw new InvalidOperationException($"Unable to read data from resource '{resourceName}'"); } var result = new UTF8Encoding(false).GetString(content).Split('\r', '\n').ToArray(); var random = new Random(314159); for (int i = 1; i < result.Length; ++i) { var j = random.Next(i); var temp = result[i]; result[i] = result[j]; result[j] = temp; } return(result.ToArray()); }