package org.broad.igv.sam.lite;
import htsjdk.samtools.util.CloseableIterator;
import org.broad.igv.sam.Alignment;
import org.broad.igv.util.TestUtils;
import org.junit.Test;
import java.util.*;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
/**
* Created by jrobinso on 3/14/17.
*/
public class BAMReaderTest {
@Test
public void readAlignments() throws Exception {
String bamPath = TestUtils.DATA_DIR + "bam/four.reads.bam";
String chr = "13";
int beg = 32353128;
int end = 32353284;
BAMReader bamReader = new BAMReader(bamPath);
List<Alignment> alignmentContainer = bamReader.readAlignments(chr, beg, end);
String attr = ((BAMAlignment) alignmentContainer.get(0)).getAttributeString(false);
assertEquals(4, alignmentContainer.size());
}
@Test
public void iterateAlignments() throws Exception {
String bamPath = TestUtils.DATA_DIR + "bam/four.reads.bam";
String chr = "13";
int beg = 32353128;
int end = 32353284;
BAMReader bamReader = new BAMReader(bamPath);
CloseableIterator<Alignment> iter = bamReader.query(chr, beg, end, false);
List<Alignment> alignmentContainer = new ArrayList<>();
while(iter.hasNext()) {
alignmentContainer.add(iter.next());
}
String attr = ((BAMAlignment) alignmentContainer.get(0)).getAttributeString(false);
assertEquals(4, alignmentContainer.size());
}
@Test
public void readHeader() throws Exception {
String bamPath = TestUtils.DATA_DIR + "bam/gstt1_sample.bam";
BAMReader bamReader = new BAMReader(bamPath);
bamReader.readHeader();
assertEquals(0, (int) bamReader.chrToIndex.get("chr1"));
}
}