Exemplo n.º 1
0
def find_contiguous_1h(itvs_avail, hy_res_rqts, hy, beginning):
    # NOT FOR PRODUCTION USE
    # Notes support only one resource group and ordered resource_id hierarchy level

    result = []
    hy_level_nbs, constraints = hy_res_rqts[0]  # one resource group
    l_name, n = hy_level_nbs[0]  # one hierarchy level
    # hy_level = hy[l_name]

    itvs_cts_slots = aggregate_itvs(intersec(constraints, itvs_avail))

    if l_name == "resource_id":
        for itv in itvs_cts_slots:
            if (itv[1] - itv[0] + 1) >= n:
                result = [(itv[0], itv[0]+n-1)]
                break

    return result
Exemplo n.º 2
0
def find_contiguous_sorted_1h(itvs_avail, hy_res_rqts, hy, beginning):
    # NOT FOR PRODUCTION USE
    # Notes support only one resource group and ordered resource_id hierarchy level

    result = []
    hy_level_nbs, constraints = hy_res_rqts[0]  # one resource group
    l_name, n = hy_level_nbs[0]  # one hierarchy level
    # hy_level = hy[l_name]

    itvs_unsorted = aggregate_itvs(intersec(constraints, itvs_avail))
    lg = len(itvs_unsorted)

    ids_sorted = sorted(range(lg), key=lambda k: itvs_unsorted[k][1] - itvs_unsorted[k][0])

    if l_name == "resource_id":
        for i in ids_sorted:
            itv = itvs_unsorted[i]
            if (itv[1] - itv[0] + 1) >= n:
                result = [(itv[0], itv[0]+n-1)]
                break

    return result
Exemplo n.º 3
0
def test_aggregate_itvs_2():
    assert aggregate_itvs([]) == []
Exemplo n.º 4
0
def test_aggregate_itvs_1():
    r = [(1, 2), (4, 10)]
    a = aggregate_itvs([(1, 2), (4, 5), (6, 6), (7, 10)])
    assert a == r