commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 31096] - Deprecated calls and 1 failure in the SoundexTest
Date Wed, 08 Sep 2004 17:45:22 GMT
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=31096>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=31096

Deprecated calls and 1 failure in the SoundexTest





------- Additional Comments From ggregory@seagullsw.com  2004-09-08 17:45 -------
The key lines in the attachement
(http://issues.apache.org/bugzilla/showattachment.cgi?attach_id=12665) are:

Testcase: testUsMappingOWithDiaeresis took 0.011 sec
	FAILED
expected:<?000> but was:<>
junit.framework.ComparisonFailure: expected:<?000> but was:<>
	at
org.apache.commons.codec.language.SoundexTest.testUsMappingOWithDiaeresis(SoundexTest.java:348)

Looking at testUsMappingOWithDiaeresis(SoundexTest.java:348) we see:

    /**
     * Fancy characters are not mapped by the default US mapping.
     * 
     * http://nagoya.apache.org/bugzilla/show_bug.cgi?id=29080
     */
    public void testUsMappingOWithDiaeresis() {
        assertEquals("O000", this.getEncoder().encode("o"));
        try {
            assertEquals("Ö000", this.getEncoder().encode("ö"));
            fail("Expected IllegalArgumentException not thrown");
        } catch (IllegalArgumentException e) {
            // expected
        }
    }

The second assertEquals line uses an "O" and "o" with diaeresis. The fisrt
assertEquals line does not. SoundexTest.java version 1.18 (tagged CODEC_1_3)
shows line 348 to be the 2nd assertEquals.

What is interesting is that the test call encode() to is designed to fail with
an IllegalArgumentException but it does not in your case. Instead the call to
encode() works and the assertEquals then fails. So the next question is: why
does  encode() work when the tests think it should not? Also the encoded value
appears to be the empty string which is also weird.

Perhaps the following takes place: Soundex.encode() calls Soundex.soundex(); is
it the case that the only way for the return value to be "" is for the call to
clean() to reject the "O" with diaeresis and all other letters and return an ""?
Then soundex() just returns, otherwise it would throw an IllegalArgumentException.

Have changed any of the source for codec or the tests. Maybe just saving a .java
file messed up the Unicode values in the file. A .java file is a Unicode text
file, not a plain text file.

Please let us know, thanks.

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message