def test_bestSpot_scale_rectangular(): scale = 0.5 ar = Arrange(16, 40, 8, 20, scale=scale) ar.centerFirst() shape_arr = gimmeShapeArray(scale) shape_arr_square = gimmeShapeArraySquare(scale) best_spot = ar.bestSpot(shape_arr_square) assert best_spot.x == 0 assert best_spot.y == 0 ar.place(best_spot.x, best_spot.y, shape_arr_square) print(ar._occupied) # Place object a second time best_spot = ar.bestSpot(shape_arr) assert best_spot.x is not None # we found a location assert best_spot.x != 0 or best_spot.y != 0 # it can't be on the same location ar.place(best_spot.x, best_spot.y, shape_arr) best_spot = ar.bestSpot(shape_arr_square) ar.place(best_spot.x, best_spot.y, shape_arr_square) print(ar._occupied) # For debugging
def test_bestSpot_rectangular_build_plate(): ar = Arrange(16, 40, 8, 20, scale=1) ar.centerFirst() shape_arr = gimmeShapeArray() best_spot = ar.bestSpot(shape_arr) ar.place(best_spot.x, best_spot.y, shape_arr) assert best_spot.x == 0 assert best_spot.y == 0 # Place object a second time best_spot2 = ar.bestSpot(shape_arr) assert best_spot2.x is not None # we found a location assert best_spot2.x != 0 or best_spot2.y != 0 # it can't be on the same location ar.place(best_spot2.x, best_spot2.y, shape_arr) # Place object a 3rd time best_spot3 = ar.bestSpot(shape_arr) assert best_spot3.x is not None # we found a location assert best_spot3.x != best_spot.x or best_spot3.y != best_spot.y # it can't be on the same location assert best_spot3.x != best_spot2.x or best_spot3.y != best_spot2.y # it can't be on the same location ar.place(best_spot3.x, best_spot3.y, shape_arr) best_spot_x = ar.bestSpot(shape_arr) ar.place(best_spot_x.x, best_spot_x.y, shape_arr) best_spot_x = ar.bestSpot(shape_arr) ar.place(best_spot_x.x, best_spot_x.y, shape_arr) best_spot_x = ar.bestSpot(shape_arr) ar.place(best_spot_x.x, best_spot_x.y, shape_arr) print(ar._occupied) # For debugging
def test_smoke_place_objects(): ar = Arrange(20, 20, 10, 10, scale=1) ar.centerFirst() shape_arr = gimmeShapeArray() for i in range(5): best_spot_x, best_spot_y, score, prio = ar.bestSpot(shape_arr) ar.place(best_spot_x, best_spot_y, shape_arr)
def test_centerFirst_rectangular(): ar = Arrange(400, 300, 200, 150, scale=1) ar.centerFirst() assert ar._priority[150][200] < ar._priority[150][220] assert ar._priority[150][200] < ar._priority[170][200] assert ar._priority[150][200] < ar._priority[170][220] assert ar._priority[150][200] < ar._priority[180][150] assert ar._priority[150][200] < ar._priority[130][200] assert ar._priority[150][200] < ar._priority[130][180]
def test_centerFirst(): ar = Arrange(300, 300, 150, 150, scale=1) ar.centerFirst() assert ar._priority[150][150] < ar._priority[170][150] assert ar._priority[150][150] < ar._priority[150][170] assert ar._priority[150][150] < ar._priority[170][170] assert ar._priority[150][150] < ar._priority[130][150] assert ar._priority[150][150] < ar._priority[150][130] assert ar._priority[150][150] < ar._priority[130][130]
def test_smoke_place(): ar = Arrange(30, 30, 15, 15) ar.centerFirst() shape_arr = gimmeShapeArray() assert not numpy.any(ar._occupied) ar.place(0, 0, shape_arr) assert numpy.any(ar._occupied)
def test_ShapeArray_scaling2(): scale = 0.5 ar = Arrange(16, 16, 8, 8, scale=scale) ar.centerFirst() shape_arr = gimmeShapeArray(scale) print(shape_arr.arr) count = len(numpy.where(shape_arr.arr == 1)[0]) print(count) assert count >= 1 # should approach 3, but it can be inaccurate due to pixel rounding
def test_ShapeArray_scaling(): scale = 2 ar = Arrange(16, 16, 8, 8, scale=scale) ar.centerFirst() shape_arr = gimmeShapeArray(scale) print(shape_arr.arr) count = len(numpy.where(shape_arr.arr == 1)[0]) print(count) assert count >= 40 # should approach 2*2*12 = 48
def test_checkShape_place(): ar = Arrange(30, 30, 15, 15) ar.centerFirst() shape_arr = gimmeShapeArray() points = ar.checkShape(3, 6, shape_arr) ar.place(3, 6, shape_arr) points2 = ar.checkShape(3, 6, shape_arr) assert points2 is None
def test_checkShape(): ar = Arrange(30, 30, 15, 15) ar.centerFirst() shape_arr = gimmeShapeArray() points = ar.checkShape(0, 0, shape_arr) points2 = ar.checkShape(5, 0, shape_arr) points3 = ar.checkShape(0, 5, shape_arr) assert points2 > points assert points3 > points
def test_smoke_bestSpot(): ar = Arrange(30, 30, 15, 15, scale=1) ar.centerFirst() shape_arr = gimmeShapeArray() best_spot = ar.bestSpot(shape_arr) assert hasattr(best_spot, "x") assert hasattr(best_spot, "y") assert hasattr(best_spot, "penalty_points") assert hasattr(best_spot, "priority")
def test_checkShape_rectangular(): ar = Arrange(20, 30, 10, 15) ar.centerFirst() print(ar._priority) shape_arr = gimmeShapeArray() points = ar.checkShape(0, 0, shape_arr) points2 = ar.checkShape(5, 0, shape_arr) points3 = ar.checkShape(0, 5, shape_arr) assert points2 > points assert points3 > points
def test_bestSpot(): ar = Arrange(16, 16, 8, 8, scale=1) ar.centerFirst() shape_arr = gimmeShapeArray() best_spot = ar.bestSpot(shape_arr) assert best_spot.x == 0 assert best_spot.y == 0 ar.place(best_spot.x, best_spot.y, shape_arr) # Place object a second time best_spot = ar.bestSpot(shape_arr) assert best_spot.x is not None # we found a location assert best_spot.x != 0 or best_spot.y != 0 # it can't be on the same location ar.place(best_spot.x, best_spot.y, shape_arr) print(ar._occupied) # For debugging
def test_compare_occupied_and_priority_tables(): ar = Arrange(10, 15, 5, 7) ar.centerFirst() assert ar._priority.shape == ar._occupied.shape
def test_centerFirst_rectangular2(): ar = Arrange(10, 20, 5, 10, scale=1) ar.centerFirst() print(ar._priority) assert ar._priority[10][5] < ar._priority[10][7]