From 4535e598f709e4d9bed0f5de1076d5e77b7441ab Mon Sep 17 00:00:00 2001 From: Pedro Vicente Nunes Date: Tue, 6 Jul 2004 15:07:03 -0500 Subject: [svn-r8812] Purpose: h5dump new tests Description: added new tests for the -p option, superblock, file contents, fill values, array indices. Solution: Platforms tested: linux AIX solaris Misc. update: --- MANIFEST | 17 +- tools/h5dump/h5dump.c | 5 +- tools/h5dump/h5dumpgentest.c | 190 +++- tools/h5dump/testh5dump.sh.in | 28 +- tools/testfiles/tallfilters.ddl | 2 +- tools/testfiles/tattr2.h5 | Bin 7720 -> 33840 bytes tools/testfiles/tattr2.ls | 293 +++++- tools/testfiles/tboot.ddl | 25 - tools/testfiles/tboot1.ddl | 23 + tools/testfiles/tboot2.ddl | 22 + tools/testfiles/tcontents.ddl | 41 +- tools/testfiles/tfcontents1.h5 | Bin 0 -> 8424 bytes tools/testfiles/tfcontents2.h5 | Bin 0 -> 976 bytes tools/testfiles/tfill.ddl | 174 ++++ tools/testfiles/tfillalloc.ddl | 23 - tools/testfiles/tfillearly.ddl | 23 - tools/testfiles/tfillifset.ddl | 23 - tools/testfiles/tfillincr.ddl | 23 - tools/testfiles/tfilllate.ddl | 23 - tools/testfiles/tfillnever.ddl | 23 - tools/testfiles/tfilters.h5 | Bin 61200 -> 52336 bytes tools/testfiles/tfvalues.h5 | Bin 0 -> 9552 bytes tools/testfiles/tindiceslarge.ddl | 64 ++ tools/testfiles/tperror.ddl | 8 + tools/testfiles/treference.ddl | 1964 ++++++++++++++++++++++++++++++++++++- 25 files changed, 2716 insertions(+), 278 deletions(-) delete mode 100644 tools/testfiles/tboot.ddl create mode 100644 tools/testfiles/tboot1.ddl create mode 100644 tools/testfiles/tboot2.ddl create mode 100644 tools/testfiles/tfcontents1.h5 create mode 100644 tools/testfiles/tfcontents2.h5 create mode 100644 tools/testfiles/tfill.ddl delete mode 100644 tools/testfiles/tfillalloc.ddl delete mode 100644 tools/testfiles/tfillearly.ddl delete mode 100644 tools/testfiles/tfillifset.ddl delete mode 100644 tools/testfiles/tfillincr.ddl delete mode 100644 tools/testfiles/tfilllate.ddl delete mode 100644 tools/testfiles/tfillnever.ddl create mode 100644 tools/testfiles/tfvalues.h5 create mode 100644 tools/testfiles/tindiceslarge.ddl create mode 100644 tools/testfiles/tperror.ddl diff --git a/MANIFEST b/MANIFEST index 45f5029..3987f6a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -1323,7 +1323,6 @@ ./tools/testfiles/tvlstr.ddl ./tools/testfiles/tattr2.h5 ./tools/testfiles/tall-2A.ddl -./tools/testfiles/tboot.ddl ./tools/testfiles/tcontents.ddl ./tools/testfiles/tfilters.h5 ./tools/testfiles/tchunked.ddl @@ -1331,9 +1330,6 @@ ./tools/testfiles/tcontiguos.ddl ./tools/testfiles/tdeflate.ddl ./tools/testfiles/texternal.ddl -./tools/testfiles/tfillearly.ddl -./tools/testfiles/tfillifset.ddl -./tools/testfiles/tfillnever.ddl ./tools/testfiles/tfletcher32.ddl ./tools/testfiles/treference.ddl ./tools/testfiles/tshuffle.ddl @@ -1341,12 +1337,19 @@ ./tools/testfiles/tszip.ddl ./tools/testfiles/tuserfilter.ddl ./tools/testfiles/tallfilters.ddl -./tools/testfiles/tfillalloc.ddl -./tools/testfiles/tfillincr.ddl -./tools/testfiles/tfilllate.ddl ./tools/testfiles/tstringe.ddl ./tools/testfiles/tindicesyes.ddl ./tools/testfiles/tindicesno.ddl +./tools/testfiles/tfcontents1.h5 +./tools/testfiles/tfcontents2.h5 +./tools/testfiles/tboot1.ddl +./tools/testfiles/tboot2.ddl +./tools/testfiles/tperror.ddl +./tools/testfiles/tindiceslarge.ddl +./tools/testfiles/tfill.ddl +./tools/testfiles/tfvalues.h5 + + diff --git a/tools/h5dump/h5dump.c b/tools/h5dump/h5dump.c index ef5e94c..d294942 100644 --- a/tools/h5dump/h5dump.c +++ b/tools/h5dump/h5dump.c @@ -2068,10 +2068,9 @@ static void dump_fill_value(hid_t dcpl,hid_t type_id, hid_t obj_id) memset(&ctx, 0, sizeof(ctx)); ctx.indent_level=2; - size = H5Tget_size(type_id); - buf = malloc(size); - n_type = H5Tget_native_type(type_id,H5T_DIR_DEFAULT); + size = H5Tget_size(n_type); + buf = malloc(size); H5Pget_fill_value(dcpl, n_type, buf); diff --git a/tools/h5dump/h5dumpgentest.c b/tools/h5dump/h5dumpgentest.c index 806f3db..e330693 100644 --- a/tools/h5dump/h5dumpgentest.c +++ b/tools/h5dump/h5dumpgentest.c @@ -3080,7 +3080,7 @@ static void gent_char(void) * * Return: * - * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu + * Programmer: pvn@ncsa.uiuc.edu * * Date: May 28, 2003 * @@ -3520,7 +3520,7 @@ static void write_attr_in(hid_t loc_id, * * Return: * - * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu + * Programmer: pvn@ncsa.uiuc.edu * * Date: May 28, 2003 * @@ -3976,7 +3976,7 @@ static void write_dset_in(hid_t loc_id, * * Return: void * - * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu + * Programmer: pvn@ncsa.uiuc.edu * * Date: May 19, 2003 * @@ -4045,7 +4045,7 @@ static void gent_attr_all(void) * * Purpose: utility function to write an attribute * - * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu + * Programmer: pvn@ncsa.uiuc.edu * * Date: May 19, 2003 * @@ -4083,7 +4083,7 @@ int write_attr(hid_t loc_id, int rank, hsize_t *dims, const char *attr_name, * * Return: * - * Programmer: Pedro Vicente, pvn@ncsa.uiuc.edu + * Programmer: pvn@ncsa.uiuc.edu * * Date: May 27, 2003 * @@ -4393,6 +4393,7 @@ static void gent_null_space(void) } + /*------------------------------------------------------------------------- * Function: make_dset * @@ -4403,18 +4404,19 @@ static void gent_null_space(void) static int make_dset(hid_t loc_id, const char *name, - hid_t sid, + hid_t sid, + hid_t tid, hid_t dcpl, void *buf) { hid_t dsid; /* create the dataset */ - if((dsid = H5Dcreate (loc_id,name,H5T_NATIVE_INT,sid,dcpl))<0) + if((dsid = H5Dcreate (loc_id,name,tid,sid,dcpl))<0) return -1; /* write */ - if(H5Dwrite(dsid,H5T_NATIVE_INT,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf)<0) + if(H5Dwrite(dsid,tid,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf)<0) goto out; /* close */ @@ -4431,6 +4433,8 @@ int make_dset(hid_t loc_id, + + /*------------------------------------------------------------------------- * Function: make_external * @@ -4485,6 +4489,12 @@ make_external(hid_t fid) */ static void gent_filters(void) { + typedef enum + { + E_RED, + E_GREEN + } e_t; + hid_t fid; /* file id */ hid_t dcpl; /* dataset creation property list */ hid_t sid; /* dataspace ID */ @@ -4507,20 +4517,23 @@ static void gent_filters(void) char buf4[6]={"abcdef"}; hobj_ref_t buf5[1]; hsize_t dims5[1]={1}; - int i, j, n, ret, val; + int i, j, k, n, ret, val; int fillval = -99; - - typedef enum - { - E_RED, - E_GREEN - } e_t; + int buf6[2][2][100]; + hsize_t dims6[3]={2,2,100}; for (i=n=0; i=0); - ret=make_dset(fid,"compact",sid,dcpl,buf1); + ret=make_dset(fid,"compact",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); ret=H5Gset_comment(fid,"compact", "This is a dataset with compact storage"); @@ -4553,7 +4566,7 @@ static void gent_filters(void) ret=H5Pset_layout(dcpl, H5D_CONTIGUOUS); assert(ret>=0); - ret=make_dset(fid,"contiguous",sid,dcpl,buf1); + ret=make_dset(fid,"contiguous",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); ret=H5Gset_comment(fid,"contiguous", "This is a dataset with contiguous storage"); @@ -4565,7 +4578,7 @@ static void gent_filters(void) ret=H5Pset_chunk(dcpl, SPACE2_RANK, chunk_dims); assert(ret>=0); - ret=make_dset(fid,"chunked",sid,dcpl,buf1); + ret=make_dset(fid,"chunked",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); ret=H5Gset_comment(fid,"chunked", "This is a dataset with chunked storage"); @@ -4593,7 +4606,7 @@ static void gent_filters(void) ret=H5Pset_szip (dcpl,szip_options_mask,szip_pixels_per_block); assert(ret>=0); - ret=make_dset(fid,"szip",sid,dcpl,buf1); + ret=make_dset(fid,"szip",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); #endif @@ -4610,7 +4623,7 @@ static void gent_filters(void) ret=H5Pset_deflate(dcpl, 9); assert(ret>=0); - ret=make_dset(fid,"deflate",sid,dcpl,buf1); + ret=make_dset(fid,"deflate",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); #endif @@ -4628,7 +4641,7 @@ static void gent_filters(void) ret=H5Pset_shuffle(dcpl); assert(ret>=0); - ret=make_dset(fid,"shuffle",sid,dcpl,buf1); + ret=make_dset(fid,"shuffle",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); #endif @@ -4646,7 +4659,7 @@ static void gent_filters(void) ret=H5Pset_fletcher32(dcpl); assert(ret>=0); - ret=make_dset(fid,"fletcher32",sid,dcpl,buf1); + ret=make_dset(fid,"fletcher32",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); #endif @@ -4683,7 +4696,7 @@ static void gent_filters(void) assert(ret>=0); #endif - ret=make_dset(fid,"all",sid,dcpl,buf1); + ret=make_dset(fid,"all",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); @@ -4705,7 +4718,7 @@ static void gent_filters(void) ret=H5Pset_filter (dcpl, MYFILTER_ID, 0, 0, NULL); assert(ret>=0); - ret=make_dset(fid,"myfilter",sid,dcpl,buf1); + ret=make_dset(fid,"myfilter",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); /* remove the filters from the dcpl */ @@ -4724,7 +4737,7 @@ static void gent_filters(void) */ ret=H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_EARLY); assert(ret>=0); - ret=make_dset(fid,"alloc_time_early",sid,dcpl,buf1); + ret=make_dset(fid,"alloc_time_early",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); /*------------------------------------------------------------------------- @@ -4733,7 +4746,7 @@ static void gent_filters(void) */ ret=H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_INCR); assert(ret>=0); - ret=make_dset(fid,"alloc_time_incr",sid,dcpl,buf1); + ret=make_dset(fid,"alloc_time_incr",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); /*------------------------------------------------------------------------- @@ -4742,7 +4755,7 @@ static void gent_filters(void) */ ret=H5Pset_alloc_time(dcpl, H5D_ALLOC_TIME_LATE); assert(ret>=0); - ret=make_dset(fid,"alloc_time_late",sid,dcpl,buf1); + ret=make_dset(fid,"alloc_time_late",sid,H5T_NATIVE_INT,dcpl,buf1); assert(ret>=0); /*------------------------------------------------------------------------- @@ -4850,6 +4863,12 @@ static void gent_filters(void) ret=H5Rcreate(&buf5[0],fid,"g1/mydset",H5R_OBJECT,-1); assert(ret>=0); write_dset(fid,1,dims5,"reference",H5T_STD_REF_OBJ,buf5); + +/*------------------------------------------------------------------------- + * a large 3D dataset + *------------------------------------------------------------------------- + */ + write_dset(fid,3,dims6,"3d",H5T_NATIVE_INT,buf6); /*------------------------------------------------------------------------- * close @@ -5045,12 +5064,30 @@ static void gent_fcontents(void) */ static void gent_fvalues(void) { - hid_t fid; /* file id */ - hid_t dcpl; /* dataset creation property list */ - hid_t sid; /* dataspace ID */ - hsize_t dims[1]={4}; - int buf[4]={1,2,3,4}; - int ret, fillval = -99; + /* compound datatype */ + typedef struct c_t + { + char a; + double b; + } c_t; + + + hid_t fid; /* file id */ + hid_t dcpl; /* dataset creation property list */ + hid_t sid; /* dataspace ID */ + hid_t tid; /* datatype ID */ + hid_t did; /* datasetID */ + hsize_t dims[1]={2}; + int buf[2]={1,2}; /* integer */ + int fillval1=-99; /* integer fill value */ + c_t buf2[2]={{1,2},{3,4}}; /* compound */ + c_t fillval2[1]={{1,2}}; /* compound fill value */ + hvl_t buf3[2]; /* vlen */ + hvl_t fillval3; /* vlen fill value */ + hsize_t dimarray[1]={3}; /* array dimension */ + int buf4[2][3]= {{1,2,3},{4,5,6}}; /* array */ + int fillval4[1][3]= {{1,2,3}}; /* array fill value */ + int ret; /* create a file */ fid = H5Fcreate(FILE48, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); @@ -5059,7 +5096,7 @@ static void gent_fvalues(void) /* create a space */ sid = H5Screate_simple(1, dims, NULL); - /* create a dataset creation property list; the same DCPL is used for all dsets */ + /* create a dataset creation property list */ dcpl = H5Pcreate(H5P_DATASET_CREATE); /*------------------------------------------------------------------------- @@ -5070,10 +5107,23 @@ static void gent_fvalues(void) ret=H5Pset_fill_time(dcpl, H5D_FILL_TIME_IFSET); assert(ret>=0); - ret=H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fillval); + ret=H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fillval1); assert(ret>=0); - ret=make_dset(fid,"fill_time_ifset",sid,dcpl,buf); + ret=make_dset(fid,"fill_time_ifset",sid,H5T_NATIVE_INT,dcpl,buf); + assert(ret>=0); + +/*------------------------------------------------------------------------- + * H5D_FILL_TIME_NEVER + *------------------------------------------------------------------------- + */ + ret=H5Pset_fill_time(dcpl, H5D_FILL_TIME_NEVER); + assert(ret>=0); + + ret=H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fillval1); + assert(ret>=0); + + ret=make_dset(fid,"fill_time_never",sid,H5T_NATIVE_INT,dcpl,buf); assert(ret>=0); /*------------------------------------------------------------------------- @@ -5083,38 +5133,89 @@ static void gent_fvalues(void) ret=H5Pset_fill_time(dcpl, H5D_FILL_TIME_ALLOC); assert(ret>=0); - ret=H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fillval); + ret=H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fillval1); assert(ret>=0); - ret=make_dset(fid,"fill_time_alloc",sid,dcpl,buf); + ret=make_dset(fid,"fill_time_alloc",sid,H5T_NATIVE_INT,dcpl,buf); + assert(ret>=0); + + ret=H5Pclose(dcpl); assert(ret>=0); /*------------------------------------------------------------------------- - * H5D_FILL_TIME_NEVER + * dataset with no fill value *------------------------------------------------------------------------- */ - ret=H5Pset_fill_time(dcpl, H5D_FILL_TIME_NEVER); + write_dset(fid,1,dims,"no_fill",H5T_NATIVE_INT,buf); + +/*------------------------------------------------------------------------- + * dataset with a H5T_COMPOUND fill value + *------------------------------------------------------------------------- + */ + dcpl = H5Pcreate(H5P_DATASET_CREATE); + tid = H5Tcreate (H5T_COMPOUND, sizeof(c_t)); + H5Tinsert(tid, "a", HOFFSET(c_t, a), H5T_NATIVE_CHAR); + H5Tinsert(tid, "b", HOFFSET(c_t, b), H5T_NATIVE_DOUBLE); + ret=H5Pset_fill_value(dcpl, tid, &fillval2); + assert(ret>=0); + ret=make_dset(fid,"fill_compound",sid,tid,dcpl,buf2); + assert(ret>=0); + ret = H5Tclose(tid); + assert(ret>=0); + ret=H5Pclose(dcpl); assert(ret>=0); - ret=H5Pset_fill_value(dcpl, H5T_NATIVE_INT, &fillval); +/*------------------------------------------------------------------------- + * dataset with a H5T_VLEN fill value + *------------------------------------------------------------------------- + */ + buf3[0].len = 1; + buf3[0].p = malloc( 1 * sizeof(int)); + ((int *)buf3[0].p)[0]=1; + buf3[1].len = 2; + buf3[1].p = malloc( 2 * sizeof(int)); + ((int *)buf3[1].p)[0]=2; + ((int *)buf3[1].p)[1]=3; + + tid = H5Tvlen_create(H5T_NATIVE_INT); + dcpl = H5Pcreate(H5P_DATASET_CREATE); + + fillval3.p=NULL; fillval3.len=0; + ret = H5Pset_fill_value(dcpl, tid, &fillval3); assert(ret>=0); - ret=make_dset(fid,"fill_time_never",sid,dcpl,buf); + did = H5Dcreate(fid,"fill_vlen",tid,sid,H5P_DEFAULT); + ret = H5Dwrite(did,tid,H5S_ALL,H5S_ALL,H5P_DEFAULT,buf3); + assert(ret>=0); + ret = H5Dvlen_reclaim(tid,sid,H5P_DEFAULT,buf3); + assert(ret>=0); + ret = H5Dclose(did); + ret = H5Tclose(tid); + ret = H5Pclose(dcpl); assert(ret>=0); /*------------------------------------------------------------------------- + * dataset with a H5T_ARRAY fill value + *------------------------------------------------------------------------- + */ + tid = H5Tarray_create(H5T_NATIVE_INT,1,dimarray,NULL); + write_dset(fid,1,dims,"fill_array",tid,buf4); + ret = H5Tclose(tid); + + +/*------------------------------------------------------------------------- * close *------------------------------------------------------------------------- */ ret=H5Sclose(sid); assert(ret>=0); - ret=H5Pclose(dcpl); - assert(ret>=0); ret=H5Fclose(fid); assert(ret>=0); } + + /*------------------------------------------------------------------------- * Function: main * @@ -5170,6 +5271,7 @@ int main(void) gent_filters(); gent_null_space(); gent_fcontents(); + gent_fvalues(); return 0; } diff --git a/tools/h5dump/testh5dump.sh.in b/tools/h5dump/testh5dump.sh.in index 0c40861..e9969de 100644 --- a/tools/h5dump/testh5dump.sh.in +++ b/tools/h5dump/testh5dump.sh.in @@ -211,14 +211,17 @@ TOOLTEST tchar1.ddl -r tchar.h5 # Missing file name TOOLTEST tnofilename.ddl +# rev. 2004 +# tests for super block +TOOLTEST tboot1.ddl -H -B -d compact tfcontents1.h5 +TOOLTEST tboot2.ddl -B tfcontents2.h5 - -# test for super block -TOOLTEST tboot.ddl -H -B -d compact tfilters.h5 +# test -p with a non existing dataset +TOOLTEST tperror.ddl -p -d bogus tfcontents1.h5 # test for file contents -TOOLTEST tcontents.ddl -n tfilters.h5 +TOOLTEST tcontents.ddl -n tfcontents1.h5 # tests for storage layout # compact @@ -230,24 +233,21 @@ TOOLTEST tchunked.ddl -H -p -d chunked tfilters.h5 # external TOOLTEST texternal.ddl -H -p -d external tfilters.h5 -# Fill values -TOOLTEST tfillifset.ddl -H -p -d fill_time_ifset tfilters.h5 -TOOLTEST tfillalloc.ddl -H -p -d fill_time_alloc tfilters.h5 -TOOLTEST tfillnever.ddl -H -p -d fill_time_never tfilters.h5 -TOOLTEST tfillearly.ddl -H -p -d alloc_time_early tfilters.h5 -TOOLTEST tfillincr.ddl -H -p -d alloc_time_incr tfilters.h5 -TOOLTEST tfilllate.ddl -H -p -d alloc_time_late tfilters.h5 +# fill values +TOOLTEST tfill.ddl -p tfvalues.h5 -# references , print path -TOOLTEST treference.ddl -d reference tfilters.h5 +# several datatype, with references , print path +TOOLTEST treference.ddl tattr2.h5 # escape/not escape non printable characters TOOLTEST tstringe.ddl -e -d string tfilters.h5 TOOLTEST tstring.ddl -d string tfilters.h5 -# array indices print/not print +# array indices print/not print, large dataset TOOLTEST tindicesyes.ddl -d compact tfilters.h5 TOOLTEST tindicesno.ddl -y -d compact tfilters.h5 +TOOLTEST tindiceslarge.ddl -p -d 3d tfilters.h5 + # tests for filters # SZIP diff --git a/tools/testfiles/tallfilters.ddl b/tools/testfiles/tallfilters.ddl index 45b38b9..4f54e9a 100644 --- a/tools/testfiles/tallfilters.ddl +++ b/tools/testfiles/tallfilters.ddl @@ -13,7 +13,7 @@ DATASET "all" { PREPROCESSING SHUFFLE COMPRESSION SZIP { PIXELS_PER_BLOCK 4 - MODE HARDWARE + MODE K13 CODING ENTROPY BYTE_ORDER LSB HEADER RAW diff --git a/tools/testfiles/tattr2.h5 b/tools/testfiles/tattr2.h5 index c154a0b..c7e3359 100644 Binary files a/tools/testfiles/tattr2.h5 and b/tools/testfiles/tattr2.h5 differ diff --git a/tools/testfiles/tattr2.ls b/tools/testfiles/tattr2.ls index 18f891f..b96c201 100644 --- a/tools/testfiles/tattr2.ls +++ b/tools/testfiles/tattr2.ls @@ -3,9 +3,9 @@ ############################# Opened "tattr2.h5" with sec2 driver. dset Dataset {2/2} - Attribute: string scalar - Type: 17-byte null-terminated ASCII string - Data: "string attribute" + Attribute: string {2} + Type: 2-byte null-terminated ASCII string + Data: "ab", "de" Attribute: bitfield {2} Type: 8-bit bitfield Data: 0x01, 0x02 @@ -15,10 +15,10 @@ dset Dataset {2/2} Data: 0x01, 0x02 Attribute: compound {2} Type: struct { - "a" +0 32-bit little-endian integer - "b" +4 IEEE 32-bit little-endian float - } 8 bytes - Data: {1, 1}, {2, 2} + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: {1, 2}, {3, 4} Attribute: reference {2} Type: object reference Data: DATASET-1:976, DATASET-1:976 @@ -31,18 +31,289 @@ dset Dataset {2/2} Attribute: vlen {2} Type: variable length of 32-bit little-endian integer - Data: (0), (10,11) + Data: (1), (2,3) Attribute: array {2} Type: [3] 32-bit little-endian integer - Data: [1,1,1], [2,2,2] + Data: [1,2,3], [4,5,6] Attribute: integer {2} Type: 32-bit little-endian integer - Data: 0, 0 + Data: 1, 2 Attribute: float {2} Type: IEEE 32-bit little-endian float - Data: 0, 0 + Data: 1, 2 + Attribute: string2D {3, 2} + Type: 2-byte null-terminated ASCII string + Data: + (0,0) "ab", "cd", "ef", "gh", "ij", "kl" + Attribute: bitfield2D {3, 2} + Type: 8-bit bitfield + Data: + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + Attribute: opaque2D {3, 2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + Attribute: compound2D {3, 2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: + (0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12} + Attribute: reference2D {3, 2} + Type: object reference + Data: + (0,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, + (2,0) DATASET-1:976, DATASET-1:976 + Attribute: enum2D {3, 2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: + (0,0) RED, RED, RED, RED, RED, RED + Attribute: vlen2D {3, 2} + Type: variable length of + 32-bit little-endian integer + Data: + (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) + Attribute: array2D {3, 2} + Type: [3] 32-bit little-endian integer + Data: + (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] + Attribute: integer2D {3, 2} + Type: 32-bit little-endian integer + Data: + (0,0) 1, 2, 3, 4, 5, 6 + Attribute: float2D {3, 2} + Type: IEEE 32-bit little-endian float + Data: + (0,0) 1, 2, 3, 4, 5, 6 + Attribute: string3D {4, 3, 2} + Type: 2-byte null-terminated ASCII string + Data: + (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", + (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", + (3,1,0) "RS", "TU", "VW", "XZ" + Attribute: bitfield3D {4, 3, 2} + Type: 8-bit bitfield + Data: + (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + (3,1,0) 0x15, 0x16, 0x17, 0x18 + Attribute: opaque3D {4, 3, 2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: + (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + (3,1,0) 0x15, 0x16, 0x17, 0x18 + Attribute: compound3D {4, 3, 2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: + (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, + (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, + (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, + (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} + Attribute: reference3D {4, 3, 2} + Type: object reference + Data: + (0,0,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, + (0,2,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, + (1,1,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, + (2,0,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, + (2,2,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976, + (3,1,0) DATASET-1:976, DATASET-1:976, DATASET-1:976, DATASET-1:976 + Attribute: enum3D {4, 3, 2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: + (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, + (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + Attribute: vlen3D {4, 3, 2} + Type: variable length of + 32-bit little-endian integer + Data: + (0,0,0) (0), (1), (2), (3), (4), (5), (6,7), (8,9), (10,11), + (1,1,1) (12,13), (14,15), (16,17), (18,19,20), (21,22,23), + (2,1,0) (24,25,26), (27,28,29), (30,31,32), (33,34,35), + (3,0,0) (36,37,38,39), (40,41,42,43), (44,45,46,47), (48,49,50,51), + (3,2,0) (52,53,54,55), (56,57,58,59) + Attribute: array3D {4, 3, 2} + Type: [3] 32-bit little-endian integer + Data: + (0,0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], + (0,2,1) [16,17,18], [19,20,21], [22,23,24], [25,26,27], [28,29,30], + (1,2,0) [31,32,33], [34,35,36], [37,38,39], [40,41,42], [43,44,45], + (2,1,1) [46,47,48], [49,50,51], [52,53,54], [55,56,57], [58,59,60], + (3,1,0) [61,62,63], [64,65,66], [67,68,69], [70,71,72] + Attribute: integer3D {4, 3, 2} + Type: 32-bit little-endian integer + Data: + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: float3D {4, 3, 2} + Type: IEEE 32-bit little-endian float + Data: + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 Location: 1:976 Links: 1 Modified: XXXX-XX-XX XX:XX:XX XXX Storage: 8 logical bytes, 0 allocated bytes Type: 32-bit little-endian integer +g1 Group + Attribute: string {2} + Type: 2-byte null-terminated ASCII string + Data: "ab", "de" + Attribute: bitfield {2} + Type: 8-bit bitfield + Data: 0x01, 0x02 + Attribute: opaque {2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: 0x01, 0x02 + Attribute: compound {2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: {1, 2}, {3, 4} + Attribute: enum {2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: RED, RED + Attribute: vlen {2} + Type: variable length of + 32-bit little-endian integer + Data: (1), (2,3) + Attribute: array {2} + Type: [3] 32-bit little-endian integer + Data: [1,2,3], [4,5,6] + Attribute: integer {2} + Type: 32-bit little-endian integer + Data: 1, 2 + Attribute: float {2} + Type: IEEE 32-bit little-endian float + Data: 1, 2 + Attribute: string2D {3, 2} + Type: 2-byte null-terminated ASCII string + Data: + (0,0) "ab", "cd", "ef", "gh", "ij", "kl" + Attribute: bitfield2D {3, 2} + Type: 8-bit bitfield + Data: + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + Attribute: opaque2D {3, 2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: + (0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 + Attribute: compound2D {3, 2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: + (0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12} + Attribute: enum2D {3, 2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: + (0,0) RED, RED, RED, RED, RED, RED + Attribute: vlen2D {3, 2} + Type: variable length of + 32-bit little-endian integer + Data: + (0,0) (0), (1), (2,3), (4,5), (6,7,8), (9,10,11) + Attribute: array2D {3, 2} + Type: [3] 32-bit little-endian integer + Data: + (0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], [16,17,18] + Attribute: integer2D {3, 2} + Type: 32-bit little-endian integer + Data: + (0,0) 1, 2, 3, 4, 5, 6 + Attribute: float2D {3, 2} + Type: IEEE 32-bit little-endian float + Data: + (0,0) 1, 2, 3, 4, 5, 6 + Attribute: string3D {4, 3, 2} + Type: 2-byte null-terminated ASCII string + Data: + (0,0,0) "ab", "cd", "ef", "gh", "ij", "kl", "mn", "pq", "rs", "tu", + (1,2,0) "vw", "xz", "AB", "CD", "EF", "GH", "IJ", "KL", "MN", "PQ", + (3,1,0) "RS", "TU", "VW", "XZ" + Attribute: bitfield3D {4, 3, 2} + Type: 8-bit bitfield + Data: + (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + (3,1,0) 0x15, 0x16, 0x17, 0x18 + Attribute: opaque3D {4, 3, 2} + Type: 1-byte opaque type + (tag = "1-byte opaque type") + Data: + (0,0,0) 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, + (1,2,0) 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, + (3,1,0) 0x15, 0x16, 0x17, 0x18 + Attribute: compound3D {4, 3, 2} + Type: struct { + "a" +0 8-bit integer + "b" +4 IEEE 64-bit little-endian float + } 12 bytes + Data: + (0,0,0) {1, 2}, {3, 4}, {5, 6}, {7, 8}, {9, 10}, {11, 12}, {13, + (1,0,0) 14}, {15, 16}, {17, 18}, {19, 20}, {21, 22}, {23, 24}, + (2,0,0) {25, 26}, {27, 28}, {29, 30}, {31, 32}, {33, 34}, {35, 36}, + (3,0,0) {37, 38}, {39, 40}, {41, 42}, {43, 44}, {45, 46}, {47, 48} + Attribute: enum3D {4, 3, 2} + Type: enum 32-bit little-endian integer { + RED = 0 + GREEN = 1 + } + Data: + (0,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, + (2,0,0) RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED, RED + Attribute: vlen3D {4, 3, 2} + Type: variable length of + 32-bit little-endian integer + Data: + (0,0,0) (0), (1), (2), (3), (4), (5), (6,7), (8,9), (10,11), + (1,1,1) (12,13), (14,15), (16,17), (18,19,20), (21,22,23), + (2,1,0) (24,25,26), (27,28,29), (30,31,32), (33,34,35), + (3,0,0) (36,37,38,39), (40,41,42,43), (44,45,46,47), (48,49,50,51), + (3,2,0) (52,53,54,55), (56,57,58,59) + Attribute: array3D {4, 3, 2} + Type: [3] 32-bit little-endian integer + Data: + (0,0,0) [1,2,3], [4,5,6], [7,8,9], [10,11,12], [13,14,15], + (0,2,1) [16,17,18], [19,20,21], [22,23,24], [25,26,27], [28,29,30], + (1,2,0) [31,32,33], [34,35,36], [37,38,39], [40,41,42], [43,44,45], + (2,1,1) [46,47,48], [49,50,51], [52,53,54], [55,56,57], [58,59,60], + (3,1,0) [61,62,63], [64,65,66], [67,68,69], [70,71,72] + Attribute: integer3D {4, 3, 2} + Type: 32-bit little-endian integer + Data: + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Attribute: float3D {4, 3, 2} + Type: IEEE 32-bit little-endian float + Data: + (0,0,0) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, + (2,2,1) 18, 19, 20, 21, 22, 23, 24 + Location: 1:2176 + Links: 1 +g2 Group + Location: 1:2824 + Links: 1 diff --git a/tools/testfiles/tboot.ddl b/tools/testfiles/tboot.ddl deleted file mode 100644 index 20e6e0e..0000000 --- a/tools/testfiles/tboot.ddl +++ /dev/null @@ -1,25 +0,0 @@ -############################# -Expected output for 'h5dump -H -B -d compact tfilters.h5' -############################# -HDF5 "tfilters.h5" { -SUPER_BLOCK { - SUPERBLOCK_VERSION 0 - FREELIST_VERSION 0 - SYMBOLTABLE_VERSION 0 - OBJECTHEADER_VERSION 0 - OFFSET_SIZE 8 - LENGTH_SIZE 8 - BTREE_RANK 16 - BTREE_LEAF 4 - FILE_DRIVER H5FD_SEC2 - ISTORE_K 32 -} -USER_BLOCK { - USERBLOCK_SIZE 0 -} -DATASET "compact" { -COMMENT "This is a dataset with compact storage" - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } -} -} diff --git a/tools/testfiles/tboot1.ddl b/tools/testfiles/tboot1.ddl new file mode 100644 index 0000000..1a415f6 --- /dev/null +++ b/tools/testfiles/tboot1.ddl @@ -0,0 +1,23 @@ +############################# +Expected output for 'h5dump -H -B -d compact tfcontents1.h5' +############################# +HDF5 "tfcontents1.h5" { +SUPER_BLOCK { + SUPERBLOCK_VERSION 0 + FREELIST_VERSION 0 + SYMBOLTABLE_VERSION 0 + OBJECTHEADER_VERSION 0 + OFFSET_SIZE 8 + LENGTH_SIZE 8 + BTREE_RANK 16 + BTREE_LEAF 4 + FILE_DRIVER H5FD_SEC2 + ISTORE_K 32 +} +USER_BLOCK { + USERBLOCK_SIZE 0 +} +DATASET "compact" { + } +} +h5dump error: unable to open dataset "compact" diff --git a/tools/testfiles/tboot2.ddl b/tools/testfiles/tboot2.ddl new file mode 100644 index 0000000..a1e268f --- /dev/null +++ b/tools/testfiles/tboot2.ddl @@ -0,0 +1,22 @@ +############################# +Expected output for 'h5dump -B tfcontents2.h5' +############################# +HDF5 "tfcontents2.h5" { +SUPER_BLOCK { + SUPERBLOCK_VERSION 0 + FREELIST_VERSION 0 + SYMBOLTABLE_VERSION 0 + OBJECTHEADER_VERSION 0 + OFFSET_SIZE 8 + LENGTH_SIZE 8 + BTREE_RANK 16 + BTREE_LEAF 4 + FILE_DRIVER H5FD_SEC2 + ISTORE_K 32 +} +USER_BLOCK { + USERBLOCK_SIZE 0 +} +GROUP "/" { +} +} diff --git a/tools/testfiles/tcontents.ddl b/tools/testfiles/tcontents.ddl index f8bc9bf..43afb9d 100644 --- a/tools/testfiles/tcontents.ddl +++ b/tools/testfiles/tcontents.ddl @@ -1,35 +1,20 @@ ############################# -Expected output for 'h5dump -n tfilters.h5' +Expected output for 'h5dump -n tfcontents1.h5' ############################# -HDF5 "tfilters.h5" { +HDF5 "tfcontents1.h5" { FILE_CONTENTS { - dataset /all - dataset /alloc_time_early - dataset /alloc_time_incr - dataset /alloc_time_late - dataset /bitfield - dataset /char - dataset /chunked - dataset /compact - dataset /contiguous - dataset /deflate - dataset /enum - dataset /external - dataset /fill_time_alloc - dataset /fill_time_ifset - dataset /fill_time_never - dataset /fletcher32 + datatype /#5696 + dataset /dset + dataset /dset3 -> /dset + dataset /dset4 -> /dset + dataset /dsetmytype2 group /g1 - dataset /g1/mydset - dataset /hlink to all -> /all - dataset /myfilter + dataset /g1/dset1 -> /dset + group /g1/g1.1 + dataset /g1/g1.1/dset2 -> /dset + group /g2 -> /g1/g1.1 + link /mylink -> mylink datatype /mytype - datatype /myvlen - dataset /reference - dataset /shuffle - link /slink to all -> all - dataset /string - dataset /szip - dataset /vlen + link /softlink -> /dset } } diff --git a/tools/testfiles/tfcontents1.h5 b/tools/testfiles/tfcontents1.h5 new file mode 100644 index 0000000..a7cf2d3 Binary files /dev/null and b/tools/testfiles/tfcontents1.h5 differ diff --git a/tools/testfiles/tfcontents2.h5 b/tools/testfiles/tfcontents2.h5 new file mode 100644 index 0000000..216a885 Binary files /dev/null and b/tools/testfiles/tfcontents2.h5 differ diff --git a/tools/testfiles/tfill.ddl b/tools/testfiles/tfill.ddl new file mode 100644 index 0000000..14a01f3 --- /dev/null +++ b/tools/testfiles/tfill.ddl @@ -0,0 +1,174 @@ +############################# +Expected output for 'h5dump -p tfvalues.h5' +############################# +HDF5 "tfvalues.h5" { +GROUP "/" { + DATASET "fill_array" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 24 + OFFSET 1920 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_IFSET + VALUE [ 0, 0, 0 ] + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0): [ 1, 2, 3 ], [ 4, 5, 6 ] + } + } + DATASET "fill_compound" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 24 + OFFSET 1864 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_IFSET + VALUE { + 1, + 2 + } + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0): { + 1, + 2 + }, + (1): { + 3, + 4 + } + } + } + DATASET "fill_time_alloc" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 8 + OFFSET 1848 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_ALLOC + VALUE -99 + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0): 1, 2 + } + } + DATASET "fill_time_ifset" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 8 + OFFSET 2048 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_IFSET + VALUE -99 + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0): 1, 2 + } + } + DATASET "fill_time_never" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 8 + OFFSET 2056 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_NEVER + VALUE -99 + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0): 1, 2 + } + } + DATASET "fill_vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 32 + OFFSET 1888 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_ALLOC + VALUE () + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0): (1), (2, 3) + } + } + DATASET "no_fill" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 8 + OFFSET 1856 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_IFSET + VALUE 0 + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0): 1, 2 + } + } +} +} diff --git a/tools/testfiles/tfillalloc.ddl b/tools/testfiles/tfillalloc.ddl deleted file mode 100644 index 849c9ec..0000000 --- a/tools/testfiles/tfillalloc.ddl +++ /dev/null @@ -1,23 +0,0 @@ -############################# -Expected output for 'h5dump -H -p -d fill_time_alloc tfilters.h5' -############################# -HDF5 "tfilters.h5" { -DATASET "fill_time_alloc" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } - STORAGE_LAYOUT { - CHUNKED ( 10, 5 ) - SIZE 800 - } - FILTERS { - NONE - } - FILLVALUE { - FILL_TIME H5D_FILL_TIME_ALLOC - VALUE -99 - } - ALLOCATION_TIME { - H5D_ALLOC_TIME_INCR - } -} -} diff --git a/tools/testfiles/tfillearly.ddl b/tools/testfiles/tfillearly.ddl deleted file mode 100644 index 6f38180..0000000 --- a/tools/testfiles/tfillearly.ddl +++ /dev/null @@ -1,23 +0,0 @@ -############################# -Expected output for 'h5dump -H -p -d alloc_time_early tfilters.h5' -############################# -HDF5 "tfilters.h5" { -DATASET "alloc_time_early" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } - STORAGE_LAYOUT { - CHUNKED ( 10, 5 ) - SIZE 800 - } - FILTERS { - NONE - } - FILLVALUE { - FILL_TIME H5D_FILL_TIME_IFSET - VALUE -99 - } - ALLOCATION_TIME { - H5D_ALLOC_TIME_EARLY - } -} -} diff --git a/tools/testfiles/tfillifset.ddl b/tools/testfiles/tfillifset.ddl deleted file mode 100644 index ef55c31..0000000 --- a/tools/testfiles/tfillifset.ddl +++ /dev/null @@ -1,23 +0,0 @@ -############################# -Expected output for 'h5dump -H -p -d fill_time_ifset tfilters.h5' -############################# -HDF5 "tfilters.h5" { -DATASET "fill_time_ifset" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } - STORAGE_LAYOUT { - CHUNKED ( 10, 5 ) - SIZE 800 - } - FILTERS { - NONE - } - FILLVALUE { - FILL_TIME H5D_FILL_TIME_IFSET - VALUE -99 - } - ALLOCATION_TIME { - H5D_ALLOC_TIME_INCR - } -} -} diff --git a/tools/testfiles/tfillincr.ddl b/tools/testfiles/tfillincr.ddl deleted file mode 100644 index 5227e3d..0000000 --- a/tools/testfiles/tfillincr.ddl +++ /dev/null @@ -1,23 +0,0 @@ -############################# -Expected output for 'h5dump -H -p -d alloc_time_incr tfilters.h5' -############################# -HDF5 "tfilters.h5" { -DATASET "alloc_time_incr" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } - STORAGE_LAYOUT { - CHUNKED ( 10, 5 ) - SIZE 800 - } - FILTERS { - NONE - } - FILLVALUE { - FILL_TIME H5D_FILL_TIME_IFSET - VALUE -99 - } - ALLOCATION_TIME { - H5D_ALLOC_TIME_INCR - } -} -} diff --git a/tools/testfiles/tfilllate.ddl b/tools/testfiles/tfilllate.ddl deleted file mode 100644 index 21f9de4..0000000 --- a/tools/testfiles/tfilllate.ddl +++ /dev/null @@ -1,23 +0,0 @@ -############################# -Expected output for 'h5dump -H -p -d alloc_time_late tfilters.h5' -############################# -HDF5 "tfilters.h5" { -DATASET "alloc_time_late" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } - STORAGE_LAYOUT { - CHUNKED ( 10, 5 ) - SIZE 800 - } - FILTERS { - NONE - } - FILLVALUE { - FILL_TIME H5D_FILL_TIME_IFSET - VALUE -99 - } - ALLOCATION_TIME { - H5D_ALLOC_TIME_LATE - } -} -} diff --git a/tools/testfiles/tfillnever.ddl b/tools/testfiles/tfillnever.ddl deleted file mode 100644 index d7311bc..0000000 --- a/tools/testfiles/tfillnever.ddl +++ /dev/null @@ -1,23 +0,0 @@ -############################# -Expected output for 'h5dump -H -p -d fill_time_never tfilters.h5' -############################# -HDF5 "tfilters.h5" { -DATASET "fill_time_never" { - DATATYPE H5T_STD_I32LE - DATASPACE SIMPLE { ( 20, 10 ) / ( 20, 10 ) } - STORAGE_LAYOUT { - CHUNKED ( 10, 5 ) - SIZE 800 - } - FILTERS { - NONE - } - FILLVALUE { - FILL_TIME H5D_FILL_TIME_NEVER - VALUE -99 - } - ALLOCATION_TIME { - H5D_ALLOC_TIME_INCR - } -} -} diff --git a/tools/testfiles/tfilters.h5 b/tools/testfiles/tfilters.h5 index c879796..ff5bec0 100644 Binary files a/tools/testfiles/tfilters.h5 and b/tools/testfiles/tfilters.h5 differ diff --git a/tools/testfiles/tfvalues.h5 b/tools/testfiles/tfvalues.h5 new file mode 100644 index 0000000..53879aa Binary files /dev/null and b/tools/testfiles/tfvalues.h5 differ diff --git a/tools/testfiles/tindiceslarge.ddl b/tools/testfiles/tindiceslarge.ddl new file mode 100644 index 0000000..db72630 --- /dev/null +++ b/tools/testfiles/tindiceslarge.ddl @@ -0,0 +1,64 @@ +############################# +Expected output for 'h5dump -p -d 3d tfilters.h5' +############################# +HDF5 "tfilters.h5" { +DATASET "3d" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2, 2, 100 ) / ( 2, 2, 100 ) } + STORAGE_LAYOUT { + CONTIGUOUS + SIZE 1600 + OFFSET 48688 + } + FILTERS { + NONE + } + FILLVALUE { + FILL_TIME H5D_FILL_TIME_IFSET + VALUE 0 + } + ALLOCATION_TIME { + H5D_ALLOC_TIME_LATE + } + DATA { + (0,0,0): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + (0,0,16): 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, + (0,0,28): 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, + (0,0,40): 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + (0,0,52): 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, + (0,0,64): 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, + (0,0,76): 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, + (0,0,88): 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, + (0,1,0): 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + (0,1,10): 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + (0,1,20): 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + (0,1,30): 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + (0,1,40): 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + (0,1,50): 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + (0,1,60): 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + (0,1,70): 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + (0,1,80): 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + (0,1,90): 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + (1,0,0): 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + (1,0,10): 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + (1,0,20): 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + (1,0,30): 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + (1,0,40): 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + (1,0,50): 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + (1,0,60): 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, + (1,0,70): 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, + (1,0,80): 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, + (1,0,90): 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, + (1,1,0): 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, + (1,1,10): 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, + (1,1,20): 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, + (1,1,30): 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, + (1,1,40): 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, + (1,1,50): 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, + (1,1,60): 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, + (1,1,70): 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, + (1,1,80): 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, + (1,1,90): 390, 391, 392, 393, 394, 395, 396, 397, 398, 399 + } +} +} diff --git a/tools/testfiles/tperror.ddl b/tools/testfiles/tperror.ddl new file mode 100644 index 0000000..c7ee79d --- /dev/null +++ b/tools/testfiles/tperror.ddl @@ -0,0 +1,8 @@ +############################# +Expected output for 'h5dump -p -d bogus tfcontents1.h5' +############################# +HDF5 "tfcontents1.h5" { +DATASET "bogus" { + } +} +h5dump error: unable to open dataset "bogus" diff --git a/tools/testfiles/treference.ddl b/tools/testfiles/treference.ddl index f281a6a..e87aa48 100644 --- a/tools/testfiles/treference.ddl +++ b/tools/testfiles/treference.ddl @@ -1,12 +1,1962 @@ ############################# -Expected output for 'h5dump -d reference tfilters.h5' +Expected output for 'h5dump tattr2.h5' ############################# -HDF5 "tfilters.h5" { -DATASET "reference" { - DATATYPE H5T_REFERENCE - DATASPACE SIMPLE { ( 1 ) / ( 1 ) } - DATA { - (0): DATASET 60328 /g1/mydset +HDF5 "tattr2.h5" { +GROUP "/" { + ATTRIBUTE "string" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): "ab", "de" + } + } + ATTRIBUTE "bitfield" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + ATTRIBUTE "opaque" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + ATTRIBUTE "compound" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): { + 1, + 2 + }, + (1): { + 3, + 4 + } + } + } + ATTRIBUTE "enum" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): RED, RED + } + } + ATTRIBUTE "vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): (1), (2, 3) + } + } + ATTRIBUTE "array" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): [ 1, 2, 3 ], [ 4, 5, 6 ] + } + } + ATTRIBUTE "integer" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "float" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "string2D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): "ab", "cd", + (1,0): "ef", "gh", + (2,0): "ij", "kl" + } + } + ATTRIBUTE "bitfield2D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "opaque2D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "compound2D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): { + 1, + 2 + }, + (0,1): { + 3, + 4 + }, + (1,0): { + 5, + 6 + }, + (1,1): { + 7, + 8 + }, + (2,0): { + 9, + 10 + }, + (2,1): { + 11, + 12 + } + } + } + ATTRIBUTE "enum2D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): RED, RED, + (1,0): RED, RED, + (2,0): RED, RED + } + } + ATTRIBUTE "vlen2D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): (0), (1), + (1,0): (2, 3), (4, 5), + (2,0): (6, 7, 8), (9, 10, 11) + } + } + ATTRIBUTE "array2D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] + } + } + ATTRIBUTE "integer2D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "float2D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "string3D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): "ab", "cd", + (0,1,0): "ef", "gh", + (0,2,0): "ij", "kl", + (1,0,0): "mn", "pq", + (1,1,0): "rs", "tu", + (1,2,0): "vw", "xz", + (2,0,0): "AB", "CD", + (2,1,0): "EF", "GH", + (2,2,0): "IJ", "KL", + (3,0,0): "MN", "PQ", + (3,1,0): "RS", "TU", + (3,2,0): "VW", "XZ" + } + } + ATTRIBUTE "bitfield3D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + ATTRIBUTE "opaque3D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + ATTRIBUTE "compound3D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): { + 1, + 2 + }, + (0,0,1): { + 3, + 4 + }, + (0,1,0): { + 5, + 6 + }, + (0,1,1): { + 7, + 8 + }, + (0,2,0): { + 9, + 10 + }, + (0,2,1): { + 11, + 12 + }, + (1,0,0): { + 13, + 14 + }, + (1,0,1): { + 15, + 16 + }, + (1,1,0): { + 17, + 18 + }, + (1,1,1): { + 19, + 20 + }, + (1,2,0): { + 21, + 22 + }, + (1,2,1): { + 23, + 24 + }, + (2,0,0): { + 25, + 26 + }, + (2,0,1): { + 27, + 28 + }, + (2,1,0): { + 29, + 30 + }, + (2,1,1): { + 31, + 32 + }, + (2,2,0): { + 33, + 34 + }, + (2,2,1): { + 35, + 36 + }, + (3,0,0): { + 37, + 38 + }, + (3,0,1): { + 39, + 40 + }, + (3,1,0): { + 41, + 42 + }, + (3,1,1): { + 43, + 44 + }, + (3,2,0): { + 45, + 46 + }, + (3,2,1): { + 47, + 48 + } + } + } + ATTRIBUTE "enum3D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): RED, RED, + (0,1,0): RED, RED, + (0,2,0): RED, RED, + (1,0,0): RED, RED, + (1,1,0): RED, RED, + (1,2,0): RED, RED, + (2,0,0): RED, RED, + (2,1,0): RED, RED, + (2,2,0): RED, RED, + (3,0,0): RED, RED, + (3,1,0): RED, RED, + (3,2,0): RED, RED + } + } + ATTRIBUTE "vlen3D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): (0), (1), + (0,1,0): (2), (3), + (0,2,0): (4), (5), + (1,0,0): (6, 7), (8, 9), + (1,1,0): (10, 11), (12, 13), + (1,2,0): (14, 15), (16, 17), + (2,0,0): (18, 19, 20), (21, 22, 23), + (2,1,0): (24, 25, 26), (27, 28, 29), + (2,2,0): (30, 31, 32), (33, 34, 35), + (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), + (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), + (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + } + } + ATTRIBUTE "array3D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], + (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], + (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], + (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], + (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], + (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], + (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], + (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], + (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], + (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] + } + } + ATTRIBUTE "integer3D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + ATTRIBUTE "float3D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + DATASET "dset" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0, 0 + } + ATTRIBUTE "string" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): "ab", "de" + } + } + ATTRIBUTE "bitfield" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + ATTRIBUTE "opaque" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + ATTRIBUTE "compound" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): { + 1, + 2 + }, + (1): { + 3, + 4 + } + } + } + ATTRIBUTE "reference" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): DATASET 976 /dset , DATASET 976 /dset + } + } + ATTRIBUTE "enum" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): RED, RED + } + } + ATTRIBUTE "vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): (1), (2, 3) + } + } + ATTRIBUTE "array" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): [ 1, 2, 3 ], [ 4, 5, 6 ] + } + } + ATTRIBUTE "integer" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "float" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "string2D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): "ab", "cd", + (1,0): "ef", "gh", + (2,0): "ij", "kl" + } + } + ATTRIBUTE "bitfield2D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "opaque2D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "compound2D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): { + 1, + 2 + }, + (0,1): { + 3, + 4 + }, + (1,0): { + 5, + 6 + }, + (1,1): { + 7, + 8 + }, + (2,0): { + 9, + 10 + }, + (2,1): { + 11, + 12 + } + } + } + ATTRIBUTE "reference2D" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): DATASET 976 /dset , DATASET 976 /dset , + (1,0): DATASET 976 /dset , DATASET 976 /dset , + (2,0): DATASET 976 /dset , DATASET 976 /dset + } + } + ATTRIBUTE "enum2D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): RED, RED, + (1,0): RED, RED, + (2,0): RED, RED + } + } + ATTRIBUTE "vlen2D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): (0), (1), + (1,0): (2, 3), (4, 5), + (2,0): (6, 7, 8), (9, 10, 11) + } + } + ATTRIBUTE "array2D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] + } + } + ATTRIBUTE "integer2D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "float2D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "string3D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): "ab", "cd", + (0,1,0): "ef", "gh", + (0,2,0): "ij", "kl", + (1,0,0): "mn", "pq", + (1,1,0): "rs", "tu", + (1,2,0): "vw", "xz", + (2,0,0): "AB", "CD", + (2,1,0): "EF", "GH", + (2,2,0): "IJ", "KL", + (3,0,0): "MN", "PQ", + (3,1,0): "RS", "TU", + (3,2,0): "VW", "XZ" + } + } + ATTRIBUTE "bitfield3D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + ATTRIBUTE "opaque3D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + ATTRIBUTE "compound3D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): { + 1, + 2 + }, + (0,0,1): { + 3, + 4 + }, + (0,1,0): { + 5, + 6 + }, + (0,1,1): { + 7, + 8 + }, + (0,2,0): { + 9, + 10 + }, + (0,2,1): { + 11, + 12 + }, + (1,0,0): { + 13, + 14 + }, + (1,0,1): { + 15, + 16 + }, + (1,1,0): { + 17, + 18 + }, + (1,1,1): { + 19, + 20 + }, + (1,2,0): { + 21, + 22 + }, + (1,2,1): { + 23, + 24 + }, + (2,0,0): { + 25, + 26 + }, + (2,0,1): { + 27, + 28 + }, + (2,1,0): { + 29, + 30 + }, + (2,1,1): { + 31, + 32 + }, + (2,2,0): { + 33, + 34 + }, + (2,2,1): { + 35, + 36 + }, + (3,0,0): { + 37, + 38 + }, + (3,0,1): { + 39, + 40 + }, + (3,1,0): { + 41, + 42 + }, + (3,1,1): { + 43, + 44 + }, + (3,2,0): { + 45, + 46 + }, + (3,2,1): { + 47, + 48 + } + } + } + ATTRIBUTE "reference3D" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): DATASET 976 /dset , + (0,0,1): DATASET 976 /dset , + (0,1,0): DATASET 976 /dset , + (0,1,1): DATASET 976 /dset , + (0,2,0): DATASET 976 /dset , + (0,2,1): DATASET 976 /dset , + (1,0,0): DATASET 976 /dset , + (1,0,1): DATASET 976 /dset , + (1,1,0): DATASET 976 /dset , + (1,1,1): DATASET 976 /dset , + (1,2,0): DATASET 976 /dset , + (1,2,1): DATASET 976 /dset , + (2,0,0): DATASET 976 /dset , + (2,0,1): DATASET 976 /dset , + (2,1,0): DATASET 976 /dset , + (2,1,1): DATASET 976 /dset , + (2,2,0): DATASET 976 /dset , + (2,2,1): DATASET 976 /dset , + (3,0,0): DATASET 976 /dset , + (3,0,1): DATASET 976 /dset , + (3,1,0): DATASET 976 /dset , + (3,1,1): DATASET 976 /dset , + (3,2,0): DATASET 976 /dset , + (3,2,1): DATASET 976 /dset + } + } + ATTRIBUTE "enum3D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): RED, RED, + (0,1,0): RED, RED, + (0,2,0): RED, RED, + (1,0,0): RED, RED, + (1,1,0): RED, RED, + (1,2,0): RED, RED, + (2,0,0): RED, RED, + (2,1,0): RED, RED, + (2,2,0): RED, RED, + (3,0,0): RED, RED, + (3,1,0): RED, RED, + (3,2,0): RED, RED + } + } + ATTRIBUTE "vlen3D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): (0), (1), + (0,1,0): (2), (3), + (0,2,0): (4), (5), + (1,0,0): (6, 7), (8, 9), + (1,1,0): (10, 11), (12, 13), + (1,2,0): (14, 15), (16, 17), + (2,0,0): (18, 19, 20), (21, 22, 23), + (2,1,0): (24, 25, 26), (27, 28, 29), + (2,2,0): (30, 31, 32), (33, 34, 35), + (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), + (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), + (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + } + } + ATTRIBUTE "array3D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], + (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], + (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], + (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], + (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], + (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], + (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], + (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], + (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], + (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] + } + } + ATTRIBUTE "integer3D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + ATTRIBUTE "float3D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + } + GROUP "g1" { + ATTRIBUTE "string" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): "ab", "de" + } + } + ATTRIBUTE "bitfield" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + ATTRIBUTE "opaque" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + ATTRIBUTE "compound" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): { + 1, + 2 + }, + (1): { + 3, + 4 + } + } + } + ATTRIBUTE "enum" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): RED, RED + } + } + ATTRIBUTE "vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): (1), (2, 3) + } + } + ATTRIBUTE "array" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): [ 1, 2, 3 ], [ 4, 5, 6 ] + } + } + ATTRIBUTE "integer" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "float" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + ATTRIBUTE "string2D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): "ab", "cd", + (1,0): "ef", "gh", + (2,0): "ij", "kl" + } + } + ATTRIBUTE "bitfield2D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "opaque2D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + ATTRIBUTE "compound2D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): { + 1, + 2 + }, + (0,1): { + 3, + 4 + }, + (1,0): { + 5, + 6 + }, + (1,1): { + 7, + 8 + }, + (2,0): { + 9, + 10 + }, + (2,1): { + 11, + 12 + } + } + } + ATTRIBUTE "enum2D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): RED, RED, + (1,0): RED, RED, + (2,0): RED, RED + } + } + ATTRIBUTE "vlen2D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): (0), (1), + (1,0): (2, 3), (4, 5), + (2,0): (6, 7, 8), (9, 10, 11) + } + } + ATTRIBUTE "array2D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] + } + } + ATTRIBUTE "integer2D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "float2D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + ATTRIBUTE "string3D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): "ab", "cd", + (0,1,0): "ef", "gh", + (0,2,0): "ij", "kl", + (1,0,0): "mn", "pq", + (1,1,0): "rs", "tu", + (1,2,0): "vw", "xz", + (2,0,0): "AB", "CD", + (2,1,0): "EF", "GH", + (2,2,0): "IJ", "KL", + (3,0,0): "MN", "PQ", + (3,1,0): "RS", "TU", + (3,2,0): "VW", "XZ" + } + } + ATTRIBUTE "bitfield3D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + ATTRIBUTE "opaque3D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + ATTRIBUTE "compound3D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): { + 1, + 2 + }, + (0,0,1): { + 3, + 4 + }, + (0,1,0): { + 5, + 6 + }, + (0,1,1): { + 7, + 8 + }, + (0,2,0): { + 9, + 10 + }, + (0,2,1): { + 11, + 12 + }, + (1,0,0): { + 13, + 14 + }, + (1,0,1): { + 15, + 16 + }, + (1,1,0): { + 17, + 18 + }, + (1,1,1): { + 19, + 20 + }, + (1,2,0): { + 21, + 22 + }, + (1,2,1): { + 23, + 24 + }, + (2,0,0): { + 25, + 26 + }, + (2,0,1): { + 27, + 28 + }, + (2,1,0): { + 29, + 30 + }, + (2,1,1): { + 31, + 32 + }, + (2,2,0): { + 33, + 34 + }, + (2,2,1): { + 35, + 36 + }, + (3,0,0): { + 37, + 38 + }, + (3,0,1): { + 39, + 40 + }, + (3,1,0): { + 41, + 42 + }, + (3,1,1): { + 43, + 44 + }, + (3,2,0): { + 45, + 46 + }, + (3,2,1): { + 47, + 48 + } + } + } + ATTRIBUTE "enum3D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): RED, RED, + (0,1,0): RED, RED, + (0,2,0): RED, RED, + (1,0,0): RED, RED, + (1,1,0): RED, RED, + (1,2,0): RED, RED, + (2,0,0): RED, RED, + (2,1,0): RED, RED, + (2,2,0): RED, RED, + (3,0,0): RED, RED, + (3,1,0): RED, RED, + (3,2,0): RED, RED + } + } + ATTRIBUTE "vlen3D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): (0), (1), + (0,1,0): (2), (3), + (0,2,0): (4), (5), + (1,0,0): (6, 7), (8, 9), + (1,1,0): (10, 11), (12, 13), + (1,2,0): (14, 15), (16, 17), + (2,0,0): (18, 19, 20), (21, 22, 23), + (2,1,0): (24, 25, 26), (27, 28, 29), + (2,2,0): (30, 31, 32), (33, 34, 35), + (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), + (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), + (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + } + } + ATTRIBUTE "array3D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], + (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], + (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], + (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], + (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], + (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], + (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], + (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], + (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], + (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] + } + } + ATTRIBUTE "integer3D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + ATTRIBUTE "float3D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + } + GROUP "g2" { + DATASET "array" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): [ 1, 2, 3 ], [ 4, 5, 6 ] + } + } + DATASET "array2D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (2,0): [ 13, 14, 15 ], [ 16, 17, 18 ] + } + } + DATASET "array3D" { + DATATYPE H5T_ARRAY { [3] H5T_STD_I32LE } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): [ 1, 2, 3 ], [ 4, 5, 6 ], + (0,1,0): [ 7, 8, 9 ], [ 10, 11, 12 ], + (0,2,0): [ 13, 14, 15 ], [ 16, 17, 18 ], + (1,0,0): [ 19, 20, 21 ], [ 22, 23, 24 ], + (1,1,0): [ 25, 26, 27 ], [ 28, 29, 30 ], + (1,2,0): [ 31, 32, 33 ], [ 34, 35, 36 ], + (2,0,0): [ 37, 38, 39 ], [ 40, 41, 42 ], + (2,1,0): [ 43, 44, 45 ], [ 46, 47, 48 ], + (2,2,0): [ 49, 50, 51 ], [ 52, 53, 54 ], + (3,0,0): [ 55, 56, 57 ], [ 58, 59, 60 ], + (3,1,0): [ 61, 62, 63 ], [ 64, 65, 66 ], + (3,2,0): [ 67, 68, 69 ], [ 70, 71, 72 ] + } + } + DATASET "bitfield" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + DATASET "bitfield2D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + DATASET "bitfield3D" { + DATATYPE H5T_STD_B8LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + DATASET "compound" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): { + 1, + 2 + }, + (1): { + 3, + 4 + } + } + } + DATASET "compound2D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): { + 1, + 2 + }, + (0,1): { + 3, + 4 + }, + (1,0): { + 5, + 6 + }, + (1,1): { + 7, + 8 + }, + (2,0): { + 9, + 10 + }, + (2,1): { + 11, + 12 + } + } + } + DATASET "compound3D" { + DATATYPE H5T_COMPOUND { + H5T_STD_I8LE "a"; + H5T_IEEE_F64LE "b"; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): { + 1, + 2 + }, + (0,0,1): { + 3, + 4 + }, + (0,1,0): { + 5, + 6 + }, + (0,1,1): { + 7, + 8 + }, + (0,2,0): { + 9, + 10 + }, + (0,2,1): { + 11, + 12 + }, + (1,0,0): { + 13, + 14 + }, + (1,0,1): { + 15, + 16 + }, + (1,1,0): { + 17, + 18 + }, + (1,1,1): { + 19, + 20 + }, + (1,2,0): { + 21, + 22 + }, + (1,2,1): { + 23, + 24 + }, + (2,0,0): { + 25, + 26 + }, + (2,0,1): { + 27, + 28 + }, + (2,1,0): { + 29, + 30 + }, + (2,1,1): { + 31, + 32 + }, + (2,2,0): { + 33, + 34 + }, + (2,2,1): { + 35, + 36 + }, + (3,0,0): { + 37, + 38 + }, + (3,0,1): { + 39, + 40 + }, + (3,1,0): { + 41, + 42 + }, + (3,1,1): { + 43, + 44 + }, + (3,2,0): { + 45, + 46 + }, + (3,2,1): { + 47, + 48 + } + } + } + DATASET "enum" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): RED, RED + } + } + DATASET "enum2D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): RED, RED, + (1,0): RED, RED, + (2,0): RED, RED + } + } + DATASET "enum3D" { + DATATYPE H5T_ENUM { + H5T_STD_I32LE; + "RED" 0; + "GREEN" 1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): RED, RED, + (0,1,0): RED, RED, + (0,2,0): RED, RED, + (1,0,0): RED, RED, + (1,1,0): RED, RED, + (1,2,0): RED, RED, + (2,0,0): RED, RED, + (2,1,0): RED, RED, + (2,2,0): RED, RED, + (3,0,0): RED, RED, + (3,1,0): RED, RED, + (3,2,0): RED, RED + } + } + DATASET "float" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + DATASET "float2D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + DATASET "float3D" { + DATATYPE H5T_IEEE_F32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + DATASET "integer" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 1, 2 + } + } + DATASET "integer2D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 1, 2, + (1,0): 3, 4, + (2,0): 5, 6 + } + } + DATASET "integer3D" { + DATATYPE H5T_STD_I32LE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 1, 2, + (0,1,0): 3, 4, + (0,2,0): 5, 6, + (1,0,0): 7, 8, + (1,1,0): 9, 10, + (1,2,0): 11, 12, + (2,0,0): 13, 14, + (2,1,0): 15, 16, + (2,2,0): 17, 18, + (3,0,0): 19, 20, + (3,1,0): 21, 22, + (3,2,0): 23, 24 + } + } + DATASET "opaque" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): 0x01, 0x02 + } + } + DATASET "opaque2D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): 0x01, 0x02, + (1,0): 0x03, 0x04, + (2,0): 0x05, 0x06 + } + } + DATASET "opaque3D" { + DATATYPE + H5T_OPAQUE; + OPAQUE_TAG "1-byte opaque type"; + + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): 0x01, 0x02, + (0,1,0): 0x03, 0x04, + (0,2,0): 0x05, 0x06, + (1,0,0): 0x07, 0x08, + (1,1,0): 0x09, 0x0a, + (1,2,0): 0x0b, 0x0c, + (2,0,0): 0x0d, 0x0e, + (2,1,0): 0x0f, 0x10, + (2,2,0): 0x11, 0x12, + (3,0,0): 0x13, 0x14, + (3,1,0): 0x15, 0x16, + (3,2,0): 0x17, 0x18 + } + } + DATASET "reference" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): DATASET 976 /dset , DATASET 976 /dset + } + } + DATASET "reference2D" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): DATASET 976 /dset , DATASET 976 /dset , + (1,0): DATASET 976 /dset , DATASET 976 /dset , + (2,0): DATASET 976 /dset , DATASET 976 /dset + } + } + DATASET "reference3D" { + DATATYPE H5T_REFERENCE + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): DATASET 976 /dset , + (0,0,1): DATASET 976 /dset , + (0,1,0): DATASET 976 /dset , + (0,1,1): DATASET 976 /dset , + (0,2,0): DATASET 976 /dset , + (0,2,1): DATASET 976 /dset , + (1,0,0): DATASET 976 /dset , + (1,0,1): DATASET 976 /dset , + (1,1,0): DATASET 976 /dset , + (1,1,1): DATASET 976 /dset , + (1,2,0): DATASET 976 /dset , + (1,2,1): DATASET 976 /dset , + (2,0,0): DATASET 976 /dset , + (2,0,1): DATASET 976 /dset , + (2,1,0): DATASET 976 /dset , + (2,1,1): DATASET 976 /dset , + (2,2,0): DATASET 976 /dset , + (2,2,1): DATASET 976 /dset , + (3,0,0): DATASET 976 /dset , + (3,0,1): DATASET 976 /dset , + (3,1,0): DATASET 976 /dset , + (3,1,1): DATASET 976 /dset , + (3,2,0): DATASET 976 /dset , + (3,2,1): DATASET 976 /dset + } + } + DATASET "string" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): "ab", "de" + } + } + DATASET "string2D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): "ab", "cd", + (1,0): "ef", "gh", + (2,0): "ij", "kl" + } + } + DATASET "string3D" { + DATATYPE H5T_STRING { + STRSIZE 2; + STRPAD H5T_STR_NULLTERM; + CSET H5T_CSET_ASCII; + CTYPE H5T_C_S1; + } + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): "ab", "cd", + (0,1,0): "ef", "gh", + (0,2,0): "ij", "kl", + (1,0,0): "mn", "pq", + (1,1,0): "rs", "tu", + (1,2,0): "vw", "xz", + (2,0,0): "AB", "CD", + (2,1,0): "EF", "GH", + (2,2,0): "IJ", "KL", + (3,0,0): "MN", "PQ", + (3,1,0): "RS", "TU", + (3,2,0): "VW", "XZ" + } + } + DATASET "vlen" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 2 ) / ( 2 ) } + DATA { + (0): (1), (2, 3) + } + } + DATASET "vlen2D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 3, 2 ) / ( 3, 2 ) } + DATA { + (0,0): (0), (1), + (1,0): (2, 3), (4, 5), + (2,0): (6, 7, 8), (9, 10, 11) + } + } + DATASET "vlen3D" { + DATATYPE H5T_VLEN { H5T_STD_I32LE} + DATASPACE SIMPLE { ( 4, 3, 2 ) / ( 4, 3, 2 ) } + DATA { + (0,0,0): (0), (1), + (0,1,0): (2), (3), + (0,2,0): (4), (5), + (1,0,0): (6, 7), (8, 9), + (1,1,0): (10, 11), (12, 13), + (1,2,0): (14, 15), (16, 17), + (2,0,0): (18, 19, 20), (21, 22, 23), + (2,1,0): (24, 25, 26), (27, 28, 29), + (2,2,0): (30, 31, 32), (33, 34, 35), + (3,0,0): (36, 37, 38, 39), (40, 41, 42, 43), + (3,1,0): (44, 45, 46, 47), (48, 49, 50, 51), + (3,2,0): (52, 53, 54, 55), (56, 57, 58, 59) + } + } } } } -- cgit v0.12