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')
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())
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
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)
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')
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)
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')
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)
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')
def testCreateOpaqueType(self): typeItem = {'class': 'H5T_OPAQUE', 'size': 200} dt = h5type.createDataType(typeItem) self.assertEqual(dt.name, 'void1600') self.assertEqual(dt.kind, 'V')
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')