def test_orientation_and_rotation(self): """ Test that a pattern is drawn with the correct orientation, and is rotated correctly. """ ### Test initial orientation and 90-degree rotation target = array( [ [0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0], ] ) bounds = BoundingBox(radius=0.3) xdensity = 10 ydensity = 10 width = 2.0 / xdensity height = 4.0 / ydensity rect = Rectangle( size=height, aspect_ratio=width / height, smoothing=0.0, xdensity=xdensity, ydensity=ydensity, bounds=bounds ) assert_array_equal(rect(), target) assert_array_equal(rect(orientation=pi / 2), rot90(target)) ### 45-degree rotation about the origin rot_45 = array( [ [0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0], ] ) assert_array_equal(rect(orientation=pi / 4), rot_45) ### 45-degree rotation that's not about the origin rot_45_offset = array( [ [0, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0], [0, 1, 1, 1, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], ] ) assert_array_equal(rect(x=-1.0 / xdensity, y=1.0 / ydensity, orientation=pi / 4), rot_45_offset)
def test_orientation_and_rotation(self): """ Test that a pattern is drawn with the correct orientation, and is rotated correctly. """ ### Test initial orientation and 90-degree rotation target = array([[0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 0, 0]]) bounds = BoundingBox(radius=0.3) xdensity = 10 ydensity = 10 width = 2.0/xdensity height = 4.0/ydensity rect = Rectangle(size=height, aspect_ratio=width/height,smoothing=0.0, xdensity=xdensity,ydensity=ydensity,bounds=bounds) assert_array_equal(rect(),target) assert_array_equal(rect(orientation=pi/2),rot90(target)) ### 45-degree rotation about the origin rot_45 = array([[0, 0, 0, 0, 0, 0], [0, 0, 1, 0, 0, 0], [0, 1, 1, 1, 0, 0], [0, 0, 1, 1, 1, 0], [0, 0, 0, 1, 0, 0], [0, 0, 0, 0, 0, 0]]) assert_array_equal(rect(orientation=pi/4),rot_45) ### 45-degree rotation that's not about the origin rot_45_offset = array([[0, 1, 0, 0, 0, 0], [1, 1, 1, 0, 0, 0], [0, 1, 1, 1, 0, 0], [0, 0, 1, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]) assert_array_equal(rect(x=-1.0/xdensity,y=1.0/ydensity,orientation=pi/4), rot_45_offset)
def test_position(self): """ Test that a pattern is drawn correctly at different locations. """ initial = array([[0,0,0,0], [0,1,1,0], [0,1,1,0], [0,0,0,0]]) r = Rectangle(bounds=BoundingBox(radius=2),xdensity=1, ydensity=1,aspect_ratio=1,size=2,smoothing=0.0) assert_array_equal(r(),initial) ### x offset x_offset = array([[0,0,0,0], [0,0,1,1], [0,0,1,1], [0,0,0,0]]) assert_array_equal(r(x=1),x_offset) ### y offset y_offset = rot90(x_offset) assert_array_equal(r(y=1),y_offset) ### x and y offset target = array([[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [1,1,0,0,0,0,0,0,0,0], [1,1,0,0,0,0,0,0,0,0], [1,1,0,0,0,0,0,0,0,0], [1,1,0,0,0,0,0,0,0,0]]) width = 0.2 height = 0.4 r = Rectangle(bounds=BoundingBox(radius=0.5), xdensity=10,ydensity=10,smoothing=0.0, aspect_ratio=width/height,size=height) assert_array_equal(r(x=-0.4,y=-0.3),target) ### x and y offset with bounds offset by the same target = array([[0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,1,1,0,0,0,0], [0,0,0,0,1,1,0,0,0,0], [0,0,0,0,1,1,0,0,0,0], [0,0,0,0,1,1,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0]]) width = 0.2 height = 0.4 bounds = BoundingBox(points=((-0.9,-0.8),(0.1,0.2))) r = Rectangle(bounds=bounds,xdensity=10,ydensity=10,smoothing=0.0, aspect_ratio=width/height,size=height) assert_array_equal(r(x=-0.4,y=-0.3),target)