def test_GraphPlot_complex(c, s, a, b): da = pytest.importorskip("dask.array") gp = GraphPlot(s) x = da.random.random((2000, 2000), chunks=(1000, 1000)) y = ((x + x.T) - x.mean(axis=0)).persist() yield wait(y) gp.update() assert len(gp.layout.index) == len(gp.node_source.data["x"]) assert len(gp.layout.index) == len(s.tasks) z = (x - y).sum().persist() yield wait(z) gp.update() assert len(gp.layout.index) == len(gp.node_source.data["x"]) assert len(gp.layout.index) == len(s.tasks) del z yield gen.sleep(0.2) gp.update() assert len(gp.layout.index) == sum(v == "True" for v in gp.node_source.data["visible"]) assert len(gp.layout.index) == len(s.tasks) assert max(gp.layout.index.values()) < len(gp.node_source.data["visible"]) assert gp.layout.next_index == len(gp.node_source.data["visible"]) gp.update() assert set(gp.layout.index.values()) == set(range(len(gp.layout.index))) visible = gp.node_source.data["visible"] keys = list(map(tokey, flatten(y.__dask_keys__()))) assert all(visible[gp.layout.index[key]] == "True" for key in keys)
def test_GraphPlot_order(c, s, a, b): x = c.submit(inc, 1) y = c.submit(div, 1, 0) yield wait(y) gp = GraphPlot(s) gp.update() assert gp.node_source.data["state"][gp.layout.index[y.key]] == "erred"
def test_GraphPlot(c, s, a, b): gp = GraphPlot(s) futures = c.map(inc, range(5)) total = c.submit(sum, futures) yield total gp.update() assert set(map(len, gp.node_source.data.values())) == {6} assert set(map(len, gp.edge_source.data.values())) == {5} da = pytest.importorskip("dask.array") x = da.random.random((20, 20), chunks=(10, 10)).persist() y = (x + x.T) - x.mean(axis=0) y = y.persist() yield wait(y) gp.update() gp.update() yield c.compute((x + y).sum()) gp.update() future = c.submit(inc, 10) future2 = c.submit(inc, future) yield wait(future2) key = future.key del future, future2 while key in s.tasks: yield gen.sleep(0.01) assert "memory" in gp.node_source.data["state"] gp.update() gp.update() assert not all(x == "False" for x in gp.edge_source.data["visible"])
def test_GraphPlot_clear(c, s, a, b): gp = GraphPlot(s) futures = c.map(inc, range(5)) total = c.submit(sum, futures) yield total gp.update() del total, futures while s.tasks: yield gen.sleep(0.01) gp.update() gp.update() start = time() while any(gp.node_source.data.values()) or any(gp.edge_source.data.values()): yield gen.sleep(0.1) gp.update() assert time() < start + 5