rwaldhoff    2002/11/18 05:00:26

  Modified:    codec/src/java/org/apache/commons/codec RefinedSoundex.java
                        Soundex.java
               codec/src/test/org/apache/commons/codec TestAll.java
                        TestMetaphone.java
  Added:       codec/src/test/org/apache/commons/codec TestEncoder.java
                        TestRefinedSoundex.java TestSoundex.java
  Log:
  more tests
  
  Revision  Changes    Path
  1.3       +1 -1      
jakarta-commons-sandbox/codec/src/java/org/apache/commons/codec/RefinedSoundex.java
  
  Index: RefinedSoundex.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/codec/src/java/org/apache/commons/codec/RefinedSoundex.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- RefinedSoundex.java       18 Nov 2002 12:41:24 -0000      1.2
  +++ RefinedSoundex.java       18 Nov 2002 13:00:25 -0000      1.3
  @@ -1,3 +1,3 @@
   /* ====================================================================
 * The 
Apache Software License, Version 1.1
 *
 * Copyright (c) 2002 The Apache Software 
Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary 
forms, with or without
 * modification, are permitted provided that the following 
conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above 
copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. 
Redistributions in binary form must reproduce the above copyright
 *    notice, this 
list of conditions and the following disclaimer in
 *    the documentation and/or 
other materials provided with the
 *    distribution.
 *
 * 3. The end-user 
documentation included with the redistribution,
 *    if any, must include the 
following acknowledgment:
 *       "This product includes software developed by the
 * 
       Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this 
acknowledgment may appear in the software itself,
 *    if and wherever such 
third-party acknowledgments normally appear.
 *
 * 4. The names "Apache" and "Apache 
Software Foundation" and
 *    "Apache Commons" must not be used to endorse or promote 
products
 *    derived from this software without prior written permission. For
 *    
written permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from 
this software may not be called "Apache",
 *    "Apache Turbine", nor may "Apache" 
appear in their name, without
 *    prior written permission of the Apache Software 
Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * 
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF 
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT 
SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, 
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF 
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR 
OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
THE POSSIBILITY OF
 * SUCH DAMAGE.
 * 
====================================================================
 *
 * This 
software consists of voluntary contributions made by many
 * individuals on behalf of 
the Apache Software Foundation.  For more
 * information on the Apache Software 
Foundation, please see
 * <http://www.apache.org/>.
 */
package 
org.apache.commons.codec;
   
  -/**
 * Encodes a string into a soundex value.  Sounde is an encoding used to
 * 
relate similar names, but can also be used as a general purpose
 * scheme to find word 
with similar phonemes. 
 * More information may be found at: 
http://www.bluepoof.com/Soundex/info2.html
 * 
 * @todo Needs internationalisation in 
a future release.
 *
 * @author [EMAIL PROTECTED]
 * @version $Revision$ 
$Date$
 */
public class RefinedSoundex implements Encoder {

    static public final 
char[] US_ENGLISH_MAPPING =
        "01360240043788015936020505".toCharArray();

    
static public final RefinedSoundex US_ENGLISH = new RefinedSoundex();
    
    private 
char[] soundexMapping;

    public RefinedSoundex() {
        
this(US_ENGLISH_MAPPING);
    }

    public RefinedSoundex(char[] mapping) {
        
this.soundexMapping = mapping;
    }

    /**
     * Get the SoundEx value of a 
string.
     * This implementation is taken from the code-snippers on 
     * 
http://www.sourceforge.net/
     */
    public String soundex(String str) {
       
   
     StringBuffer sBuf = new StringBuffer();        
        str = str.toUpperCase();

        sBuf.append( str.charAt(0) );

        char last, mapped, current;
        
last = '*';

        for( int i = 0; i < str.length(); i++ ) {

            current = 
getMappingCode( str.charAt(i) );
            if( current == last ) {
                
continue;
            } else if( current != 0 ) {
                sBuf.append( current 
);   
            }
            
            last = current;             
            
        }
        
        return sBuf.toString();
    }

