void CDFFileReaderTest::ReadSmallCDFFileBasicTest() { CDFData data; CDFFileReader reader; CPPUNIT_ASSERT_NO_THROW(reader.SetFilename(SMALL_CDF_FILE)); CPPUNIT_ASSERT_NO_THROW(reader.Read(data)); CPPUNIT_ASSERT(data.GetFilename() == SMALL_CDF_FILE); FileHeader* fh = data.GetFileHeader(); u_int32_t pos = fh->GetFirstDataGroupFilePos(); CPPUNIT_ASSERT(pos == 0x1BD); CPPUNIT_ASSERT(data.GetProbeSetCnt() == 10); CPPUNIT_ASSERT(data.GetArrayRows() == 10*2); CPPUNIT_ASSERT(data.GetArrayCols() == 11); }
/* * Reads all the DataGroupHeaders in a file and all information for each DataSetHeader in every DataGroup. */ void DataGroupHeaderReader::ReadAll(std::ifstream& fileStream, FileHeader& fh, u_int32_t dataGroupCnt) { // Get the first data group offset u_int32_t nextDataGroupFilePos = fh.GetFirstDataGroupFilePos(); for (u_int32_t i = 0; i < dataGroupCnt; ++i) { // Read the DataGroupHeader DataGroupHeader dch; // Move to the indicated position in the file fileStream.seekg(nextDataGroupFilePos, std::ios_base::beg); nextDataGroupFilePos = Read(fileStream, dch); fh.AddDataGroupHdr(dch); } }