def test_check_worker0(): "Check: Without CheckWorkerStrategy, FixedStrategy ignores availability" c = ScriptedController() c.strategy = FixedSampleStrategy([1, 2]) c.set_worker(False) r1 = c.accept_eval(args=(1, )) r1.complete(1) r2 = c.accept_eval(args=(2, )) r2.complete(2) c.accept_terminate() c.terminate()
def test_check_worker1(): "Test CheckWorkerStrategy" c = ScriptedController() strategy = FixedSampleStrategy([1, 2]) c.strategy = CheckWorkerStrategy(c, strategy) r1 = c.accept_eval(args=(1, )) c.set_worker(False) r2 = c.no_proposal() r1.complete(1) c.set_worker(True) r2 = c.accept_eval(args=(2, )) r2.complete(2) c.accept_terminate() c.terminate()
def test_simple_merge1(): "Test SimpleMergeStrategy" c = ScriptedController() strategy1 = PromiseStrategy(block=False) strategy2 = FixedSampleStrategy([1, 2, 3]) c.strategy = SimpleMergedStrategy(c, [strategy1, strategy2]) # Allow strategy2 to get one in, then strategy1 pre-empts c.set_worker(False) c.no_proposal() c.set_worker(True) r1 = c.accept_eval(args=(1, )) p = strategy1.promise_eval(100) r2 = c.accept_eval(args=(100, )) r1.complete(1) assert not p.ready() r2.complete(100) assert p.value == 100 strategy1.terminate() c.reject_terminate() c.reject_terminate() c.accept_terminate() c.terminate()