    public String 
encode(String pString) {
        return( soundex( pString ) );   
    }

    /**
     
* Used internally by the SoundEx algorithm.
     */
    private char 
getMappingCode(char c) {
        if( !Character.isLetter(c) ) {
            return 0;
 
       } else {
            return soundexMapping[Character.toUpperCase(c) - 'A'];
    
    }
    }
}
  \ No newline at end of file
  +/**
 * Encodes a string into a soundex value.  Sounde is an encoding used to
 * 
relate similar names, but can also be used as a general purpose
 * scheme to find word 
with similar phonemes. 
 * More information may be found at: 
http://www.bluepoof.com/Soundex/info2.html
 * 
 * @todo Needs internationalisation in 
a future release.
 *
 * @author [EMAIL PROTECTED]
 * @version $Revision$ 
$Date$
 */
public class RefinedSoundex implements Encoder {

    static public final 
char[] US_ENGLISH_MAPPING =
        "01360240043788015936020505".toCharArray();

    
static public final RefinedSoundex US_ENGLISH = new RefinedSoundex();
    
    private 
char[] soundexMapping;

    public RefinedSoundex() {
        
this(US_ENGLISH_MAPPING);
    }

    public RefinedSoundex(char[] mapping) {
        
this.soundexMapping = mapping;
    }

    /**
     * Get the SoundEx value of a 
string.
     * This implementation is taken from the code-snippers on 
     * 
http://www.sourceforge.net/
     */
    public String soundex(String str) {
        
if(null == str || str.length() == 0) { return str; }
       
        StringBuffer sBuf 
= new StringBuffer();        
        str = str.toUpperCase();

        sBuf.append( 
str.charAt(0) );

        char last, mapped, current;
        last = '*';

        
for( int i = 0; i < str.length(); i++ ) {

            current = getMappingCode( 
str.charAt(i) );
            if( current == last ) {
                continue;
        
    } else if( current != 0 ) {
                sBuf.append( current );   
            
}
            
            last = current;             
            
        }
        

        return sBuf.toString();
    }

    public String encode(String pString) {
    
    return( soundex( pString ) );   
    }

    /**
     * Used internally by the 
SoundEx algorithm.
     */
    private char getMappingCode(char c) {
        if( 
!Character.isLetter(c) ) {
            return 0;
        } else {
            return 
soundexMapping[Character.toUpperCase(c) - 'A'];
        }
    }
}
  \ No newline at end of file
  
  
  
  1.4       +2 -2      
jakarta-commons-sandbox/codec/src/java/org/apache/commons/codec/Soundex.java
  
  Index: Soundex.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/codec/src/java/org/apache/commons/codec/Soundex.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- Soundex.java      18 Nov 2002 12:41:24 -0000      1.3
  +++ Soundex.java      18 Nov 2002 13:00:26 -0000      1.4
  @@ -1,4 +1,4 @@
   /* ====================================================================
 * The 
Apache Software License, Version 1.1
 *
 * Copyright (c) 2001-2002 The Apache Software 
Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary 
forms, with or without
 * modification, are permitted provided that the following 
conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above 
copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. 
Redistributions in binary form must reproduce the above copyright
 *    notice, this 
list of conditions and the following disclaimer in
 *    the documentation and/or 
other materials provided with the
 *    distribution.
 *
 * 3. The end-user 
documentation included with the redistribution,
 *    if any, must include the 
following acknowledgment:
 *       "This product includes software developed by the
 * 
       Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this 
acknowledgment may appear in the software itself,
 *    if and wherever such 
third-party acknowledgments normally appear.
 *
 * 4. The names "Apache" and "Apache 
Software Foundation" and
 *    "Apache Commons" must not be used to endorse or promote 
products
 *    derived from this software without prior written permission. For
 *    
written permission, please contact [EMAIL PROTECTED]
 *
 * 5. Products derived from 
this software may not be called "Apache",
 *    "Apache Turbine", nor may "Apache" 
appear in their name, without
 *    prior written permission of the Apache Software 
Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * 
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF 
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT 
SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 
INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, 
OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF 
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR 
OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 
THE POSSIBILITY OF
 * SUCH DAMAGE.
 * 
====================================================================
 *
 * This 
software consists of voluntary contributions made by many
 * individuals on behalf of 
the Apache Software Foundation.  For more
 * information on the Apache Software 
Foundation, please see
 * <http://www.apache.org/>.
 */
