package matrix.test.implementations.binary;
import java.util.ArrayList;
import java.util.List;
import matrix.DataMatrixInstance;
import matrix.general.DataMatrixHandler;
import matrix.implementations.binary.BinaryDataMatrixInstance;
import org.molgenis.data.Data;
import org.molgenis.framework.db.Database;
import app.DatabaseFactory;
public class TestBinSubMatrix
{
public TestBinSubMatrix() throws Exception
{
Database db = DatabaseFactory.create("handwritten/properties/gcc.test.properties");
List<BinaryDataMatrixInstance> bmList = new ArrayList<BinaryDataMatrixInstance>();
for (Data data : db.find(Data.class))
{
BinaryDataMatrixInstance bm = (BinaryDataMatrixInstance) new DataMatrixHandler(db).createInstance(data, db);
bmList.add(bm);
}
for (BinaryDataMatrixInstance bm : bmList)
{
// check rownames/colnames order
int halfCols = bm.getNumberOfCols() / 2;
int halfRows = bm.getNumberOfRows() / 2;
DataMatrixInstance sub = bm.getSubMatrixByOffset(0, halfRows, 0, halfCols);
List<String> originalComplete = bm.getColNames();
List<String> originalHalf = bm.getColNames().subList(0, halfCols);
List<String> subbed = sub.getColNames();
for (int i = 0; i < halfCols; i++)
{
String o = originalHalf.get(i);
String s = subbed.get(i);
String c = originalComplete.get(i);
if (!o.equals(s))
{
throw new Exception("Not equal: " + o + " vs. " + s + " at index " + i);
}
}
}
}
public static void main(String[] args) throws Exception
{
new TestBinSubMatrix();
}
}