def test_prefer_broker_nodes(): """ b0 b1 b2 | \ / a0 a1 a1 should be run before a0 """ a, b, c = 'abc' dsk = {(a, 0): (f,), (a, 1): (f,), (b, 0): (f, (a, 0)), (b, 1): (f, (a, 1)), (b, 2): (f, (a, 1))} dependencies, dependents = get_deps(dsk) nd = ndependents(dependencies, dependents) cm = child_max(dependencies, dependents, nd) o = order(dsk) assert o[(a, 1)] < o[(a, 0)] # Switch name of 0, 1 to ensure that this isn't due to string comparison dsk = {(a, 0): (f,), (a, 1): (f,), (b, 0): (f, (a, 0)), (b, 1): (f, (a, 1)), (b, 2): (f, (a, 0))} o = order(dsk) assert o[(a, 1)] > o[(a, 0)]
def test_deep_bases_win_over_dependents(): """ d should come before e and probably before one of b and c a / | \ . b c | / \ | / e d """ dsk = { 'a': (f, 'b', 'c', 'd'), 'b': (f, 'd', 'e'), 'c': (f, 'd'), 'd': 1, 'e': 2 } dependencies, dependents = get_deps(dsk) nd = ndependents(dependencies, dependents) cm = child_max(dependencies, dependents, nd) o = order(dsk) assert o['d'] < o['e'] assert o['d'] < o['b'] or o['d'] < o['c']
def test_deep_bases_win_over_dependents(): """ d should come before e and probably before one of b and c a / | \ . b c | / \ | / e d """ dsk = {'a': (f, 'b', 'c', 'd'), 'b': (f, 'd', 'e'), 'c': (f, 'd'), 'd': 1, 'e': 2} dependencies, dependents = get_deps(dsk) nd = ndependents(dependencies, dependents) cm = child_max(dependencies, dependents, nd) o = order(dsk) assert o['d'] < o['e'] assert o['d'] < o['b'] or o['d'] < o['c']
def test_prefer_broker_nodes(): """ b0 b1 b2 | \ / a0 a1 a1 should be run before a0 """ a, b, c = 'abc' dsk = { (a, 0): (f, ), (a, 1): (f, ), (b, 0): (f, (a, 0)), (b, 1): (f, (a, 1)), (b, 2): (f, (a, 1)) } dependencies, dependents = get_deps(dsk) nd = ndependents(dependencies, dependents) cm = child_max(dependencies, dependents, nd) o = order(dsk) assert o[(a, 1)] < o[(a, 0)] # Switch name of 0, 1 to ensure that this isn't due to string comparison dsk = { (a, 0): (f, ), (a, 1): (f, ), (b, 0): (f, (a, 0)), (b, 1): (f, (a, 1)), (b, 2): (f, (a, 0)) } o = order(dsk) assert o[(a, 1)] > o[(a, 0)]
def test_stacklimit(): dsk = dict(('x%s' % (i + 1), (inc, 'x%s' % i)) for i in range(10000)) dependencies, dependents = get_deps(dsk) scores = dict.fromkeys(dsk, 1) child_max(dependencies, dependents, scores) ndependents(dependencies, dependents)