Example #1
0
 def testCreateArrayIntegerType(self):
     typeItem = {'class': 'H5T_INTEGER',
                 'base': 'H5T_STD_I64LE',
                 'dims': (3, 5) }
         
     try:
         hdf5dtype.createDataType(typeItem)
         self.assertTrue(False) # expected exception - dims used with none array type
     except TypeError:
         pass # should get exception
Example #2
0
 def testCreateArrayIntegerType(self):
     typeItem = {'class': 'H5T_INTEGER',
                 'base': 'H5T_STD_I64LE',
                 'dims': (3, 5) }
         
     try:
         hdf5dtype.createDataType(typeItem)
         self.assertTrue(False) # expected exception - dims used with none array type
     except TypeError:
         pass # should get exception
 def testCreateCompoundType(self):
     typeItem = {
         'class':
         'H5T_COMPOUND',
         'fields': [{
             'name': 'temp',
             'type': 'H5T_IEEE_F32LE'
         }, {
             'name': 'pressure',
             'type': 'H5T_IEEE_F32LE'
         }, {
             'name': 'location',
             'type': {
                 'length': 'H5T_VARIABLE',
                 'charSet': 'H5T_CSET_ASCII',
                 'class': 'H5T_STRING',
                 'strPad': 'H5T_STR_NULLTERM'
             }
         }, {
             'name': 'wind',
             'type': 'H5T_STD_I16LE'
         }]
     }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void144')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(len(dt.fields), 4)
     dtLocation = dt[2]
     self.assertEqual(dtLocation.name, 'object')
     self.assertEqual(dtLocation.kind, 'O')
     self.assertEqual(check_dtype(vlen=dtLocation), bytes)
     self.assertEqual(typeSize, 'H5T_VARIABLE')
Example #4
0
 def testCreateCompoundArrayType(self):
     typeItem = {
         "class": "H5T_COMPOUND",
         "fields": [
             {
                 "type": {
                     "base": "H5T_STD_I8LE",
                     "class": "H5T_INTEGER"
                 },
                 "name": "a"
             },
             {
                 "type": {
                     "dims": [
                         10
                     ],
                     "base": {
                         "length": 1,
                         "charSet": "H5T_CSET_ASCII",
                         "class": "H5T_STRING",
                         "strPad": "H5T_STR_NULLPAD"
                     },
                 "class": "H5T_ARRAY"
                 },
             "name": "b"
             }
         ]
     }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)   
     self.assertEqual(len(dt.fields), 2)
     self.assertTrue('a' in dt.fields.keys())
     self.assertTrue('b' in dt.fields.keys())
     self.assertEqual(typeSize, 11)
    def testCreateEnumType(self):
        typeItem = {
            "class": "H5T_ENUM",
            "base": {
                "base": "H5T_STD_I16LE",
                "class": "H5T_INTEGER"
            },
            "mapping": {
                "GAS": 2,
                "LIQUID": 1,
                "PLASMA": 3,
                "SOLID": 0
            }
        }

        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeSize, 2)
        dt = hdf5dtype.createDataType(typeItem)
        self.assertEqual(dt.name, 'int16')
        self.assertEqual(dt.kind, 'i')
        mapping = check_dtype(enum=dt)
        self.assertTrue(isinstance(mapping, dict))
        self.assertEqual(mapping["SOLID"], 0)
        self.assertEqual(mapping["LIQUID"], 1)
        self.assertEqual(mapping["GAS"], 2)
        self.assertEqual(mapping["PLASMA"], 3)
Example #6
0
 def testCreateCompoundArrayType(self):
     typeItem = {
         "class": "H5T_COMPOUND",
         "fields": [
             {
                 "type": {
                     "base": "H5T_STD_I8LE",
                     "class": "H5T_INTEGER"
                 },
                 "name": "a"
             },
             {
                 "type": {
                     "dims": [
                         10
                     ],
                     "base": {
                         "length": 1,
                         "charSet": "H5T_CSET_ASCII",
                         "class": "H5T_STRING",
                         "strPad": "H5T_STR_NULLPAD"
                     },
                 "class": "H5T_ARRAY"
                 },
             "name": "b"
             }
         ]
     }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)   
     self.assertEqual(len(dt.fields), 2)
     self.assertTrue('a' in dt.fields.keys())
     self.assertTrue('b' in dt.fields.keys())
     self.assertEqual(typeSize, 11)
