From 8ef3bf4b253db27d64b887bec41df4a9bcce937f Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 15 Dec 2021 10:05:07 +0100 Subject: [PATCH 1/4] add dimensions, size and type --- src/cpp/h5cpp/dataspace/selections.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/cpp/h5cpp/dataspace/selections.cpp b/src/cpp/h5cpp/dataspace/selections.cpp index 08f7bbaf..2b95ec8f 100644 --- a/src/cpp/h5cpp/dataspace/selections.cpp +++ b/src/cpp/h5cpp/dataspace/selections.cpp @@ -28,6 +28,11 @@ namespace { +hdf5::Dimensions get_dimensions() +{ + return self.dimensions(); +} + hdf5::Dimensions get_offset(const hdf5::dataspace::Hyperslab &self) { return self.offset(); @@ -102,6 +107,9 @@ void create_selections() ((arg("offset"),arg("count"),arg("stride"))) ) .add_property("rank",&Hyperslab::rank) + .add_property("size",&Hyperslab::size) + .add_property("type",&Hyperslab::type) + .def("dimensions",get_dimensions) .def("offset",get_offset) .def("offset",set_entire_offset) .def("offset",set_individual_offset) From c84263905dffaa4b6c3206d3bcd19ea9b1dec435 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 15 Dec 2021 10:16:26 +0100 Subject: [PATCH 2/4] add size, type and dimensions to Hyperslab --- .../node_tests/dataset_partial_io_test.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/test/h5cpp_tests/node_tests/dataset_partial_io_test.py b/test/h5cpp_tests/node_tests/dataset_partial_io_test.py index 3894c57d..01891b65 100644 --- a/test/h5cpp_tests/node_tests/dataset_partial_io_test.py +++ b/test/h5cpp_tests/node_tests/dataset_partial_io_test.py @@ -28,7 +28,7 @@ from pninexus.h5cpp.node import Dataset from pninexus.h5cpp.dataspace import Simple # from pninexus.h5cpp.dataspace import Scalar -from pninexus.h5cpp.dataspace import Hyperslab +from pninexus.h5cpp.dataspace import Hyperslab, SelectionType from pninexus.h5cpp.datatype import kInt32 from pninexus.h5cpp.datatype import String from pninexus.h5cpp.property import LinkCreationList @@ -113,6 +113,12 @@ def testWriteReadStrips(self): # write data # selection = Hyperslab(offset=(0, 0), block=(1, 5)) + + self.assertEqual(selection.rank, 2) + self.assertEqual(selection.size, 5) + self.assertEqual(selection.dimensions(), (1, 5)) + self.assertEqual(selection.type, SelectionType.HYPERSLAB) + dataset.write(data_base, selection=selection) selection.offset(0, 1) dataset.write(2 * data_base, selection=selection) @@ -140,6 +146,12 @@ def testWriteReadPoints(self): value = 0 selection = Hyperslab(offset=(0, 0), block=(1, 1)) + + self.assertEqual(selection.rank, 1) + self.assertEqual(selection.size, 1) + self.assertEqual(selection.dimensions(), (1, 1)) + self.assertEqual(selection.type, SelectionType.HYPERSLAB) + for i in range(3): selection.offset(0, i) for j in range(5): From 0eb904c1b50cf4a415da61f89e5d7d4bf51a468d Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 15 Dec 2021 10:26:14 +0100 Subject: [PATCH 3/4] add missing self --- src/cpp/h5cpp/dataspace/selections.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/cpp/h5cpp/dataspace/selections.cpp b/src/cpp/h5cpp/dataspace/selections.cpp index 2b95ec8f..ef482718 100644 --- a/src/cpp/h5cpp/dataspace/selections.cpp +++ b/src/cpp/h5cpp/dataspace/selections.cpp @@ -28,7 +28,7 @@ namespace { -hdf5::Dimensions get_dimensions() +hdf5::Dimensions get_dimensions(const hdf5::dataspace::Hyperslab &self) { return self.dimensions(); } From b07a2f8a3484b48df374cfb44437e01de65df5a2 Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 15 Dec 2021 10:37:02 +0100 Subject: [PATCH 4/4] fix the rank value in tests --- test/h5cpp_tests/node_tests/dataset_partial_io_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/h5cpp_tests/node_tests/dataset_partial_io_test.py b/test/h5cpp_tests/node_tests/dataset_partial_io_test.py index 01891b65..1db4e8fc 100644 --- a/test/h5cpp_tests/node_tests/dataset_partial_io_test.py +++ b/test/h5cpp_tests/node_tests/dataset_partial_io_test.py @@ -147,7 +147,7 @@ def testWriteReadPoints(self): value = 0 selection = Hyperslab(offset=(0, 0), block=(1, 1)) - self.assertEqual(selection.rank, 1) + self.assertEqual(selection.rank, 2) self.assertEqual(selection.size, 1) self.assertEqual(selection.dimensions(), (1, 1)) self.assertEqual(selection.type, SelectionType.HYPERSLAB)