def test_rest(self): x = Lineage(np.random.random((10, 4)), names=["foo", "bar", "baz", "quux"]) y = x[["foo, bar", Lin.REST]] expected = np.c_[np.sum(x.X[:, [0, 1]], axis=1), np.sum(x.X[:, [2, 3]], axis=1)] assert y.shape == (10, 2) np.testing.assert_array_equal(y.X, expected) np.testing.assert_array_equal(y.names, ["bar or foo", "rest"]) np.testing.assert_array_equal( y.colors, [_compute_mean_color(x.colors[:2]), _compute_mean_color(x.colors[2:])], )
def update_entries(key): if key: res.append(self[rows, key].X.sum(1)) # item = (key, rows) if self._is_transposed else (rows, key) # res.append(self[item].X.sum(int(not self._is_transposed))) names.append(" or ".join(self.names[key])) colors.append(_compute_mean_color(self.colors[key]))
def test_row_subset(self): x = Lineage(np.random.random((10, 4)), names=["foo", "bar", "baz", "quux"]) y = x[:5, ["foo, bar"]] expected = np.sum(x.X[:5, [0, 1]], axis=1)[..., np.newaxis] assert y.shape == (5, 1) np.testing.assert_array_equal(y.X, expected) np.testing.assert_array_equal(y.names, ["bar or foo"]) np.testing.assert_array_equal(y.colors, [_compute_mean_color(x.colors[:2])])
def test_return_colors(self): x = pd.Series(["b", "c", "a", "d", "a"]).astype("category") expected = pd.Series( ["a or b", "c or d", "a or b", "c or d", "a or b"]).astype("category") res, colors = _process_series(x, keys=["b, a", "d, c"], colors=["red", "green", "blue", "white"]) assert isinstance(res, pd.Series) assert is_categorical_dtype(res) assert isinstance(colors, list) np.testing.assert_array_equal(res.values, expected.values) assert set(colors) == { _compute_mean_color(["red", "green"]), _compute_mean_color(["blue", "white"]), }
def test_no_mixing(self): x = Lineage(np.random.random((10, 4)), names=["foo", "bar", "baz", "quux"]) y = x[["foo", Lin.REST]] expected = np.c_[np.sum(x.X[:, [0]], axis=1), np.sum(x.X[:, [1, 2, 3]], axis=1)] assert y.shape == (10, 2) np.testing.assert_array_equal(y.X, expected) np.testing.assert_array_equal(y.names, ["foo", "rest"]) np.testing.assert_array_equal( y.colors, [x.colors[0], _compute_mean_color(x.colors[1:])] )