@@ -0,0 +1,2242 @@
+/**%0A * Licensed to the Apache Software Foundation (ASF) under one or more%0A * contributor license agreements.  See the NOTICE file distributed with%0A * this work for additional information regarding copyright ownership.%0A * The ASF licenses this file to You under the Apache License, Version 2.0%0A * (the %22License%22); you may not use this file except in compliance with%0A * the License.  You may obtain a copy of the License at%0A *%0A *     http://www.apache.org/licenses/LICENSE-2.0%0A *%0A * Unless required by applicable law or agreed to in writing, software%0A * distributed under the License is distributed on an %22AS IS%22 BASIS,%0A * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.%0A * See the License for the specific language governing permissions and%0A * limitations under the License.%0A */%0A%0Apackage org.apache.lucene.analysis;%0A%0Aimport java.io.StringReader;%0A%0Aimport junit.framework.TestCase;%0A%0Apublic class TestCharFilter extends TestCase %7B%0A%0A  public void testCharFilter1() throws Exception %7B%0A    CharStream cs = new CharFilter1( CharReader.get( new StringReader(%22%22) ) );%0A    assertEquals( %22corrected offset is invalid%22, 1, cs.correctOffset( 0 ) );%0A  %7D%0A%0A  public void testCharFilter2() throws Exception %7B%0A    CharStream cs = new CharFilter2( CharReader.get( new StringReader(%22%22) ) );%0A    assertEquals( %22corrected offset is invalid%22, 2, cs.correctOffset( 0 ) );%0A  %7D%0A%0A  public void testCharFilter12() throws Exception %7B%0A    CharStream cs = new CharFilter2( new CharFilter1( CharReader.get( new StringReader(%22%22) ) ) );%0A    assertEquals( %22corrected offset is invalid%22, 3, cs.correctOffset( 0 ) );%0A  %7D%0A%0A  public void testCharFilter11() throws Exception %7B%0A    CharStream cs = new CharFilter1( new CharFilter1( CharReader.get( new StringReader(%22%22) ) ) );%0A    assertEquals( %22corrected offset is invalid%22, 2, cs.correctOffset( 0 ) );%0A  %7D%0A%0A  static class CharFilter1 extends CharFilter %7B%0A%0A    protected CharFilter1(CharStream in) %7B%0A      super(in);%0A    %7D%0A%0A    protected int correct(int currentOff) %7B%0A      return currentOff + 1;%0A    %7D%0A  %7D%0A%0A  static class CharFilter2 extends CharFilter %7B%0A%0A    protected CharFilter2(CharStream in) %7B%0A      super(in);%0A    %7D%0A%0A    protected int correct(int currentOff) %7B%0A      return currentOff + 2;%0A    %7D%0A  %7D%0A%7D%0A

add unit test for CharFilter