[squeak-dev] The Trunk: GraphicsTests-nice.24.mcz
Nicolas Cellier
nicolas.cellier.aka.nice at gmail.com
Sun Jun 20 21:06:47 UTC 2010
Oops, wanted to publish to inbox...
Feel free to remove the tests for empty rectangle behaviour if you don't agree.
Nicolas
2010/6/20 <commits at source.squeak.org>:
> Nicolas Cellier uploaded a new version of GraphicsTests to project The Trunk:
> http://source.squeak.org/trunk/GraphicsTests-nice.24.mcz
>
> ==================== Summary ====================
>
> Name: GraphicsTests-nice.24
> Author: nice
> Time: 20 June 2010, 11:05:21.594 pm
> UUID: d6cc2cfd-2790-344f-bc46-9a82f91a88dd
> Ancestors: GraphicsTests-wiz.23
>
> A few more tests of Rectangle functions, including behaviour of empty rectangles
>
> =============== Diff against GraphicsTests-wiz.23 ===============
>
> Item was added:
> + ----- Method: RectangleTest>>testCenterEmpty (in category 'testing') -----
> + testCenterEmpty
> + | r1 c |
> + r1 := 30 at 10 corner: 10 at 20.
> + c := r1 center.
> + self deny: (r1 containsPoint: c) description: 'An empty rectangle does not contain any point.'.
> + self assert: (r1 topLeft dist: c) = (r1 bottomRight dist: c).
> + self assert: (r1 bottomLeft dist: c) = (r1 topRight dist: c).
> + self assert: (r1 topLeft dist: c) = (r1 bottomLeft dist: c).
> + self assert: (r1 translateBy: -20 at 10) center = (c translateBy: -20 at 10) description: 'the center is translated with the rectangle'.!
>
> Item was added:
> + ----- Method: RectangleTest>>testFlipEmpty (in category 'testing') -----
> + testFlipEmpty
> + | r1 c r1Horiz r1Vert |
> + r1 := 30 at 10 corner: 10 at 20.
> + c := 5 at 5.
> + r1Horiz := r1 flipBy: #horizontal centerAt: c.
> + r1Vert := r1 flipBy: #vertical centerAt: c.
> +
> + self assert: r1 area = r1Horiz area description: 'flip preserves area'.
> + self assert: r1 area = r1Vert area description: 'flip preserves area'.
> +
> + self assert: r1 extent = r1Horiz extent description: 'flip preserves extent'.
> + self assert: r1 extent = r1Vert extent description: 'flip preserves extent'.
> +
> + self assert: (r1 flipBy: #horizontal centerAt: r1 center) = r1.
> + self assert: (r1 flipBy: #vertical centerAt: r1 center) = r1!
>
> Item was added:
> + ----- Method: RectangleTest>>testFlip (in category 'testing') -----
> + testFlip
> + | r1 c r1Horiz r1Vert |
> + r1 := 30 at 10 extent: 10 at 20.
> + c := 5 at 5.
> + r1Horiz := r1 flipBy: #horizontal centerAt: c.
> + r1Vert := r1 flipBy: #vertical centerAt: c.
> +
> + self assert: r1 area = r1Horiz area description: 'flip preserves area'.
> + self assert: r1 area = r1Vert area description: 'flip preserves area'.
> +
> + self assert: r1 extent = r1Horiz extent description: 'flip preserves extent'.
> + self assert: r1 extent = r1Vert extent description: 'flip preserves extent'.
> +
> + self assert: (r1 flipBy: #horizontal centerAt: r1 center) = r1.
> + self assert: (r1 flipBy: #vertical centerAt: r1 center) = r1!
>
> Item was added:
> + ----- Method: RectangleTest>>testArea (in category 'testing') -----
> + testArea
> + | r1 empty |
> + r1 := 0 at 0 extent: 10 at 20.
> + self assert: r1 area = (10*20).
> + self assert: (r1 translateBy: -20 at 10) area = (10*20) description: 'translation preserves area'.
> +
> + empty := 10 at 20 corner: 0 at 0.
> + self assert: empty area = 0 description: 'the area of an empty rectangle is null'.
> + empty := 10 at 0 corner: 0 at 20.
> + self assert: empty area = 0 description: 'the area of an empty rectangle is null'.
> + empty := 0 at 20 corner: 10 at 0.
> + self assert: empty area = 0 description: 'the area of an empty rectangle is null'.!
>
> Item was added:
> + ----- Method: RectangleTest>>testRotateEmpty (in category 'testing') -----
> + testRotateEmpty
> + | r1 c r1Left r1Right r1Pi |
> + r1 := 30 at 10 corner: 10 at 20.
> + c := 5 at 5.
> + r1Left := r1 rotateBy: #left centerAt: c.
> + r1Right := r1 rotateBy: #right centerAt: c.
> + r1Pi := r1 rotateBy: #pi centerAt: c.
> +
> + self assert: r1 area = r1Left area description: 'rotation preserves area'.
> + self assert: r1 area = r1Right area description: 'rotation preserves area'.
> + self assert: r1 area = r1Pi area description: 'rotation preserves area'.
> +
> + self assert: r1 extent transposed = r1Left extent.
> + self assert: r1 extent transposed = r1Right extent.
> + self assert: r1 extent = r1Pi extent.
> +
> + self assert: (r1 rotateBy: #pi centerAt: r1 center) = r1!
>
> Item was added:
> + ----- Method: RectangleTest>>testCenter (in category 'testing') -----
> + testCenter
> + | r1 c |
> + r1 := 0 at 0 extent: 10 at 20.
> + c := r1 center.
> + self assert: (r1 containsPoint: c) description: 'the center is inside the rectangle'.
> + self assert: (r1 topLeft dist: c) = (r1 bottomRight dist: c).
> + self assert: (r1 bottomLeft dist: c) = (r1 topRight dist: c).
> + self assert: (r1 topLeft dist: c) = (r1 bottomLeft dist: c).
> + self assert: (r1 translateBy: -20 at 10) center = (c translateBy: -20 at 10) description: 'the center is translated with the rectangle'.!
>
> Item was added:
> + ----- Method: RectangleTest>>testRotate (in category 'testing') -----
> + testRotate
> + | r1 c r1Left r1Right r1Pi |
> + r1 := 30 at 10 extent: 10 at 20.
> + c := 5 at 5.
> + r1Left := r1 rotateBy: #left centerAt: c.
> + r1Right := r1 rotateBy: #right centerAt: c.
> + r1Pi := r1 rotateBy: #pi centerAt: c.
> +
> + self assert: r1 area = r1Left area description: 'rotation preserves area'.
> + self assert: r1 area = r1Right area description: 'rotation preserves area'.
> + self assert: r1 area = r1Pi area description: 'rotation preserves area'.
> +
> + self assert: r1 extent transposed = r1Left extent.
> + self assert: r1 extent transposed = r1Right extent.
> + self assert: r1 extent = r1Pi extent.
> +
> + self assert: (r1 rotateBy: #pi centerAt: r1 center) = r1!
>
> Item was added:
> + ----- Method: RectangleTest>>testIntersectionEmpty (in category 'testing') -----
> + testIntersectionEmpty
> + | rect1 empty1 empty2 |
> + rect1 := 10 at 10 corner: 40 at 40.
> + empty1 := 50 at 50 corner: 0 at 0.
> + empty2 := 30 at 30 corner: 20 at 20.
> + self
> + deny: (rect1 intersects: empty1);
> + deny: (rect1 intersects: empty2);
> + deny: (empty1 intersects: rect1);
> + deny: (empty2 intersects: rect1);
> + deny: (empty1 intersects: empty2);
> + deny: (empty2 intersects: empty1).!
>
>
>
More information about the Squeak-dev
mailing list
|