MCPcopy
hub / github.com/dask/dask / test_clone

Function test_clone

dask/tests/test_graph_manipulation.py:163–202  ·  view source on GitHub ↗
(layers)

Source from the content-addressed store, hash-verified

161
162@pytest.mark.parametrize("layers", [False, True])
163def test_clone(layers):
164 dsk1 = {("a", h1): 1, ("a", h2): 2}
165 dsk2 = {"b": (add, ("a", h1), ("a", h2))}
166 dsk3 = {"c": 1, "d": 1} # Multiple names
167 if layers:
168 dsk1 = HighLevelGraph.from_collections("a", dsk1)
169 dsk2 = HighLevelGraph(
170 {"a": dsk1, "b": dsk2}, dependencies={"a": set(), "b": {"a"}}
171 )
172 dsk3 = HighLevelGraph.from_collections("c", dsk3)
173 else:
174 dsk2.update(dsk1)
175
176 t1 = Tuple(dsk1, [("a", h1), ("a", h2)])
177 t2 = Tuple(dsk2, ["b"])
178 t3 = Tuple(dsk3, ["c"])
179
180 c1 = clone(t2, seed=1, assume_layers=layers)
181 c2 = clone(t2, seed=1, assume_layers=layers)
182 c3 = clone(t2, seed=2, assume_layers=layers)
183 c4 = clone(c1, seed=1, assume_layers=layers) # Clone of a clone has different keys
184 c5 = clone(t2, assume_layers=layers) # Random seed
185 c6 = clone(t2, assume_layers=layers) # Random seed
186 c7 = clone(t2, omit=t1, seed=1, assume_layers=layers)
187
188 assert c1.__dask_graph__() == c2.__dask_graph__()
189 assert_no_common_keys(c1, t2, layers=layers)
190 assert_no_common_keys(c1, c3, layers=layers)
191 assert_no_common_keys(c1, c4, layers=layers)
192 assert_no_common_keys(c1, c5, layers=layers)
193 assert_no_common_keys(c5, c6, layers=layers)
194 assert_no_common_keys(c7, t2, omit=t1, layers=layers)
195 assert dask.compute(t2, c1, c2, c3, c4, c5, c6, c7) == ((3,),) * 8
196
197 # Clone nested; some of the collections in omit are unrelated
198 out = clone({"x": [t2]}, omit={"y": [t1, t3]}, assume_layers=layers)
199 assert dask.compute(out) == ({"x": [(3,)]},)
200 c8 = out["x"][0]
201 assert_no_common_keys(c8, t2, omit=t1, layers=layers)
202 assert_no_common_keys(c8, t3, layers=layers)
203
204
205@pytest.mark.skipif("not da")

Callers

nothing calls this directly

Calls 8

HighLevelGraphClass · 0.90
TupleClass · 0.90
cloneFunction · 0.90
setClass · 0.85
assert_no_common_keysFunction · 0.85
from_collectionsMethod · 0.80
__dask_graph__Method · 0.45
computeMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…