package org.genedb.db.loading;
import static org.junit.Assert.*;
import org.junit.Before;
import org.junit.Test;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FastaFileTest {
private File testFile = new File("test/data/test1.fasta");
private FastaFile test1;
@Before
public void setup() throws IOException {
test1 = new FastaFile(new FileReader(testFile));
}
@Test
public void test1_size() {
int count = 0;
for (FastaRecord record: test1) {
assertNotNull(record);
count++;
}
assertEquals(4, count);
}
@Test
public void test1_ids() {
List<FastaRecord> records = new ArrayList<FastaRecord>();
for(FastaRecord record: test1) {
records.add(record);
}
assertEquals("contig1", records.get(0).getId());
assertEquals("contig2", records.get(1).getId());
assertEquals("contig3", records.get(2).getId());
assertEquals("contig4", records.get(3).getId());
}
@Test
public void test1_lineNumbers() {
List<FastaRecord> records = new ArrayList<FastaRecord>();
for(FastaRecord record: test1) {
records.add(record);
}
assertEquals(1, records.get(0).getLineNumber());
assertEquals(3, records.get(1).getLineNumber());
assertEquals(7, records.get(2).getLineNumber());
assertEquals(8, records.get(3).getLineNumber());
}
@Test
public void test1_seqs() {
List<FastaRecord> records = new ArrayList<FastaRecord>();
for(FastaRecord record: test1) {
records.add(record);
}
assertEquals("gattaca", records.get(0).getSequence());
assertEquals("gaaacatgtaatttaactgatggtattggagtagcaccgcccaattgtagctgctacact" +
"gttgcacttcttatatgacccagtatagctgtgatattcactcctataggttccatcata" +
"attgaccagagcca", records.get(1).getSequence());
assertEquals("", records.get(2).getSequence());
assertEquals("gattaca", records.get(3).getSequence());
}
@Test
public void iterateTwice() {
List<FastaRecord> records = new ArrayList<FastaRecord>();
for(FastaRecord record: test1) {
records.add(record);
}
int i=0;
for(FastaRecord record: test1) {
assertEquals(records.get(i++), record);
}
}
}