예제 #1
0
파일: test_core.py 프로젝트: Neeratyoy/heft
def test_insert_sends():
    jobson = {1: 'a', 2: 'b', 3: 'a'}
    succ = {1: (3, 2)}
    aorder = [Event(1, 0, 2), Event(3, 3, 5)]
    result = insert_sends(aorder, jobson, succ)
    assert result[0] == aorder[0]
    assert result[-1] == aorder[-1]
    assert result[1].job == send('a', 'b', 1, 2)
    assert jobson[send('a', 'b', 1, 2)] == 'a'

    assert insert_sends([], jobson, succ) == []
예제 #2
0
파일: test_core.py 프로젝트: Neeratyoy/heft
def test_insert_recvs():
    jobson = {1: 'a', 2: 'b', 3: 'a'}
    prec = {3: (1, 2)}
    aorder = [Event(1, 0, 2), Event(3, 3, 5)]
    result = insert_recvs(aorder, jobson, prec)
    assert result[0] == aorder[0]
    assert result[-1] == aorder[-1]
    assert result[1].job == recv('b', 'a', 2, 3)
    assert jobson[recv('b', 'a', 2, 3)] == 'a'

    assert insert_recvs([], jobson, prec) == []
예제 #3
0
def test_insert_sendrecvs():
    prec = {3: (1, 2), 2: (1, )}
    succ = reverse_dict(prec)
    jobson = {1: 'a', 2: 'b', 3: 'a'}
    orders = {'a': [Event(1, 0, 1), Event(3, 4, 8)], 'b': [Event(2, 2, 3)]}

    neworders, newjobson = insert_sendrecvs(orders, jobson, succ, send, recv)
    print(neworders)
    print(newjobson)
    assert Event(send('a', 'b', 1, 2), 1, 1) in neworders['a']
    assert Event(recv('a', 'b', 1, 2), 2, 2) in neworders['b']
    assert all(e in neworders[agent] for agent in orders
               for e in orders[agent])
예제 #4
0
def test_earliest_finish_time():
    orders = {'a': [Event(2, 0, 3)], 'b': []}
    jobson = {2: 'a'}
    prec = {3: (2, )}
    assert start_time(3, orders, jobson, prec, commcost, compcost, 'a') == 3
    assert start_time(3, orders, jobson, prec, commcost, compcost,
                      'b') == 3 + 3
예제 #5
0
파일: test_core.py 프로젝트: Neeratyoy/heft
def test_schedule():
    orders, jobson = schedule(dag, 'abc', compcost, commcost)
    a = jobson[4]
    b = jobson[3]
    c = (set('abc') - set((a, b))).pop()
    print a, b, c
    print orders
    assert orders == {a: [Event(4, 0, 4), Event(6, 4, 10),
                          Event(7, 11, 18), Event(9, 18, 27)],
                      b: [Event(3, 0, 3), Event(5, 3, 8), Event(8, 21, 29)],
                      c: []}
예제 #6
0
파일: test_core.py 프로젝트: Neeratyoy/heft
def test_endtime():
    events = [Event(0, 1, 2), Event(1, 2, 3), Event(2, 3, 4)]
    assert endtime(0, events) == 2
    assert endtime(1, events) == 3
예제 #7
0
파일: test_core.py 프로젝트: Neeratyoy/heft
def test_makespan():
    assert makespan({'a': [Event(0, 0, 1), Event(1, 2, 3)],
                     'b': [Event(2, 3, 4)]}) == 4