package htsjdk.tribble.gelitext; import htsjdk.tribble.AbstractFeatureReader; import htsjdk.tribble.FeatureReader; import htsjdk.tribble.TestUtils; import htsjdk.tribble.index.Index; import htsjdk.tribble.index.IndexFactory; import org.testng.Assert; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import java.io.File; import java.io.IOException; import java.util.Iterator; /** * @author aaron * <p/> * Class GeliTextTest * <p/> * test out the geli text source codec and feature */ public class GeliTextTest { public static final File testFile = new File(TestUtils.DATA_DIR + "testGeliText.txt"); public static Index index; private FeatureReader<GeliTextFeature> source; // setup a new source before each class @BeforeSuite public void beforeTest() { index = IndexFactory.createLinearIndex(testFile, new GeliTextCodec()); source = AbstractFeatureReader.getFeatureReader(testFile.getAbsolutePath(), new GeliTextCodec(), index); } @Test public void testReadAllLines() { // Query try { Iterator<GeliTextFeature> iter = source.query("22", 14438070, 14592250); int count = 0; while (iter.hasNext()) { GeliTextFeature feat = iter.next(); count++; } Assert.assertEquals(count, 50); } catch (IOException e) { Assert.fail("failed to generate iterator from feature source"); } } @Test public void testGetSubRegion() { // Query try { Iterator<GeliTextFeature> iter = source.query("22", 14438070, 14539060); // should be the first 41 records int count = 0; while (iter.hasNext()) { GeliTextFeature feat = iter.next(); count++; } Assert.assertEquals(count, 41); } catch (IOException e) { Assert.fail("failed to generate iterator from feature source"); } } @Test public void testFirstRecord() { // Query try { Iterator<GeliTextFeature> iter = source.query("22", 14438070, 14592250); int count = 0; GeliTextFeature feat = iter.next(); // check the first records contents // 22 14438070 A 0 0 GG 33.2618 33.2618 0 0 0 0 0 0 0 33.2618 0 0 Assert.assertTrue("22".equals(feat.getChr())); Assert.assertEquals(feat.getStart(), 14438070); Assert.assertEquals('A', feat.getRefBase()); Assert.assertEquals(feat.getDepthOfCoverage(), 0.0, 0.0001); Assert.assertEquals(feat.getMaximumMappingQual(), 0.0, 0.0001); Assert.assertTrue(DiploidGenotype.GG.equals(feat.getGenotype())); Assert.assertEquals(feat.getDepthOfCoverage(), 0.0, 0.0001); Assert.assertEquals(feat.getLODBestToReference(), 33.2618, 0.0001); Assert.assertEquals(feat.getLODBestToNext(), 33.2618, 0.0001); for (int x = 0; x < feat.getLikelihoods().length; x++) { if (x == DiploidGenotype.GG.ordinal()) Assert.assertEquals(feat.getLikelihoods()[x], 33.2618, 0.0001); else Assert.assertEquals(feat.getLikelihoods()[x], 0, 0.0001); } } catch (IOException e) { Assert.fail("failed to generate iterator from feature source"); } } }