Example #7
0
 def testCreateOpaqueType(self):
     typeItem = {'class': 'H5T_OPAQUE', 'size': 200}
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void1600')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(typeSize, 200)
Example #8
0
 def testCreateBaseUnicodeType(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_UTF8', 'length': 32 }
     try:
         dt = hdf5dtype.createDataType(typeItem)
         self.assertTrue(False)  # expected exception
     except TypeError:
         pass
Example #9
0
 def testCreateVLenDataType(self):
     typeItem = {'class': 'H5T_VLEN', 'base': 'H5T_STD_I32BE'}
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')
     self.assertEqual(typeSize, 'H5T_VARIABLE')
Example #10
0
    def testCreateEnumType(self):
        typeItem = {
                "class": "H5T_ENUM",
                "base": {
                    "base": "H5T_STD_I16LE",
                    "class": "H5T_INTEGER"
                }, 
                "mapping": {
                    "GAS": 2,
                    "LIQUID": 1,
                    "PLASMA": 3,
                    "SOLID": 0
                }
            }

        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeSize, 2)
        dt = hdf5dtype.createDataType(typeItem)
        self.assertEqual(dt.name, 'int16')
        self.assertEqual(dt.kind, 'i')    
        mapping = check_dtype(enum=dt)
        self.assertTrue(isinstance(mapping, dict))
        self.assertEqual(mapping["SOLID"], 0)
        self.assertEqual(mapping["LIQUID"], 1)
        self.assertEqual(mapping["GAS"], 2)
        self.assertEqual(mapping["PLASMA"], 3)
Example #11
0
 def testCreateOpaqueType(self):
     typeItem = {'class': 'H5T_OPAQUE', 'size': 200}
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void1600')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(typeSize, 200)
Example #12
0
 def testCreateVLenDataType(self):
     typeItem = {'class': 'H5T_VLEN', 'base': 'H5T_STD_I32BE'}
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')
     self.assertEqual(typeSize, 'H5T_VARIABLE')
