def test_compound_simple(self): """ Compound types with elemental subtypes """ dt = np.dtype( [('a','i'), ('b','f'), ('c','|S10')] ) # Implicit selection of all fields -> all fields out, format = sel.read_dtypes(dt, ()) self.assertEqual(out, format) self.assertEqual(out, dt) # Explicit selection of fields -> requested fields out, format = sel.read_dtypes(dt, ('a','b')) self.assertEqual(out, format) self.assertEqual(out, np.dtype( [('a','i'), ('b','f')] )) # Explicit selection of exactly one field -> no fields out, format = sel.read_dtypes(dt, ('a',)) self.assertEqual(out, np.dtype('i')) self.assertEqual(format, np.dtype( [('a','i')] ))
def test_objects(self): """ Metadata is stripped from object types """ dt = h5py.special_dtype(ref=h5py.Reference) out, format = sel.read_dtypes(dt, ()) self.assertEqual(out, format) self.assertEqual(format, dt) self.assertTrue(out.fields is None) self.assertTrue(format.fields is not None)
def test_compound_objects(self): """ Metadata is stripped from output in compound types""" reftype = h5py.special_dtype(ref=h5py.Reference) dt = np.dtype( [('a','i'), ('b',reftype), ('c','|S10')] ) out, format = sel.read_dtypes(dt, ()) self.assertEqual(out, format) self.assertEqual(format, dt) self.assertTrue(all(x[0].fields is None for x in out.fields.values() if x[0].kind == 'O'))
def test_compound_simple(self): """ Compound types with elemental subtypes """ dt = np.dtype([('a', 'i'), ('b', 'f'), ('c', '|S10')]) # Implicit selection of all fields -> all fields out, format = sel2.read_dtypes(dt, ()) self.assertEqual(out, format) self.assertEqual(out, dt) # Explicit selection of fields -> requested fields out, format = sel2.read_dtypes(dt, ('a', 'b')) self.assertEqual(out, format) self.assertEqual(out, np.dtype([('a', 'i'), ('b', 'f')])) # Explicit selection of exactly one field -> no fields out, format = sel2.read_dtypes(dt, ('a', )) self.assertEqual(out, np.dtype('i')) self.assertEqual(format, np.dtype([('a', 'i')])) # Field does not apear in named typed with self.assertRaises(ValueError): out, format = sel2.read_dtypes(dt, ('j', 'k'))
def test_simple_fieldexc(self): """ Field names for non-field types raises ValueError """ dt = np.dtype('i') with self.assertRaises(ValueError): out, format = sel.read_dtypes(dt, ('a',))
def test_simple(self): """ Non-compound types are handled appropriately """ dt = np.dtype('i') out, format = sel.read_dtypes(dt, ()) self.assertEqual(out, format) self.assertEqual(out, np.dtype('i'))