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]>