def test_combine_tasks(): p1 = Process(name='p1') p2 = Process(name='p2') p3 = Process(name='p3') p4 = Process(name='p4') r100 = Resources(cpu=1, ram=0, disk=0) r010 = Resources(cpu=0, ram=1, disk=0) r001 = Resources(cpu=0, ram=0, disk=1) r111 = Units.resources_sum(r100, r010, r001) t1 = Task(name="p1p2", processes=[p1, p2], constraints=order(p1, p2), resources=Units.resources_sum(r100, r010)) t2 = Task(name="p3p4", processes=[p3, p4], constraints=order(p3, p4), resources=r001) assert combine_tasks() == Task() assert combine_tasks(t1) == t1 assert combine_tasks(t2) == t2 t3 = combine_tasks(t1, t2) assert t3.name() == t2.name() assert t3.resources() == r111 assert set(t3.processes()) == set([p1, p2, p3, p4]) assert set(t3.constraints()) == set(order(p1, p2) + order(p3, p4)) t4 = concat_tasks(t1, t2) assert t4.name() == t2.name() assert t4.resources() == r111 assert set(t4.processes()) == set([p1, p2, p3, p4]) assert set(t4.constraints()) == set( order(p1, p2) + order(p3, p4) + order(p1, p3) + order(p1, p4) + order(p2, p3) + order(p2, p4))
def test_combine_tasks(): p1 = Process(name='p1') p2 = Process(name='p2') p3 = Process(name='p3') p4 = Process(name='p4') r100 = Resources(cpu=1, ram=0, disk=0) r010 = Resources(cpu=0, ram=1, disk=0) r001 = Resources(cpu=0, ram=0, disk=1) r111 = Units.resources_sum(r100, r010, r001) t1 = Task(name="p1p2", processes=[p1, p2], constraints=order(p1, p2), resources=Units.resources_sum(r100, r010), finalization_wait=60) t2 = Task(name="p3p4", processes=[p3, p4], constraints=order(p3, p4), resources=r001, finalization_wait=45) assert combine_tasks() == Task() assert combine_tasks(t1) == t1 assert combine_tasks(t2) == t2 t3 = combine_tasks(t1, t2) assert t3.name() == t2.name() assert t3.resources() == r111 assert set(t3.processes()) == set([p1, p2, p3, p4]) assert set(t3.constraints()) == set(order(p1, p2) + order(p3, p4)) assert t3.finalization_wait().get() == t1.finalization_wait().get() t4 = concat_tasks(t1, t2) assert t4.name() == t2.name() assert t4.resources() == r111 assert set(t4.processes()) == set([p1, p2, p3, p4]) assert set(t4.constraints()) == set( order(p1, p2) + order(p3, p4) + order(p1, p3) + order(p1, p4) + order(p2, p3) + order(p2, p4)) assert t4.finalization_wait().get() == t1.finalization_wait().get() + t2.finalization_wait().get()
def test_add_resources(): assert Units.resources_sum(Resources(), Resources()) == Resources(cpu=0, ram=0, disk=0) r100 = Resources(cpu=1, ram=0, disk=0) r010 = Resources(cpu=0, ram=1, disk=0) r001 = Resources(cpu=0, ram=0, disk=1) r111 = Resources(cpu=1, ram=1, disk=1) r222 = Resources(cpu=2, ram=2, disk=2) assert reduce(Units.resources_sum, [r100, r010, r001]) == r111 assert Units.resources_sum(r111, r111) == r222 assert r222 == Units.resources_sum(r100, r010, r001, r111, Resources())
def test_add_resources(): assert Units.resources_sum(Resources(), Resources()) == Resources(cpu=0, ram=0, disk=0, gpu=0) r1000 = Resources(cpu=1, ram=0, disk=0, gpu=0) r1001 = Resources(cpu=1, ram=0, disk=0, gpu=1) r0100 = Resources(cpu=0, ram=1, disk=0, gpu=0) r0010 = Resources(cpu=0, ram=0, disk=1, gpu=0) r1110 = Resources(cpu=1, ram=1, disk=1, gpu=0) r1101 = Resources(cpu=1, ram=1, disk=0, gpu=1) r2220 = Resources(cpu=2, ram=2, disk=2, gpu=0) assert reduce(Units.resources_sum, [r1000, r0100, r0010]) == r1110 assert Units.resources_sum(r1110, r1110) == r2220 assert r2220 == Units.resources_sum(r1000, r0100, r0010, r1110, Resources()) assert Units.resources_sum(r1001, r0100) == r1101
def test_max_resources(): assert Resources(cpu=1, ram=2, disk=3, gpu=4) == Units.resources_max([ Resources(cpu=0, ram=2, disk=1, gpu=4), Resources(cpu=1, ram=1, disk=2, gpu=0), Resources(cpu=0, ram=1, disk=3, gpu=1) ])