package matrix.datatable;
import java.io.File;
import java.util.Iterator;
import matrix.datatable.PedMapTupleTable;
import org.molgenis.framework.tupletable.TableException;
import org.molgenis.framework.tupletable.TupleTable;
import org.molgenis.util.Tuple;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class TestPedMapTable_XqtlTestNG
{
TupleTable table;
@BeforeMethod
public void setup() throws Exception
{
table = new PedMapTupleTable(new File(TestPedMapTable_XqtlTestNG.class.getResource("test.ped").getFile()), new File(
TestPedMapTable_XqtlTestNG.class.getResource("test.map").getFile()));
}
@Test
public void testGetCount() throws TableException
{
Assert.assertEquals(table.getCount(), 6);
}
@Test
public void testGetColCount() throws TableException
{
Assert.assertEquals(table.getColCount(), 8);
}
@Test
public void testWithoutLimit()
{
table.setFirstColumnFixed(true);
Iterator<Tuple> iter = table.iterator();
int count = 0;
while (iter.hasNext())
{
count++;
Tuple tuple = iter.next();
Assert.assertEquals(tuple.getNrColumns(), 8);
Assert.assertEquals(tuple.getColName(1), "FamilyID");
Assert.assertEquals(tuple.getInt(1).intValue(), count);
Assert.assertEquals(tuple.getColName(7), "snp2");
if (count == 1)
{
Assert.assertEquals(tuple.getString(7), "G T");
}
else if (count == 2)
{
Assert.assertEquals(tuple.getString(7), "T G");
}
else if (count == 3)
{
Assert.assertEquals(tuple.getString(7), "G G");
}
else if (count == 4)
{
Assert.assertEquals(tuple.getString(7), "T T");
}
else if (count == 2)
{
Assert.assertEquals(tuple.getString(7), "G T");
}
else if (count == 2)
{
Assert.assertEquals(tuple.getString(7), "T T");
}
}
Assert.assertEquals(count, 6);
}
@Test
public void testRowLimitOffset()
{
table.setOffset(2);
Iterator<Tuple> iter = table.iterator();
int count = 0;
while (iter.hasNext())
{
count++;
Tuple tuple = iter.next();
if (count == 1)
{
Assert.assertEquals(tuple.getString("FamilyID"), "3");
}
}
Assert.assertEquals(count, 4);
}
@Test
public void testColLimit()
{
table.setColLimit(2);
Iterator<Tuple> iter = table.iterator();
Tuple tuple = iter.next();
Assert.assertEquals(tuple.getNrColumns(), 2);
}
@Test
public void testColOffset()
{
table.setColOffset(2);
Iterator<Tuple> iter = table.iterator();
Tuple tuple = iter.next();
Assert.assertEquals(tuple.getNrColumns(), 6);
Assert.assertEquals(tuple.getColName(0), "FatherID");
}
@Test
public void testColLimitOffset()
{
table.setColOffset(1);
table.setColLimit(4);
Iterator<Tuple> iter = table.iterator();
Tuple tuple = iter.next();
Assert.assertEquals(tuple.getNrColumns(), 4);
Assert.assertEquals(tuple.getColName(0), "FamilyID");
Assert.assertEquals(tuple.getColName(3), "Sex");
}
}