()
| 135 | |
| 136 | |
| 137 | def test_hlg_expr_sequence_nested_keys(): |
| 138 | xlayer = {"xlayer": MaterializedLayer({"x": DataNode("x", 1)})} |
| 139 | xdeps = {"xlayer": set()} |
| 140 | ylayer = {"ylayer": MaterializedLayer({"y": Task("y", func, TaskRef("x"))})} |
| 141 | ylayer.update(xlayer) |
| 142 | ydeps = {"ylayer": {"xlayer"}} |
| 143 | ydeps.update(xdeps) |
| 144 | hlgy = HighLevelGraph(ylayer, dependencies=ydeps) |
| 145 | zlayer = {"zlayer": MaterializedLayer({"z": Task("z", func, TaskRef("x"))})} |
| 146 | zlayer.update(xlayer) |
| 147 | zdeps = {"zlayer": {"xlayer"}} |
| 148 | |
| 149 | zdeps.update(xdeps) |
| 150 | hlgz = HighLevelGraph(zlayer, dependencies=zdeps) |
| 151 | hlgexpry = HLGExpr( |
| 152 | hlgy, |
| 153 | low_level_optimizer=optimizer, |
| 154 | output_keys=[["y"], ["x"]], |
| 155 | ) |
| 156 | hlgexprz = HLGExpr( |
| 157 | hlgz, |
| 158 | low_level_optimizer=optimizer, |
| 159 | output_keys=[["z"]], |
| 160 | ) |
| 161 | expr = _ExprSequence(hlgexprz, hlgexpry) |
| 162 | expected = [[["z"]], [["y"], ["x"]]] |
| 163 | assert expr.__dask_keys__() == expected |
| 164 | assert expr.optimize().__dask_keys__() == expected |
| 165 | |
| 166 | # Now with a different grouping / optimizer pass. These are handled |
| 167 | # separately internalyl and we want to make sure the sequence is putting it |
| 168 | # back together properly |
| 169 | hlgexprz = HLGExpr( |
| 170 | hlgz, |
| 171 | low_level_optimizer=optimizer2, |
| 172 | output_keys=[["z"]], |
| 173 | ) |
| 174 | expr = _ExprSequence(hlgexprz, hlgexpry) |
| 175 | assert expr.__dask_keys__() == expected |
| 176 | assert expr.optimize().__dask_keys__() == expected |
| 177 | |
| 178 | |
| 179 | def optimizer_with_annotations(dsk, keys): |
nothing calls this directly
no test coverage detected