Example #1
0
void CalvinCHPMultiDataFileUpdaterTest::testMultiData3()
{
	CreateReferenceFile3();

    vector<ColumnInfo> cols;
    ByteColumn bcol(L"byte");
    cols.push_back(bcol);

    UByteColumn ubcol(L"ubyte");
    cols.push_back(ubcol);

    ShortColumn scol(L"short");
    cols.push_back(scol);

    UShortColumn uscol(L"ushort");
    cols.push_back(uscol);

    IntColumn icol(L"int");
    cols.push_back(icol);

    UIntColumn uicol(L"uint");
    cols.push_back(uicol);

    FloatColumn fcol(L"float");
    cols.push_back(fcol);

    ASCIIColumn acol(L"ascii", 7);
    cols.push_back(acol);

    UnicodeColumn tcol(L"text", 10);
    cols.push_back(tcol);

	CalvinCHPMultiDataFileUpdater upd;
    ProbeSetMultiDataCopyNumberData e;
	ProbeSetMultiDataCytoRegionData c;
	upd.Initialize(TEST3_FILE);

    e.metrics.resize(9);

    e.chr = 11;
    e.position = 111;
    e.metrics[0].SetValueInt8(9);
    e.metrics[1].SetValueUInt8(10);
    e.metrics[2].SetValueInt16(17);
    e.metrics[3].SetValueUInt16(18);
    e.metrics[4].SetValueInt32(33);
    e.metrics[5].SetValueUInt32(34);
    e.metrics[6].SetValueFloat(55.0f);
    e.metrics[7].SetValueAscii("text");
    e.metrics[8].SetValueText(L"ascii");
	upd.UpdateMultiData(CopyNumberMultiDataType, 0, e, cols);

    e.chr = 22;
    e.position = 222;
    e.metrics[0].SetValueInt8(10);
    e.metrics[1].SetValueUInt8(11);
    e.metrics[2].SetValueInt16(18);
    e.metrics[3].SetValueUInt16(19);
    e.metrics[4].SetValueInt32(34);
    e.metrics[5].SetValueUInt32(35);
    e.metrics[6].SetValueFloat(66.0f);
    e.metrics[7].SetValueAscii("text2");
    e.metrics[8].SetValueText(L"ascii2");
	upd.UpdateMultiData(CopyNumberMultiDataType, 2, e, cols);

    vector<ColumnInfo> cycols;
    c.call = 11;
    c.confidenceScore = 111.0f;
    c.chr = 11;
    c.startPosition = 11;
    c.stopPosition = 22;
    upd.UpdateMultiData(CytoMultiDataType, 0, c, cycols);

    c.call = 2;
    c.confidenceScore = 20.0f;
    c.chr = 22;
    c.startPosition = 22;
    c.stopPosition = 33;
    upd.UpdateMultiData(CytoMultiDataType, 1, c, cycols);

	CHPMultiDataData data;
	CHPMultiDataFileReader reader;
	CPPUNIT_ASSERT_NO_THROW(reader.SetFilename(TEST3_FILE));
	CPPUNIT_ASSERT_NO_THROW(reader.Read(data));
	CPPUNIT_ASSERT(data.GetEntryCount(CopyNumberMultiDataType) == 4);
	CPPUNIT_ASSERT(data.GetEntryCount(CytoMultiDataType) == 2);

    data.GetCopyNumberEntry(CopyNumberMultiDataType, 0, e);
	CPPUNIT_ASSERT(e.name == "1");
	CPPUNIT_ASSERT(e.chr == 11);
    CPPUNIT_ASSERT(e.position == 111);
    CPPUNIT_ASSERT(e.metrics[0].GetValueInt8() == 9);
    CPPUNIT_ASSERT(e.metrics[1].GetValueUInt8() == 10);
    CPPUNIT_ASSERT(e.metrics[2].GetValueInt16() == 17);
    CPPUNIT_ASSERT(e.metrics[3].GetValueUInt16() == 18);
    CPPUNIT_ASSERT(e.metrics[4].GetValueInt32() == 33);
    CPPUNIT_ASSERT(e.metrics[5].GetValueUInt32() == 34);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(e.metrics[6].GetValueFloat(), 55.0f, 0.00001f);
    CPPUNIT_ASSERT(e.metrics[7].GetValueAscii() == "text");
    CPPUNIT_ASSERT(e.metrics[8].GetValueText() == L"ascii");

    data.GetCopyNumberEntry(CopyNumberMultiDataType, 1, e);
	CPPUNIT_ASSERT(e.name == "2");
	CPPUNIT_ASSERT(e.chr == 2);
	CPPUNIT_ASSERT(e.position == 20);
    CPPUNIT_ASSERT(e.metrics[0].GetValueInt8() == 8);
    CPPUNIT_ASSERT(e.metrics[1].GetValueUInt8() == 8);
    CPPUNIT_ASSERT(e.metrics[2].GetValueInt16() == 16);
    CPPUNIT_ASSERT(e.metrics[3].GetValueUInt16() == 16);
    CPPUNIT_ASSERT(e.metrics[4].GetValueInt32() == 32);
    CPPUNIT_ASSERT(e.metrics[5].GetValueUInt32() == 32);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(e.metrics[6].GetValueFloat(), 44.0f, 0.00001f);
    CPPUNIT_ASSERT(e.metrics[7].GetValueAscii() == "ascii");
    CPPUNIT_ASSERT(e.metrics[8].GetValueText() == L"text");

    data.GetCopyNumberEntry(CopyNumberMultiDataType, 2, e);
	CPPUNIT_ASSERT(e.name == "3");
	CPPUNIT_ASSERT(e.chr == 22);
	CPPUNIT_ASSERT(e.position == 222);
    CPPUNIT_ASSERT(e.metrics[0].GetValueInt8() == 10);
    CPPUNIT_ASSERT(e.metrics[1].GetValueUInt8() == 11);
    CPPUNIT_ASSERT(e.metrics[2].GetValueInt16() == 18);
    CPPUNIT_ASSERT(e.metrics[3].GetValueUInt16() == 19);
    CPPUNIT_ASSERT(e.metrics[4].GetValueInt32() == 34);
    CPPUNIT_ASSERT(e.metrics[5].GetValueUInt32() == 35);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(e.metrics[6].GetValueFloat(), 66.0f, 0.00001f);
    CPPUNIT_ASSERT(e.metrics[7].GetValueAscii() == "text2");
    CPPUNIT_ASSERT(e.metrics[8].GetValueText() == L"ascii2");

    data.GetCopyNumberEntry(CopyNumberMultiDataType, 3, e);
	CPPUNIT_ASSERT(e.name == "4");
	CPPUNIT_ASSERT(e.chr == 4);
	CPPUNIT_ASSERT(e.position == 40);
    CPPUNIT_ASSERT(e.metrics[0].GetValueInt8() == 8);
    CPPUNIT_ASSERT(e.metrics[1].GetValueUInt8() == 8);
    CPPUNIT_ASSERT(e.metrics[2].GetValueInt16() == 16);
    CPPUNIT_ASSERT(e.metrics[3].GetValueUInt16() == 16);
    CPPUNIT_ASSERT(e.metrics[4].GetValueInt32() == 32);
    CPPUNIT_ASSERT(e.metrics[5].GetValueUInt32() == 32);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(e.metrics[6].GetValueFloat(), 44.0f, 0.00001f);
    CPPUNIT_ASSERT(e.metrics[7].GetValueAscii() == "ascii");
    CPPUNIT_ASSERT(e.metrics[8].GetValueText() == L"text");



    data.GetCytoEntry(CytoMultiDataType, 0, c);
	CPPUNIT_ASSERT(c.name == "1");
	CPPUNIT_ASSERT(c.call == 11);
	CPPUNIT_ASSERT(c.chr == 11);
    CPPUNIT_ASSERT(c.startPosition == 11);
    CPPUNIT_ASSERT(c.stopPosition == 22);
    CPPUNIT_ASSERT_DOUBLES_EQUAL(c.confidenceScore, 111.0f, 0.00001f);

    data.GetCytoEntry(CytoMultiDataType, 1, c);
	CPPUNIT_ASSERT(c.name == "2");
	CPPUNIT_ASSERT(c.chr == 22);
    CPPUNIT_ASSERT(c.startPosition == 22);
    CPPUNIT_ASSERT(c.stopPosition == 33);
	CPPUNIT_ASSERT(c.call == 2);
	CPPUNIT_ASSERT_DOUBLES_EQUAL(c.confidenceScore, 20.0f, 0.00001f);

}