>># 
>># 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: stlnattrbt.m,v 1.5 92/06/11 16:18:59 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)
>>#      SCCS:  @(#)  EVal.mc Rel 1.5	    (10/10/91)
>>#      SCCS:  @(#)  EVal.mc Rel 1.5	    (10/10/91)
>>#
>>TITLE XSetLineAttributes CH05
>>ASSERTION A XSetLineAttributes-1
A call to XSetLineAttributes sets the line_width,
line_style, cap_style and join_style components of the
specified GC to the values of the line_width, line_style,
cap_style and join_style arguments.
>>STRATEGY

*Line_Width
Create a window.
Create a GC with line_width = 1, fg = WhitePixel, bg = BlackPixel.
Draw horizontal line from (0, 1) to (0, 2) using XDrawLine.
Verify pixel at 0, 2 is set to bg.
Set line_width component of GC to 2 with XSetLineAttributes.
Draw horizontal line from (0, 1) to (2, 1) using XDrawLine.
Verify pixel at 0, 2 is set to WhitePixel using XGetimage and XGetPixel.

*Line_Style
Create a window.
Create GC with line_style = LineDoubleDash, fg = WhitePixel, bg = BlackPixel, dashes = 1, fn = GXcopy.
Draw line from (0, 0) to (1, 0) with XDrawLines.
Draw dashed line using XDrawLine.
Verify pixel at (1, 0) is bg with XGetImage and XGetPixel
Set GC line_style component to LineSolid with XSetLineAttributes.
Redraw same line.
Verify pixel is set to bg.

*Cap_Style
Create a window.
Create GC with cap_style = CapButt, fg = WhitePixel, bg = BlackPixel, line_width = 0.
Draw lines from (0, 0) to (1, 0) using XDrawLines.
Verify pixel at (2, 0) is bg using XGetImage and XGetPixel.
Set cap_style component of GC to CapProjecting.
Draw line from (0, 0) to (1, 0) using XDrawLines.
Verify pixel at (2, 0) is fg using XGetImage and XGetPixel.

*Join_Style
Create a Window.
Create GC with line_width = 3, Join_style = JoinBevel, bg =BlackPixel, fg = WhitePixel, fn = GXxor.
Draw two joined lines (0, 1) , (2, 1) , (2, 3) using XDrawLines.
Verify Pixel at (0, 4) is bg using XGetImage and XGetPixel.
Set join_style component of GC to JoinMiter using XSetLineAttributes.
Draw two joined lines (0, 1) , (2, 1) , (2, 3) using XDrawLines.
Verify Pixel at (0, 4) is fg using XGetImage and XGetPixel.
>>ASSERTION B XSetLineAttributes-2
When the server fails to allocate a required resource, then
a BadAlloc error occurs.
>>STRATEGY
Report UNTESTED
>>ASSERTION A XSetLineAttributes-3
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 XSetLineAttributes-4
When the value of line_style is other than LineSolid,
LineOnOffDash or LineDoubleDash, 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.
>>ASSERTION A XSetLineAttributes-5
When the value of cap_style is other than CapNotLast,
CapButt, CapRound or CapProjecting, 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.
>>ASSERTION A XSetLineAttributes-6
When the value of join_style is other than JoinMiter,
JoinRound or JoinBevel, 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.
