protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader)
            {
                Tokenizer   tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
                TokenStream filter    = new PatternReplaceFilter(tokenizer, Pattern.compile("a"), "b", false);

                return(new TokenStreamComponents(tokenizer, filter));
            }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void testReplaceAllWithBackRef() throws Exception
        public virtual void testReplaceAllWithBackRef()
        {
            string      input = "aabfooaabfooabfoob ab caaaaaaaaab";
            TokenStream ts    = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("(a*)b"), "$1\\$", true);

            assertTokenStreamContents(ts, new string[] { "aa$fooaa$fooa$foo$", "a$", "caaaaaaaaa$" });
        }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void testStripAll() throws Exception
        public virtual void testStripAll()
        {
            string      input = "aabfooaabfooabfoob ab caaaaaaaaab";
            TokenStream ts    = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), null, true);

            assertTokenStreamContents(ts, new string[] { "foofoofoo", "", "c" });
        }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
//ORIGINAL LINE: public void testReplaceFirst() throws Exception
        public virtual void testReplaceFirst()
        {
            string      input = "aabfooaabfooabfoob ab caaaaaaaaab";
            TokenStream ts    = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), "-", false);

            assertTokenStreamContents(ts, new string[] { "-fooaabfooabfoob", "-", "c-" });
        }
 //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
 //ORIGINAL LINE: public void testStripFirst() throws Exception
 public virtual void testStripFirst()
 {
     string input = "aabfooaabfooabfoob ab caaaaaaaaab";
     TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), null, false);
     assertTokenStreamContents(ts, new string[] {"fooaabfooabfoob", "", "c"});
 }
 //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
 //ORIGINAL LINE: public void testReplaceAllWithBackRef() throws Exception
 public virtual void testReplaceAllWithBackRef()
 {
     string input = "aabfooaabfooabfoob ab caaaaaaaaab";
     TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("(a*)b"), "$1\\$", true);
     assertTokenStreamContents(ts, new string[] {"aa$fooaa$fooa$foo$", "a$", "caaaaaaaaa$"});
 }
 //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET:
 //ORIGINAL LINE: public void testReplaceAll() throws Exception
 public virtual void testReplaceAll()
 {
     string input = "aabfooaabfooabfoob ab caaaaaaaaab";
     TokenStream ts = new PatternReplaceFilter(new MockTokenizer(new StringReader(input), MockTokenizer.WHITESPACE, false), Pattern.compile("a*b"), "-", true);
     assertTokenStreamContents(ts, new string[] {"-foo-foo-foo-", "-", "c-"});
 }
 protected internal override TokenStreamComponents createComponents(string fieldName, Reader reader)
 {
     Tokenizer tokenizer = new MockTokenizer(reader, MockTokenizer.WHITESPACE, false);
     TokenStream filter = new PatternReplaceFilter(tokenizer, Pattern.compile("a"), "b", true);
     return new TokenStreamComponents(tokenizer, filter);
 }