public void LegasyTest(SingleFileTest test) { var xreg = test.GetRoot().Element(RegexTag); var xoreg = test.GetRoot().Element(OregexTag); var regexOptions = GetRegexOptions(xreg); var oRegexOptions = GetORegexOptions(xoreg); // ReSharper disable once PossibleNullReferenceException var regexPattern = xreg.Value; // ReSharper disable once PossibleNullReferenceException var oregexPattern = xoreg.Value; // ReSharper disable once PossibleNullReferenceException var text = test.GetRoot().Element(TextTag).Value; var regex = new Regex(regexPattern, regexOptions); var oregex = new DebugORegex(oregexPattern, oRegexOptions); var regexMatches = regex.Matches(text).Cast <Match>().ToArray(); var oregexMatches = oregex.Matches(text.ToCharArray()).ToArray(); Trace.TraceInformation("Text length: " + text.Length + "\n"); Console.WriteLine("##############################################################"); try { Assert.AreEqual(regexMatches.Length, oregexMatches.Length); for (int i = 0; i < regexMatches.Length; i++) { var rm = regexMatches[i]; var orm = oregexMatches[i]; Compare(rm, orm); } } catch { Console.WriteLine("##############################################################"); Console.WriteLine("# EXPECTED #"); Console.WriteLine("##############################################################"); foreach (var m in regexMatches) { Console.WriteLine(ExpectedString(m)); } throw; } finally { Console.WriteLine("##############################################################"); Console.WriteLine("# ACTUAL #"); Console.WriteLine("##############################################################"); foreach (var m in oregexMatches) { Console.WriteLine(ActualString(m)); } Console.WriteLine("##############################################################"); } }