Example #13
0
 def testCreateBaseUnicodeType(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_UTF8', 'length': 32 }
     try:
         dt = hdf5dtype.createDataType(typeItem)
         self.assertTrue(False)  # expected exception
     except TypeError:
         pass
Example #14
0
 def testCreateVLenUTF8Type(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_UTF8', 'length': 'H5T_VARIABLE' }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')
     self.assertEqual(check_dtype(vlen=dt), six.text_type)
     self.assertEqual(typeSize, 'H5T_VARIABLE')
Example #15
0
 def testCreateVLenUTF8Type(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_UTF8', 'length': 'H5T_VARIABLE' }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')
     self.assertEqual(check_dtype(vlen=dt), six.text_type)
     self.assertEqual(typeSize, 'H5T_VARIABLE')
Example #16
0
 def testCreateArrayType(self):
     typeItem = {'class': 'H5T_ARRAY',
                 'base': 'H5T_STD_I64LE',
                 'dims': (3, 5) }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void960')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(typeSize, 120)
Example #17
0
 def testCreateArrayType(self):
     typeItem = {'class': 'H5T_ARRAY',
                 'base': 'H5T_STD_I64LE',
                 'dims': (3, 5) }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void960')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(typeSize, 120)
Example #18
0
 def testCreateVlenObjRefType(self):
     typeItem = {'class': 'H5T_VLEN', 
                 'base': {'class': 'H5T_REFERENCE', 'base': 'H5T_STD_REF_OBJ'} }
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')
     self.assertTrue(check_dtype(ref=dt) is None)
     dt_base = check_dtype(vlen=dt)
     self.assertTrue(dt_base is not None)
     self.assertTrue(check_dtype(ref=dt_base) is Reference)
Example #19
0
 def testCreateBaseStringType(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_ASCII', 'length': 6 }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     if six.PY3:
         self.assertEqual(dt.name, 'bytes48')
     else:
         self.assertEqual(dt.name, 'string48')
     self.assertEqual(dt.kind, 'S')
     self.assertEqual(typeSize, 6)
Example #20
0
 def testCreateBaseStringType(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_ASCII', 'length': 6 }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     if six.PY3:
         self.assertEqual(dt.name, 'bytes48')
     else:
         self.assertEqual(dt.name, 'string48')
     self.assertEqual(dt.kind, 'S')
     self.assertEqual(typeSize, 6)
Example #21
0
 def testCreateCompoundTypeUnicodeFields(self):
     typeItem = {
         'class': 'H5T_COMPOUND', 'fields':
             [{'name': u'temp',     'type': 'H5T_IEEE_F32LE'},
              {'name': u'pressure', 'type': 'H5T_IEEE_F32LE'},
              {'name': u'wind',     'type': 'H5T_STD_I16LE'}]
     }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)   
     self.assertEqual(dt.name, 'void80')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(len(dt.fields), 3)
     self.assertEqual(typeSize, 10)
Example #22
0
 def testCreateCompoundTypeUnicodeFields(self):
     typeItem = {
         'class': 'H5T_COMPOUND', 'fields':
             [{'name': u'temp',     'type': 'H5T_IEEE_F32LE'},
              {'name': u'pressure', 'type': 'H5T_IEEE_F32LE'},
              {'name': u'wind',     'type': 'H5T_STD_I16LE'}]
     }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)   
     self.assertEqual(dt.name, 'void80')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(len(dt.fields), 3)
     self.assertEqual(typeSize, 10)
 def testCreateVlenObjRefType(self):
     typeItem = {
         'class': 'H5T_VLEN',
         'base': {
             'class': 'H5T_REFERENCE',
             'base': 'H5T_STD_REF_OBJ'
         }
     }
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')
     self.assertTrue(check_dtype(ref=dt) is None)
     dt_base = check_dtype(vlen=dt)
     self.assertTrue(dt_base is not None)
     self.assertTrue(check_dtype(ref=dt_base) is Reference)
Example #24
0
    def testCreateBaseType(self):
        dt = hdf5dtype.createDataType('H5T_STD_U32BE')
        self.assertEqual(dt.name, 'uint32')
        self.assertEqual(dt.byteorder, '>')
        self.assertEqual(dt.kind, 'u')

        dt = hdf5dtype.createDataType('H5T_STD_I16LE')
        self.assertEqual(dt.name, 'int16')
        self.assertEqual(dt.kind, 'i')

        dt = hdf5dtype.createDataType('H5T_IEEE_F64LE')
        self.assertEqual(dt.name, 'float64')
        self.assertEqual(dt.kind, 'f')

        dt = hdf5dtype.createDataType('H5T_IEEE_F32LE')
        self.assertEqual(dt.name, 'float32')
        self.assertEqual(dt.kind, 'f')

        typeItem = { 'class': 'H5T_INTEGER', 'base': 'H5T_STD_I32BE' }
        typeSize = hdf5dtype.getItemSize(typeItem)
        dt = hdf5dtype.createDataType(typeItem)
        self.assertEqual(dt.name, 'int32')
        self.assertEqual(dt.kind, 'i')
        self.assertEqual(typeSize, 4)
Example #25
0
    def testCreateBaseType(self):
        dt = hdf5dtype.createDataType('H5T_STD_U32BE')
        self.assertEqual(dt.name, 'uint32')
        self.assertEqual(dt.byteorder, '>')
        self.assertEqual(dt.kind, 'u')

        dt = hdf5dtype.createDataType('H5T_STD_I16LE')
        self.assertEqual(dt.name, 'int16')
        self.assertEqual(dt.kind, 'i')

        dt = hdf5dtype.createDataType('H5T_IEEE_F64LE')
        self.assertEqual(dt.name, 'float64')
        self.assertEqual(dt.kind, 'f')

        dt = hdf5dtype.createDataType('H5T_IEEE_F32LE')
        self.assertEqual(dt.name, 'float32')
        self.assertEqual(dt.kind, 'f')

        typeItem = { 'class': 'H5T_INTEGER', 'base': 'H5T_STD_I32BE' }
        typeSize = hdf5dtype.getItemSize(typeItem)
        dt = hdf5dtype.createDataType(typeItem)
        self.assertEqual(dt.name, 'int32')
        self.assertEqual(dt.kind, 'i')
        self.assertEqual(typeSize, 4)
Example #26
0
    def testCreateBoolType(self):
        typeItem = {
                "class": "H5T_ENUM",
                "base": {
                    "base": "H5T_STD_I8LE",
                    "class": "H5T_INTEGER"
                }, 
                "mapping": {
                    "TRUE": 1,
                    "FALSE": 0
                }
            }

        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeSize, 1)
        dt = hdf5dtype.createDataType(typeItem)
        self.assertEqual(dt.name, 'bool')
        self.assertEqual(dt.kind, 'b')    
    def testCreateBoolType(self):
        typeItem = {
            "class": "H5T_ENUM",
            "base": {
                "base": "H5T_STD_I8LE",
                "class": "H5T_INTEGER"
            },
            "mapping": {
                "TRUE": 1,
                "FALSE": 0
            }
        }

        typeSize = hdf5dtype.getItemSize(typeItem)
        self.assertEqual(typeSize, 1)
        dt = hdf5dtype.createDataType(typeItem)
        self.assertEqual(dt.name, 'bool')
        self.assertEqual(dt.kind, 'b')
