/*
* 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.nbio.sequencing.io.fastq;
import junit.framework.TestCase;
import static org.biojava.nbio.sequencing.io.fastq.FastqVariant.*;
/**
* Unit test for FastqVariant.
*/
public final class FastqVariantTest
extends TestCase
{
public void testDescription()
{
for (FastqVariant variant : values())
{
assertNotNull(variant.getDescription());
}
}
public void testIsSanger()
{
assertTrue(FASTQ_SANGER.isSanger());
assertFalse(FASTQ_SOLEXA.isSanger());
assertFalse(FASTQ_ILLUMINA.isSanger());
}
public void testIsSolexa()
{
assertFalse(FASTQ_SANGER.isSolexa());
assertTrue(FASTQ_SOLEXA.isSolexa());
assertFalse(FASTQ_ILLUMINA.isSolexa());
}
public void testIsIllumina()
{
assertFalse(FASTQ_SANGER.isIllumina());
assertFalse(FASTQ_SOLEXA.isIllumina());
assertTrue(FASTQ_ILLUMINA.isIllumina());
}
public void testParseFastqVariant()
{
assertEquals(null, parseFastqVariant(null));
assertEquals(null, parseFastqVariant(""));
assertEquals(null, parseFastqVariant("not a valid FASTQ variant"));
assertEquals(FASTQ_SANGER, parseFastqVariant("FASTQ_SANGER"));
assertEquals(FASTQ_SANGER, parseFastqVariant("fastq-sanger"));
}
public void testQualityLessThanMinimumQualityScore()
{
for (FastqVariant variant : values())
{
try
{
variant.quality(variant.minimumQualityScore() - 1);
fail("expected IllegalArgumentException");
}
catch (IllegalArgumentException e)
{
// expected
}
}
}
public void testQualityMoreThanMaximumQualityScore()
{
for (FastqVariant variant : values())
{
try
{
variant.quality(variant.maximumQualityScore() + 1);
fail("expected IllegalArgumentException");
}
catch (IllegalArgumentException e)
{
// expected
}
}
}
public void testQualityQualityScoreRoundTrip()
{
for (FastqVariant variant : values())
{
for (int i = variant.minimumQualityScore(); i < (variant.maximumQualityScore() + 1); i++)
{
assertEquals(i, variant.qualityScore(variant.quality(i)));
}
}
}
}