(layers)
| 161 | |
| 162 | @pytest.mark.parametrize("layers", [False, True]) |
| 163 | def 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") |
nothing calls this directly
no test coverage detected
searching dependent graphs…