<?xml version="1.0"?>
<!DOCTYPE suppressions PUBLIC
     "-//Puppy Crawl//DTD Suppressions 1.0//EN"
     "http://www.puppycrawl.com/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="LocalFinalVariableName" files="FormattableUtils.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="FileLength" files="StrBuilderTest.java" />
  <suppress checks="FileLength" files="StrBuilder.java" />
  <suppress checks="FileLength" files="TextStringBuilderTest.java" />
  <suppress checks="FileLength" files="TextStringBuilder.java" />
  <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>
