<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
     "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN"
     "https://checkstyle.org/dtds/suppressions_1_0.dtd">
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<suppressions>
  <suppress checks="FileLength" files="StrBuilderTest.java" />
  <suppress checks="FileLength" files="StrBuilder.java" />
  <suppress checks="FileLength" files="TextStringBuilderTest.java" />
  <suppress checks="FileLength" files="TextStringBuilder.java" />
  <suppress checks="MagicNumber" files="JaccardDistance.java" />
  <suppress checks="MagicNumber" files="JaccardSimilarity.java" />
  <suppress checks="MagicNumber" files="JaroWinklerDistance.java" />
  <suppress checks="MagicNumber" files="JaroWinklerSimilarity.java" />
  <suppress checks="MagicNumber" files="StrBuilder.java" />
  <suppress checks="MagicNumber" files="TextStringBuilder.java" />
  <suppress checks="MagicNumber" files="StringEscapeUtils.java" />
  <suppress checks="MagicNumber" files="StrMatcher.java" />
  <suppress checks="MagicNumber" files="NumericEntityEscaper.java" />
  <suppress checks="MagicNumber" files="NumericEntityUnescaper.java" />
  <suppress checks="MagicNumber" files="OctalUnescaper.java" />
  <suppress checks="MagicNumber" files="UnicodeEscaper.java" />
  <suppress checks="MagicNumber" files="UnicodeUnescaper.java" />
  <suppress checks="MagicNumber" files="WordUtils.java" />
  <suppress checks="MagicNumber" files=".*[/\\]test[/\\].*" />
  <suppress checks="MethodName" files=".*[/\\]test[/\\].*" />
  <suppress checks="Javadoc" files=".*[/\\]test[/\\].*" />
  <suppress checks="MethodLength" files="LevenshteinDetailedDistanceTest.java" />
  <suppress checks="MethodLength" files="StrBuilderAppendInsertTest.java" />
  <suppress checks="MethodLength" files="TextStringBuilderAppendInsertTest.java" />
  <suppress checks="TodoComment" files="StringEscapeUtilsTest.java" />
  <suppress checks="TodoComment" files="JaroWinklerDistance.*.java" />
</suppressions>