Example #28
0
 def testCreateCompoundOfCompoundType(self):
     typeItem = {'class': 'H5T_COMPOUND', 'fields': 
     [{'name': 'field1', 'type': {'class': 'H5T_COMPOUND', 'fields': 
     [{'name': 'x', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}, 
      {'name': 'y', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}]}}, 
      {'name': 'field2', 'type': {'class': 'H5T_COMPOUND', 'fields': 
      [{'name': 'a', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}, 
      {'name': 'b', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}, 
      {'name': 'c', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}]}}]}
     dt =  hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void160')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(len(dt.fields), 2)
     dt_field1 = dt[0]
     self.assertEqual(dt_field1.name, 'void64')
     self.assertEqual(dt_field1.kind, 'V')
     self.assertEqual(len(dt_field1.fields), 2)
     dt_field2 = dt[1]
     self.assertEqual(dt_field2.name, 'void96')
     self.assertEqual(dt_field2.kind, 'V')
     self.assertEqual(len(dt_field2.fields), 3)
Example #29
0
 def testCreateCompoundOfCompoundType(self):
     typeItem = {'class': 'H5T_COMPOUND', 'fields': 
     [{'name': 'field1', 'type': {'class': 'H5T_COMPOUND', 'fields': 
     [{'name': 'x', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}, 
      {'name': 'y', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}]}}, 
      {'name': 'field2', 'type': {'class': 'H5T_COMPOUND', 'fields': 
      [{'name': 'a', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}, 
      {'name': 'b', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}, 
      {'name': 'c', 'type': {'class': 'H5T_FLOAT', 'base': 'H5T_IEEE_F32LE'}}]}}]}
     dt =  hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void160')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(len(dt.fields), 2)
     dt_field1 = dt[0]
     self.assertEqual(dt_field1.name, 'void64')
     self.assertEqual(dt_field1.kind, 'V')
     self.assertEqual(len(dt_field1.fields), 2)
     dt_field2 = dt[1]
     self.assertEqual(dt_field2.name, 'void96')
     self.assertEqual(dt_field2.kind, 'V')
     self.assertEqual(len(dt_field2.fields), 3)
Example #30
0
 def testCreateCompoundType(self):
     typeItem = {
         'class': 'H5T_COMPOUND', 'fields':
             [{'name': 'temp',     'type': 'H5T_IEEE_F32LE'},
              {'name': 'pressure', 'type': 'H5T_IEEE_F32LE'},
              {'name': 'location', 'type': {
                  'length': 'H5T_VARIABLE',
                  'charSet': 'H5T_CSET_ASCII',
                  'class': 'H5T_STRING',
                  'strPad': 'H5T_STR_NULLTERM'}},
              {'name': 'wind',     'type': 'H5T_STD_I16LE'}]
     }
     typeSize = hdf5dtype.getItemSize(typeItem)
     dt = hdf5dtype.createDataType(typeItem)
     self.assertEqual(dt.name, 'void144')
     self.assertEqual(dt.kind, 'V')
     self.assertEqual(len(dt.fields), 4)
     dtLocation = dt[2]
     self.assertEqual(dtLocation.name, 'object')
     self.assertEqual(dtLocation.kind, 'O')
     self.assertEqual(check_dtype(vlen=dtLocation), bytes)
     self.assertEqual(typeSize, 'H5T_VARIABLE')