summaryrefslogtreecommitdiffstats
path: root/tools/testfiles/pbits
diff options
context:
space:
mode:
Diffstat (limited to 'tools/testfiles/pbits')
-rw-r--r--tools/testfiles/pbits/tnofilename-with-packed-bits.ddl136
-rw-r--r--tools/testfiles/pbits/tpbitsArray.ddl14
-rw-r--r--tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl18
-rw-r--r--tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl18
-rw-r--r--tools/testfiles/pbits/tpbitsCompound.ddl66
-rw-r--r--tools/testfiles/pbits/tpbitsIncomplete.ddl136
-rw-r--r--tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl18
-rw-r--r--tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl18
-rw-r--r--tools/testfiles/pbits/tpbitsLengthExceeded.ddl136
-rw-r--r--tools/testfiles/pbits/tpbitsLengthPositive.ddl136
-rw-r--r--tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl26
-rw-r--r--tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl26
-rw-r--r--tools/testfiles/pbits/tpbitsMax.ddl94
-rw-r--r--tools/testfiles/pbits/tpbitsMaxExceeded.ddl136
-rw-r--r--tools/testfiles/pbits/tpbitsOffsetExceeded.ddl136
-rw-r--r--tools/testfiles/pbits/tpbitsOffsetNegative.ddl136
-rw-r--r--tools/testfiles/pbits/tpbitsOverlapped.ddl50
-rw-r--r--tools/testfiles/pbits/tpbitsSigned.ddl28
-rw-r--r--tools/testfiles/pbits/tpbitsSigned2.ddl50
-rw-r--r--tools/testfiles/pbits/tpbitsSigned4.ddl28
-rw-r--r--tools/testfiles/pbits/tpbitsSignedInt.ddl28
-rw-r--r--tools/testfiles/pbits/tpbitsSignedInt4.ddl50
-rw-r--r--tools/testfiles/pbits/tpbitsSignedInt8.ddl34
-rw-r--r--tools/testfiles/pbits/tpbitsSignedIntWhole.ddl25
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLong.ddl44
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLong16.ddl67
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLong8.ddl96
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLongLong.ddl68
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLongLong16.ddl196
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLongLong32.ddl175
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl121
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl175
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl172
-rw-r--r--tools/testfiles/pbits/tpbitsSignedLongWhole.ddl46
-rw-r--r--tools/testfiles/pbits/tpbitsSignedWhole.ddl17
-rw-r--r--tools/testfiles/pbits/tpbitsUnsigned.ddl28
-rw-r--r--tools/testfiles/pbits/tpbitsUnsigned2.ddl50
-rw-r--r--tools/testfiles/pbits/tpbitsUnsigned4.ddl28
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedInt.ddl28
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedInt4.ddl50
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedInt8.ddl34
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl25
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLong.ddl44
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLong16.ddl67
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLong8.ddl96
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl68
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl196
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl175
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl176
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl175
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl172
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl59
-rw-r--r--tools/testfiles/pbits/tpbitsUnsignedWhole.ddl17
53 files changed, 4208 insertions, 0 deletions
diff --git a/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl b/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
new file mode 100644
index 0000000..64a2880
--- /dev/null
+++ b/tools/testfiles/pbits/tnofilename-with-packed-bits.ddl
@@ -0,0 +1,136 @@
+usage: h5dump [OPTIONS] files
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+--------------- File Options ---------------
+ -n, --contents Print a list of the file contents and exit
+ Optional value 1 also prints attributes.
+ -B, --superblock Print the content of the super block
+ -H, --header Print the header only; no data is displayed
+ -f D, --filedriver=D Specify which driver to open the file with
+ -o F, --output=F Output raw data into file F
+ -b B, --binary=B Binary file output, of form B
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
+--------------- Object Options ---------------
+ -a P, --attribute=P Print the specified attribute
+ If an attribute name contains a slash (/), escape the
+ slash with a preceding backslash (\).
+ (See example section below.)
+ -d P, --dataset=P Print the specified dataset
+ -g P, --group=P Print the specified group and all members
+ -l P, --soft-link=P Print the value(s) of the specified soft link
+ -t P, --datatype=P Print the specified named datatype
+ -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
+ P can be the absolute path or just a relative path.
+ -A, --onlyattr Print the header and value of attributes
+ Optional value 0 suppresses printing attributes.
+--------------- Object Property Options ---------------
+ -i, --object-ids Print the object ids
+ -p, --properties Print dataset filters, storage layout and fill value
+ -M L, --packedbits=L Print packed bits as unsigned integers, using mask
+ format L for an integer dataset specified with
+ option -d. L is a list of offset,length values,
+ separated by commas. Offset is the beginning bit in
+ the data value and length is the number of bits of
+ the mask.
+ -R, --region Print dataset pointed by region references
+--------------- Formatting Options ---------------
+ -e, --escape Escape non printing characters
+ -r, --string Print 1-byte integer datasets as ASCII
+ -y, --noindex Do not print array indices with the data
+ -m T, --format=T Set the floating point output format
+ -q Q, --sort_by=Q Sort groups and attributes by index Q
+ -z Z, --sort_order=Z Sort groups and attributes by order Z
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
+ --no-compact-subset Disable compact form of subsetting and allow the use
+ of "[" in dataset names.
+ -w N, --width=N Set the number of columns of output. A value of 0 (zero)
+ sets the number of columns to the maximum (65535).
+ Default width is 80 columns.
+--------------- XML Options ---------------
+ -x, --xml Output in XML using Schema
+ -u, --use-dtd Output in XML using DTD
+ -D U, --xml-dtd=U Use the DTD or schema at U
+ -X S, --xml-ns=S (XML Schema) Use qualified names n the XML
+ ":": no namespace, default: "hdf5:"
+ E.g., to dump a file called `-f', use h5dump -- -f
+
+--------------- Subsetting Options ---------------
+ Subsetting is available by using the following options with a dataset
+ option. Subsetting is done by selecting a hyperslab from the data.
+ Thus, the options mirror those for performing a hyperslab selection.
+ One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
+ The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
+ each dimension. START is optional and will default to 0 in each dimension.
+
+ -s START, --start=START Offset of start of subsetting selection
+ -S STRIDE, --stride=STRIDE Hyperslab stride
+ -c COUNT, --count=COUNT Number of blocks to include in selection
+ -k BLOCK, --block=BLOCK Size of block in hyperslab
+ START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the
+ number of dimensions in the dataspace being queried
+ (Alternate compact form of subsetting is described in the Reference Manual)
+
+--------------- Option Argument Conventions ---------------
+ D - is the file driver to use in opening the file. Acceptable values
+ are "sec2", "family", "split", "multi", "direct", and "stream". Without
+ the file driver flag, the file will be opened with each driver in
+ turn and in the order specified above until one driver succeeds
+ in opening the file.
+ See examples below for family, split, and multi driver special file name usage.
+
+ F - is a filename.
+ P - is the full path from the root group to the object.
+ N - is an integer greater than 1.
+ T - is a string containing the floating point format, e.g '%.3f'
+ U - is a URI reference (as defined in [IETF RFC 2396],
+ updated by [IETF RFC 2732])
+ B - is the form of binary output: NATIVE for a memory type, FILE for the
+ file type, LE or BE for pre-existing little or big endian types.
+ Must be used with -o (output file) and it is recommended that
+ -d (dataset) is used. B is an optional argument, defaults to NATIVE
+ Q - is the sort index type. It can be "creation_order" or "name" (default)
+ Z - is the sort order type. It can be "descending" or "ascending" (default)
+
+--------------- Examples ---------------
+
+ 1) Attribute foo of the group /bar_none in file quux.h5
+
+ h5dump -a /bar_none/foo quux.h5
+
+ Attribute "high/low" of the group /bar_none in the file quux.h5
+
+ h5dump -a "/bar_none/high\/low" quux.h5
+
+ 2) Selecting a subset from dataset /foo in file quux.h5
+
+ h5dump -d /foo -s "0,1" -S "1,1" -c "2,3" -k "2,2" quux.h5
+
+ 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'
+ using a little-endian type
+
+ h5dump -d /dset -b LE -o out.bin quux.h5
+
+ 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset
+
+ h5dump -d /dset -M 0,1,4,3 quux.h5
+
+ 5) Dataset foo in files file1.h5 file2.h5 file3.h5
+
+ h5dump -d /foo file1.h5 file2.h5 file3.h5
+
+ 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5
+
+ h5dump -d /foo -f split splitfile
+
+ 7) Dataset foo in multi files mf-s.h5, mf-b.h5, mf-r.h5, mf-g.h5, mf-l.h5 and mf-o.h5
+
+ h5dump -d /foo -f multi mf
+
+ 8) Dataset foo in family files fam00000.h5 fam00001.h5 and fam00002.h5
+
+ h5dump -d /foo -f family fam%05d.h5
+
+h5dump error: missing file name
diff --git a/tools/testfiles/pbits/tpbitsArray.ddl b/tools/testfiles/pbits/tpbitsArray.ddl
new file mode 100644
index 0000000..125abb8
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsArray.ddl
@@ -0,0 +1,14 @@
+HDF5 "tarray1.h5" {
+DATASET "/Dataset1" {
+ DATATYPE H5T_ARRAY { [4] H5T_STD_I32LE }
+ DATASPACE SIMPLE { ( 4 ) / ( 4 ) }
+ PACKED_BITS OFFSET=0 LENGTH=1
+ DATA {
+ (0): [ 0, 1, 0, 1 ], [ 0, 1, 0, 1 ], [ 0, 1, 0, 1 ], [ 0, 1, 0, 1 ]
+ }
+ PACKED_BITS OFFSET=1 LENGTH=1
+ DATA {
+ (0): [ 0, 0, 1, 1 ], [ 1, 1, 0, 0 ], [ 0, 0, 1, 1 ], [ 1, 1, 0, 0 ]
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
new file mode 100644
index 0000000..b0683a7
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsCharLengthExceeded.ddl
@@ -0,0 +1,18 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=2 LENGTH=7
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
+h5dump error: Packed Bit offset+length value(9) too large. Max is 8
diff --git a/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
new file mode 100644
index 0000000..530fa05
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsCharOffsetExceeded.ddl
@@ -0,0 +1,18 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=8 LENGTH=1
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
+h5dump error: Packed Bit offset+length value(9) too large. Max is 8
diff --git a/tools/testfiles/pbits/tpbitsCompound.ddl b/tools/testfiles/pbits/tpbitsCompound.ddl
new file mode 100644
index 0000000..c84272a
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsCompound.ddl
@@ -0,0 +1,66 @@
+HDF5 "tcompound.h5" {
+DATASET "/dset1" {
+ DATATYPE H5T_COMPOUND {
+ H5T_STD_I32BE "a_name";
+ H5T_IEEE_F32BE "b_name";
+ H5T_IEEE_F64BE "c_name";
+ }
+ DATASPACE SIMPLE { ( 5 ) / ( 5 ) }
+ PACKED_BITS OFFSET=0 LENGTH=1
+ DATA {
+ (0): {
+ 0,
+ 0,
+ 1
+ },
+ (1): {
+ 1,
+ 1,
+ 0.5
+ },
+ (2): {
+ 0,
+ 4,
+ 0.333333
+ },
+ (3): {
+ 1,
+ 9,
+ 0.25
+ },
+ (4): {
+ 0,
+ 16,
+ 0.2
+ }
+ }
+ PACKED_BITS OFFSET=1 LENGTH=1
+ DATA {
+ (0): {
+ 0,
+ 0,
+ 1
+ },
+ (1): {
+ 0,
+ 1,
+ 0.5
+ },
+ (2): {
+ 1,
+ 4,
+ 0.333333
+ },
+ (3): {
+ 1,
+ 9,
+ 0.25
+ },
+ (4): {
+ 0,
+ 16,
+ 0.2
+ }
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsIncomplete.ddl b/tools/testfiles/pbits/tpbitsIncomplete.ddl
new file mode 100644
index 0000000..cdb1f91
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsIncomplete.ddl
@@ -0,0 +1,136 @@
+usage: h5dump [OPTIONS] files
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+--------------- File Options ---------------
+ -n, --contents Print a list of the file contents and exit
+ Optional value 1 also prints attributes.
+ -B, --superblock Print the content of the super block
+ -H, --header Print the header only; no data is displayed
+ -f D, --filedriver=D Specify which driver to open the file with
+ -o F, --output=F Output raw data into file F
+ -b B, --binary=B Binary file output, of form B
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
+--------------- Object Options ---------------
+ -a P, --attribute=P Print the specified attribute
+ If an attribute name contains a slash (/), escape the
+ slash with a preceding backslash (\).
+ (See example section below.)
+ -d P, --dataset=P Print the specified dataset
+ -g P, --group=P Print the specified group and all members
+ -l P, --soft-link=P Print the value(s) of the specified soft link
+ -t P, --datatype=P Print the specified named datatype
+ -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
+ P can be the absolute path or just a relative path.
+ -A, --onlyattr Print the header and value of attributes
+ Optional value 0 suppresses printing attributes.
+--------------- Object Property Options ---------------
+ -i, --object-ids Print the object ids
+ -p, --properties Print dataset filters, storage layout and fill value
+ -M L, --packedbits=L Print packed bits as unsigned integers, using mask
+ format L for an integer dataset specified with
+ option -d. L is a list of offset,length values,
+ separated by commas. Offset is the beginning bit in
+ the data value and length is the number of bits of
+ the mask.
+ -R, --region Print dataset pointed by region references
+--------------- Formatting Options ---------------
+ -e, --escape Escape non printing characters
+ -r, --string Print 1-byte integer datasets as ASCII
+ -y, --noindex Do not print array indices with the data
+ -m T, --format=T Set the floating point output format
+ -q Q, --sort_by=Q Sort groups and attributes by index Q
+ -z Z, --sort_order=Z Sort groups and attributes by order Z
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
+ --no-compact-subset Disable compact form of subsetting and allow the use
+ of "[" in dataset names.
+ -w N, --width=N Set the number of columns of output. A value of 0 (zero)
+ sets the number of columns to the maximum (65535).
+ Default width is 80 columns.
+--------------- XML Options ---------------
+ -x, --xml Output in XML using Schema
+ -u, --use-dtd Output in XML using DTD
+ -D U, --xml-dtd=U Use the DTD or schema at U
+ -X S, --xml-ns=S (XML Schema) Use qualified names n the XML
+ ":": no namespace, default: "hdf5:"
+ E.g., to dump a file called `-f', use h5dump -- -f
+
+--------------- Subsetting Options ---------------
+ Subsetting is available by using the following options with a dataset
+ option. Subsetting is done by selecting a hyperslab from the data.
+ Thus, the options mirror those for performing a hyperslab selection.
+ One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
+ The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
+ each dimension. START is optional and will default to 0 in each dimension.
+
+ -s START, --start=START Offset of start of subsetting selection
+ -S STRIDE, --stride=STRIDE Hyperslab stride
+ -c COUNT, --count=COUNT Number of blocks to include in selection
+ -k BLOCK, --block=BLOCK Size of block in hyperslab
+ START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the
+ number of dimensions in the dataspace being queried
+ (Alternate compact form of subsetting is described in the Reference Manual)
+
+--------------- Option Argument Conventions ---------------
+ D - is the file driver to use in opening the file. Acceptable values
+ are "sec2", "family", "split", "multi", "direct", and "stream". Without
+ the file driver flag, the file will be opened with each driver in
+ turn and in the order specified above until one driver succeeds
+ in opening the file.
+ See examples below for family, split, and multi driver special file name usage.
+
+ F - is a filename.
+ P - is the full path from the root group to the object.
+ N - is an integer greater than 1.
+ T - is a string containing the floating point format, e.g '%.3f'
+ U - is a URI reference (as defined in [IETF RFC 2396],
+ updated by [IETF RFC 2732])
+ B - is the form of binary output: NATIVE for a memory type, FILE for the
+ file type, LE or BE for pre-existing little or big endian types.
+ Must be used with -o (output file) and it is recommended that
+ -d (dataset) is used. B is an optional argument, defaults to NATIVE
+ Q - is the sort index type. It can be "creation_order" or "name" (default)
+ Z - is the sort order type. It can be "descending" or "ascending" (default)
+
+--------------- Examples ---------------
+
+ 1) Attribute foo of the group /bar_none in file quux.h5
+
+ h5dump -a /bar_none/foo quux.h5
+
+ Attribute "high/low" of the group /bar_none in the file quux.h5
+
+ h5dump -a "/bar_none/high\/low" quux.h5
+
+ 2) Selecting a subset from dataset /foo in file quux.h5
+
+ h5dump -d /foo -s "0,1" -S "1,1" -c "2,3" -k "2,2" quux.h5
+
+ 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'
+ using a little-endian type
+
+ h5dump -d /dset -b LE -o out.bin quux.h5
+
+ 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset
+
+ h5dump -d /dset -M 0,1,4,3 quux.h5
+
+ 5) Dataset foo in files file1.h5 file2.h5 file3.h5
+
+ h5dump -d /foo file1.h5 file2.h5 file3.h5
+
+ 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5
+
+ h5dump -d /foo -f split splitfile
+
+ 7) Dataset foo in multi files mf-s.h5, mf-b.h5, mf-r.h5, mf-g.h5, mf-l.h5 and mf-o.h5
+
+ h5dump -d /foo -f multi mf
+
+ 8) Dataset foo in family files fam00000.h5 fam00001.h5 and fam00002.h5
+
+ h5dump -d /foo -f family fam%05d.h5
+
+h5dump error: Bad mask list(0,2,2,1,0,2,2,)
diff --git a/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
new file mode 100644
index 0000000..1c919cd
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsIntLengthExceeded.ddl
@@ -0,0 +1,18 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=10 LENGTH=7
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
+h5dump error: Packed Bit offset+length value(17) too large. Max is 16
diff --git a/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
new file mode 100644
index 0000000..f3b2a8c
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsIntOffsetExceeded.ddl
@@ -0,0 +1,18 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=16 LENGTH=1
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
+h5dump error: Packed Bit offset+length value(17) too large. Max is 16
diff --git a/tools/testfiles/pbits/tpbitsLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
new file mode 100644
index 0000000..6d2492a
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsLengthExceeded.ddl
@@ -0,0 +1,136 @@
+usage: h5dump [OPTIONS] files
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+--------------- File Options ---------------
+ -n, --contents Print a list of the file contents and exit
+ Optional value 1 also prints attributes.
+ -B, --superblock Print the content of the super block
+ -H, --header Print the header only; no data is displayed
+ -f D, --filedriver=D Specify which driver to open the file with
+ -o F, --output=F Output raw data into file F
+ -b B, --binary=B Binary file output, of form B
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
+--------------- Object Options ---------------
+ -a P, --attribute=P Print the specified attribute
+ If an attribute name contains a slash (/), escape the
+ slash with a preceding backslash (\).
+ (See example section below.)
+ -d P, --dataset=P Print the specified dataset
+ -g P, --group=P Print the specified group and all members
+ -l P, --soft-link=P Print the value(s) of the specified soft link
+ -t P, --datatype=P Print the specified named datatype
+ -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
+ P can be the absolute path or just a relative path.
+ -A, --onlyattr Print the header and value of attributes
+ Optional value 0 suppresses printing attributes.
+--------------- Object Property Options ---------------
+ -i, --object-ids Print the object ids
+ -p, --properties Print dataset filters, storage layout and fill value
+ -M L, --packedbits=L Print packed bits as unsigned integers, using mask
+ format L for an integer dataset specified with
+ option -d. L is a list of offset,length values,
+ separated by commas. Offset is the beginning bit in
+ the data value and length is the number of bits of
+ the mask.
+ -R, --region Print dataset pointed by region references
+--------------- Formatting Options ---------------
+ -e, --escape Escape non printing characters
+ -r, --string Print 1-byte integer datasets as ASCII
+ -y, --noindex Do not print array indices with the data
+ -m T, --format=T Set the floating point output format
+ -q Q, --sort_by=Q Sort groups and attributes by index Q
+ -z Z, --sort_order=Z Sort groups and attributes by order Z
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
+ --no-compact-subset Disable compact form of subsetting and allow the use
+ of "[" in dataset names.
+ -w N, --width=N Set the number of columns of output. A value of 0 (zero)
+ sets the number of columns to the maximum (65535).
+ Default width is 80 columns.
+--------------- XML Options ---------------
+ -x, --xml Output in XML using Schema
+ -u, --use-dtd Output in XML using DTD
+ -D U, --xml-dtd=U Use the DTD or schema at U
+ -X S, --xml-ns=S (XML Schema) Use qualified names n the XML
+ ":": no namespace, default: "hdf5:"
+ E.g., to dump a file called `-f', use h5dump -- -f
+
+--------------- Subsetting Options ---------------
+ Subsetting is available by using the following options with a dataset
+ option. Subsetting is done by selecting a hyperslab from the data.
+ Thus, the options mirror those for performing a hyperslab selection.
+ One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
+ The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
+ each dimension. START is optional and will default to 0 in each dimension.
+
+ -s START, --start=START Offset of start of subsetting selection
+ -S STRIDE, --stride=STRIDE Hyperslab stride
+ -c COUNT, --count=COUNT Number of blocks to include in selection
+ -k BLOCK, --block=BLOCK Size of block in hyperslab
+ START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the
+ number of dimensions in the dataspace being queried
+ (Alternate compact form of subsetting is described in the Reference Manual)
+
+--------------- Option Argument Conventions ---------------
+ D - is the file driver to use in opening the file. Acceptable values
+ are "sec2", "family", "split", "multi", "direct", and "stream". Without
+ the file driver flag, the file will be opened with each driver in
+ turn and in the order specified above until one driver succeeds
+ in opening the file.
+ See examples below for family, split, and multi driver special file name usage.
+
+ F - is a filename.
+ P - is the full path from the root group to the object.
+ N - is an integer greater than 1.
+ T - is a string containing the floating point format, e.g '%.3f'
+ U - is a URI reference (as defined in [IETF RFC 2396],
+ updated by [IETF RFC 2732])
+ B - is the form of binary output: NATIVE for a memory type, FILE for the
+ file type, LE or BE for pre-existing little or big endian types.
+ Must be used with -o (output file) and it is recommended that
+ -d (dataset) is used. B is an optional argument, defaults to NATIVE
+ Q - is the sort index type. It can be "creation_order" or "name" (default)
+ Z - is the sort order type. It can be "descending" or "ascending" (default)
+
+--------------- Examples ---------------
+
+ 1) Attribute foo of the group /bar_none in file quux.h5
+
+ h5dump -a /bar_none/foo quux.h5
+
+ Attribute "high/low" of the group /bar_none in the file quux.h5
+
+ h5dump -a "/bar_none/high\/low" quux.h5
+
+ 2) Selecting a subset from dataset /foo in file quux.h5
+
+ h5dump -d /foo -s "0,1" -S "1,1" -c "2,3" -k "2,2" quux.h5
+
+ 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'
+ using a little-endian type
+
+ h5dump -d /dset -b LE -o out.bin quux.h5
+
+ 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset
+
+ h5dump -d /dset -M 0,1,4,3 quux.h5
+
+ 5) Dataset foo in files file1.h5 file2.h5 file3.h5
+
+ h5dump -d /foo file1.h5 file2.h5 file3.h5
+
+ 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5
+
+ h5dump -d /foo -f split splitfile
+
+ 7) Dataset foo in multi files mf-s.h5, mf-b.h5, mf-r.h5, mf-g.h5, mf-l.h5 and mf-o.h5
+
+ h5dump -d /foo -f multi mf
+
+ 8) Dataset foo in family files fam00000.h5 fam00001.h5 and fam00002.h5
+
+ h5dump -d /foo -f family fam%05d.h5
+
+h5dump error: Packed Bit offset+length value(65) too large. Max is 64
diff --git a/tools/testfiles/pbits/tpbitsLengthPositive.ddl b/tools/testfiles/pbits/tpbitsLengthPositive.ddl
new file mode 100644
index 0000000..4f56619
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsLengthPositive.ddl
@@ -0,0 +1,136 @@
+usage: h5dump [OPTIONS] files
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+--------------- File Options ---------------
+ -n, --contents Print a list of the file contents and exit
+ Optional value 1 also prints attributes.
+ -B, --superblock Print the content of the super block
+ -H, --header Print the header only; no data is displayed
+ -f D, --filedriver=D Specify which driver to open the file with
+ -o F, --output=F Output raw data into file F
+ -b B, --binary=B Binary file output, of form B
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
+--------------- Object Options ---------------
+ -a P, --attribute=P Print the specified attribute
+ If an attribute name contains a slash (/), escape the
+ slash with a preceding backslash (\).
+ (See example section below.)
+ -d P, --dataset=P Print the specified dataset
+ -g P, --group=P Print the specified group and all members
+ -l P, --soft-link=P Print the value(s) of the specified soft link
+ -t P, --datatype=P Print the specified named datatype
+ -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
+ P can be the absolute path or just a relative path.
+ -A, --onlyattr Print the header and value of attributes
+ Optional value 0 suppresses printing attributes.
+--------------- Object Property Options ---------------
+ -i, --object-ids Print the object ids
+ -p, --properties Print dataset filters, storage layout and fill value
+ -M L, --packedbits=L Print packed bits as unsigned integers, using mask
+ format L for an integer dataset specified with
+ option -d. L is a list of offset,length values,
+ separated by commas. Offset is the beginning bit in
+ the data value and length is the number of bits of
+ the mask.
+ -R, --region Print dataset pointed by region references
+--------------- Formatting Options ---------------
+ -e, --escape Escape non printing characters
+ -r, --string Print 1-byte integer datasets as ASCII
+ -y, --noindex Do not print array indices with the data
+ -m T, --format=T Set the floating point output format
+ -q Q, --sort_by=Q Sort groups and attributes by index Q
+ -z Z, --sort_order=Z Sort groups and attributes by order Z
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
+ --no-compact-subset Disable compact form of subsetting and allow the use
+ of "[" in dataset names.
+ -w N, --width=N Set the number of columns of output. A value of 0 (zero)
+ sets the number of columns to the maximum (65535).
+ Default width is 80 columns.
+--------------- XML Options ---------------
+ -x, --xml Output in XML using Schema
+ -u, --use-dtd Output in XML using DTD
+ -D U, --xml-dtd=U Use the DTD or schema at U
+ -X S, --xml-ns=S (XML Schema) Use qualified names n the XML
+ ":": no namespace, default: "hdf5:"
+ E.g., to dump a file called `-f', use h5dump -- -f
+
+--------------- Subsetting Options ---------------
+ Subsetting is available by using the following options with a dataset
+ option. Subsetting is done by selecting a hyperslab from the data.
+ Thus, the options mirror those for performing a hyperslab selection.
+ One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
+ The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
+ each dimension. START is optional and will default to 0 in each dimension.
+
+ -s START, --start=START Offset of start of subsetting selection
+ -S STRIDE, --stride=STRIDE Hyperslab stride
+ -c COUNT, --count=COUNT Number of blocks to include in selection
+ -k BLOCK, --block=BLOCK Size of block in hyperslab
+ START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the
+ number of dimensions in the dataspace being queried
+ (Alternate compact form of subsetting is described in the Reference Manual)
+
+--------------- Option Argument Conventions ---------------
+ D - is the file driver to use in opening the file. Acceptable values
+ are "sec2", "family", "split", "multi", "direct", and "stream". Without
+ the file driver flag, the file will be opened with each driver in
+ turn and in the order specified above until one driver succeeds
+ in opening the file.
+ See examples below for family, split, and multi driver special file name usage.
+
+ F - is a filename.
+ P - is the full path from the root group to the object.
+ N - is an integer greater than 1.
+ T - is a string containing the floating point format, e.g '%.3f'
+ U - is a URI reference (as defined in [IETF RFC 2396],
+ updated by [IETF RFC 2732])
+ B - is the form of binary output: NATIVE for a memory type, FILE for the
+ file type, LE or BE for pre-existing little or big endian types.
+ Must be used with -o (output file) and it is recommended that
+ -d (dataset) is used. B is an optional argument, defaults to NATIVE
+ Q - is the sort index type. It can be "creation_order" or "name" (default)
+ Z - is the sort order type. It can be "descending" or "ascending" (default)
+
+--------------- Examples ---------------
+
+ 1) Attribute foo of the group /bar_none in file quux.h5
+
+ h5dump -a /bar_none/foo quux.h5
+
+ Attribute "high/low" of the group /bar_none in the file quux.h5
+
+ h5dump -a "/bar_none/high\/low" quux.h5
+
+ 2) Selecting a subset from dataset /foo in file quux.h5
+
+ h5dump -d /foo -s "0,1" -S "1,1" -c "2,3" -k "2,2" quux.h5
+
+ 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'
+ using a little-endian type
+
+ h5dump -d /dset -b LE -o out.bin quux.h5
+
+ 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset
+
+ h5dump -d /dset -M 0,1,4,3 quux.h5
+
+ 5) Dataset foo in files file1.h5 file2.h5 file3.h5
+
+ h5dump -d /foo file1.h5 file2.h5 file3.h5
+
+ 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5
+
+ h5dump -d /foo -f split splitfile
+
+ 7) Dataset foo in multi files mf-s.h5, mf-b.h5, mf-r.h5, mf-g.h5, mf-l.h5 and mf-o.h5
+
+ h5dump -d /foo -f multi mf
+
+ 8) Dataset foo in family files fam00000.h5 fam00001.h5 and fam00002.h5
+
+ h5dump -d /foo -f family fam%05d.h5
+
+h5dump error: Packed Bit length value(0) must be positive.
diff --git a/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl b/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
new file mode 100644
index 0000000..812c300
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsLongLengthExceeded.ddl
@@ -0,0 +1,26 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=26 LENGTH=7
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
+h5dump error: Packed Bit offset+length value(33) too large. Max is 32
diff --git a/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
new file mode 100644
index 0000000..cbea722
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsLongOffsetExceeded.ddl
@@ -0,0 +1,26 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=32 LENGTH=1
+ DATA {
+ (0,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
+h5dump error: Packed Bit offset+length value(33) too large. Max is 32
diff --git a/tools/testfiles/pbits/tpbitsMax.ddl b/tools/testfiles/pbits/tpbitsMax.ddl
new file mode 100644
index 0000000..e569488
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsMax.ddl
@@ -0,0 +1,94 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=1
+ DATA {
+ (0,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=1 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (1,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=2 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 1, 0, 0, 0, 0, 0,
+ (1,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (2,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=3 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 1, 1, 0, 0, 0, 0,
+ (1,0): 1, 1, 1, 0, 0, 0, 0, 0,
+ (2,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (3,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=4 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 1, 1, 1, 0, 0, 0,
+ (1,0): 1, 1, 1, 1, 0, 0, 0, 0,
+ (2,0): 1, 1, 1, 0, 0, 0, 0, 0,
+ (3,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (4,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=5 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 1, 1, 1, 1, 0, 0,
+ (1,0): 1, 1, 1, 1, 1, 0, 0, 0,
+ (2,0): 1, 1, 1, 1, 0, 0, 0, 0,
+ (3,0): 1, 1, 1, 0, 0, 0, 0, 0,
+ (4,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (5,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=6 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 1, 1, 1, 1, 1, 0,
+ (1,0): 1, 1, 1, 1, 1, 1, 0, 0,
+ (2,0): 1, 1, 1, 1, 1, 0, 0, 0,
+ (3,0): 1, 1, 1, 1, 0, 0, 0, 0,
+ (4,0): 1, 1, 1, 0, 0, 0, 0, 0,
+ (5,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (6,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=7 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 1, 1, 1, 1, 1, 1,
+ (1,0): 1, 1, 1, 1, 1, 1, 1, 0,
+ (2,0): 1, 1, 1, 1, 1, 1, 0, 0,
+ (3,0): 1, 1, 1, 1, 1, 0, 0, 0,
+ (4,0): 1, 1, 1, 1, 0, 0, 0, 0,
+ (5,0): 1, 1, 1, 0, 0, 0, 0, 0,
+ (6,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (7,0): 1, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsMaxExceeded.ddl b/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
new file mode 100644
index 0000000..3432433
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsMaxExceeded.ddl
@@ -0,0 +1,136 @@
+usage: h5dump [OPTIONS] files
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+--------------- File Options ---------------
+ -n, --contents Print a list of the file contents and exit
+ Optional value 1 also prints attributes.
+ -B, --superblock Print the content of the super block
+ -H, --header Print the header only; no data is displayed
+ -f D, --filedriver=D Specify which driver to open the file with
+ -o F, --output=F Output raw data into file F
+ -b B, --binary=B Binary file output, of form B
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
+--------------- Object Options ---------------
+ -a P, --attribute=P Print the specified attribute
+ If an attribute name contains a slash (/), escape the
+ slash with a preceding backslash (\).
+ (See example section below.)
+ -d P, --dataset=P Print the specified dataset
+ -g P, --group=P Print the specified group and all members
+ -l P, --soft-link=P Print the value(s) of the specified soft link
+ -t P, --datatype=P Print the specified named datatype
+ -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
+ P can be the absolute path or just a relative path.
+ -A, --onlyattr Print the header and value of attributes
+ Optional value 0 suppresses printing attributes.
+--------------- Object Property Options ---------------
+ -i, --object-ids Print the object ids
+ -p, --properties Print dataset filters, storage layout and fill value
+ -M L, --packedbits=L Print packed bits as unsigned integers, using mask
+ format L for an integer dataset specified with
+ option -d. L is a list of offset,length values,
+ separated by commas. Offset is the beginning bit in
+ the data value and length is the number of bits of
+ the mask.
+ -R, --region Print dataset pointed by region references
+--------------- Formatting Options ---------------
+ -e, --escape Escape non printing characters
+ -r, --string Print 1-byte integer datasets as ASCII
+ -y, --noindex Do not print array indices with the data
+ -m T, --format=T Set the floating point output format
+ -q Q, --sort_by=Q Sort groups and attributes by index Q
+ -z Z, --sort_order=Z Sort groups and attributes by order Z
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
+ --no-compact-subset Disable compact form of subsetting and allow the use
+ of "[" in dataset names.
+ -w N, --width=N Set the number of columns of output. A value of 0 (zero)
+ sets the number of columns to the maximum (65535).
+ Default width is 80 columns.
+--------------- XML Options ---------------
+ -x, --xml Output in XML using Schema
+ -u, --use-dtd Output in XML using DTD
+ -D U, --xml-dtd=U Use the DTD or schema at U
+ -X S, --xml-ns=S (XML Schema) Use qualified names n the XML
+ ":": no namespace, default: "hdf5:"
+ E.g., to dump a file called `-f', use h5dump -- -f
+
+--------------- Subsetting Options ---------------
+ Subsetting is available by using the following options with a dataset
+ option. Subsetting is done by selecting a hyperslab from the data.
+ Thus, the options mirror those for performing a hyperslab selection.
+ One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
+ The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
+ each dimension. START is optional and will default to 0 in each dimension.
+
+ -s START, --start=START Offset of start of subsetting selection
+ -S STRIDE, --stride=STRIDE Hyperslab stride
+ -c COUNT, --count=COUNT Number of blocks to include in selection
+ -k BLOCK, --block=BLOCK Size of block in hyperslab
+ START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the
+ number of dimensions in the dataspace being queried
+ (Alternate compact form of subsetting is described in the Reference Manual)
+
+--------------- Option Argument Conventions ---------------
+ D - is the file driver to use in opening the file. Acceptable values
+ are "sec2", "family", "split", "multi", "direct", and "stream". Without
+ the file driver flag, the file will be opened with each driver in
+ turn and in the order specified above until one driver succeeds
+ in opening the file.
+ See examples below for family, split, and multi driver special file name usage.
+
+ F - is a filename.
+ P - is the full path from the root group to the object.
+ N - is an integer greater than 1.
+ T - is a string containing the floating point format, e.g '%.3f'
+ U - is a URI reference (as defined in [IETF RFC 2396],
+ updated by [IETF RFC 2732])
+ B - is the form of binary output: NATIVE for a memory type, FILE for the
+ file type, LE or BE for pre-existing little or big endian types.
+ Must be used with -o (output file) and it is recommended that
+ -d (dataset) is used. B is an optional argument, defaults to NATIVE
+ Q - is the sort index type. It can be "creation_order" or "name" (default)
+ Z - is the sort order type. It can be "descending" or "ascending" (default)
+
+--------------- Examples ---------------
+
+ 1) Attribute foo of the group /bar_none in file quux.h5
+
+ h5dump -a /bar_none/foo quux.h5
+
+ Attribute "high/low" of the group /bar_none in the file quux.h5
+
+ h5dump -a "/bar_none/high\/low" quux.h5
+
+ 2) Selecting a subset from dataset /foo in file quux.h5
+
+ h5dump -d /foo -s "0,1" -S "1,1" -c "2,3" -k "2,2" quux.h5
+
+ 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'
+ using a little-endian type
+
+ h5dump -d /dset -b LE -o out.bin quux.h5
+
+ 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset
+
+ h5dump -d /dset -M 0,1,4,3 quux.h5
+
+ 5) Dataset foo in files file1.h5 file2.h5 file3.h5
+
+ h5dump -d /foo file1.h5 file2.h5 file3.h5
+
+ 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5
+
+ h5dump -d /foo -f split splitfile
+
+ 7) Dataset foo in multi files mf-s.h5, mf-b.h5, mf-r.h5, mf-g.h5, mf-l.h5 and mf-o.h5
+
+ h5dump -d /foo -f multi mf
+
+ 8) Dataset foo in family files fam00000.h5 fam00001.h5 and fam00002.h5
+
+ h5dump -d /foo -f family fam%05d.h5
+
+h5dump error: Too many masks requested (max. 8). Mask list(0,1,0,1,1,1,2,1,3,1,4,1,5,1,6,1,7,1)
diff --git a/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl b/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
new file mode 100644
index 0000000..e51a09e
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsOffsetExceeded.ddl
@@ -0,0 +1,136 @@
+usage: h5dump [OPTIONS] files
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+--------------- File Options ---------------
+ -n, --contents Print a list of the file contents and exit
+ Optional value 1 also prints attributes.
+ -B, --superblock Print the content of the super block
+ -H, --header Print the header only; no data is displayed
+ -f D, --filedriver=D Specify which driver to open the file with
+ -o F, --output=F Output raw data into file F
+ -b B, --binary=B Binary file output, of form B
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
+--------------- Object Options ---------------
+ -a P, --attribute=P Print the specified attribute
+ If an attribute name contains a slash (/), escape the
+ slash with a preceding backslash (\).
+ (See example section below.)
+ -d P, --dataset=P Print the specified dataset
+ -g P, --group=P Print the specified group and all members
+ -l P, --soft-link=P Print the value(s) of the specified soft link
+ -t P, --datatype=P Print the specified named datatype
+ -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
+ P can be the absolute path or just a relative path.
+ -A, --onlyattr Print the header and value of attributes
+ Optional value 0 suppresses printing attributes.
+--------------- Object Property Options ---------------
+ -i, --object-ids Print the object ids
+ -p, --properties Print dataset filters, storage layout and fill value
+ -M L, --packedbits=L Print packed bits as unsigned integers, using mask
+ format L for an integer dataset specified with
+ option -d. L is a list of offset,length values,
+ separated by commas. Offset is the beginning bit in
+ the data value and length is the number of bits of
+ the mask.
+ -R, --region Print dataset pointed by region references
+--------------- Formatting Options ---------------
+ -e, --escape Escape non printing characters
+ -r, --string Print 1-byte integer datasets as ASCII
+ -y, --noindex Do not print array indices with the data
+ -m T, --format=T Set the floating point output format
+ -q Q, --sort_by=Q Sort groups and attributes by index Q
+ -z Z, --sort_order=Z Sort groups and attributes by order Z
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
+ --no-compact-subset Disable compact form of subsetting and allow the use
+ of "[" in dataset names.
+ -w N, --width=N Set the number of columns of output. A value of 0 (zero)
+ sets the number of columns to the maximum (65535).
+ Default width is 80 columns.
+--------------- XML Options ---------------
+ -x, --xml Output in XML using Schema
+ -u, --use-dtd Output in XML using DTD
+ -D U, --xml-dtd=U Use the DTD or schema at U
+ -X S, --xml-ns=S (XML Schema) Use qualified names n the XML
+ ":": no namespace, default: "hdf5:"
+ E.g., to dump a file called `-f', use h5dump -- -f
+
+--------------- Subsetting Options ---------------
+ Subsetting is available by using the following options with a dataset
+ option. Subsetting is done by selecting a hyperslab from the data.
+ Thus, the options mirror those for performing a hyperslab selection.
+ One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
+ The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
+ each dimension. START is optional and will default to 0 in each dimension.
+
+ -s START, --start=START Offset of start of subsetting selection
+ -S STRIDE, --stride=STRIDE Hyperslab stride
+ -c COUNT, --count=COUNT Number of blocks to include in selection
+ -k BLOCK, --block=BLOCK Size of block in hyperslab
+ START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the
+ number of dimensions in the dataspace being queried
+ (Alternate compact form of subsetting is described in the Reference Manual)
+
+--------------- Option Argument Conventions ---------------
+ D - is the file driver to use in opening the file. Acceptable values
+ are "sec2", "family", "split", "multi", "direct", and "stream". Without
+ the file driver flag, the file will be opened with each driver in
+ turn and in the order specified above until one driver succeeds
+ in opening the file.
+ See examples below for family, split, and multi driver special file name usage.
+
+ F - is a filename.
+ P - is the full path from the root group to the object.
+ N - is an integer greater than 1.
+ T - is a string containing the floating point format, e.g '%.3f'
+ U - is a URI reference (as defined in [IETF RFC 2396],
+ updated by [IETF RFC 2732])
+ B - is the form of binary output: NATIVE for a memory type, FILE for the
+ file type, LE or BE for pre-existing little or big endian types.
+ Must be used with -o (output file) and it is recommended that
+ -d (dataset) is used. B is an optional argument, defaults to NATIVE
+ Q - is the sort index type. It can be "creation_order" or "name" (default)
+ Z - is the sort order type. It can be "descending" or "ascending" (default)
+
+--------------- Examples ---------------
+
+ 1) Attribute foo of the group /bar_none in file quux.h5
+
+ h5dump -a /bar_none/foo quux.h5
+
+ Attribute "high/low" of the group /bar_none in the file quux.h5
+
+ h5dump -a "/bar_none/high\/low" quux.h5
+
+ 2) Selecting a subset from dataset /foo in file quux.h5
+
+ h5dump -d /foo -s "0,1" -S "1,1" -c "2,3" -k "2,2" quux.h5
+
+ 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'
+ using a little-endian type
+
+ h5dump -d /dset -b LE -o out.bin quux.h5
+
+ 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset
+
+ h5dump -d /dset -M 0,1,4,3 quux.h5
+
+ 5) Dataset foo in files file1.h5 file2.h5 file3.h5
+
+ h5dump -d /foo file1.h5 file2.h5 file3.h5
+
+ 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5
+
+ h5dump -d /foo -f split splitfile
+
+ 7) Dataset foo in multi files mf-s.h5, mf-b.h5, mf-r.h5, mf-g.h5, mf-l.h5 and mf-o.h5
+
+ h5dump -d /foo -f multi mf
+
+ 8) Dataset foo in family files fam00000.h5 fam00001.h5 and fam00002.h5
+
+ h5dump -d /foo -f family fam%05d.h5
+
+h5dump error: Packed Bit offset value(64) must be between 0 and 63
diff --git a/tools/testfiles/pbits/tpbitsOffsetNegative.ddl b/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
new file mode 100644
index 0000000..ba6e46d
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsOffsetNegative.ddl
@@ -0,0 +1,136 @@
+usage: h5dump [OPTIONS] files
+ OPTIONS
+ -h, --help Print a usage message and exit
+ -V, --version Print version number and exit
+--------------- File Options ---------------
+ -n, --contents Print a list of the file contents and exit
+ Optional value 1 also prints attributes.
+ -B, --superblock Print the content of the super block
+ -H, --header Print the header only; no data is displayed
+ -f D, --filedriver=D Specify which driver to open the file with
+ -o F, --output=F Output raw data into file F
+ -b B, --binary=B Binary file output, of form B
+ -O F, --ddl=F Output ddl text into file F
+ Do not use filename F to suppress ddl display
+--------------- Object Options ---------------
+ -a P, --attribute=P Print the specified attribute
+ If an attribute name contains a slash (/), escape the
+ slash with a preceding backslash (\).
+ (See example section below.)
+ -d P, --dataset=P Print the specified dataset
+ -g P, --group=P Print the specified group and all members
+ -l P, --soft-link=P Print the value(s) of the specified soft link
+ -t P, --datatype=P Print the specified named datatype
+ -N P, --any_path=P Print any attribute, dataset, group, datatype, or link that matches P
+ P can be the absolute path or just a relative path.
+ -A, --onlyattr Print the header and value of attributes
+ Optional value 0 suppresses printing attributes.
+--------------- Object Property Options ---------------
+ -i, --object-ids Print the object ids
+ -p, --properties Print dataset filters, storage layout and fill value
+ -M L, --packedbits=L Print packed bits as unsigned integers, using mask
+ format L for an integer dataset specified with
+ option -d. L is a list of offset,length values,
+ separated by commas. Offset is the beginning bit in
+ the data value and length is the number of bits of
+ the mask.
+ -R, --region Print dataset pointed by region references
+--------------- Formatting Options ---------------
+ -e, --escape Escape non printing characters
+ -r, --string Print 1-byte integer datasets as ASCII
+ -y, --noindex Do not print array indices with the data
+ -m T, --format=T Set the floating point output format
+ -q Q, --sort_by=Q Sort groups and attributes by index Q
+ -z Z, --sort_order=Z Sort groups and attributes by order Z
+ --enable-error-stack Prints messages from the HDF5 error stack as they
+ occur.
+ --no-compact-subset Disable compact form of subsetting and allow the use
+ of "[" in dataset names.
+ -w N, --width=N Set the number of columns of output. A value of 0 (zero)
+ sets the number of columns to the maximum (65535).
+ Default width is 80 columns.
+--------------- XML Options ---------------
+ -x, --xml Output in XML using Schema
+ -u, --use-dtd Output in XML using DTD
+ -D U, --xml-dtd=U Use the DTD or schema at U
+ -X S, --xml-ns=S (XML Schema) Use qualified names n the XML
+ ":": no namespace, default: "hdf5:"
+ E.g., to dump a file called `-f', use h5dump -- -f
+
+--------------- Subsetting Options ---------------
+ Subsetting is available by using the following options with a dataset
+ option. Subsetting is done by selecting a hyperslab from the data.
+ Thus, the options mirror those for performing a hyperslab selection.
+ One of the START, COUNT, STRIDE, or BLOCK parameters are mandatory if you do subsetting.
+ The STRIDE, COUNT, and BLOCK parameters are optional and will default to 1 in
+ each dimension. START is optional and will default to 0 in each dimension.
+
+ -s START, --start=START Offset of start of subsetting selection
+ -S STRIDE, --stride=STRIDE Hyperslab stride
+ -c COUNT, --count=COUNT Number of blocks to include in selection
+ -k BLOCK, --block=BLOCK Size of block in hyperslab
+ START, COUNT, STRIDE, and BLOCK - is a list of integers the number of which are equal to the
+ number of dimensions in the dataspace being queried
+ (Alternate compact form of subsetting is described in the Reference Manual)
+
+--------------- Option Argument Conventions ---------------
+ D - is the file driver to use in opening the file. Acceptable values
+ are "sec2", "family", "split", "multi", "direct", and "stream". Without
+ the file driver flag, the file will be opened with each driver in
+ turn and in the order specified above until one driver succeeds
+ in opening the file.
+ See examples below for family, split, and multi driver special file name usage.
+
+ F - is a filename.
+ P - is the full path from the root group to the object.
+ N - is an integer greater than 1.
+ T - is a string containing the floating point format, e.g '%.3f'
+ U - is a URI reference (as defined in [IETF RFC 2396],
+ updated by [IETF RFC 2732])
+ B - is the form of binary output: NATIVE for a memory type, FILE for the
+ file type, LE or BE for pre-existing little or big endian types.
+ Must be used with -o (output file) and it is recommended that
+ -d (dataset) is used. B is an optional argument, defaults to NATIVE
+ Q - is the sort index type. It can be "creation_order" or "name" (default)
+ Z - is the sort order type. It can be "descending" or "ascending" (default)
+
+--------------- Examples ---------------
+
+ 1) Attribute foo of the group /bar_none in file quux.h5
+
+ h5dump -a /bar_none/foo quux.h5
+
+ Attribute "high/low" of the group /bar_none in the file quux.h5
+
+ h5dump -a "/bar_none/high\/low" quux.h5
+
+ 2) Selecting a subset from dataset /foo in file quux.h5
+
+ h5dump -d /foo -s "0,1" -S "1,1" -c "2,3" -k "2,2" quux.h5
+
+ 3) Saving dataset 'dset' in file quux.h5 to binary file 'out.bin'
+ using a little-endian type
+
+ h5dump -d /dset -b LE -o out.bin quux.h5
+
+ 4) Display two packed bits (bits 0-1 and bits 4-6) in the dataset /dset
+
+ h5dump -d /dset -M 0,1,4,3 quux.h5
+
+ 5) Dataset foo in files file1.h5 file2.h5 file3.h5
+
+ h5dump -d /foo file1.h5 file2.h5 file3.h5
+
+ 6) Dataset foo in split files splitfile-m.h5 splitfile-r.h5
+
+ h5dump -d /foo -f split splitfile
+
+ 7) Dataset foo in multi files mf-s.h5, mf-b.h5, mf-r.h5, mf-g.h5, mf-l.h5 and mf-o.h5
+
+ h5dump -d /foo -f multi mf
+
+ 8) Dataset foo in family files fam00000.h5 fam00001.h5 and fam00002.h5
+
+ h5dump -d /foo -f family fam%05d.h5
+
+h5dump error: Bad mask list(-1,1)
diff --git a/tools/testfiles/pbits/tpbitsOverlapped.ddl b/tools/testfiles/pbits/tpbitsOverlapped.ddl
new file mode 100644
index 0000000..9dcc9d2
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsOverlapped.ddl
@@ -0,0 +1,50 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=1
+ DATA {
+ (0,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=1 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (1,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=2 LENGTH=1
+ DATA {
+ (0,0): 1, 1, 1, 0, 0, 0, 0, 0,
+ (1,0): 1, 1, 0, 0, 0, 0, 0, 0,
+ (2,0): 1, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=0 LENGTH=3
+ DATA {
+ (0,0): 7, 6, 4, 0, 0, 0, 0, 0,
+ (1,0): 6, 4, 0, 0, 0, 0, 0, 0,
+ (2,0): 4, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSigned.ddl b/tools/testfiles/pbits/tpbitsSigned.ddl
new file mode 100644
index 0000000..b843388
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSigned.ddl
@@ -0,0 +1,28 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=2 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSigned2.ddl b/tools/testfiles/pbits/tpbitsSigned2.ddl
new file mode 100644
index 0000000..932b5fd
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSigned2.ddl
@@ -0,0 +1,50 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=2 LENGTH=2
+ DATA {
+ (0,0): 3, 3, 3, 2, 0, 0, 0, 0,
+ (1,0): 3, 3, 2, 0, 0, 0, 0, 0,
+ (2,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (3,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=4 LENGTH=2
+ DATA {
+ (0,0): 3, 3, 3, 3, 3, 2, 0, 0,
+ (1,0): 3, 3, 3, 3, 2, 0, 0, 0,
+ (2,0): 3, 3, 3, 2, 0, 0, 0, 0,
+ (3,0): 3, 3, 2, 0, 0, 0, 0, 0,
+ (4,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (5,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=6 LENGTH=2
+ DATA {
+ (0,0): 3, 3, 3, 3, 3, 3, 3, 2,
+ (1,0): 3, 3, 3, 3, 3, 3, 2, 0,
+ (2,0): 3, 3, 3, 3, 3, 2, 0, 0,
+ (3,0): 3, 3, 3, 3, 2, 0, 0, 0,
+ (4,0): 3, 3, 3, 2, 0, 0, 0, 0,
+ (5,0): 3, 3, 2, 0, 0, 0, 0, 0,
+ (6,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (7,0): 2, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSigned4.ddl b/tools/testfiles/pbits/tpbitsSigned4.ddl
new file mode 100644
index 0000000..9eacd83
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSigned4.ddl
@@ -0,0 +1,28 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=4
+ DATA {
+ (0,0): 15, 14, 12, 8, 0, 0, 0, 0,
+ (1,0): 14, 12, 8, 0, 0, 0, 0, 0,
+ (2,0): 12, 8, 0, 0, 0, 0, 0, 0,
+ (3,0): 8, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=4 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 14, 12, 8,
+ (1,0): 15, 15, 15, 15, 14, 12, 8, 0,
+ (2,0): 15, 15, 15, 14, 12, 8, 0, 0,
+ (3,0): 15, 15, 14, 12, 8, 0, 0, 0,
+ (4,0): 15, 14, 12, 8, 0, 0, 0, 0,
+ (5,0): 14, 12, 8, 0, 0, 0, 0, 0,
+ (6,0): 12, 8, 0, 0, 0, 0, 0, 0,
+ (7,0): 8, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedInt.ddl b/tools/testfiles/pbits/tpbitsSignedInt.ddl
new file mode 100644
index 0000000..5c37e77
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedInt.ddl
@@ -0,0 +1,28 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=10 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedInt4.ddl b/tools/testfiles/pbits/tpbitsSignedInt4.ddl
new file mode 100644
index 0000000..4e9f0f6
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedInt4.ddl
@@ -0,0 +1,50 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=4
+ DATA {
+ (0,0): 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=4 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=8 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0,
+ (1,0): 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0,
+ (2,0): 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0,
+ (3,0): 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=12 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8,
+ (1,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0,
+ (2,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0,
+ (3,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0,
+ (4,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0,
+ (5,0): 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0,
+ (6,0): 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0,
+ (7,0): 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedInt8.ddl b/tools/testfiles/pbits/tpbitsSignedInt8.ddl
new file mode 100644
index 0000000..f2d6069
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedInt8.ddl
@@ -0,0 +1,34 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=8
+ DATA {
+ (0,0): 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=8 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240,
+ (0,13): 224, 192, 128,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224,
+ (1,13): 192, 128, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192,
+ (2,13): 128, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0,
+ (3,14): 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0,
+ (4,14): 0, 0,
+ (5,0): 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0,
+ (5,15): 0,
+ (6,0): 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedIntWhole.ddl b/tools/testfiles/pbits/tpbitsSignedIntWhole.ddl
new file mode 100644
index 0000000..598c446
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedIntWhole.ddl
@@ -0,0 +1,25 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS16BITS" {
+ DATATYPE H5T_STD_I16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=16
+ DATA {
+ (0,0): -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048,
+ (0,12): -4096, -8192, -16384, -32768,
+ (1,0): -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ (1,12): -8192, -16384, -32768, 0,
+ (2,0): -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ (2,11): -8192, -16384, -32768, 0, 0,
+ (3,0): -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ (3,11): -16384, -32768, 0, 0, 0,
+ (4,0): -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ (4,10): -16384, -32768, 0, 0, 0, 0,
+ (5,0): -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ (5,10): -32768, 0, 0, 0, 0, 0,
+ (6,0): -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ (6,10): 0, 0, 0, 0, 0, 0,
+ (7,0): -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768, 0, 0,
+ (7,11): 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLong.ddl b/tools/testfiles/pbits/tpbitsSignedLong.ddl
new file mode 100644
index 0000000..b3eba61
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLong.ddl
@@ -0,0 +1,44 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=26 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,17): 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,17): 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,17): 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,17): 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,17): 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,17): 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLong16.ddl b/tools/testfiles/pbits/tpbitsSignedLong16.ddl
new file mode 100644
index 0000000..83fa889
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLong16.ddl
@@ -0,0 +1,67 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=16
+ DATA {
+ (0,0): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (0,9): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (1,9): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,23): 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (2,9): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,25): 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (3,9): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,26): 0, 0, 0, 0, 0, 0,
+ (4,0): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (4,9): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,27): 0, 0, 0, 0, 0,
+ (5,0): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (5,9): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,29): 0, 0, 0,
+ (6,0): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (6,9): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,30): 0, 0,
+ (7,0): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (7,10): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=16 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (0,18): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (0,27): 63488, 61440, 57344, 49152, 32768,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532,
+ (1,18): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (1,27): 61440, 57344, 49152, 32768, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (2,18): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (2,27): 57344, 49152, 32768, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520,
+ (3,18): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (3,27): 49152, 32768, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (4,18): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (4,27): 32768, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (5,18): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (5,28): 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (6,18): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (6,29): 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (7,18): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (7,31): 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLong8.ddl b/tools/testfiles/pbits/tpbitsSignedLong8.ddl
new file mode 100644
index 0000000..e99b1d0
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLong8.ddl
@@ -0,0 +1,96 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=8
+ DATA {
+ (0,0): 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,17): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,18): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,18): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,19): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,20): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,20): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=8 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240,
+ (0,13): 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224,
+ (1,13): 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192,
+ (2,13): 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0,
+ (3,14): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0,
+ (4,14): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0,
+ (5,15): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0,
+ (6,16): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0,
+ (7,16): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=16 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (0,13): 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0,
+ (0,28): 0, 0, 0, 0,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (1,13): 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0,
+ (1,28): 0, 0, 0, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (2,13): 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0,
+ (2,29): 0, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (3,13): 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,30): 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (4,13): 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,30): 0, 0,
+ (5,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254,
+ (5,13): 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,31): 0,
+ (6,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252,
+ (6,13): 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248,
+ (7,13): 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=24 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (0,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254,
+ (0,26): 252, 248, 240, 224, 192, 128,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (1,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252,
+ (1,26): 248, 240, 224, 192, 128, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (2,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248,
+ (2,26): 240, 224, 192, 128, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (3,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240,
+ (3,26): 224, 192, 128, 0, 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (4,13): 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224,
+ (4,26): 192, 128, 0, 0, 0, 0,
+ (5,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (5,13): 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192,
+ (5,26): 128, 0, 0, 0, 0, 0,
+ (6,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (6,13): 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128,
+ (6,26): 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (7,13): 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0,
+ (7,27): 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLongLong.ddl b/tools/testfiles/pbits/tpbitsSignedLongLong.ddl
new file mode 100644
index 0000000..2be8a55
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLongLong.ddl
@@ -0,0 +1,68 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=58 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,49): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,49): 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,49): 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,49): 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,49): 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,49): 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,49): 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,49): 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLongLong16.ddl b/tools/testfiles/pbits/tpbitsSignedLongLong16.ddl
new file mode 100644
index 0000000..44e336d
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLongLong16.ddl
@@ -0,0 +1,196 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=16
+ DATA {
+ (0,0): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (0,9): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (1,9): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,23): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,45): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (2,9): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,25): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,47): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (3,9): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,26): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,48): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (4,9): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,27): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (5,9): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,29): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,51): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (6,9): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,30): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,52): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (7,10): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,32): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,54): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=16 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (0,18): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (0,27): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,42): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532,
+ (1,18): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (1,27): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (2,18): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (2,27): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,45): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520,
+ (3,18): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (3,27): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,46): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (4,18): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (4,27): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,48): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (5,18): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (5,28): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,50): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (6,18): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (6,29): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,51): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (7,18): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (7,31): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,53): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=32 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,27): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (0,36): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (0,45): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,63): 0,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,27): 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520,
+ (1,36): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (1,45): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,27): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (2,36): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (2,45): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,27): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (3,36): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (3,46): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,27): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (4,36): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (4,47): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,27): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (5,36): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (5,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,27): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (6,36): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,50): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (7,27): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (7,36): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,51): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=48 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,45): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (0,54): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (0,63): 32768,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,45): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (1,54): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,45): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (2,54): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,45): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (3,54): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,45): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (4,54): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (5,45): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (5,54): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532,
+ (6,45): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (6,54): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,36): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (7,45): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (7,54): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLongLong32.ddl b/tools/testfiles/pbits/tpbitsSignedLongLong32.ddl
new file mode 100644
index 0000000..6ab4ac4
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLongLong32.ddl
@@ -0,0 +1,175 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=32
+ DATA {
+ (0,0): 4294967295, 4294967294, 4294967292, 4294967288, 4294967280,
+ (0,5): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (0,10): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (0,15): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (0,20): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (0,25): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (0,30): 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,46): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ (1,5): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (1,10): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (1,15): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (1,20): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (1,25): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (1,30): 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ (2,5): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (2,10): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (2,15): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (2,20): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (2,25): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (2,32): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,54): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ (3,5): 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ (3,10): 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ (3,15): 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ (3,20): 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ (3,25): 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ (3,35): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,57): 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ (4,5): 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ (4,10): 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ (4,15): 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ (4,20): 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ (4,25): 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,38): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,60): 0, 0, 0, 0,
+ (5,0): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (5,5): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (5,10): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (5,15): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (5,20): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (5,25): 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,41): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,63): 0,
+ (6,0): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (6,5): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (6,10): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (6,15): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (6,20): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (6,25): 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (7,5): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (7,10): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (7,15): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (7,20): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (7,27): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=32 LENGTH=32
+ DATA {
+ (0,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,30): 4294967295, 4294967295, 4294967295, 4294967294, 4294967292,
+ (0,35): 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ (0,40): 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ (0,45): 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ (0,50): 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ (0,55): 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ (0,60): 4026531840, 3758096384, 3221225472, 2147483648,
+ (1,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,30): 4294967295, 4294967295, 4294967294, 4294967292, 4294967288,
+ (1,35): 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ (1,40): 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ (1,45): 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ (1,50): 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ (1,55): 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ (1,60): 3758096384, 3221225472, 2147483648, 0,
+ (2,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,30): 4294967295, 4294967294, 4294967292, 4294967288, 4294967280,
+ (2,35): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (2,40): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (2,45): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (2,50): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (2,55): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (2,60): 3221225472, 2147483648, 0, 0,
+ (3,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,30): 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ (3,35): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (3,40): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (3,45): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (3,50): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (3,55): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (3,60): 2147483648, 0, 0, 0,
+ (4,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967294,
+ (4,30): 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ (4,35): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (4,40): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (4,45): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (4,50): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (4,55): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (4,62): 0, 0,
+ (5,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,25): 4294967295, 4294967295, 4294967295, 4294967294, 4294967292,
+ (5,30): 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ (5,35): 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ (5,40): 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ (5,45): 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ (5,50): 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ (5,55): 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ (6,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,25): 4294967295, 4294967295, 4294967294, 4294967292, 4294967288,
+ (6,30): 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ (6,35): 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ (6,40): 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ (6,45): 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ (6,50): 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ (6,55): 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ (7,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,25): 4294967295, 4294967294, 4294967292, 4294967288, 4294967280,
+ (7,30): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (7,35): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (7,40): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (7,45): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (7,50): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (7,55): 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl b/tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl
new file mode 100644
index 0000000..134f3be
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLongLongWhole.ddl
@@ -0,0 +1,121 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=64
+ DATA {
+ (0,0): -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048,
+ (0,12): -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288,
+ (0,20): -1048576, -2097152, -4194304, -8388608, -16777216, -33554432,
+ (0,26): -67108864, -134217728, -268435456, -536870912, -1073741824,
+ (0,31): -2147483648, -4294967296, -8589934592, -17179869184, -34359738368,
+ (0,36): -68719476736, -137438953472, -274877906944, -549755813888,
+ (0,40): -1099511627776, -2199023255552, -4398046511104, -8796093022208,
+ (0,44): -17592186044416, -35184372088832, -70368744177664,
+ (0,47): -140737488355328, -281474976710656, -562949953421312,
+ (0,50): -1125899906842624, -2251799813685248, -4503599627370496,
+ (0,53): -9007199254740992, -18014398509481984, -36028797018963968,
+ (0,56): -72057594037927936, -144115188075855872, -288230376151711744,
+ (0,59): -576460752303423488, -1152921504606846976, -2305843009213693952,
+ (0,62): -4611686018427387904, -9223372036854775808,
+ (1,0): -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ (1,12): -8192, -16384, -32768, -65536, -131072, -262144, -524288,
+ (1,19): -1048576, -2097152, -4194304, -8388608, -16777216, -33554432,
+ (1,25): -67108864, -134217728, -268435456, -536870912, -1073741824,
+ (1,30): -2147483648, -4294967296, -8589934592, -17179869184, -34359738368,
+ (1,35): -68719476736, -137438953472, -274877906944, -549755813888,
+ (1,39): -1099511627776, -2199023255552, -4398046511104, -8796093022208,
+ (1,43): -17592186044416, -35184372088832, -70368744177664,
+ (1,46): -140737488355328, -281474976710656, -562949953421312,
+ (1,49): -1125899906842624, -2251799813685248, -4503599627370496,
+ (1,52): -9007199254740992, -18014398509481984, -36028797018963968,
+ (1,55): -72057594037927936, -144115188075855872, -288230376151711744,
+ (1,58): -576460752303423488, -1152921504606846976, -2305843009213693952,
+ (1,61): -4611686018427387904, -9223372036854775808, 0,
+ (2,0): -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ (2,11): -8192, -16384, -32768, -65536, -131072, -262144, -524288,
+ (2,18): -1048576, -2097152, -4194304, -8388608, -16777216, -33554432,
+ (2,24): -67108864, -134217728, -268435456, -536870912, -1073741824,
+ (2,29): -2147483648, -4294967296, -8589934592, -17179869184, -34359738368,
+ (2,34): -68719476736, -137438953472, -274877906944, -549755813888,
+ (2,38): -1099511627776, -2199023255552, -4398046511104, -8796093022208,
+ (2,42): -17592186044416, -35184372088832, -70368744177664,
+ (2,45): -140737488355328, -281474976710656, -562949953421312,
+ (2,48): -1125899906842624, -2251799813685248, -4503599627370496,
+ (2,51): -9007199254740992, -18014398509481984, -36028797018963968,
+ (2,54): -72057594037927936, -144115188075855872, -288230376151711744,
+ (2,57): -576460752303423488, -1152921504606846976, -2305843009213693952,
+ (2,60): -4611686018427387904, -9223372036854775808, 0, 0,
+ (3,0): -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ (3,11): -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ (3,18): -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ (3,24): -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ (3,29): -4294967296, -8589934592, -17179869184, -34359738368,
+ (3,33): -68719476736, -137438953472, -274877906944, -549755813888,
+ (3,37): -1099511627776, -2199023255552, -4398046511104, -8796093022208,
+ (3,41): -17592186044416, -35184372088832, -70368744177664,
+ (3,44): -140737488355328, -281474976710656, -562949953421312,
+ (3,47): -1125899906842624, -2251799813685248, -4503599627370496,
+ (3,50): -9007199254740992, -18014398509481984, -36028797018963968,
+ (3,53): -72057594037927936, -144115188075855872, -288230376151711744,
+ (3,56): -576460752303423488, -1152921504606846976, -2305843009213693952,
+ (3,59): -4611686018427387904, -9223372036854775808, 0, 0, 0,
+ (4,0): -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ (4,10): -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ (4,17): -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ (4,23): -134217728, -268435456, -536870912, -1073741824, -2147483648,
+ (4,28): -4294967296, -8589934592, -17179869184, -34359738368,
+ (4,32): -68719476736, -137438953472, -274877906944, -549755813888,
+ (4,36): -1099511627776, -2199023255552, -4398046511104, -8796093022208,
+ (4,40): -17592186044416, -35184372088832, -70368744177664,
+ (4,43): -140737488355328, -281474976710656, -562949953421312,
+ (4,46): -1125899906842624, -2251799813685248, -4503599627370496,
+ (4,49): -9007199254740992, -18014398509481984, -36028797018963968,
+ (4,52): -72057594037927936, -144115188075855872, -288230376151711744,
+ (4,55): -576460752303423488, -1152921504606846976, -2305843009213693952,
+ (4,58): -4611686018427387904, -9223372036854775808, 0, 0, 0, 0,
+ (5,0): -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ (5,10): -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ (5,17): -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ (5,23): -268435456, -536870912, -1073741824, -2147483648, -4294967296,
+ (5,28): -8589934592, -17179869184, -34359738368, -68719476736,
+ (5,32): -137438953472, -274877906944, -549755813888, -1099511627776,
+ (5,36): -2199023255552, -4398046511104, -8796093022208, -17592186044416,
+ (5,40): -35184372088832, -70368744177664, -140737488355328,
+ (5,43): -281474976710656, -562949953421312, -1125899906842624,
+ (5,46): -2251799813685248, -4503599627370496, -9007199254740992,
+ (5,49): -18014398509481984, -36028797018963968, -72057594037927936,
+ (5,52): -144115188075855872, -288230376151711744, -576460752303423488,
+ (5,55): -1152921504606846976, -2305843009213693952, -4611686018427387904,
+ (5,58): -9223372036854775808, 0, 0, 0, 0, 0,
+ (6,0): -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ (6,10): -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ (6,17): -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ (6,23): -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ (6,28): -17179869184, -34359738368, -68719476736, -137438953472,
+ (6,32): -274877906944, -549755813888, -1099511627776, -2199023255552,
+ (6,36): -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ (6,40): -70368744177664, -140737488355328, -281474976710656,
+ (6,43): -562949953421312, -1125899906842624, -2251799813685248,
+ (6,46): -4503599627370496, -9007199254740992, -18014398509481984,
+ (6,49): -36028797018963968, -72057594037927936, -144115188075855872,
+ (6,52): -288230376151711744, -576460752303423488, -1152921504606846976,
+ (6,55): -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ (6,58): 0, 0, 0, 0, 0, 0,
+ (7,0): -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ (7,9): -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ (7,16): -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ (7,22): -536870912, -1073741824, -2147483648, -4294967296, -8589934592,
+ (7,27): -17179869184, -34359738368, -68719476736, -137438953472,
+ (7,31): -274877906944, -549755813888, -1099511627776, -2199023255552,
+ (7,35): -4398046511104, -8796093022208, -17592186044416, -35184372088832,
+ (7,39): -70368744177664, -140737488355328, -281474976710656,
+ (7,42): -562949953421312, -1125899906842624, -2251799813685248,
+ (7,45): -4503599627370496, -9007199254740992, -18014398509481984,
+ (7,48): -36028797018963968, -72057594037927936, -144115188075855872,
+ (7,51): -288230376151711744, -576460752303423488, -1152921504606846976,
+ (7,54): -2305843009213693952, -4611686018427387904, -9223372036854775808,
+ (7,57): 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl b/tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl
new file mode 100644
index 0000000..7431670
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLongLongWhole1.ddl
@@ -0,0 +1,175 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=1 LENGTH=63
+ DATA {
+ (0,0): 9223372036854775807, 9223372036854775807, 9223372036854775806,
+ (0,3): 9223372036854775804, 9223372036854775800, 9223372036854775792,
+ (0,6): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (0,9): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (0,12): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (0,15): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (0,18): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (0,21): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (0,24): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (0,27): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (0,30): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (0,33): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (0,36): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (0,39): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (0,42): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (0,45): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (0,48): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (0,51): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (0,54): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (0,57): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (0,60): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (0,63): 4611686018427387904,
+ (1,0): 9223372036854775807, 9223372036854775806, 9223372036854775804,
+ (1,3): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (1,6): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (1,9): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (1,12): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (1,15): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (1,18): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (1,21): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (1,24): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (1,27): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (1,30): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (1,33): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (1,36): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (1,39): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (1,42): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (1,45): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (1,48): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (1,51): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (1,54): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (1,57): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (1,60): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (2,0): 9223372036854775806, 9223372036854775804, 9223372036854775800,
+ (2,3): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (2,6): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (2,9): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (2,12): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (2,15): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (2,18): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (2,21): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (2,24): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (2,27): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (2,30): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (2,33): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (2,36): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (2,39): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (2,42): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (2,45): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (2,48): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (2,51): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (2,54): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (2,57): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (2,60): 6917529027641081856, 4611686018427387904, 0, 0,
+ (3,0): 9223372036854775804, 9223372036854775800, 9223372036854775792,
+ (3,3): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (3,6): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (3,9): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (3,12): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (3,15): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (3,18): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (3,21): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (3,24): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (3,27): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (3,30): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (3,33): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (3,36): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (3,39): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (3,42): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (3,45): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (3,48): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (3,51): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (3,54): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (3,57): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (3,60): 4611686018427387904, 0, 0, 0,
+ (4,0): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (4,3): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (4,6): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (4,9): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (4,12): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (4,15): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (4,18): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (4,21): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (4,24): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (4,27): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (4,30): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (4,33): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (4,36): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (4,39): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (4,42): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (4,45): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (4,48): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (4,51): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (4,54): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (4,57): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (4,61): 0, 0, 0,
+ (5,0): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (5,3): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (5,6): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (5,9): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (5,12): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (5,15): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (5,18): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (5,21): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (5,24): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (5,27): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (5,30): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (5,33): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (5,36): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (5,39): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (5,42): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (5,45): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (5,48): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (5,51): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (5,54): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (5,57): 6917529027641081856, 4611686018427387904, 0, 0, 0, 0, 0,
+ (6,0): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (6,3): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (6,6): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (6,9): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (6,12): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (6,15): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (6,18): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (6,21): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (6,24): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (6,27): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (6,30): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (6,33): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (6,36): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (6,39): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (6,42): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (6,45): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (6,48): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (6,51): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (6,54): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (6,57): 4611686018427387904, 0, 0, 0, 0, 0, 0,
+ (7,0): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (7,3): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (7,6): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (7,9): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (7,12): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (7,15): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (7,18): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (7,21): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (7,24): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (7,27): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (7,30): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (7,33): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (7,36): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (7,39): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (7,42): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (7,45): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (7,48): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (7,51): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (7,54): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (7,58): 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl b/tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl
new file mode 100644
index 0000000..c7cc65f
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLongLongWhole63.ddl
@@ -0,0 +1,172 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS64BITS" {
+ DATATYPE H5T_STD_I64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=63
+ DATA {
+ (0,0): 9223372036854775807, 9223372036854775806, 9223372036854775804,
+ (0,3): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (0,6): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (0,9): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (0,12): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (0,15): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (0,18): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (0,21): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (0,24): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (0,27): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (0,30): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (0,33): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (0,36): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (0,39): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (0,42): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (0,45): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (0,48): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (0,51): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (0,54): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (0,57): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (0,60): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (1,0): 9223372036854775806, 9223372036854775804, 9223372036854775800,
+ (1,3): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (1,6): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (1,9): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (1,12): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (1,15): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (1,18): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (1,21): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (1,24): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (1,27): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (1,30): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (1,33): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (1,36): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (1,39): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (1,42): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (1,45): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (1,48): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (1,51): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (1,54): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (1,57): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (1,60): 6917529027641081856, 4611686018427387904, 0, 0,
+ (2,0): 9223372036854775804, 9223372036854775800, 9223372036854775792,
+ (2,3): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (2,6): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (2,9): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (2,12): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (2,15): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (2,18): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (2,21): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (2,24): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (2,27): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (2,30): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (2,33): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (2,36): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (2,39): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (2,42): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (2,45): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (2,48): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (2,51): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (2,54): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (2,57): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (2,60): 4611686018427387904, 0, 0, 0,
+ (3,0): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (3,3): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (3,6): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (3,9): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (3,12): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (3,15): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (3,18): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (3,21): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (3,24): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (3,27): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (3,30): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (3,33): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (3,36): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (3,39): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (3,42): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (3,45): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (3,48): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (3,51): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (3,54): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (3,57): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (3,61): 0, 0, 0,
+ (4,0): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (4,3): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (4,6): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (4,9): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (4,12): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (4,15): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (4,18): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (4,21): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (4,24): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (4,27): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (4,30): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (4,33): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (4,36): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (4,39): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (4,42): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (4,45): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (4,48): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (4,51): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (4,54): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (4,57): 6917529027641081856, 4611686018427387904, 0, 0, 0, 0, 0,
+ (5,0): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (5,3): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (5,6): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (5,9): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (5,12): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (5,15): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (5,18): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (5,21): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (5,24): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (5,27): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (5,30): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (5,33): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (5,36): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (5,39): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (5,42): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (5,45): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (5,48): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (5,51): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (5,54): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (5,57): 4611686018427387904, 0, 0, 0, 0, 0, 0,
+ (6,0): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (6,3): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (6,6): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (6,9): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (6,12): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (6,15): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (6,18): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (6,21): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (6,24): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (6,27): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (6,30): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (6,33): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (6,36): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (6,39): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (6,42): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (6,45): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (6,48): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (6,51): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (6,54): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (6,58): 0, 0, 0, 0, 0, 0,
+ (7,0): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (7,3): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (7,6): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (7,9): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (7,12): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (7,15): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (7,18): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (7,21): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (7,24): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (7,27): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (7,30): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (7,33): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (7,36): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (7,39): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (7,42): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (7,45): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (7,48): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (7,51): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (7,54): 6917529027641081856, 4611686018427387904, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedLongWhole.ddl b/tools/testfiles/pbits/tpbitsSignedLongWhole.ddl
new file mode 100644
index 0000000..e583f1d
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedLongWhole.ddl
@@ -0,0 +1,46 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS32BITS" {
+ DATATYPE H5T_STD_I32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=32
+ DATA {
+ (0,0): -1, -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048,
+ (0,12): -4096, -8192, -16384, -32768, -65536, -131072, -262144, -524288,
+ (0,20): -1048576, -2097152, -4194304, -8388608, -16777216, -33554432,
+ (0,26): -67108864, -134217728, -268435456, -536870912, -1073741824,
+ (0,31): -2147483648,
+ (1,0): -2, -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ (1,12): -8192, -16384, -32768, -65536, -131072, -262144, -524288,
+ (1,19): -1048576, -2097152, -4194304, -8388608, -16777216, -33554432,
+ (1,25): -67108864, -134217728, -268435456, -536870912, -1073741824,
+ (1,30): -2147483648, 0,
+ (2,0): -4, -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096,
+ (2,11): -8192, -16384, -32768, -65536, -131072, -262144, -524288,
+ (2,18): -1048576, -2097152, -4194304, -8388608, -16777216, -33554432,
+ (2,24): -67108864, -134217728, -268435456, -536870912, -1073741824,
+ (2,29): -2147483648, 0, 0,
+ (3,0): -8, -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ (3,11): -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ (3,18): -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ (3,24): -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ (3,30): 0, 0,
+ (4,0): -16, -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192,
+ (4,10): -16384, -32768, -65536, -131072, -262144, -524288, -1048576,
+ (4,17): -2097152, -4194304, -8388608, -16777216, -33554432, -67108864,
+ (4,23): -134217728, -268435456, -536870912, -1073741824, -2147483648, 0,
+ (4,29): 0, 0, 0,
+ (5,0): -32, -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384,
+ (5,10): -32768, -65536, -131072, -262144, -524288, -1048576, -2097152,
+ (5,17): -4194304, -8388608, -16777216, -33554432, -67108864, -134217728,
+ (5,23): -268435456, -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0,
+ (6,0): -64, -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ (6,10): -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ (6,17): -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ (6,23): -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0,
+ (7,0): -128, -256, -512, -1024, -2048, -4096, -8192, -16384, -32768,
+ (7,9): -65536, -131072, -262144, -524288, -1048576, -2097152, -4194304,
+ (7,16): -8388608, -16777216, -33554432, -67108864, -134217728, -268435456,
+ (7,22): -536870912, -1073741824, -2147483648, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsSignedWhole.ddl b/tools/testfiles/pbits/tpbitsSignedWhole.ddl
new file mode 100644
index 0000000..f044e23
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsSignedWhole.ddl
@@ -0,0 +1,17 @@
+HDF5 "packedbits.h5" {
+DATASET "/DS08BITS" {
+ DATATYPE H5T_STD_I8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=8
+ DATA {
+ (0,0): -1, -2, -4, -8, -16, -32, -64, -128,
+ (1,0): -2, -4, -8, -16, -32, -64, -128, 0,
+ (2,0): -4, -8, -16, -32, -64, -128, 0, 0,
+ (3,0): -8, -16, -32, -64, -128, 0, 0, 0,
+ (4,0): -16, -32, -64, -128, 0, 0, 0, 0,
+ (5,0): -32, -64, -128, 0, 0, 0, 0, 0,
+ (6,0): -64, -128, 0, 0, 0, 0, 0, 0,
+ (7,0): -128, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsigned.ddl b/tools/testfiles/pbits/tpbitsUnsigned.ddl
new file mode 100644
index 0000000..9e7ac50
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsigned.ddl
@@ -0,0 +1,28 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU08BITS" {
+ DATATYPE H5T_STD_U8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=2 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsigned2.ddl b/tools/testfiles/pbits/tpbitsUnsigned2.ddl
new file mode 100644
index 0000000..b7e6f79
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsigned2.ddl
@@ -0,0 +1,50 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU08BITS" {
+ DATATYPE H5T_STD_U8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=2 LENGTH=2
+ DATA {
+ (0,0): 3, 3, 3, 2, 0, 0, 0, 0,
+ (1,0): 3, 3, 2, 0, 0, 0, 0, 0,
+ (2,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (3,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=4 LENGTH=2
+ DATA {
+ (0,0): 3, 3, 3, 3, 3, 2, 0, 0,
+ (1,0): 3, 3, 3, 3, 2, 0, 0, 0,
+ (2,0): 3, 3, 3, 2, 0, 0, 0, 0,
+ (3,0): 3, 3, 2, 0, 0, 0, 0, 0,
+ (4,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (5,0): 2, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=6 LENGTH=2
+ DATA {
+ (0,0): 3, 3, 3, 3, 3, 3, 3, 2,
+ (1,0): 3, 3, 3, 3, 3, 3, 2, 0,
+ (2,0): 3, 3, 3, 3, 3, 2, 0, 0,
+ (3,0): 3, 3, 3, 3, 2, 0, 0, 0,
+ (4,0): 3, 3, 3, 2, 0, 0, 0, 0,
+ (5,0): 3, 3, 2, 0, 0, 0, 0, 0,
+ (6,0): 3, 2, 0, 0, 0, 0, 0, 0,
+ (7,0): 2, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsigned4.ddl b/tools/testfiles/pbits/tpbitsUnsigned4.ddl
new file mode 100644
index 0000000..d25d838
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsigned4.ddl
@@ -0,0 +1,28 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU08BITS" {
+ DATATYPE H5T_STD_U8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=4
+ DATA {
+ (0,0): 15, 14, 12, 8, 0, 0, 0, 0,
+ (1,0): 14, 12, 8, 0, 0, 0, 0, 0,
+ (2,0): 12, 8, 0, 0, 0, 0, 0, 0,
+ (3,0): 8, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=4 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 14, 12, 8,
+ (1,0): 15, 15, 15, 15, 14, 12, 8, 0,
+ (2,0): 15, 15, 15, 14, 12, 8, 0, 0,
+ (3,0): 15, 15, 14, 12, 8, 0, 0, 0,
+ (4,0): 15, 14, 12, 8, 0, 0, 0, 0,
+ (5,0): 14, 12, 8, 0, 0, 0, 0, 0,
+ (6,0): 12, 8, 0, 0, 0, 0, 0, 0,
+ (7,0): 8, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedInt.ddl b/tools/testfiles/pbits/tpbitsUnsignedInt.ddl
new file mode 100644
index 0000000..5e0fefe
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedInt.ddl
@@ -0,0 +1,28 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU16BITS" {
+ DATATYPE H5T_STD_U16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=10 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedInt4.ddl b/tools/testfiles/pbits/tpbitsUnsignedInt4.ddl
new file mode 100644
index 0000000..0d3e38f
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedInt4.ddl
@@ -0,0 +1,50 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU16BITS" {
+ DATATYPE H5T_STD_U16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=4
+ DATA {
+ (0,0): 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=4 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=8 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0,
+ (1,0): 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0,
+ (2,0): 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0,
+ (3,0): 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=12 LENGTH=4
+ DATA {
+ (0,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8,
+ (1,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0,
+ (2,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0,
+ (3,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0,
+ (4,0): 15, 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0,
+ (5,0): 15, 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0,
+ (6,0): 15, 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0,
+ (7,0): 15, 15, 15, 15, 15, 15, 14, 12, 8, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedInt8.ddl b/tools/testfiles/pbits/tpbitsUnsignedInt8.ddl
new file mode 100644
index 0000000..861ed3e
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedInt8.ddl
@@ -0,0 +1,34 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU16BITS" {
+ DATATYPE H5T_STD_U16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=8
+ DATA {
+ (0,0): 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=8 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240,
+ (0,13): 224, 192, 128,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224,
+ (1,13): 192, 128, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192,
+ (2,13): 128, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0,
+ (3,14): 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0,
+ (4,14): 0, 0,
+ (5,0): 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0,
+ (5,15): 0,
+ (6,0): 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl
new file mode 100644
index 0000000..c054011
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedIntWhole.ddl
@@ -0,0 +1,25 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU16BITS" {
+ DATATYPE H5T_STD_U16LE
+ DATASPACE SIMPLE { ( 8, 16 ) / ( 8, 16 ) }
+ PACKED_BITS OFFSET=0 LENGTH=16
+ DATA {
+ (0,0): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (0,9): 65024, 64512, 63488, 61440, 57344, 49152, 32768,
+ (1,0): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (1,9): 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (2,0): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (2,9): 63488, 61440, 57344, 49152, 32768, 0, 0,
+ (3,0): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (3,9): 61440, 57344, 49152, 32768, 0, 0, 0,
+ (4,0): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (4,9): 57344, 49152, 32768, 0, 0, 0, 0,
+ (5,0): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (5,9): 49152, 32768, 0, 0, 0, 0, 0,
+ (6,0): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (6,9): 32768, 0, 0, 0, 0, 0, 0,
+ (7,0): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (7,10): 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLong.ddl b/tools/testfiles/pbits/tpbitsUnsignedLong.ddl
new file mode 100644
index 0000000..9f8bcb4
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLong.ddl
@@ -0,0 +1,44 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU32BITS" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=26 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,17): 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,17): 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,17): 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,17): 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,17): 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,17): 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLong16.ddl b/tools/testfiles/pbits/tpbitsUnsignedLong16.ddl
new file mode 100644
index 0000000..7a1984f
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLong16.ddl
@@ -0,0 +1,67 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU32BITS" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=16
+ DATA {
+ (0,0): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (0,9): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (1,9): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,23): 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (2,9): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,25): 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (3,9): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,26): 0, 0, 0, 0, 0, 0,
+ (4,0): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (4,9): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,27): 0, 0, 0, 0, 0,
+ (5,0): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (5,9): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,29): 0, 0, 0,
+ (6,0): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (6,9): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,30): 0, 0,
+ (7,0): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (7,10): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=16 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (0,18): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (0,27): 63488, 61440, 57344, 49152, 32768,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532,
+ (1,18): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (1,27): 61440, 57344, 49152, 32768, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (2,18): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (2,27): 57344, 49152, 32768, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520,
+ (3,18): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (3,27): 49152, 32768, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (4,18): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (4,27): 32768, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (5,18): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (5,28): 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (6,18): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (6,29): 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (7,18): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (7,31): 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLong8.ddl b/tools/testfiles/pbits/tpbitsUnsignedLong8.ddl
new file mode 100644
index 0000000..17b896c
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLong8.ddl
@@ -0,0 +1,96 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU32BITS" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=8
+ DATA {
+ (0,0): 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,17): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,18): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,18): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,19): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,20): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,20): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,21): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=8 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240,
+ (0,13): 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224,
+ (1,13): 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192,
+ (2,13): 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0,
+ (3,14): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0,
+ (4,14): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0,
+ (5,15): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0,
+ (6,16): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0,
+ (7,16): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=16 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (0,13): 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0,
+ (0,28): 0, 0, 0, 0,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (1,13): 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0,
+ (1,28): 0, 0, 0, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (2,13): 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0,
+ (2,29): 0, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (3,13): 255, 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,30): 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (4,13): 254, 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,30): 0, 0,
+ (5,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254,
+ (5,13): 252, 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,31): 0,
+ (6,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252,
+ (6,13): 248, 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248,
+ (7,13): 240, 224, 192, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=24 LENGTH=8
+ DATA {
+ (0,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (0,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254,
+ (0,26): 252, 248, 240, 224, 192, 128,
+ (1,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (1,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252,
+ (1,26): 248, 240, 224, 192, 128, 0,
+ (2,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (2,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248,
+ (2,26): 240, 224, 192, 128, 0, 0,
+ (3,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (3,13): 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240,
+ (3,26): 224, 192, 128, 0, 0, 0,
+ (4,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (4,13): 255, 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224,
+ (4,26): 192, 128, 0, 0, 0, 0,
+ (5,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (5,13): 255, 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192,
+ (5,26): 128, 0, 0, 0, 0, 0,
+ (6,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (6,13): 255, 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128,
+ (6,26): 0, 0, 0, 0, 0, 0,
+ (7,0): 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255,
+ (7,13): 255, 255, 255, 255, 255, 254, 252, 248, 240, 224, 192, 128, 0, 0,
+ (7,27): 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl
new file mode 100644
index 0000000..1cd9a6c
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLongLong.ddl
@@ -0,0 +1,68 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=2
+ DATA {
+ (0,0): 3, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=58 LENGTH=6
+ DATA {
+ (0,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (0,49): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32,
+ (1,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (1,49): 63, 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0,
+ (2,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (2,49): 63, 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0,
+ (3,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (3,49): 63, 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0,
+ (4,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (4,49): 63, 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0,
+ (5,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (5,49): 63, 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0,
+ (6,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (6,49): 63, 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0,
+ (7,0): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,17): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,33): 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63,
+ (7,49): 63, 63, 63, 62, 60, 56, 48, 32, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl
new file mode 100644
index 0000000..f8b0189
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLongLong16.ddl
@@ -0,0 +1,196 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=16
+ DATA {
+ (0,0): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (0,9): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (0,22): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (1,9): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,23): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,45): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (2,9): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,25): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,47): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (3,9): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,26): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,48): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (4,9): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,27): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (5,9): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,29): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,51): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (6,9): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,30): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,52): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (7,10): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,32): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,54): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=16 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (0,18): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (0,27): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,42): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532,
+ (1,18): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (1,27): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (2,18): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (2,27): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,45): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520,
+ (3,18): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (3,27): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,46): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (4,18): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (4,27): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,48): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (5,18): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (5,28): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,50): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (6,18): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (6,29): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,51): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (7,18): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (7,31): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,53): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=32 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,27): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (0,36): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (0,45): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,63): 0,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,27): 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520,
+ (1,36): 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344,
+ (1,45): 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,27): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (2,36): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (2,45): 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,27): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (3,36): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (3,46): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,27): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (4,36): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (4,47): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,27): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (5,36): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (5,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,27): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (6,36): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,50): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (7,27): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (7,36): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,51): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=48 LENGTH=16
+ DATA {
+ (0,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (0,45): 65535, 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504,
+ (0,54): 65472, 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152,
+ (0,63): 32768,
+ (1,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (1,45): 65535, 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472,
+ (1,54): 65408, 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0,
+ (2,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (2,45): 65535, 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408,
+ (2,54): 65280, 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0,
+ (3,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (3,45): 65535, 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280,
+ (3,54): 65024, 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0,
+ (4,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (4,45): 65534, 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024,
+ (4,54): 64512, 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0,
+ (5,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (5,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534,
+ (5,45): 65532, 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512,
+ (5,54): 63488, 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0,
+ (6,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (6,36): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532,
+ (6,45): 65528, 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488,
+ (6,54): 61440, 57344, 49152, 32768, 0, 0, 0, 0, 0, 0,
+ (7,0): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,9): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,18): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,27): 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535, 65535,
+ (7,36): 65535, 65535, 65535, 65535, 65535, 65535, 65534, 65532, 65528,
+ (7,45): 65520, 65504, 65472, 65408, 65280, 65024, 64512, 63488, 61440,
+ (7,54): 57344, 49152, 32768, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl
new file mode 100644
index 0000000..befaf5b
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLongLong32.ddl
@@ -0,0 +1,175 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=32
+ DATA {
+ (0,0): 4294967295, 4294967294, 4294967292, 4294967288, 4294967280,
+ (0,5): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (0,10): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (0,15): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (0,20): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (0,25): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (0,30): 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (0,46): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,0): 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ (1,5): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (1,10): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (1,15): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (1,20): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (1,25): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (1,30): 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (1,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,0): 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ (2,5): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (2,10): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (2,15): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (2,20): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (2,25): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (2,32): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (2,54): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,0): 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ (3,5): 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ (3,10): 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ (3,15): 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ (3,20): 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ (3,25): 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ (3,35): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (3,57): 0, 0, 0, 0, 0, 0, 0,
+ (4,0): 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ (4,5): 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ (4,10): 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ (4,15): 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ (4,20): 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ (4,25): 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,38): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (4,60): 0, 0, 0, 0,
+ (5,0): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (5,5): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (5,10): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (5,15): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (5,20): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (5,25): 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,41): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (5,63): 0,
+ (6,0): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (6,5): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (6,10): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (6,15): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (6,20): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (6,25): 2147483648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (6,44): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,0): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (7,5): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (7,10): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (7,15): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (7,20): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (7,27): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ (7,49): 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+ PACKED_BITS OFFSET=32 LENGTH=32
+ DATA {
+ (0,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (0,30): 4294967295, 4294967295, 4294967295, 4294967294, 4294967292,
+ (0,35): 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ (0,40): 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ (0,45): 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ (0,50): 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ (0,55): 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ (0,60): 4026531840, 3758096384, 3221225472, 2147483648,
+ (1,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (1,30): 4294967295, 4294967295, 4294967294, 4294967292, 4294967288,
+ (1,35): 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ (1,40): 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ (1,45): 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ (1,50): 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ (1,55): 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ (1,60): 3758096384, 3221225472, 2147483648, 0,
+ (2,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (2,30): 4294967295, 4294967294, 4294967292, 4294967288, 4294967280,
+ (2,35): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (2,40): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (2,45): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (2,50): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (2,55): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (2,60): 3221225472, 2147483648, 0, 0,
+ (3,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (3,30): 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ (3,35): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (3,40): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (3,45): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (3,50): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (3,55): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (3,60): 2147483648, 0, 0, 0,
+ (4,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (4,25): 4294967295, 4294967295, 4294967295, 4294967295, 4294967294,
+ (4,30): 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ (4,35): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (4,40): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (4,45): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (4,50): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (4,55): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (4,62): 0, 0,
+ (5,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (5,25): 4294967295, 4294967295, 4294967295, 4294967294, 4294967292,
+ (5,30): 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ (5,35): 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ (5,40): 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ (5,45): 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ (5,50): 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ (5,55): 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ (6,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (6,25): 4294967295, 4294967295, 4294967294, 4294967292, 4294967288,
+ (6,30): 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ (6,35): 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ (6,40): 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ (6,45): 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ (6,50): 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ (6,55): 3758096384, 3221225472, 2147483648, 0, 0, 0, 0, 0, 0,
+ (7,0): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,5): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,10): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,15): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,20): 4294967295, 4294967295, 4294967295, 4294967295, 4294967295,
+ (7,25): 4294967295, 4294967294, 4294967292, 4294967288, 4294967280,
+ (7,30): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (7,35): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (7,40): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (7,45): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (7,50): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (7,55): 3221225472, 2147483648, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl
new file mode 100644
index 0000000..27c8879
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole.ddl
@@ -0,0 +1,176 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=64
+ DATA {
+ (0,0): 18446744073709551615, 18446744073709551614, 18446744073709551612,
+ (0,3): 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ (0,6): 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ (0,9): 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ (0,12): 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ (0,15): 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ (0,18): 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ (0,21): 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ (0,24): 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ (0,27): 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ (0,30): 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ (0,33): 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ (0,36): 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ (0,39): 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ (0,42): 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ (0,45): 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ (0,48): 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ (0,51): 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ (0,54): 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ (0,57): 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ (0,60): 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ (0,63): 9223372036854775808,
+ (1,0): 18446744073709551614, 18446744073709551612, 18446744073709551608,
+ (1,3): 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ (1,6): 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ (1,9): 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ (1,12): 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ (1,15): 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ (1,18): 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ (1,21): 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ (1,24): 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ (1,27): 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ (1,30): 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ (1,33): 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ (1,36): 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ (1,39): 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ (1,42): 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ (1,45): 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ (1,48): 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ (1,51): 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ (1,54): 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ (1,57): 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ (1,60): 16140901064495857664, 13835058055282163712, 9223372036854775808,
+ (1,63): 0,
+ (2,0): 18446744073709551612, 18446744073709551608, 18446744073709551600,
+ (2,3): 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ (2,6): 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ (2,9): 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ (2,12): 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ (2,15): 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ (2,18): 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ (2,21): 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ (2,24): 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ (2,27): 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ (2,30): 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ (2,33): 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ (2,36): 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ (2,39): 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ (2,42): 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ (2,45): 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ (2,48): 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ (2,51): 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ (2,54): 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ (2,57): 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ (2,60): 13835058055282163712, 9223372036854775808, 0, 0,
+ (3,0): 18446744073709551608, 18446744073709551600, 18446744073709551584,
+ (3,3): 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ (3,6): 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ (3,9): 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ (3,12): 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ (3,15): 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ (3,18): 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ (3,21): 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ (3,24): 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ (3,27): 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ (3,30): 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ (3,33): 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ (3,36): 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ (3,39): 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ (3,42): 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ (3,45): 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ (3,48): 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ (3,51): 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ (3,54): 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ (3,57): 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ (3,60): 9223372036854775808, 0, 0, 0,
+ (4,0): 18446744073709551600, 18446744073709551584, 18446744073709551552,
+ (4,3): 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ (4,6): 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ (4,9): 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ (4,12): 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ (4,15): 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ (4,18): 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ (4,21): 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ (4,24): 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ (4,27): 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ (4,30): 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ (4,33): 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ (4,36): 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ (4,39): 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ (4,42): 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ (4,45): 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ (4,48): 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ (4,51): 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ (4,54): 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ (4,57): 16140901064495857664, 13835058055282163712, 9223372036854775808,
+ (4,60): 0, 0, 0, 0,
+ (5,0): 18446744073709551584, 18446744073709551552, 18446744073709551488,
+ (5,3): 18446744073709551360, 18446744073709551104, 18446744073709550592,
+ (5,6): 18446744073709549568, 18446744073709547520, 18446744073709543424,
+ (5,9): 18446744073709535232, 18446744073709518848, 18446744073709486080,
+ (5,12): 18446744073709420544, 18446744073709289472, 18446744073709027328,
+ (5,15): 18446744073708503040, 18446744073707454464, 18446744073705357312,
+ (5,18): 18446744073701163008, 18446744073692774400, 18446744073675997184,
+ (5,21): 18446744073642442752, 18446744073575333888, 18446744073441116160,
+ (5,24): 18446744073172680704, 18446744072635809792, 18446744071562067968,
+ (5,27): 18446744069414584320, 18446744065119617024, 18446744056529682432,
+ (5,30): 18446744039349813248, 18446744004990074880, 18446743936270598144,
+ (5,33): 18446743798831644672, 18446743523953737728, 18446742974197923840,
+ (5,36): 18446741874686296064, 18446739675663040512, 18446735277616529408,
+ (5,39): 18446726481523507200, 18446708889337462784, 18446673704965373952,
+ (5,42): 18446603336221196288, 18446462598732840960, 18446181123756130304,
+ (5,45): 18445618173802708992, 18444492273895866368, 18442240474082181120,
+ (5,48): 18437736874454810624, 18428729675200069632, 18410715276690587648,
+ (5,51): 18374686479671623680, 18302628885633695744, 18158513697557839872,
+ (5,54): 17870283321406128128, 17293822569102704640, 16140901064495857664,
+ (5,57): 13835058055282163712, 9223372036854775808, 0, 0, 0, 0, 0,
+ (6,0): 18446744073709551552, 18446744073709551488, 18446744073709551360,
+ (6,3): 18446744073709551104, 18446744073709550592, 18446744073709549568,
+ (6,6): 18446744073709547520, 18446744073709543424, 18446744073709535232,
+ (6,9): 18446744073709518848, 18446744073709486080, 18446744073709420544,
+ (6,12): 18446744073709289472, 18446744073709027328, 18446744073708503040,
+ (6,15): 18446744073707454464, 18446744073705357312, 18446744073701163008,
+ (6,18): 18446744073692774400, 18446744073675997184, 18446744073642442752,
+ (6,21): 18446744073575333888, 18446744073441116160, 18446744073172680704,
+ (6,24): 18446744072635809792, 18446744071562067968, 18446744069414584320,
+ (6,27): 18446744065119617024, 18446744056529682432, 18446744039349813248,
+ (6,30): 18446744004990074880, 18446743936270598144, 18446743798831644672,
+ (6,33): 18446743523953737728, 18446742974197923840, 18446741874686296064,
+ (6,36): 18446739675663040512, 18446735277616529408, 18446726481523507200,
+ (6,39): 18446708889337462784, 18446673704965373952, 18446603336221196288,
+ (6,42): 18446462598732840960, 18446181123756130304, 18445618173802708992,
+ (6,45): 18444492273895866368, 18442240474082181120, 18437736874454810624,
+ (6,48): 18428729675200069632, 18410715276690587648, 18374686479671623680,
+ (6,51): 18302628885633695744, 18158513697557839872, 17870283321406128128,
+ (6,54): 17293822569102704640, 16140901064495857664, 13835058055282163712,
+ (6,57): 9223372036854775808, 0, 0, 0, 0, 0, 0,
+ (7,0): 18446744073709551488, 18446744073709551360, 18446744073709551104,
+ (7,3): 18446744073709550592, 18446744073709549568, 18446744073709547520,
+ (7,6): 18446744073709543424, 18446744073709535232, 18446744073709518848,
+ (7,9): 18446744073709486080, 18446744073709420544, 18446744073709289472,
+ (7,12): 18446744073709027328, 18446744073708503040, 18446744073707454464,
+ (7,15): 18446744073705357312, 18446744073701163008, 18446744073692774400,
+ (7,18): 18446744073675997184, 18446744073642442752, 18446744073575333888,
+ (7,21): 18446744073441116160, 18446744073172680704, 18446744072635809792,
+ (7,24): 18446744071562067968, 18446744069414584320, 18446744065119617024,
+ (7,27): 18446744056529682432, 18446744039349813248, 18446744004990074880,
+ (7,30): 18446743936270598144, 18446743798831644672, 18446743523953737728,
+ (7,33): 18446742974197923840, 18446741874686296064, 18446739675663040512,
+ (7,36): 18446735277616529408, 18446726481523507200, 18446708889337462784,
+ (7,39): 18446673704965373952, 18446603336221196288, 18446462598732840960,
+ (7,42): 18446181123756130304, 18445618173802708992, 18444492273895866368,
+ (7,45): 18442240474082181120, 18437736874454810624, 18428729675200069632,
+ (7,48): 18410715276690587648, 18374686479671623680, 18302628885633695744,
+ (7,51): 18158513697557839872, 17870283321406128128, 17293822569102704640,
+ (7,54): 16140901064495857664, 13835058055282163712, 9223372036854775808,
+ (7,57): 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl
new file mode 100644
index 0000000..0302105
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole1.ddl
@@ -0,0 +1,175 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=1 LENGTH=63
+ DATA {
+ (0,0): 9223372036854775807, 9223372036854775807, 9223372036854775806,
+ (0,3): 9223372036854775804, 9223372036854775800, 9223372036854775792,
+ (0,6): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (0,9): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (0,12): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (0,15): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (0,18): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (0,21): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (0,24): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (0,27): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (0,30): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (0,33): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (0,36): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (0,39): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (0,42): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (0,45): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (0,48): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (0,51): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (0,54): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (0,57): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (0,60): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (0,63): 4611686018427387904,
+ (1,0): 9223372036854775807, 9223372036854775806, 9223372036854775804,
+ (1,3): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (1,6): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (1,9): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (1,12): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (1,15): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (1,18): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (1,21): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (1,24): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (1,27): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (1,30): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (1,33): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (1,36): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (1,39): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (1,42): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (1,45): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (1,48): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (1,51): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (1,54): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (1,57): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (1,60): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (2,0): 9223372036854775806, 9223372036854775804, 9223372036854775800,
+ (2,3): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (2,6): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (2,9): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (2,12): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (2,15): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (2,18): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (2,21): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (2,24): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (2,27): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (2,30): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (2,33): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (2,36): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (2,39): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (2,42): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (2,45): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (2,48): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (2,51): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (2,54): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (2,57): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (2,60): 6917529027641081856, 4611686018427387904, 0, 0,
+ (3,0): 9223372036854775804, 9223372036854775800, 9223372036854775792,
+ (3,3): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (3,6): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (3,9): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (3,12): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (3,15): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (3,18): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (3,21): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (3,24): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (3,27): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (3,30): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (3,33): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (3,36): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (3,39): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (3,42): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (3,45): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (3,48): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (3,51): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (3,54): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (3,57): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (3,60): 4611686018427387904, 0, 0, 0,
+ (4,0): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (4,3): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (4,6): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (4,9): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (4,12): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (4,15): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (4,18): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (4,21): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (4,24): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (4,27): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (4,30): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (4,33): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (4,36): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (4,39): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (4,42): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (4,45): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (4,48): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (4,51): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (4,54): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (4,57): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (4,61): 0, 0, 0,
+ (5,0): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (5,3): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (5,6): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (5,9): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (5,12): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (5,15): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (5,18): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (5,21): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (5,24): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (5,27): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (5,30): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (5,33): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (5,36): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (5,39): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (5,42): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (5,45): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (5,48): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (5,51): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (5,54): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (5,57): 6917529027641081856, 4611686018427387904, 0, 0, 0, 0, 0,
+ (6,0): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (6,3): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (6,6): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (6,9): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (6,12): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (6,15): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (6,18): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (6,21): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (6,24): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (6,27): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (6,30): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (6,33): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (6,36): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (6,39): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (6,42): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (6,45): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (6,48): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (6,51): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (6,54): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (6,57): 4611686018427387904, 0, 0, 0, 0, 0, 0,
+ (7,0): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (7,3): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (7,6): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (7,9): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (7,12): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (7,15): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (7,18): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (7,21): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (7,24): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (7,27): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (7,30): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (7,33): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (7,36): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (7,39): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (7,42): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (7,45): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (7,48): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (7,51): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (7,54): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (7,58): 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl
new file mode 100644
index 0000000..6a9b503
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLongLongWhole63.ddl
@@ -0,0 +1,172 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU64BITS" {
+ DATATYPE H5T_STD_U64LE
+ DATASPACE SIMPLE { ( 8, 64 ) / ( 8, 64 ) }
+ PACKED_BITS OFFSET=0 LENGTH=63
+ DATA {
+ (0,0): 9223372036854775807, 9223372036854775806, 9223372036854775804,
+ (0,3): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (0,6): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (0,9): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (0,12): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (0,15): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (0,18): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (0,21): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (0,24): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (0,27): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (0,30): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (0,33): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (0,36): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (0,39): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (0,42): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (0,45): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (0,48): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (0,51): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (0,54): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (0,57): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (0,60): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (1,0): 9223372036854775806, 9223372036854775804, 9223372036854775800,
+ (1,3): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (1,6): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (1,9): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (1,12): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (1,15): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (1,18): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (1,21): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (1,24): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (1,27): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (1,30): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (1,33): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (1,36): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (1,39): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (1,42): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (1,45): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (1,48): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (1,51): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (1,54): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (1,57): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (1,60): 6917529027641081856, 4611686018427387904, 0, 0,
+ (2,0): 9223372036854775804, 9223372036854775800, 9223372036854775792,
+ (2,3): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (2,6): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (2,9): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (2,12): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (2,15): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (2,18): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (2,21): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (2,24): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (2,27): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (2,30): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (2,33): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (2,36): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (2,39): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (2,42): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (2,45): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (2,48): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (2,51): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (2,54): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (2,57): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (2,60): 4611686018427387904, 0, 0, 0,
+ (3,0): 9223372036854775800, 9223372036854775792, 9223372036854775776,
+ (3,3): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (3,6): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (3,9): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (3,12): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (3,15): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (3,18): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (3,21): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (3,24): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (3,27): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (3,30): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (3,33): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (3,36): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (3,39): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (3,42): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (3,45): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (3,48): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (3,51): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (3,54): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (3,57): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (3,61): 0, 0, 0,
+ (4,0): 9223372036854775792, 9223372036854775776, 9223372036854775744,
+ (4,3): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (4,6): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (4,9): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (4,12): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (4,15): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (4,18): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (4,21): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (4,24): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (4,27): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (4,30): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (4,33): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (4,36): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (4,39): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (4,42): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (4,45): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (4,48): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (4,51): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (4,54): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (4,57): 6917529027641081856, 4611686018427387904, 0, 0, 0, 0, 0,
+ (5,0): 9223372036854775776, 9223372036854775744, 9223372036854775680,
+ (5,3): 9223372036854775552, 9223372036854775296, 9223372036854774784,
+ (5,6): 9223372036854773760, 9223372036854771712, 9223372036854767616,
+ (5,9): 9223372036854759424, 9223372036854743040, 9223372036854710272,
+ (5,12): 9223372036854644736, 9223372036854513664, 9223372036854251520,
+ (5,15): 9223372036853727232, 9223372036852678656, 9223372036850581504,
+ (5,18): 9223372036846387200, 9223372036837998592, 9223372036821221376,
+ (5,21): 9223372036787666944, 9223372036720558080, 9223372036586340352,
+ (5,24): 9223372036317904896, 9223372035781033984, 9223372034707292160,
+ (5,27): 9223372032559808512, 9223372028264841216, 9223372019674906624,
+ (5,30): 9223372002495037440, 9223371968135299072, 9223371899415822336,
+ (5,33): 9223371761976868864, 9223371487098961920, 9223370937343148032,
+ (5,36): 9223369837831520256, 9223367638808264704, 9223363240761753600,
+ (5,39): 9223354444668731392, 9223336852482686976, 9223301668110598144,
+ (5,42): 9223231299366420480, 9223090561878065152, 9222809086901354496,
+ (5,45): 9222246136947933184, 9221120237041090560, 9218868437227405312,
+ (5,48): 9214364837600034816, 9205357638345293824, 9187343239835811840,
+ (5,51): 9151314442816847872, 9079256848778919936, 8935141660703064064,
+ (5,54): 8646911284551352320, 8070450532247928832, 6917529027641081856,
+ (5,57): 4611686018427387904, 0, 0, 0, 0, 0, 0,
+ (6,0): 9223372036854775744, 9223372036854775680, 9223372036854775552,
+ (6,3): 9223372036854775296, 9223372036854774784, 9223372036854773760,
+ (6,6): 9223372036854771712, 9223372036854767616, 9223372036854759424,
+ (6,9): 9223372036854743040, 9223372036854710272, 9223372036854644736,
+ (6,12): 9223372036854513664, 9223372036854251520, 9223372036853727232,
+ (6,15): 9223372036852678656, 9223372036850581504, 9223372036846387200,
+ (6,18): 9223372036837998592, 9223372036821221376, 9223372036787666944,
+ (6,21): 9223372036720558080, 9223372036586340352, 9223372036317904896,
+ (6,24): 9223372035781033984, 9223372034707292160, 9223372032559808512,
+ (6,27): 9223372028264841216, 9223372019674906624, 9223372002495037440,
+ (6,30): 9223371968135299072, 9223371899415822336, 9223371761976868864,
+ (6,33): 9223371487098961920, 9223370937343148032, 9223369837831520256,
+ (6,36): 9223367638808264704, 9223363240761753600, 9223354444668731392,
+ (6,39): 9223336852482686976, 9223301668110598144, 9223231299366420480,
+ (6,42): 9223090561878065152, 9222809086901354496, 9222246136947933184,
+ (6,45): 9221120237041090560, 9218868437227405312, 9214364837600034816,
+ (6,48): 9205357638345293824, 9187343239835811840, 9151314442816847872,
+ (6,51): 9079256848778919936, 8935141660703064064, 8646911284551352320,
+ (6,54): 8070450532247928832, 6917529027641081856, 4611686018427387904, 0,
+ (6,58): 0, 0, 0, 0, 0, 0,
+ (7,0): 9223372036854775680, 9223372036854775552, 9223372036854775296,
+ (7,3): 9223372036854774784, 9223372036854773760, 9223372036854771712,
+ (7,6): 9223372036854767616, 9223372036854759424, 9223372036854743040,
+ (7,9): 9223372036854710272, 9223372036854644736, 9223372036854513664,
+ (7,12): 9223372036854251520, 9223372036853727232, 9223372036852678656,
+ (7,15): 9223372036850581504, 9223372036846387200, 9223372036837998592,
+ (7,18): 9223372036821221376, 9223372036787666944, 9223372036720558080,
+ (7,21): 9223372036586340352, 9223372036317904896, 9223372035781033984,
+ (7,24): 9223372034707292160, 9223372032559808512, 9223372028264841216,
+ (7,27): 9223372019674906624, 9223372002495037440, 9223371968135299072,
+ (7,30): 9223371899415822336, 9223371761976868864, 9223371487098961920,
+ (7,33): 9223370937343148032, 9223369837831520256, 9223367638808264704,
+ (7,36): 9223363240761753600, 9223354444668731392, 9223336852482686976,
+ (7,39): 9223301668110598144, 9223231299366420480, 9223090561878065152,
+ (7,42): 9222809086901354496, 9222246136947933184, 9221120237041090560,
+ (7,45): 9218868437227405312, 9214364837600034816, 9205357638345293824,
+ (7,48): 9187343239835811840, 9151314442816847872, 9079256848778919936,
+ (7,51): 8935141660703064064, 8646911284551352320, 8070450532247928832,
+ (7,54): 6917529027641081856, 4611686018427387904, 0, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl
new file mode 100644
index 0000000..50ad02f
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedLongWhole.ddl
@@ -0,0 +1,59 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU32BITS" {
+ DATATYPE H5T_STD_U32LE
+ DATASPACE SIMPLE { ( 8, 32 ) / ( 8, 32 ) }
+ PACKED_BITS OFFSET=0 LENGTH=32
+ DATA {
+ (0,0): 4294967295, 4294967294, 4294967292, 4294967288, 4294967280,
+ (0,5): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (0,10): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (0,15): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (0,20): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (0,25): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (0,30): 3221225472, 2147483648,
+ (1,0): 4294967294, 4294967292, 4294967288, 4294967280, 4294967264,
+ (1,5): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (1,10): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (1,15): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (1,20): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (1,25): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (1,30): 2147483648, 0,
+ (2,0): 4294967292, 4294967288, 4294967280, 4294967264, 4294967232,
+ (2,5): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (2,10): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (2,15): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (2,20): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (2,25): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (3,0): 4294967288, 4294967280, 4294967264, 4294967232, 4294967168,
+ (3,5): 4294967040, 4294966784, 4294966272, 4294965248, 4294963200,
+ (3,10): 4294959104, 4294950912, 4294934528, 4294901760, 4294836224,
+ (3,15): 4294705152, 4294443008, 4293918720, 4292870144, 4290772992,
+ (3,20): 4286578688, 4278190080, 4261412864, 4227858432, 4160749568,
+ (3,25): 4026531840, 3758096384, 3221225472, 2147483648, 0, 0, 0,
+ (4,0): 4294967280, 4294967264, 4294967232, 4294967168, 4294967040,
+ (4,5): 4294966784, 4294966272, 4294965248, 4294963200, 4294959104,
+ (4,10): 4294950912, 4294934528, 4294901760, 4294836224, 4294705152,
+ (4,15): 4294443008, 4293918720, 4292870144, 4290772992, 4286578688,
+ (4,20): 4278190080, 4261412864, 4227858432, 4160749568, 4026531840,
+ (4,25): 3758096384, 3221225472, 2147483648, 0, 0, 0, 0,
+ (5,0): 4294967264, 4294967232, 4294967168, 4294967040, 4294966784,
+ (5,5): 4294966272, 4294965248, 4294963200, 4294959104, 4294950912,
+ (5,10): 4294934528, 4294901760, 4294836224, 4294705152, 4294443008,
+ (5,15): 4293918720, 4292870144, 4290772992, 4286578688, 4278190080,
+ (5,20): 4261412864, 4227858432, 4160749568, 4026531840, 3758096384,
+ (5,25): 3221225472, 2147483648, 0, 0, 0, 0, 0,
+ (6,0): 4294967232, 4294967168, 4294967040, 4294966784, 4294966272,
+ (6,5): 4294965248, 4294963200, 4294959104, 4294950912, 4294934528,
+ (6,10): 4294901760, 4294836224, 4294705152, 4294443008, 4293918720,
+ (6,15): 4292870144, 4290772992, 4286578688, 4278190080, 4261412864,
+ (6,20): 4227858432, 4160749568, 4026531840, 3758096384, 3221225472,
+ (6,25): 2147483648, 0, 0, 0, 0, 0, 0,
+ (7,0): 4294967168, 4294967040, 4294966784, 4294966272, 4294965248,
+ (7,5): 4294963200, 4294959104, 4294950912, 4294934528, 4294901760,
+ (7,10): 4294836224, 4294705152, 4294443008, 4293918720, 4292870144,
+ (7,15): 4290772992, 4286578688, 4278190080, 4261412864, 4227858432,
+ (7,20): 4160749568, 4026531840, 3758096384, 3221225472, 2147483648, 0, 0,
+ (7,27): 0, 0, 0, 0, 0
+ }
+}
+}
diff --git a/tools/testfiles/pbits/tpbitsUnsignedWhole.ddl b/tools/testfiles/pbits/tpbitsUnsignedWhole.ddl
new file mode 100644
index 0000000..7c9e736
--- /dev/null
+++ b/tools/testfiles/pbits/tpbitsUnsignedWhole.ddl
@@ -0,0 +1,17 @@
+HDF5 "packedbits.h5" {
+DATASET "/DU08BITS" {
+ DATATYPE H5T_STD_U8LE
+ DATASPACE SIMPLE { ( 8, 8 ) / ( 8, 8 ) }
+ PACKED_BITS OFFSET=0 LENGTH=8
+ DATA {
+ (0,0): 255, 254, 252, 248, 240, 224, 192, 128,
+ (1,0): 254, 252, 248, 240, 224, 192, 128, 0,
+ (2,0): 252, 248, 240, 224, 192, 128, 0, 0,
+ (3,0): 248, 240, 224, 192, 128, 0, 0, 0,
+ (4,0): 240, 224, 192, 128, 0, 0, 0, 0,
+ (5,0): 224, 192, 128, 0, 0, 0, 0, 0,
+ (6,0): 192, 128, 0, 0, 0, 0, 0, 0,
+ (7,0): 128, 0, 0, 0, 0, 0, 0, 0
+ }
+}
+}