package 
org.apache.commons.codec;
   /**
 * Encodes a string into a refined soundex value.  
 * A refined soundex code 
is optimized for spell checking word. 
 * "Soundex" method originally developed by 
Margaret Odell and 
 *          Robert Russell
 * 
 * 
http://www.bluepoof.com/Soundex/info2.html
 * 
 * @todo Needs internationalisation in 
a future release.
 *
 * @author [EMAIL PROTECTED]
 * @author 
[EMAIL PROTECTED]
 * @version $Revision$ $Date$
 */
public class Soundex 
implements Encoder {

    static public final char[] US_ENGLISH_MAPPING =
        
"01230120022455012623010202".toCharArray();

    static public final Soundex 
US_ENGLISH = new Soundex();
    
    private char[] soundexMapping;
    private int 
maxLength = 4;

      public Soundex() {
        this(US_ENGLISH_MAPPING);
    }
  -    public Soundex(char[] mapping) {
        this.soundexMapping = mapping;
    }

 
   /**
     * Get the SoundEx value of a string.
     * This implementation is taken 
from the code-snippers on 
     * http://www.sourceforge.net/
     */
    public 
String soundex(String str) {
        char out[] = { '0', '0', '0', '0' };
        char 
last, mapped;
        int incount = 1, count = 1;
        out[0] = 
Character.toUpperCase( str.charAt(0) );
        last = getMappingCode( str.charAt(0) 
);
        while( (incount < str.length() ) && 
               (mapped = 
getMappingCode(str.charAt(incount++))) != 0 &&
               (count < maxLength) )
   
     {
            if( (mapped != '0') && (mapped != last) ) {
                
out[count++] = mapped;
            }
            last = mapped;
        }
        
return new String(out);
    }

    public String encode(String pString) {
        
return( soundex( pString ) );   
    }

    /**
     * Used internally by the SoundEx 
algorithm.
     */
    private char getMappingCode(char c) {
        if( 
!Character.isLetter(c) ) {
            return 0;
        } else {
            return 
soundexMapping[Character.toUpperCase(c) - 'A'];
        }
    }

    /**
     * 
Returns the maxLength.  Standard Soundex
     * @return int
  */
    public int 
getMaxLength() {
            return maxLength;
      }

     /**
     * Sets the 
maxLength.
  * @param maxLength The maxLength to set
        */
    public void 
setMaxLength(int maxLength) {
              this.maxLength = maxLength;
    }

}
  \ No newline at end of file
  +    public Soundex(char[] mapping) {
        this.soundexMapping = mapping;
    }

 
   /**
     * Get the SoundEx value of a string.
     * This implementation is taken 
from the code-snippers on 
     * http://www.sourceforge.net/
     */
    public 
