r""" a1 b1 c1 d1 e1 /|\ /|\ /|\ /| / / | X | X | X | / / |/ \|/ \|/ \|/ a0 b0 c0 d0 e0
(abcde)
| 1223 | |
| 1224 | |
| 1225 | def test_diagnostics(abcde): |
| 1226 | r""" |
| 1227 | a1 b1 c1 d1 e1 |
| 1228 | /|\ /|\ /|\ /| / |
| 1229 | / | X | X | X | / |
| 1230 | / |/ \|/ \|/ \|/ |
| 1231 | a0 b0 c0 d0 e0 |
| 1232 | """ |
| 1233 | a, b, c, d, e = abcde |
| 1234 | dsk = { |
| 1235 | (a, 0): (f,), |
| 1236 | (b, 0): (f,), |
| 1237 | (c, 0): (f,), |
| 1238 | (d, 0): (f,), |
| 1239 | (e, 0): (f,), |
| 1240 | (a, 1): (f, (a, 0), (b, 0), (c, 0)), |
| 1241 | (b, 1): (f, (b, 0), (c, 0), (d, 0)), |
| 1242 | (c, 1): (f, (c, 0), (d, 0), (e, 0)), |
| 1243 | (d, 1): (f, (d, 0), (e, 0)), |
| 1244 | (e, 1): (f, (e, 0)), |
| 1245 | } |
| 1246 | o = order(dsk) |
| 1247 | assert_topological_sort(dsk, o) |
| 1248 | info, memory_over_time = diagnostics(dsk) |
| 1249 | # this is ambiguous, depending on whether we start from left or right |
| 1250 | assert all(o[key] == val.order for key, val in info.items()) |
| 1251 | if o[(e, 1)] == 1: |
| 1252 | assert o[(e, 1)] == 1 |
| 1253 | assert o[(d, 1)] == 3 |
| 1254 | assert o[(c, 1)] == 5 |
| 1255 | assert memory_over_time == [0, 1, 1, 2, 2, 3, 2, 3, 2, 3] |
| 1256 | assert {key: val.age for key, val in info.items()} == { |
| 1257 | (a, 0): 1, |
| 1258 | (b, 0): 3, |
| 1259 | (c, 0): 5, |
| 1260 | (d, 0): 5, |
| 1261 | (e, 0): 5, |
| 1262 | (a, 1): 0, |
| 1263 | (b, 1): 0, |
| 1264 | (c, 1): 0, |
| 1265 | (d, 1): 0, |
| 1266 | (e, 1): 0, |
| 1267 | } |
| 1268 | assert {key: val.num_dependencies_freed for key, val in info.items()} == { |
| 1269 | (a, 0): 0, |
| 1270 | (b, 0): 0, |
| 1271 | (c, 0): 0, |
| 1272 | (d, 0): 0, |
| 1273 | (e, 0): 0, |
| 1274 | (a, 1): 3, |
| 1275 | (b, 1): 1, |
| 1276 | (c, 1): 1, |
| 1277 | (d, 1): 0, |
| 1278 | (e, 1): 0, |
| 1279 | } |
| 1280 | assert {key: val.num_data_when_run for key, val in info.items()} == { |
| 1281 | (a, 0): 2, |
| 1282 | (b, 0): 2, |
nothing calls this directly
no test coverage detected