From 459f04467824f74606692d330dc7ad3751d91a02 Mon Sep 17 00:00:00 2001 From: JohnLCaron Date: Sat, 12 Jul 2025 07:32:11 -0600 Subject: [PATCH] Fix problems seen in jhdf test datasets. private typedefs in attributes. readChunkedDataLayoutMessageV4: FixedArrayIndex, ImplicitChunkIndex. Edge case of "fill value only" type String. Bug reading enum values. docs/h5types. --- .idea/gradle.xml | 1 + Readme.md | 5 +- core/build.gradle.kts | 3 + .../kotlin/com/sunya/cdm/api/Datatype.kt | 2 + .../kotlin/com/sunya/cdm/api/Netchdf.kt | 5 +- .../kotlin/com/sunya/cdm/api/Typedef.kt | 1 + .../kotlin/com/sunya/cdm/layout/Chunker.kt | 2 + .../kotlin/com/sunya/netchdf/hdf5/BTreeIF.kt | 1 + .../hdf5/ChunkedDataLayoutMessageV4.kt | 273 ++++++++++++++++++ .../com/sunya/netchdf/hdf5/FractalHeap.kt | 52 ++-- .../com/sunya/netchdf/hdf5/H5TiledData.kt | 2 +- .../com/sunya/netchdf/hdf5/H5TypeInfo.kt | 12 +- .../com/sunya/netchdf/hdf5/H5builder.kt | 147 ++++------ .../com/sunya/netchdf/hdf5/H5cdmBuilder.kt | 53 ++-- .../com/sunya/netchdf/hdf5/H5chunkIterator.kt | 3 + .../com/sunya/netchdf/hdf5/H5chunkReader.kt | 125 ++++---- .../com/sunya/netchdf/hdf5/H5filters.kt | 23 +- .../kotlin/com/sunya/netchdf/hdf5/H5group.kt | 2 +- .../com/sunya/netchdf/hdf5/H5typedef.kt | 78 +++-- .../kotlin/com/sunya/netchdf/hdf5/Hdf5File.kt | 11 +- .../sunya/netchdf/hdf5/MessageDataLayout.kt | 199 +------------ .../com/sunya/netchdf/hdf5/MessageDataType.kt | 48 ++- .../com/sunya/netchdf/hdf5/MessageHeader.kt | 26 +- .../com/sunya/netchdf/hdf5/StructDsl.kt | 1 + .../kotlin/com/sunya/netchdf/hdf5/Util.kt | 10 + .../cdm/layout/TestChunkerIntersection.kt | 65 +++++ docs/h5types.txt | 40 +++ settings.gradle.kts | 2 +- .../com/sunya/netchdf/hdf5Clib/H5CTypeInfo.kt | 2 + .../kotlin/com/sunya/netchdf/JhdfReadTest.kt | 226 ++++++++++++++- .../com/sunya/netchdf/testutils/ReadCommon.kt | 2 +- 31 files changed, 960 insertions(+), 462 deletions(-) create mode 100644 core/src/commonMain/kotlin/com/sunya/netchdf/hdf5/ChunkedDataLayoutMessageV4.kt create mode 100644 core/src/commonTest/kotlin/com/sunya/cdm/layout/TestChunkerIntersection.kt create mode 100644 docs/h5types.txt diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 2966a19c..80212702 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -9,6 +9,7 @@