def test_alloc_boards_compensate_for_dead(self): # When over-allocating, extra boards in the allocation should # compensate for dead boards. a = Allocator(4, 2, dead_boards=set([(0, 0, 2)])) assert a._alloc_boards_possible(24, max_dead_boards=0) is False assert a._alloc_boards(24, max_dead_boards=0) is None assert a._alloc_boards_possible(23, max_dead_boards=0) is True assert len(a._alloc_boards(23, max_dead_boards=0)[1]) == 23
def test_alloc_triads_empty(self): # Should fail if nothing or negative amounts requested a = Allocator(3, 4) assert a._alloc_triads(0, 1) is None assert a._alloc_triads(-1, 1) is None assert a._alloc_triads(1, -1) is None assert a._alloc_triads(1, 0) is None assert a._alloc_boards(0) is None assert a._alloc_boards(-1) is None
def test_alloc_boards_round_up(self): # Should round up number of boards being allocated to a multiple of # three a = Allocator(3, 4) assert len(a._alloc_boards(1)[1]) == 3 assert len(a._alloc_boards(2)[1]) == 3 assert len(a._alloc_boards(3)[1]) == 3 assert len(a._alloc_boards(4)[1]) == 6 assert len(a._alloc_boards(5)[1]) == 6 assert len(a._alloc_boards(6)[1]) == 6
def test_alloc_triads_bad_torus(self): # Should not be able to allocate a torus unless requesting the full # machine a = Allocator(3, 4) assert a._alloc_triads(1, 2, require_torus=True) is None assert a._alloc_triads(3, 2, require_torus=True) is None assert a._alloc_triads(2, 4, require_torus=True) is None assert a._alloc_boards(1*2*3, require_torus=True) is None assert a._alloc_boards(3*2*3, require_torus=True) is None assert a._alloc_boards(2*4*3, require_torus=True) is None
def test_alloc_triads_too_big(self): # Should fail if something too big is requested a = Allocator(3, 4) assert a._alloc_triads(4, 4) is None assert a._alloc_triads(3, 5) is None assert a._alloc_triads(4, 5) is None assert a._alloc_boards(3*4*3 + 1) is None
def test_alloc_triads_dead_links(self): # Should not be able to allocate if too many links are dead a = Allocator(3, 4, dead_links=set([(0, 0, 0, Links.north)])) assert a._alloc_triads(3, 4, max_dead_links=0) is None assert a._alloc_boards(3*4*3, max_dead_links=0) is None