def test_equality(): t1 = generate.labels(10, tformat=2) l1 = Labels(t1) l2 = Labels(generate.labels(10, tformat=2)) l3 = Labels(t1) l3.name = 'newname' assert l1 == l1 assert l1 != l2 assert l1 != np.random.random((5, 2)) assert l1 != l3
def test_sort_1D(self): l = [np.array([i for i in range(9)])] Labels.check(l) l[0][[0, 1]] = l[0][[1, 0]] assert_raise(Labels.check, l, 'not sorted') l.append(np.array([i for i in range(9)])) assert_raise(Labels.check, l, 'not sorted') l[0][[1, 0]] = l[0][[0, 1]] Labels.check(l)
def test_sort_1D(self): list_1d = [np.array([i for i in range(9)])] Labels.check(list_1d) list_1d[0][[0, 1]] = list_1d[0][[1, 0]] assert_raise(Labels.check, list_1d, 'not sorted') list_1d.append(np.array([i for i in range(9)])) assert_raise(Labels.check, list_1d, 'not sorted') list_1d[0][[1, 0]] = list_1d[0][[0, 1]] Labels.check(list_1d)
def test_good(self): assert Labels.parse_dim(self.t1) == 1 assert Labels.parse_dim(self.t1*2) == 1 assert Labels.parse_dim(self.t2) == 2 # 2D with shape[1] != 2 Labels.parse_dim([randn(10, 3)]) == 2 Labels.parse_dim([randn(5, 1)]) Labels.parse_dim([randn(2, 1)])
def test_good(self): assert Labels.parse_dim(self.t1) == 1 assert Labels.parse_dim(self.t1 * 2) == 1 assert Labels.parse_dim(self.t2) == 2 # 2D with shape[1] != 2 Labels.parse_dim([randn(10, 3)]) == 2 Labels.parse_dim([randn(5, 1)]) Labels.parse_dim([randn(2, 1)])
def test_sorted_2D(self): # dont use generate.labels to ensure 2 elements. l = [ np.array([[0., 1.], [0.33333333, 1.33333333], [0.66666667, 1.66666667], [1., 2.]]), np.array([[0., 1.], [1., 2.]]) ] # sorted, pass Labels.check(l) # unsorted, fails l[0][[0, 1], :] = l[0][[1, 0], :] assert_raise(Labels.check, l, 'not sorted')
def test_appendable(self): t = Labels(generate.labels(5, tformat=1)) assert t.is_appendable_to(self.group) t = Labels(generate.labels(5, 12, tformat=1)) assert t.is_appendable_to(self.group) t = Labels(generate.labels(10, 1, tformat=2)) assert not t.is_appendable_to(self.group) t = Labels(generate.labels(5, 1, tformat=2)) assert not t.is_appendable_to(self.group) t = Labels(generate.labels(10, 1, tformat=2)) assert not t.is_appendable_to(self.group)
def test_sorted_2D(self): # dont use generate.labels to ensure 2 elements. list_2d = [ np.array([[0., 1.], [0.33333333, 1.33333333], [0.66666667, 1.66666667], [1., 2.]]), np.array([[0., 1.], [1., 2.]])] # sorted, pass Labels.check(list_2d) # unsorted, fails list_2d[0][[0, 1], :] = list_2d[0][[1, 0], :] assert_raise(Labels.check, list_2d, 'not sorted')
def full_dict(nitems, dim=2, max_frames=3, tformat=1, items_root='item'): """Return a data dictionary""" from h5features.items import Items from h5features.labels import Labels from h5features.features import Features data = full(nitems, dim, max_frames, tformat, items_root) return {'items': Items(data[0]), 'labels': Labels(data[1]), 'features': Features(data[2])}
def test_label_one_frame_2D(): from h5features.labels import Labels gold = np.array([[0, 1, 2]]) label = Labels([gold]) assert isinstance(label.data, list) assert len(label.data) == 1 test = label.data[0] assert isinstance(test, np.ndarray) assert test.ndim == gold.ndim assert test.shape == gold.shape assert (test == gold).all()
def test_side_effect(self): t = Labels(self.data) t2 = Labels(self.data) t.write_to(self.group) assert t == t2
def test_create(self): t1 = Labels(self.data) # we can't create an existing group with pytest.raises(RuntimeError) as err: t1.create_dataset(self.group, 10) assert 'create' in str(err.value)
def test_side_effect(self): t = Labels(self.data) t2 = Labels(self.data) t.create_dataset(self.group, per_chunk=100) t.write_to(self.group) assert t == t2
def test_2D_one_frame(): label = Labels([np.array([[0, 1, 2]])]) assert isinstance(label.data, list) assert isinstance(label.data[0], np.ndarray) assert label.data[0].ndim == 2
def test_init(self): assert Labels(self.data).dim == 2 assert Labels(self.data).data[0].shape[1] == 2