String soundex(String str) {
        if(null == str || str.length() == 0) { return 
str; }
        
        char out[] = { '0', '0', '0', '0' };
        char last, 
mapped;
        int incount = 1, count = 1;
        out[0] = Character.toUpperCase( 
str.charAt(0) );
        last = getMappingCode( str.charAt(0) );
        while( 
(incount < str.length() ) && 
               (mapped = 
getMappingCode(str.charAt(incount++))) != 0 &&
               (count < maxLength) )
   
     {
            if( (mapped != '0') && (mapped != last) ) {
                
out[count++] = mapped;
            }
            last = mapped;
        }
        
return new String(out);
    }

    public String encode(String pString) {
        
return( soundex( pString ) );   
    }

    /**
     * Used internally by the SoundEx 
algorithm.
     */
    private char getMappingCode(char c) {
        if( 
!Character.isLetter(c) ) {
            return 0;
        } else {
            return 
soundexMapping[Character.toUpperCase(c) - 'A'];
        }
    }

      /**
     * 
Returns the maxLength.  Standard Soundex
     * @return int
  */
    public int 
getMaxLength() {
            return maxLength;
      }

     /**
     * Sets the 
maxLength.
  * @param maxLength The maxLength to set
        */
    public void 
setMaxLength(int maxLength) {
              this.maxLength = maxLength;
    }

}
  \ No newline at end of file
  
  
  
  1.2       +6 -4      
jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestAll.java
  
  Index: TestAll.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestAll.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestAll.java      18 Nov 2002 12:41:24 -0000      1.1
  +++ TestAll.java      18 Nov 2002 13:00:26 -0000      1.2
  @@ -79,6 +79,8 @@
           TestSuite suite = new TestSuite();
           suite.addTest(org.apache.commons.codec.base64.TestAll.suite());
           suite.addTest(TestMetaphone.suite());
  +        suite.addTest(TestSoundex.suite());
  +        suite.addTest(TestRefinedSoundex.suite());
           return suite;
       }
           
  
  
  
  1.2       +9 -7      
jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestMetaphone.java
  
  Index: TestMetaphone.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestMetaphone.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- TestMetaphone.java        18 Nov 2002 12:41:24 -0000      1.1
  +++ TestMetaphone.java        18 Nov 2002 13:00:26 -0000      1.2
  @@ -63,14 +63,12 @@
   import junit.framework.Test;
   import junit.framework.TestCase;
   import junit.framework.TestSuite;
  -import java.util.Arrays;
  -import java.util.Random;
   
   /**
    * @version $Revision$ $Date$
    * @author Rodney Waldhoff
    */
  -public class TestMetaphone extends TestCase {
  +public class TestMetaphone extends TestEncoder {
   
       public TestMetaphone(String name) {
           super(name);
  @@ -90,6 +88,10 @@
           _metaphone = null;
       }
   
  +    protected Encoder makeEncoder() {
  +        return new Metaphone();
  +    }
  +    
       // ------------------------------------------------------------------------
   
       public void testMetaphone() {
  
  
  
  1.1                  
jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestEncoder.java
  
  Index: TestEncoder.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestEncoder.java,v
 1.1 2002/11/18 13:00:26 rwaldhoff Exp $
   * $Revision: 1.1 $
   * $Date: 2002/11/18 13:00:26 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  package org.apache.commons.codec;
  
  import junit.framework.TestCase;
  
  /**
   * @version $Revision: 1.1 $ $Date: 2002/11/18 13:00:26 $
   * @author Rodney Waldhoff
   */
  public abstract class TestEncoder extends TestCase {
  
      public TestEncoder(String name) {
          super(name);
      }
  
      protected abstract Encoder makeEncoder();
  
      // ------------------------------------------------------------------------
  
      public void testEncodeEmpty() {
          Encoder encoder = makeEncoder();
          encoder.encode("");
          encoder.encode(" ");
          encoder.encode("\t");
      }        
  
      public void testEncodeNull() {
          Encoder encoder = makeEncoder();
          encoder.encode(null);
      }        
  }
  
  
  
  1.1                  
jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestRefinedSoundex.java
  
  Index: TestRefinedSoundex.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestRefinedSoundex.java,v
 1.1 2002/11/18 13:00:26 rwaldhoff Exp $
   * $Revision: 1.1 $
   * $Date: 2002/11/18 13:00:26 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  package org.apache.commons.codec;
  
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  
  /**
   * @version $Revision: 1.1 $ $Date: 2002/11/18 13:00:26 $
   * @author Rodney Waldhoff
   */
  public class TestRefinedSoundex extends TestEncoder {
  
      public TestRefinedSoundex(String name) {
          super(name);
      }
  
      public static Test suite() {
          return (new TestSuite(TestRefinedSoundex.class));
      }
  
      public void setUp() throws Exception {        
          super.setUp();
          _encoder = new RefinedSoundex();
      }
  
      public void tearDown() throws Exception {
          super.tearDown();
          _encoder = null;
      }
  
      protected Encoder makeEncoder() {
          return new RefinedSoundex();
      }
  
      // ------------------------------------------------------------------------
  
      public void testEncode() {
          assertEquals("T6036084",_encoder.encode("testing"));
          assertEquals("T60",_encoder.encode("The"));
          assertEquals("Q503",_encoder.encode("quick"));
          assertEquals("B1908",_encoder.encode("brown"));
          assertEquals("F205",_encoder.encode("fox"));
          assertEquals("J408106",_encoder.encode("jumped"));
          assertEquals("O0209",_encoder.encode("over"));
          assertEquals("T60",_encoder.encode("the"));
          assertEquals("L7050",_encoder.encode("lazy"));
          assertEquals("D6043",_encoder.encode("dogs"));
      }
  
      private RefinedSoundex _encoder = null;
  }
  
  
  
  1.1                  
jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestSoundex.java
  
  Index: TestSoundex.java
  ===================================================================
  /*
   * $Header: 
/home/cvs/jakarta-commons-sandbox/codec/src/test/org/apache/commons/codec/TestSoundex.java,v
 1.1 2002/11/18 13:00:26 rwaldhoff Exp $
   * $Revision: 1.1 $
   * $Date: 2002/11/18 13:00:26 $
   *
   * ====================================================================
   *
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2002 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution, if
   *    any, must include the following acknowlegement:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowlegement may appear in the software itself,
   *    if and wherever such third-party acknowlegements normally appear.
   *
   * 4. The names "The Jakarta Project", "Commons", and "Apache Software
   *    Foundation" must not be used to endorse or promote products derived
   *    from this software without prior written permission. For written
   *    permission, please contact [EMAIL PROTECTED]
   *
   * 5. Products derived from this software may not be called "Apache"
   *    nor may "Apache" appear in their names without prior written
   *    permission of the Apache Group.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   *
   */
  package org.apache.commons.codec;
  
  import junit.framework.Test;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  
  /**
   * @version $Revision: 1.1 $ $Date: 2002/11/18 13:00:26 $
   * @author Rodney Waldhoff
   */
  public class TestSoundex extends TestEncoder {
  
      public TestSoundex(String name) {
          super(name);
      }
  
      public static Test suite() {
          return (new TestSuite(TestSoundex.class));
      }
  
      public void setUp() throws Exception {        
          super.setUp();
          _encoder = new Soundex();
      }
  
      public void tearDown() throws Exception {
          super.tearDown();
          _encoder = null;
      }
  
      protected Encoder makeEncoder() {
          return new Soundex();
      }
  
      // ------------------------------------------------------------------------
  
      public void testEncode() {
          assertEquals("T235",_encoder.encode("testing"));
          assertEquals("T000",_encoder.encode("The"));
          assertEquals("Q200",_encoder.encode("quick"));
          assertEquals("B650",_encoder.encode("brown"));
          assertEquals("F200",_encoder.encode("fox"));
          assertEquals("J513",_encoder.encode("jumped"));
          assertEquals("O160",_encoder.encode("over"));
          assertEquals("T000",_encoder.encode("the"));
          assertEquals("L200",_encoder.encode("lazy"));
          assertEquals("D200",_encoder.encode("dogs"));
      }
  
      private Soundex _encoder = null;
  }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to