Esempio n. 1
0
TEST_F(Hdf5Test, WriteDataset) {
	{
		hdf::HDFFile<> file(file_name_, hdf::HDFFile<>::truncate);

		std::vector<hsize_t> dims;
		dims.resize(2);
		dims[0] = 3;
		dims[1] = 2;
		hdf::Slab<2> filespace(dims);
		auto datasetint = file.createDataset<
				int>("/test", filespace);
	}
	hdf::HDFFile<> file(file_name_);

	auto dataset = file.openDataset("/test");

	std::vector<int> testdata(6);
	testdata[0] = 1;
	testdata[1] = 2;
	testdata[2] = 3;
	testdata[3] = 4;
	testdata[4] = 5;
	testdata[5] = 6;
	dataset->writeData(testdata);

	{
		std::vector<hsize_t> dims;
		dims.resize(2);
		dims[0] = 2;
		dims[1] = 3;
		hdf::Slab<2> filespace(dims);
		auto datasetint = file.createDataset<
				int>("/test2", filespace);
		datasetint->writeData(testdata);

		std::vector<int> readData2;
		datasetint->readData(readData2);
		ASSERT_TRUE(readData2.size() == 6);
		ASSERT_TRUE(readData2[0] == 1);
		ASSERT_TRUE(readData2[1] == 2);
		ASSERT_TRUE(readData2[2] == 3);
		ASSERT_TRUE(readData2[3] == 4);
	}

	std::vector<int> readData;
	dataset->readData(readData);
	ASSERT_TRUE(readData.size() == 6);
	ASSERT_TRUE(readData[0] == 1);
	ASSERT_TRUE(readData[1] == 2);
	ASSERT_TRUE(readData[2] == 3);
	ASSERT_TRUE(readData[3] == 4);
}
Esempio n. 2
0
void test_large_dataset_write() {
    hdf::HDFFile<> file("test.h5", hdf::HDFFile<>::truncate);

    std::size_t nElements = 1ul << 31;
    std::vector<hsize_t> dims;
    dims.resize(2);
    dims[1] = 3;
    dims[0] = nElements;
    hdf::Slab<2> filespace(dims);
    auto dataset
        = file.createDataset<int>("/test", filespace);

    {
        std::vector<int> testdata(nElements*3);
        for (std::size_t i =0; i < nElements*3; ++i) {
            testdata[i] = 1;
        }
        dataset->writeData(testdata);
    }

    std::vector<int> readData;
    dataset->readData(readData);
    assert(readData.size() == nElements*3);
    assert(readData[0] == 1);
    assert(readData[1] == 1);
    assert(readData[2] == 1);
    assert(readData[3] == 1);
}
Esempio n. 3
0
inline typename boost::enable_if<is_multi_array<T>, void>::type
write_dataset(dataset& dset, T const& value, slice const& file_slice)
{
    // --- create memory dataspace for the complete input array
    h5xx::dataspace memspace = h5xx::create_dataspace(value);
    // --- create file dataspace and select the slice (hyperslab) from it
    h5xx::dataspace filespace(dset);
    filespace.select(file_slice);
    write_dataset(dset, value, memspace, filespace);
}
Esempio n. 4
0
typename boost::enable_if<is_multi_array<T>, void>::type
read_dataset(dataset & data_set, T & array, slice const& file_slice)
{
    // --- create memory dataspace for the complete input array
    h5xx::dataspace memspace = h5xx::create_dataspace(array);
    // --- create file dataspace and select the slice (hyperslab) from it
    h5xx::dataspace filespace(data_set);
    filespace.select(file_slice);
    // ---
    read_dataset(data_set, array, memspace, filespace);
}
Esempio n. 5
0
TEST_F(Hdf5Test, OpenDataset) {
	hdf::HDFFile<> file(file_name_, hdf::HDFFile<>::truncate);
	{
		std::vector<hsize_t> dims;
		dims.resize(2);
		dims[0] = 15;
		dims[1] = 5;
		hdf::Slab<2> filespace(dims);
		auto datasetint = file.createDataset<int>("/test", filespace);
	}
	auto dataset = file.openDataset("/test");
}
Esempio n. 6
0
TEST_F(Hdf5Test, CreateDataset) {
	hdf::HDFFile<> file(file_name_, hdf::HDFFile<>::truncate);
	std::vector<hsize_t> dims;
	dims.resize(2);
	dims[0] = 20;
	dims[1] = 5;
	hdf::Slab<2> filespace(dims);
	auto datasetint = file.createDataset<int>(
			"/test", filespace);
	auto datasetfloat = file.createDataset<
			float>("/test-float", filespace);
	auto datasetdouble = file.createDataset<double>("/test-double", filespace);
}