>># 
>># 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: stclprctng.m,v 1.6 92/06/11 16:17:56 rws Exp $
>># 
>>#      SCCS:  @(#)  EAll.mc Rel 1.5	    (3/12/92)
>>#      SCCS:  @(#)  EGC.mc Rel 1.5	    (10/25/91)
>>#      SCCS:  @(#)  EVal.mc Rel 1.5	    (10/10/91)
>>#
>>TITLE XSetClipRectangles CH05
>>ASSERTION A XSetClipRectangles-1
A call to XSetClipRectangles sets the clip_mask component
of the specified GC to the specified list of rectangles and
sets the clip_x_origin and clip_y_origin components of the
specified GC to the arguments clip_x_origin and
clip_y_origin.
>>STRATEGY
Create window.
Create GC bg = BlackPixel, fg = WhitePixel, fn = GXxor.
Set pixel at (0, 0) to fg with XDrawPoint.
Verify Pixel at (0, 0) is fg with XGetimage and GetPixel.
Set clip mask to rectangle (1, 1) (2, 2) with XSetClipRectangles.
Set Pixel at (2, 2) with XDrawPoint.
Verify Pixel at (2, 2) is fg with XGetimage and GetPixel.
Set pixel at (0, 0) to bg with XDrawPoint.
Verify Pixel at (0, 0) is fg with XGetimage and GetPixel.
>>ASSERTION B XSetClipRectangles-2
When two or more of the rectangles intersect, then no error
occurs.
>>STRATEGY
Report UNTESTED
>>ASSERTION A XSetClipRectangles-3
When the number of rectangles specified by the argument n
is zero, then the clip_mask component of the specified gc is
set to disable output on any subsequent graphics operation.
>>STRATEGY
For all supported visuals:
	Create a window
	Verify that every window pixel is not set.
	Call XSetClipRectangles with a meaningful rectangle and n=0;
	Verify that every window pixel cannot be set.
>>ASSERTION A XSetClipRectangles-4
When the ordering argument is YSorted, and the specified
list of rectangles is not non-decreasing in the Y origin,
then either a BadMatch error occurs or no error occurs.
>>STRATEGY
Create list of rectangles decreasing in Y origin.
Call XSetClipRectangles.
Verify that if an error occurs it is a BadMatch error.
>>ASSERTION A XSetClipRectangles-5
When the ordering argument is YXSorted and the specified
list of rectangles is either not non-decreasing in the Y
origin or rectangles with the same Y origin are not
non-decreasing in the X origin, then either a BadMatch error
occurs or no error occurs.
>>STRATEGY
Create list of rectangles decreasing in Y origin.  
Call XSetClipRectangles.  
Verify that if an error occurs it is a BadMatch error.  
Create list of rectangles with
same Y origin and height and decreasing in X origin.  
Call XSetClipRectangles.  
Verify that if an error occurs it is a BadMatch error.  
>>ASSERTION A XSetClipRectangles-6
When the ordering argument is YXBanded and the specified
list of rectangles is either not non-decreasing in the Y
origin or rectangles with the same Y origin are not
non-decreasing in the X origin or there is a Y scanline
included by rectangles with different Y origins or extents,
then either a BadMatch error occurs or no error occurs.
>>STRATEGY
Create list of rectangles decreasing in Y origin.  
Call XSetClipRectangles.  
Verify that if an error occurs it is a BadMatch error.  
Create list of rectangles with
same Y origin and height and decreasing in X origin.  
Call XSetClipRectangles.  
Verify that if an error occurs it is a BadMatch error.  
Create list of rectangles with same Y origin and increasing X
origin and differing extents.  
Call XSetClipRectangles.  
Verify that if an error occurs it is a BadMatch error.  
>>ASSERTION B XSetClipRectangles-7
When the server fails to allocate a required resource, then
a BadAlloc error occurs.
>>STRATEGY
Report UNTESTED
>>ASSERTION A XSetClipRectangles-8
When the GC argument does not name a defined GC, then a
BadGC error occurs.
>>STRATEGY
Create a GC.
Set GC id to -1 using XTestSetGContextOfGC.
Call test function using bad GC as the GC argument.
Verify that a BadGC error occurs.
>>ASSERTION A XSetClipRectangles-9
When the value of ordering is other than Unsorted, YSorted,
YXSorted or YXBanded, then a BadValue error occurs.
>>STRATEGY
Obtain a sequence of values which are not in the list specified by VALUE_LIST.
For each value:
  Call test function with this value in the VALUE_ARG argument.
  Verify that a BadValue error occurs.
