private void checkOutput(string input, string pattern, string replacement, string expectedOutput, string expectedIndexMatchedOutput) { CharFilter cs = new PatternReplaceCharFilter(new Regex(pattern, RegexOptions.Compiled), replacement, new StringReader(input)); StringBuilder output = new StringBuilder(); for (int chr = cs.Read(); chr > 0; chr = cs.Read()) { output.Append((char)chr); } StringBuilder indexMatched = new StringBuilder(); for (int i = 0; i < output.Length; i++) { if (cs.CorrectOffset(i) < input.Length) { indexMatched.Append((cs.CorrectOffset(i) < 0 ? '-' : input[cs.CorrectOffset(i)])); } } bool outputGood = expectedOutput.Equals(output.ToString(), StringComparison.Ordinal); bool indexMatchedGood = expectedIndexMatchedOutput.Equals(indexMatched.ToString(), StringComparison.Ordinal); if (!outputGood || !indexMatchedGood || false) { Console.WriteLine("Pattern : " + pattern); Console.WriteLine("Replac. : " + replacement); Console.WriteLine("Input : " + input); Console.WriteLine("Output : " + output); Console.WriteLine("Expected: " + expectedOutput); Console.WriteLine("Output/i: " + indexMatched); Console.WriteLine("Expected: " + expectedIndexMatchedOutput); Console.WriteLine(); } assertTrue("Output doesn't match.", outputGood); assertTrue("Index-matched output doesn't match.", indexMatchedGood); }
private void checkOutput(string input, string pattern, string replacement, string expectedOutput, string expectedIndexMatchedOutput) { CharFilter cs = new PatternReplaceCharFilter(new Regex(pattern, RegexOptions.Compiled), replacement, new StringReader(input)); StringBuilder output = new StringBuilder(); for (int chr = cs.Read(); chr > 0; chr = cs.Read()) { output.Append((char)chr); } StringBuilder indexMatched = new StringBuilder(); for (int i = 0; i < output.Length; i++) { if (cs.CorrectOffset(i) < input.Length) { indexMatched.Append((cs.CorrectOffset(i) < 0 ? '-' : input[cs.CorrectOffset(i)])); } } bool outputGood = expectedOutput.Equals(output.ToString()); bool indexMatchedGood = expectedIndexMatchedOutput.Equals(indexMatched.ToString()); if (!outputGood || !indexMatchedGood || false) { Console.WriteLine("Pattern : " + pattern); Console.WriteLine("Replac. : " + replacement); Console.WriteLine("Input : " + input); Console.WriteLine("Output : " + output); Console.WriteLine("Expected: " + expectedOutput); Console.WriteLine("Output/i: " + indexMatched); Console.WriteLine("Expected: " + expectedIndexMatchedOutput); Console.WriteLine(); } assertTrue("Output doesn't match.", outputGood); assertTrue("Index-matched output doesn't match.", indexMatchedGood); }