def test_write_simple(self, properties): """write/read a file with a single item of 30 frames""" nframes = 30 f = np.random.randn(nframes, self.dim) t = np.linspace(0, 2, nframes) if properties: props = {'a': 0, 'b': 'b'} else: props = None h5f.simple_write( self.filename, 'group1', t, f, properties=props, item='item', mode='w') if properties: tr, fr, pr = h5f.read(self.filename, 'group1') assert list(pr.keys()) == ['item'] assert pr['item'] == props else: tr, fr = h5f.read(self.filename, 'group1') assert list(tr.keys()) == ['item'] assert list(fr.keys()) == ['item'] assert len(tr['item']) == 30 assert len(fr['item']) == 30 # assert tr['item'] == t assert (fr['item'] == f).all()
def test_write_simple(self): # write/read a file with a single item features_0 = np.random.randn(300, self.dim) times_0 = np.linspace(0, 2, 300) h5f.simple_write(self.filename, 'group1', times_0, features_0, 'item') t0, f0 = h5f.read(self.filename, 'group1') times_0_r, features_0_r = h5f.read(self.filename, 'group1') assert list(times_0_r.keys()) == ['item'] assert list(features_0_r.keys ()) == ['item'] assert all(times_0_r['item'] == times_0) assert (features_0_r['item'] == features_0).all()
def test_read_works(self): fname = self.file_v1 t1, f1 = h5f_1_0.read(fname, 'features') t2, f2 = h5f_1_1.read(fname, 'features') for tt1, tt2 in zip(t1,t2): assert tt1 == tt2 for ff1, ff2 in zip(f1,f2): assert ff1 == ff2
def test_write_simple(self): """write/read a file with a single item of 30 frames""" nframes = 30 f = np.random.randn(nframes, self.dim) t = np.linspace(0, 2, nframes) h5f.simple_write(self.filename, 'group1', t, f, 'item') tr, fr = h5f.read(self.filename, 'group1') assert list(tr.keys()) == ['item'] assert list(fr.keys()) == ['item'] assert len(tr['item']) == 30 assert len(fr['item']) == 30 # assert tr['item'] == t assert (fr['item'] == f).all()
def test_write_simple(self): """write/read a file with a single item of 30 frames""" nframes = 30 f = np.random.randn(nframes, self.dim) t = np.linspace(0, 2, nframes) h5f.simple_write(self.filename, 'group1', t, f, 'item') tr, fr = h5f.read(self.filename, 'group1') assert list(tr.keys()) == ['item'] assert list(fr.keys ()) == ['item'] assert len(tr['item']) == 30 assert len(fr['item']) == 30 #assert tr['item'] == t assert (fr['item'] == f).all()
def _test_wr(self, time_format): """Test retrieving times and files after a write/read operation.""" items, t_gold, feat = generate.full(self.nbitems, tformat=time_format) write(self.filename, self.group, items, t_gold, feat) t, _ = read(self.filename, self.group) assert len(t) == self.nbitems if time_format == 2: assert all([tt.shape[1] == time_format for tt in t.values()]) # build a dict from gold to compare with t d = {} for k, v in zip(items, t_gold): d[k] = v # compare the two dicts for dd, tt in zip(d, t): assert tt == dd
def test_append(self): """Append a new item to an existing dataset.""" i, t, f = generate.full(30, self.dim, 40, items_root='File') h5f.write(self.filename, 'group', i, t, f) # append new item to existing dataset features_added = np.zeros(shape=(1, self.dim)) times_added = np.linspace(0, 2, 1) h5f.write(self.filename, 'group', ['File_31'], [times_added], [features_added]) with pytest.raises(IOError) as err: h5f.write(self.filename, 'group', ['File_3'], [times_added], [features_added]) assert 'data is not appendable to the group' in str(err.value) # read it times_r, features_r = h5f.read(self.filename, 'group') assert set(times_r.keys()) == set(i+['File_31']) assert set(features_r.keys()) == set(i+['File_31']) assert all(times_r['File_31'] == times_added) assert (features_r['File_31'] == features_added).all()
def test_append(self): """Append a new item to an existing dataset.""" i, t, f = generate.full(30, self.dim, 40, items_root='File') h5f.write(self.filename, 'group', i, t, f) # append new item to existing dataset features_added = np.zeros(shape=(1, self.dim)) times_added = np.linspace(0, 2, 1) h5f.write(self.filename, 'group', ['File_31'], [times_added], [features_added]) with pytest.raises(IOError) as err: h5f.write(self.filename, 'group', ['File_3'], [times_added], [features_added]) assert 'data is not appendable to the group' in str(err.value) # read it times_r, features_r = h5f.read(self.filename, 'group') assert set(times_r.keys()) == set(i + ['File_31']) assert set(features_r.keys()) == set(i + ['File_31']) assert all(times_r['File_31'] == times_added) assert (features_r['File_31'] == features_added).all()
def test_raise_with_index(): with pytest.raises(NotImplementedError): h5f.read('test.h5', index=0)