>># 
>># Copyright 1990, 1991 by the Massachusetts Institute of Technology and
>># UniSoft Group Limited.
>># 
>># Permission to use, copy, modify, distribute, and sell this software and
>># its documentation for any purpose is hereby granted without fee,
>># provided that the above copyright notice appear in all copies and that
>># both that copyright notice and this permission notice appear in
>># supporting documentation, and that the names of MIT and UniSoft not be
>># used in advertising or publicity pertaining to distribution of the
>># software without specific, written prior permission.  MIT and UniSoft
>># make no representations about the suitability of this software for any
>># purpose.  It is provided "as is" without express or implied warranty.
>># 
>># $XConsortium: shrnkrgn.m,v 1.6 92/06/11 17:42:51 rws Exp $
>># 
>>#
>>TITLE XShrinkRegion CH10
>>ASSERTION A XShrinkRegion-1
When dx and dy are zero, then a call to XShrinkRegion does
not change the size of region r.
>>STRATEGY
Create two regions using XCreateRegion.
Verify that the calls did not return NULL.
Set the regions to the same rectangle using XUnionRectWithRegion.
Shrink the first region with parameters dx = dy = 0.
Verify that the two regions are identical using XEqualRegion.
>>ASSERTION A XShrinkRegion-2
When dx and dy are both positive, and a point x, y is
outside region r, then call to XShrinkRegion changes the
size of the region r such that the point x, y remains
outside region r, and some point x1, y1 previously inside
region r is now outside region r.
>>STRATEGY
Create regions R1, R2 and R3 using XCreateRegion.
Verify that none of the calls returned NULL.
Set region R1 to a rectangle using XUnionRectWithRegion.
Copy region R1 to R2 using XUnionRegion.
Shrink R2 using XShrinkRegion.
Set R3 to the difference of the union and intersection of R1 and R2 using XXorRegion.
Verify that R3 is not empty using XEmptyRegion.
Set R3 to be the union of R2 and R3 using XUnionRegion.
Verify that R3 is the same as R1 using XEqualRegion.
>>ASSERTION A XShrinkRegion-3
When dx and dy are both negative, and a point x, y is in
region r, then call to XShrinkRegion changes the size of
the region r such that the point x, y remains in region r,
and some point x1, y1 previously outside region r is now
inside region r.
>>STRATEGY
Create regions R1, R2 and R3 using XCreateRegion.
Verify that none of the calls returned NULL.
Set region R1 to a rectangle using XUnionRectWithRegion.
Copy region R1 to R2 using XUnionRegion.
Enlarge R2 using XShrinkRegion.
Set R3 to the difference of the union and intersection of R1 and R2 using XXorRegion.
Verify that R3 is not empty using XEmptyRegion.
Set R3 to be the union of R2 and R3 using XUnionRegion.
Verify that R3 is the same as R2 using XEqualRegion.
