[Biojava-l] Test failed for Alphabet.getSymbolMatchType method
pprun
pzgyuanf at gmail.com
Sun Oct 26 00:57:16 UTC 2008
Hi,
The current implementation uses the same condition equalsIgnoreCase for
EXACT_STRING_MATCH and MIXED_CASE_MATCH
public SymbolMatchType getSymbolMatchType(Symbol a, Symbol b) {
...
if (a.toString().equalsIgnoreCase(b.toString())) {
return SymbolMatchType.EXACT_STRING_MATCH;
}
if (a.toString().equalsIgnoreCase(b.toString())) {
return SymbolMatchType.MIXED_CASE_MATCH;
}
...
String.equals should be used for EXACT_STRING_MATCH:
public SymbolMatchType getSymbolMatchType(Symbol a, Symbol b) {
...
if (a.toString().equals(b.toString())) {
return SymbolMatchType.EXACT_STRING_MATCH;
}
if (a.toString().equalsIgnoreCase(b.toString())) {
return SymbolMatchType.MIXED_CASE_MATCH;
}
...
The test case used to identify the above bug is:
/*
* BioJava development code
*
* This code may be freely distributed and modified under the
* terms of the GNU Lesser General Public Licence. This should
* be distributed with the code. If you do not have a copy,
* see:
*
* http://www.gnu.org/copyleft/lesser.html
*
* Copyright for this code is held jointly by the individual
* authors. These should be listed in @author doc comments.
*
* For more information on the BioJava project and its aims,
* or to join the biojava-l mailing list, visit the home page
* at:
*
* http://www.biojava.org/
*
*/
package org.biojava.core.symbol;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
/**
*
* @author pprun
*/
public class AlphabetTest {
public AlphabetTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of getSymbolMatchType method, of class Alphabet.
*/
@Test
public void testGetSymbolMatchType() {
System.out.println("getSymbolMatchType");
Alphabet testAlphabet = new Alphabet("testGetSymbolMatchType");
// 1. exact match
Symbol a = Symbol.get("ATGC");
Symbol b = Symbol.get("ATGC");
SymbolMatchType expResult = SymbolMatchType.EXACT_MATCH;
SymbolMatchType result = testAlphabet.getSymbolMatchType(a, b);
assertEquals(expResult, result);
// 2. mixed case match
a = Symbol.get("ATGC");
b = Symbol.get("aTGC");
expResult = SymbolMatchType.MIXED_CASE_MATCH;
result = testAlphabet.getSymbolMatchType(a, b);
assertEquals(expResult, result);
}
}
BTW., how can I get the dev/test role?
Then I can contribute to the development or test (as I'm still a
beginner for bio field) for BJ3.
Thanks,
Pprun
More information about the Biojava-l
mailing list