TEST(Hdf5Test, readWriteEigenMatrixXd) { std::string tmpFileName("Hdf5Test_readWriteEigenMatrixXd.hdf"); Hdf5DataFormat hdf5; ASSERT_TRUE(hdf5.openFile(tmpFileName, Hdf5DataFormat::ReadWriteTruncate)) << "Opening test file '" << tmpFileName << "' failed."; Eigen::MatrixXd mat (10, 10); for (int row = 0; row < 10; ++row) { for (int col = 0; col < 10; ++col) { mat(row, col) = row * col * col + row + col; } } EXPECT_TRUE(hdf5.writeDataset("/Group1/Group2/Data", mat)) << "Writing Eigen::MatrixXd failed."; Eigen::MatrixXd matRead; EXPECT_TRUE(hdf5.readDataset("/Group1/Group2/Data", matRead)) << "Reading Eigen::MatrixXd failed."; EXPECT_TRUE(mat.isApprox(matRead)) << "Matrix read does not match matrix written.\nWritten:\n" << mat << "\nRead:\n" << matRead; ASSERT_TRUE(hdf5.closeFile()) << "Closing test file '" << tmpFileName << "' failed."; remove(tmpFileName.c_str()); }