コード例 #1
0
def test_get_selection_by_rect():
	rects = map(lambda o: R(*o), RECTS)

	cloud = RectangleCloud(rects)
	occ = cloud.get_occupied_rect()
	cp = occ.get_center()

	## sector 1, 1
	half1 = partition(occ, cp, DIRECTION_RIGHT)
	half2 = partition(occ, cp, DIRECTION_UP)
	sectorrect = half1.get_intersection(half2)
	assert (
		set(cloud.get_selection_by_rect(sectorrect))
		== set()
	)

	## sector 0, 1
	half1 = partition(occ, cp, DIRECTION_LEFT)
	half2 = partition(occ, cp, DIRECTION_UP)
	sectorrect = half1.get_intersection(half2)
	
	assert (
		set(cloud.get_selection_by_rect(sectorrect))
		== set([rects[3], rects[4]])
	)
	
	## sector 0, 0
	half1 = partition(occ, cp, DIRECTION_LEFT)
	half2 = partition(occ, cp, DIRECTION_DOWN)
	sectorrect = half1.get_intersection(half2)

	assert (
		set(cloud.get_selection_by_rect(sectorrect))
		== set([rects[0], rects[1], rects[3]])
	)

	## sector 1, 0
	half1 = partition(occ, cp, DIRECTION_RIGHT)
	half2 = partition(occ, cp, DIRECTION_DOWN)
	sectorrect = half1.get_intersection(half2)
	
	assert (
		set(cloud.get_selection_by_rect(sectorrect))
		== set([rects[2]])
	)