예제 #1
0
 def testCreateArrayIntegerType(self):
     typeItem = {'class': 'H5T_INTEGER',
                 'base': 'H5T_STD_I64LE',
                 'dims': (3, 5) }
     dt = h5type.createDataType(typeItem)
     self.assertEqual(dt.name, 'void960')
     self.assertEqual(dt.kind, 'V')
예제 #2
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"
             }
         ]
     }
     dt = h5type.createDataType(typeItem)
     self.assertEqual(len(dt.fields), 2)
     self.assertTrue('a' in dt.fields.keys())
     self.assertTrue('b' in dt.fields.keys())
예제 #3
0
 def testCreateBaseUnicodeType(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_UTF8', 'length': 32 }
     try:
         dt = h5type.createDataType(typeItem)
         self.assertTrue(False)  # expected exception
     except TypeError:
         pass
예제 #4
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'
            }]
        }

        dt = h5type.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)
예제 #5
0
 def testCreateBaseStringType(self):
     typeItem = { 'class': 'H5T_STRING', 'charSet': 'H5T_CSET_ASCII', 'length': 6 }
     dt = h5type.createDataType(typeItem)
     if six.PY3:
         self.assertEqual(dt.name, 'bytes48')
     else:
         self.assertEqual(dt.name, 'string48')
     self.assertEqual(dt.kind, 'S')
예제 #6
0
 def testCreateVLenUTF8Type(self):
     typeItem = {
         'class': 'H5T_STRING',
         'charSet': 'H5T_CSET_UTF8',
         'length': 'H5T_VARIABLE'
     }
     dt = h5type.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')
     self.assertEqual(check_dtype(vlen=dt), str)
예제 #7
0
 def testCreateNullTermStringType(self):
     typeItem = {
         'class': 'H5T_STRING',
         'charSet': 'H5T_CSET_ASCII',
         'length': 6,
         'strPad': 'H5T_STR_NULLTERM'
     }
     dt = h5type.createDataType(typeItem)
     self.assertEqual(dt.name, 'bytes48')
     self.assertEqual(dt.kind, 'S')
예제 #8
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'}]
        }

        dt = h5type.createDataType(typeItem)
        self.assertEqual(dt.name, 'void80')
        self.assertEqual(dt.kind, 'V')
        self.assertEqual(len(dt.fields), 3)
예제 #9
0
    def testCreateBaseType(self):
        dt = h5type.createDataType('H5T_STD_U32BE')
        self.assertEqual(dt.name, 'uint32')
        self.assertEqual(dt.byteorder, '>')
        self.assertEqual(dt.kind, 'u')

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

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

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

        typeItem = { 'class': 'H5T_INTEGER', 'base': 'H5T_STD_I32BE' }
        dt = h5type.createDataType(typeItem)
        self.assertEqual(dt.name, 'int32')
        self.assertEqual(dt.kind, 'i')
예제 #10
0
 def testCreateOpaqueType(self):
     typeItem = {'class': 'H5T_OPAQUE', 'size': 200}
     dt = h5type.createDataType(typeItem)
     self.assertEqual(dt.name, 'void1600')
     self.assertEqual(dt.kind, 'V')
예제 #11
0
 def testCreateVLenDataType(self):
     typeItem = {'class': 'H5T_VLEN', 'base': 'H5T_STD_I32BE'}
     dt = h5type.createDataType(typeItem)
     self.assertEqual(dt.name, 'object')
     self.assertEqual(dt.kind, 'O')