testcases/archive/archall.pi -----
   archall.pi -
   Test archive all structures operation with different conflict
   resolution flags: MAINTAIN,UPDATE,ABANDON
  
   Test in particular, the suituation where there are more than
   one structure ids has conflict.
  
   Verify the structure identifiers in archive, the structure identifiers fr
   in CSS after retrieval and the contents of the retrieved structures 
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   setup:
   	in CSS:  	0->1->2  3
        in archive:	2' 
   operations: 
  	archive all strs, del all strs from CSS, retrieve all strs
   expected results in CSS:
  	maintain:	0->1->2'  3'	
  	abandon:	2' 3'
  	update:		0->1->2   3  

testcases/archive/archive.pi -----
   archive.pi -
   Test simple archive operations 
   test in particular, archival on an empty structure and
   retrieve structure identifiers operation
   
   archive structures:  	archive a simple structure
   archive structure networks:	archive a structure network
   archive all structures :	archive two structures 
   Verify by comparing the list of structure ids in archive 
   against the expected

testcases/archive/archnet.pi -----
   archnet.pi -
   Test archive structure network operation with different conflict
   resolution flags: MAINTAIN,UPDATE,ABANDON
  
   Test in particular, that the operation would abort if any
   one of the structure ids has conflict when the conflict
   resolution flag has the value ABANDON.
  
   Verify the structure identifiers in archive, the structure identifiers fr
   in CSS after retrieval and the contents of the retrieved structures 
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   setup:
   	in CSS:  	0->1->2  3
        in archive:	2' 
   operations: 
  	archive networks 0&3, del all strs from CSS, retrieve all strs
   expected results in CSS:
  	maintain:	0->1->2'  3'	
  	abandon:	2' 
  	update:		0->1->2   3  

testcases/archive/archstr.pi -----
   archstr.pi -
   Test archive structure operation with different conflict
   resolution flags: MAINTAIN,UPDATE,ABANDON
  
   Test in particular, that an archived structure remains intact
   after an unrelated archive operation.
  
   Verify the structure identifiers in archive, the structure identifiers fr
   in CSS after retrieval and the contents of the retrieved structures 
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   setup: 
   	in CSS:  	0->1->2  3
        in archive:	2' 3'	
   operations: 
  	archive 0&3, del all strs from CSS, retrieve all strs
   expected results in CSS:
  	maintain:	0->1e  2'  3'	
  	abandon:	2' 3'
  	update:		0->1e  2'  3  

testcases/archive/confres.pi -----
   confres.pi -
   verify default conflict archival resolution flag = UPDATE
   verify default conflict retrieval resolution flag = ABANDON
   set conflict resolution flag to: MAINTAIN, ABANDON, UPDATE
   Verify by inquiring conflict resolution flags
   and compare against the expected

testcases/archive/delallar.pi -----
   delallar.pi -
   Test delete all structures from archive operation 
  
   Verify the structure identifiers in archive 
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   setup in archive:
   	0->1->2  3
   operations: 
  	delete all archived strs 
   expected results in archive:
  	NULL

testcases/archive/deletear.pi -----
   deletear.pi -
   Test simple delete structure from archive operations 
   
   delete structures from archive:  		delete a simple structure
   delete structure networks from archive:	delete a structure network
   delete all structures  from archive:		delete two structures 
   Verify by comparing the list of structure ids in archive 
   against the expected

testcases/archive/delnetar.pi -----
   delnetar.pi -
   Test delete structure networks from archive operation 
  
   Verify the structure identifiers in archive, the structure identifiers  
   and contents in CSS after retrieving all remaining structures in archive
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   setup in archive:  ( a->b => a executes b)
   	0->1->2  3
   operations: 
  	delete archived str networks 0
   expected results in archive:
  	3
   flag: 	archive conflict resolution flag
   @N: 		number of remaining structure after the delete operation
   @A-@D:	ids of remaining structures
   st0-st3:	structure state for str0-str3
   ct0-ct3:	element type of the first element of structure 

testcases/archive/delstrar.pi -----
   delstrar.pi -
   Test delete structure from archive operation 
  
   Verify the structure identifiers in archive, the structure identifiers  
   and contents in CSS after retrieving all remaining structures in archive
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   setup in archive:
   	0->1->2  3
   operations: 
  	delete archived str 0&3
   expected results in archive:
  	1->2
   @N: 		number of remaining structure after the delete operation
   @A-@D:	ids of remaining structures
   st0-st3:	structure state for str0-str3
   ct0-ct3:	element type of the first element of structure 

testcases/archive/inqallcf.pi -----
   inqallcf.pi -
   Test inquire all conflicting structures
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   Test the following cases:
  	   in CSS	in archive	conflicting structures
   case 1: NULL	  	NULL		NULL
   case 2: 0->1->2 3	NULL		NULL
   case 3: 0->1->2 3	0->1->2 3	0->1->2 3
   case 4: NULL		0->1->2 3	NULL
   case 5: 2' 3' 4	0->1->2 3	2 3
  
   Verify by comparing the list of conflicting structures with the expected
  

testcases/archive/inqcfnet.pi -----
   inqcfnet.pi -
   Test inquire conflicting structures in network
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   Test the following cases:
  
  	   in CSS	in archive	src	str	conflicting structures
  
   case 1: 0->1->2 3  	NULL		CSS     0 	NULL
  						1	NULL
  						2	NULL
  						3	NULL
  
   case 2: 0->1->2 3	0->1->2 3	CSS	0	0 1 2
                                           	1	1 2
                                           	2	2
                                           	3	3
  
   case 3: 0->1->2 3	0->1->2 3	archive	0	0 1 2
                                           	1	1 2
                                           	2	2
                                           	3	3
  
   case 4: NULL     	0->1->2 3	archive 0	NULL
  						1	NULL
  						2	NULL
  						3	NULL
  
   case 5: 2' 3' 4	0->1->2 3	archive 0	2
                                                1	2
                                                2	2
                                                3	3
  
   Verify by comparing the list of conflicting structures with the expected
  

testcases/archive/retrall.pi -----
   retrall.pi -
   Test retrieve all structures operation with different conflict
   resolution flags: MAINTAIN,UPDATE,ABANDON
  
   Test in particular, the suituation where there are more than
   one structure ids has conflict.
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   Verify the structure identifiers in CSS after retrieval, 
   and the contents of the retrieved structures 
  
   setup:
   	in archive:  	0->1->2  3
        in CSS:	2' 3'
   operations: 
  	retrieve all strs 
   expected results in CSS:
  	maintain:	0->1->2' 3'	
  	abandon:	2' 3'
  	update:		0->1->2  3  

testcases/archive/retrances.pi -----
   retrances.pi -
   Test retrieve paths to ancestors with different order and depth
   	order:  TOP, BOTTOM
        depth:  0,1,2
   ## set up in archive:
   	str1: execute str2 & str3
   	str2: execute str3 
        str3: a leaf str
  
   Verify by comparing the returned paths with the expected
  

testcases/archive/retrdesc.pi -----
   retrdesc.pi -
   Test retrieve paths to descendants with different order and depth
   	order:  TOP, BOTTOM
        depth:  0,1,2
  
   set up in archive:
   	str1: execute str2 & str3
   	str2: execute str3 
        str3: a leaf str
  
   Verify by comparing the returned paths with the expected
  

testcases/archive/retrieve.pi -----
   retrieve.pi -
   Test simple retrieve operations 
   
   retrieve structures:  	retrieve a simple structure
   retrieve structure networks:	retrieve a structure network
   retrieve all structures :	retrieve two structures 
   Verify by comparing the list of structure ids in CSS 
   against the expected

testcases/archive/retrnet.pi -----
   Test retrieve structure network operation with different conflict
   resolution flags: MAINTAIN,UPDATE,ABANDON
  
   Test in particular, that the operation would abort if any
   one of the structure ids has conflict when the conflict
   resolution flag has the value ABANDON.
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   Verify the structure identifiers in CSS after retrieval, 
   and the contents of the retrieved structures 
  
   setup:
   	in archive:  	0->1->2  3
        in CSS:	2'
   operations: 
  	retrieve str network 0&3
   expected results in CSS:
  	maintain:	0->1->2' 3	
  	abandon:	2'
  	update:		0->1->2  3  

testcases/archive/retrstr.pi -----
   retrstr.pi -
   Test retrieve structure operation with different conflict
   resolution flags: MAINTAIN,UPDATE,ABANDON
  
   Test in particular, that a structure in CSS remains intact
   after an unrelated retrieve operation.
  
   Note: a->b means str a executes str b, ae means struct a is empty,
         a' means this str a has same name as str a, but different contents
  
   Verify the structure identifiers in CSS after retrieval, 
   and the contents of the retrieved structures 
  
   setup:
   	in archive:  	0->1->2  3
        in CSS:	2' 3'	
   operations: 
  	retrieve str 0&3
   expected results in CSS:
  	maintain:	0->1e  2'  3'	(1e means str1 is empty)
  	abandon:	2' 3'
  	update:		0->1e  2'  3  

testcases/archive/specar1.pi -----
   specar1.pi -
   Test special cases archive all, retrieve all, and delete all operations
   Test that nothing bad happens when there is nothing to archive,
   retrieve or delete from archive.
  
   Verify the structure identifiers in archive 
  

testcases/archive/specar2.pi -----
   specar2.pi -
   Test special cases archive and retrieve operations 
  
   archive an open structure, verify the structure ids in archive and 
   that the structure remain open in CSS
  
   retrieve, using UPDATE resolution, a structure which is open in CSS, 
   verify that the structure remains open in CSS and verify its contents 
  

testcases/archive/specar3.pi -----
   specar3.pi -
   Test special cases archive operation using multiple archive files
  
   archive two structures into two archive files
  
   Verify the structure ids in both archive files, retrieve the structures
   and verify the contents.
  

testcases/archive/specar4.pi -----
   specar4.pi -
   archive structures 1,2,3
   retrieve structure 2
   modify structure 2
   archive modified structure 2
   retrieve the structures and verify the contents.
  

testcases/dcue/dcue1.pi -----
   dcue1.pi -
   Test depth cue mode, reference planes and scaling

testcases/dcue/dcue2.pi -----
   dcue2.pi -
   Test depth cuing with different primitives

testcases/dispctl/dccolrep.pi -----
   dccolrep.pi -  
   Test requirements:
     test display update with colour representation modification 

testcases/dispctl/dcdelstr.pi -----
   dcdelstr.pi -  
   Test requirements:
     test display update with delete structure 

testcases/dispctl/dclinerep.pi -----
   dclinerep.pi -  
   Test requirements:
     test display update with polyline bundle representation modification 

testcases/dispctl/dcviewrep.pi -----
   dcviewrep.pi -  
   Test requirements:
     test display update with view representation modification 

testcases/dispctl/dispupst1.pi -----
   dispupst1.pi -  
   Test requirements:
     Test that the default display
     Test set and inquire display deferral and modification modes 

testcases/dispctl/dispupst2.pi -----
   dispupst2.pi -  
   Test requirements:
     test display update with ws transformation modification (WAIT/NIVE,UQUM,UWOR)

testcases/dispctl/dispupst3.pi -----
   dispupst3.pi -  
   Test requirements:
     test display update with ws transformation  (ASAP,BNIG,BNIL/NIVE,UQUM,UWOR)
     Note: the cases of ASTI and BNIL/BNIG with no interaction underway are
           not tested since the effects of which are implementation dependent.

testcases/dispctl/redrawstr.pi -----
   redrawstr.pi -  
   Test requirements:
     test redraw all structures with control flags PFLAG_COND and PFLAG_ALWAYS

testcases/dispctl/updatews.pi -----
   updatews.pi -  
   Test requirements:
     test update workstation with regeneration flags POSTPONE and PERFORM

testcases/dispctl/dcinvis.pi -----
   dcinvis.pi -  
   Test requirements:
     test display update with invisibility filter modification 

testcases/dispctl/dcrefmod.pi -----
   dcrefmod.pi -  
   Test requirements:
     test display update with reference modification 

testcases/error/errhandle1.c -----
    errhandle1.c:
    Verify that error output is directed to standard error by default,
    or to the specified error file.
    Verify the default error handling mode is OFF, set and inquire the current
    error handling mode.
    Verify that if error handling mode is turn OFF, no error messages
    are genreated.

testcases/error/errhandle2.c -----
    errhand2.c:
    Install an error handler, verify that it is called upon a PHIGS error.
   

testcases/face/cull1.pi -----

testcases/face/cull2.pi -----
   cull2.pi -
   Test face culling with different primitives

testcases/fillarea/fa1.pi -----
   fa1.pi -  
   Test fill area geometry 
  	. triangle
  	. quadrilateral
  	. bowtie
  	. self crossing area
  	. n vertexes: n = 129
   Test individual interior attributes:
  	. interior style
  	. interior colour index

testcases/fillarea/fa2.pi -----
   fa2.pi -  
   Test fill area geometry, test adjacent fill areas 
   also test interior colour and interior colour index attributes

testcases/fillarea/fa3.pi -----
   fa3.pi -  
   Test fill area bundle attributes
  	. interior style
  	. interior colour index

testcases/fillarea/fas1.pi -----
   fas1.pi -  
   Test fill area set geometry 
   with 1-set and with edge ON
  	. triangle
  	. quadrilateral
  	. bowtie
  	. self crossing area
  	. n vertexes: n = 129
   Test individual interior attributes: 
  	. interior style
  	. interior colour index
  	. edge flag
  	. edge width
  	. edge colour index

testcases/fillarea/fas2.pi -----
   fas2.pi -  
   Test normal fill area set geometry, with 2-set and n-set, n=150

testcases/fillarea/fas3.pi -----
   fas3.pi -  
   Test adjacent fill area set edges 
   also test interior and edge colour, interior and edge colour indices

testcases/fillarea/fas4.pi -----
   fas4.pi -  
   Test fill area set with combinations of edge type, edge colour and interior
   style

testcases/fillarea/fas5.pi -----
   fas5.pi -  
   Test fill area set with combinations of edge type and edge width 

testcases/fillarea/fas6.pi -----
   fas6.pi -  
   Test fill area set bundle attributes
  	. interior style
  	. interior colour index
  	. interior colour
        . edge flag
        . edge colour index
        . edge colour
        . edge width

testcases/fillarea/fas7.pi -----
   fas7.pi -  
   Test requirements:
     Test that fill area set attributes ,which are set in a parent 
     structure, are inherited by a child structure.
     individual fill area set attributes :
        edge type:
        edge width scale factor:
        edge colour index:
        fill area interior style:
        fill area interior colour index:

testcases/fillarea/fa4.pi -----

testcases/fillarea/fas8.pi -----

testcases/filter/highl.pi -----
   highl.pi -  
     Test combinations of highlight filters and name sets 
     Verify the highlighting of the primitive accordingly.

testcases/filter/invis.pi -----
   invis.pi -  
     Test combinations of invisibility filters and name sets 
     Verify the invisibility of the primitive accordingly.

testcases/filter/pick.pi -----
   pick.pi -  
     Test combinations of pick filters and name sets 
     Verify the picking of the primitive accordingly.

testcases/input/loc1.pi -----
   loc1.pi -  
   Test initialize locator, inquire locator state (verify initialized values)
   Sample locator, verify the values is same as intialized

testcases/input/loc2.pi -----
   loc2.pi -  
   Test setting locator mode, inquire locator state (verify values that are set)

testcases/input/loc3.pi -----
   loc3.pi -  
   Test locator in SAMPLE mode, fake a locator input, verify the result

testcases/input/loc4.pi -----
   loc4.pi -  
   Test locator in REQUEST mode, fake a locator input, verify the result

testcases/input/loc5.pi -----
   loc5.pi -  
   Test locator in EVENT mode, fake a locator input, verify the result

testcases/input/event1.pi -----
   event1.pi -  
   Test await event with multiple workstation 

testcases/input/event2.pi -----
   event2.pi -  
   Test await event with different timeout values

testcases/input/event3.pi -----
   event3.pi -  
   Test await event with sucessive events 
   verify that the events are detected in order

testcases/input/event4.pi -----
   event4.pi -  
   Test flush events with locator events
   verify that all locator events are removed from the input queue 
   after a flush locator event operation

testcases/input/event5.pi -----
   event5.pi -  
   Test inquire more simultaneous events
   verify that simultaneous events are handled properly

testcases/input/event6.pi -----
   event5.pi -  
   Test inquire input overflow
   verify that when no input overflow, the error 257 is returned

testcases/input/choice1.pi -----
   choice1.pi -  
   Test initialize choice, inquire choice state (verify initialized values)
   Sample choice, verify the value is same as the initialized

testcases/input/choice2.pi -----
   choice2.pi -  
   Test setting choice mode, inquire choice state (verify values that are set)

testcases/input/val1.pi -----
   val1.pi -  
   Test initialize valuator, inquire valuator state (verify initialized values)
   Sample valuator, verify the value is same as initialized

testcases/input/val2.pi -----
   val2.pi -  
   Test setting valuator mode, inquire valuator state (verify values that are set)

testcases/input/viewpri1.pi -----
   viewpri1.pi -  
   Test setting of view tranform input priority, 
   inquire list of view indices and verify the order of the view indices

testcases/input/viewpri2.pi -----
   viewpri2.pi -  
   Test view tranform input priority with locator input
   set view 1 to be of the highest priority, perform SAMPLE locator,
   verify that the resulting locator position has been transfromed
   using view 1.

testcases/input/string1.pi -----
   string1.pi -  
   Test initialize string, inquire string state (verify initialized values)
   Sample string, verify that value is same as initialized

testcases/input/string2.pi -----
   string2.pi -  
   Test setting string mode, inquire string state (verify values that are set)

testcases/input/pick1.pi -----
   pick1.pi -  
   Test initialize pick, inquire pick state (verify initialized values)
   Sample pick, verify the pick path and status is as initialized

testcases/input/pick2.pi -----
   pick2.pi -  
   Test setting pick mode, inquire pick state (verify values that are set)

testcases/input/pick3.pi -----
   pick3.pi -  
   Test pick in SAMPLE mode, fake a pickator input, verify the result

testcases/input/pick4.pi -----
   pick4.pi -  
   Test pick in REQUEST mode, fake a pickator input, verify the result

testcases/input/pick5.pi -----
   pick5.pi -  
   Test pick in EVENT mode, fake a pickator input, verify the result

testcases/input/pick6.pi -----
   pick6.pi -  
   Test picking structure network, verify that pick path is correctly returned
   Also test that pick ID attribute inheritance

testcases/input/pick7.pi -----
   pick7.pi -  
   Test that only unclipped portion of a primitive is pickable

testcases/input/pick8.pi -----
   pick8.pi -  
   Test picking on modelling transformed primitives, 

testcases/input/pick9.pi -----
   pick9.pi -  
   Test that only visible primitive is pickable

testcases/input/pick10.pi -----
   pick10.pi -
   Test picking with different primitives

testcases/input/stroke1.pi -----
   stroke1.pi -  
   Test initialize stroke, inquire stroke state (verify initialized values)
   Sample stroke, verify the values is same as initialized

testcases/input/stroke2.pi -----
   stroke2.pi -  
   Test setting stroke mode, inquire stroke state (verify values that are set)

testcases/iss/iss1.pi -----
   iss1.pi -  
   Test requirements:
     Test that incremental spatial search operation works with various starting 
     paths. Test the incremental properties, that is, to use a starting path 
     which resulted path from a previous search operation. 

testcases/iss/iss2.pi -----
   iss2.pi -  
   Test requirements:
     Test that incremental spatial search operation works with or without 
     a ceiling

testcases/iss/iss3.pi -----
   iss3.pi -  
   Test requirements:
     Test that incremental spatial search operation works with search filter

testcases/iss/iss4.pi -----
   iss4.pi -  
   Test requirements:
     Test that incremental spatial search(3) operation works with various 
     reference points and distances

testcases/iss/iss5.pi -----
   iss5.pi -  
   Test requirements:
     Test that incremental spatial search(3) operation works with model 
     clipping

testcases/iss/iss6.pi -----
   iss6.pi -
   Test incremental spatial search with different primitives

testcases/light/light1.pi -----

testcases/light/light2.pi -----

testcases/light/light3.pi -----

testcases/light/light4.pi -----

testcases/light/light5.pi -----

testcases/nurbs/nurbsc1.pi -----
   nurbsc1.pi
   test nurbs curve geometry and line attributes
  	. order 3
  	. order 4
  	. multiple knots
  	. multiple control points
  	. rational/nonrational curves
  	. line width
  	. line type
  	. line colour index
  	. line colour

testcases/nurbs/nurbsc2.pi -----
   nurbsc2.pi
   test nurbs curve approximation criteria
  	. PCURV_WS_DEP
  	. PCURV_CONSTANT_PARAMETRIC_BETWEEN_KNOTS
  	. PCURV_CHORDAL_SIZE_WC
  	. PCURV_CHORDAL_SIZE_NPC
  	. PCURV_CHORDAL_DEVIATION_WC
  	. PCURV_CHORDAL_DEVIATION_NPC
   Also test bundle attributes

testcases/nurbs/nurbss4.pi -----
   nurbss4.pi
   test nurbs surface with reflectance attributes
   Test triangle strip with data geometry with reflectance attributes
         . reflectance properties
         . reflectance charactics
         . back reflectance properties
         . back reflectance charactics
   with positional and ambient light source 

testcases/nurbs/nurbsc3.pi -----
   nurbsc3.pi
   test nurbs curve bundle attributes
  	. LINE_COLR_IND
  	. LINETYPE
  	. LINEWIDTH
  	. CURVE_APPROX_CRITERIA
  	. CURVE_APPROX_VALUE

testcases/nurbs/nurbss1.pi -----
   nurbss1.pi
   test nurbs surface geometry with trimming curves
   	. 1 trim curve consisting of 1 curve
   	. 1 trim curve consisting of 2 curves
   	. 2 trim curves each consisting of 1 curve

testcases/nurbs/nurbss2.pi -----
   nurbss2.pi
   test nurbs surface with edge and interior attributes and face distingush mode
         . back int colour
         . back int style
         . int colour
         . int style
         . edge flag
         . edge colour
         . edge type
         . edge width

testcases/nurbs/nurbss3.pi -----

testcases/nurbs/nurbss5.pi -----
   nurbss5.pi
   test nurbs surface approximation criteria
         . PSURF_WS_DEP
         . PSURF_CONSTANT_PARAMETRIC_BETWEEN_KNOTS
         . PSURF_CHORDAL_SIZE_WC
         . PSURF_CHORDAL_SIZE_NPC
         . PSURF_PLANAR_DEVIATION_WC
         . PSURF_PLANAR_DEVIATION_NPC

testcases/nurbs/nurbss6.pi -----
   nurbss6.pi
   test nurbs parametric surface 
   	. UNIFORM, NON-UNIFORM placement
   	. different u,v count
   test with multiple knots

testcases/pdtwdt/pdt.c -----
    pdt.c : 
    compares the implementation dependent data in PHIGS description table
    against the values returned from inquiries:
   
    1: to test pinq_phigs_facs
    2: to test pinq_list_avail_gse_facs 
    3: to test pinq_model_clip_facs, 
    4: to test pinq_list_avail_ws_types

testcases/pdtwdt/wdt1.c -----
    wdt1.c : 
    compares the implementation dependent data in workstation description table
    against the values returned from inquiries:
    Testing inqure xxx facilities:
   
    1: to test pinq_hlhsr_mode_facs, pinq_hlhsr_id_facs 
    2: to test pinq_view_facs 
    3: to test pinq_line_facs
    4: to test pinq_marker_facs
    5: to test pinq_text_facs
    6: to test pinq_anno_facs
    7: to test pinq_int_facs
    8: to test pinq_pat_facs
    9: to test pinq_edge_facs
    10:to test pinq_colr_model_facs
    11:to test pinq_colr_facs

testcases/pdtwdt/wdt2.c -----
    wdt2.c : 
    compares the implementation dependent data in workstation description table
    against the values returned from inquiries:
    Testing "inqure predefined xxx representations" and
    "inquire list of xxx indices":
   
    1: to test pinq_list_view_inds, pinq_pred_view_rep
    2: to test pinq_list_line_inds, pinq_pred_line_rep
    3: to test pinq_list_marker_inds, pinq_pred_marker_rep
    4: to test pinq_list_text_inds, pinq_pred_text_rep
    5: to test pinq_list_int_inds, pinq_pred_int_rep
    6: to test pinq_list_edge_inds, pinq_pred_edge_rep
    7: to test pinq_list_pat_inds, pinq_pred_pat_rep
    8: to test pinq_list_colr_inds, pinq_pred_colr_rep

testcases/pdtwdt/wdt3.c -----
    wdt3.c : 
    compares the implementation dependent data in workstation description table
    against the values returned from inquiries.
    Testing miscellaneous workstation dependent inquires:
   
    1: to test pinq_ws_conn_type
    2: to test pinq_ws_cat, 
    3: to test pinq_ws_class
    4: to test pinq_ws_st_table
    5: to test pinqdisplayspacesize,
    6: to test pinqdisplayspacesize3
    7: to test pinq_dyns_ws_attrs 
    8: to test pinq_dyns_structs
    9: to test pinq_num_disp_pris
    10:to test pinq_def_disp_upd_st
    11:to test pinq_gdp, pinq_list_avail_gdp
    12:to test pinq_gdp3, pinq_list_avail_gdp3
    13:to test pinq_list_avail_gse

testcases/pdtwdt/wdt4.c -----
    wdt4.c : 
    compares the implementation dependent data in workstation description table
    against the values returned from inquiries.
    Testing input inquires:
   
    1: to test pinq_num_avail_in 
    2: to test pinq_def_loc_data 
    3: to test pinq_def_loc_data3 
    4: to test pinq_def_choice_data 
    5: to test pinq_def_choice_data3 
    6: to test pinq_def_pick_data 
    7: to test pinq_def_pick_data3 
    8: to test pinq_def_string_data 
    9: to test pinq_def_string_data3 
    10:to test pinq_def_stroke_data 
    11:to test pinq_def_stroke_data3 
    12:to test pinq_def_val_data 
    13:to test pinq_def_val_data3 

testcases/pdtwdt/wdt5.c -----
    wdt5.c : 
    compares the implementation dependent data in workstation description table
    against the values returned from inquiries:
    Testing PHIGS+ inqure xxx facilities and ws state tables
   
    1: to test pinq_line_facs_plus
    2: to test pinq_int_facs_plus
    3: to test pinq_dcue_facs
    4: to test pinq_light_src_facs
    5: to test pinq_curv_surf_facs
    6: to test pinq_direct_colr_model_facs
    7: to test pinq_rendering_colr_model_facs
    8: to test pinq_colr_map_facs
    9: to test pinq_ws_st_table_plus
    10: to test pinq_dyns_ws_attrs_plus

testcases/pdtwdt/wdt6.c -----
    wdt6.c : 
    compares the implementation dependent data in workstation description table
    against the values returned from inquiries:
    Testing PHIGS+'s "inqure predefined xxx representations" and
    "inquire list of xxx indices":
   
    1: to test pinq_list_light_src_inds, pinq_pred_light_src_rep
    2: to test pinq_list_dcue_inds, pinq_pred_dcue_rep
    3: to test pinq_list_colr_map_inds, pinq_pred_colr_map_rep
    4: to test pinq_pred_line_rep_plus
    5: to test pinq_pred_marker_rep_plus
    6: to test pinq_pred_int_rep_plus
    7: to test pinq_pred_text_rep_plus
    8: to test pinq_pred_edge_rep_plus
    9: to test pinq_pred_pat_rep_plus

testcases/plinedata/pldata1.pi -----
   pldata1.pi - test ppolyline_set3_data with a few different
   geometries and widths, with vertex data.  Combinations tested:
   - set of one single-vertex polyline (not expected to draw)
   - set of one multi-vertex polyline
   - set of two single-vertex polylines (also not expected to draw)
   - set of three polylines, of 3, 1, and 4 vertices

testcases/plinedata/pldata2.pi -----
   pldata2.pi - test ppolyline_set3_data with different types and widths.
   For each of several widths, render polyline sets of 4 types.

testcases/plinedata/pldata3.pi -----
   pldata3.pi - test ppolyline_set3_data with index color.
   Draw a multi-segment polyline set, and automatically
   confirm color at 3 midpoints.

testcases/plinedata/pldata4.pi -----
   pldata4.pi - test ppolyline_set3_data with no vertex color.
   Draw four polyline sets, each with a different line colour
   and line type set.

testcases/plinedata/pld_inher.pi -----
   pld_inher.pi -  
     Test that polyline attributes ,which are set in a parent 
     structure, are inherited by a child structure, while
     attributes set in child are not passed up to parent.
     attributes used:
        line type 
        line width

testcases/poly/polyline1.pi -----
   @(#)polyline1.pi	5.1 2/13/91
   polyline1 - test /*WARNING: parameters changed */ ppolyline with all default attributes, and different
   numbers of points: 0, 1, 2, 3, and 10

testcases/poly/polyline2.pi -----
   @(#)polyline2.pi	5.1 2/13/91
   polyline2 - test /*WARNING: parameters changed */ ppolyline with all various combinations of widths and
   line types.

testcases/poly/polyline3.pi -----
   @(#)polyline3.pi	5.1 2/13/91
   polyline3 - test ppolyline with colors 0-7

testcases/poly/polyline4.pi -----
   @(#)polyline4.pi	5.1 2/13/91
   polyline4- test ppolyline with all combinations of widths and
   line types - based on polyline2, but ordering differently to
   work around bug.

testcases/poly/polymark1.pi -----
   polymark1 - test ppolymarker with all default attributes, and different
   numbers of points: 0, 1, 2, 3, and 10

testcases/poly/pl_inher.pi -----
   pl_inher.pi -  
     Test that polyline attributes ,which are set in a parent 
     structure, are inherited by a child structure.
     individual line attributes :
        line colour index
        line type 
        line width

testcases/poly/pm_inher.pi -----
   pm_inher.pi -  
     Test that polymarker attributes, which are set in a parent 
     structure, are inherited by a child structure.
     individual text attributes :
        marker colour index
        marker type 
        marker scale factor

testcases/poly/polymark3.pi -----
   polymark3.pi - test centering and appearance of five polymarker types.  
   Draw a large polymarker
   of each type against a differently-colored crosshair of polylines.
   The lines are in a structure posted at lower priority, so they 
   should be underneath.

testcases/poly/polymark2.pi -----
   polymark2.pi - test polymarker with different combinations of size and 
   type. Draws a grid of 5 marker types at 5 different sizes.

testcases/poly/polymark4.pi -----
   polymark4.pi - test for interference of polymarker and polyline
   attributes.  Draw primitives with different combinations of color and 
   size, overlapping the setting of attributes.

testcases/rep/colrep.pi -----
   colourrep.pi -  
   Test set and inquire colour representation
   Verify by inquiring the colour representation and test against the expected

testcases/rep/edgerep.pi -----
   edgerep.pi -  
   Test set and inquire edge representation
   Verify by inquiring the edge representation and test against the expected

testcases/rep/interrep.pi -----
   interrep.pi -  
   Test set and inquire interior representation
   Verify by inquiring the interior representation and test against the expected

testcases/rep/linerep.pi -----
   linerep.pi -  
   Test set and inquire polyline representation
   Verify by inquiring the polyline representation and test against the expected

testcases/rep/markerrep.pi -----
   markerrep.pi -  
   Test set and inquire polymarker representation
   Verify by inquiring the polymarker representation and test against the expected

testcases/rep/patrep.pi -----
   patrep.pi -  
   Test set and inquire pattern representation
   Verify by inquiring the pattern representation and test against the expected

testcases/rep/textrep.pi -----
   textrep.pi -  
   Test set and inquire text representation
   Verify by inquiring the text representation and test against the expected

testcases/rep/viewrep.pi -----
   viewrep.pi -  
   Test set and inquire view representation
   Verify by inquiring the view representation and test against the expected

testcases/rep/dcuerep.pi -----
   dcuerep.pi -  
   Test set and inquire depth cue representation
   Verify by inquiring the depth cue representation and test against the 
   expected

testcases/rep/lightrep.pi -----
   lightrep.pi -  
   Test set and inquire light source representation
   Verify by inquiring the light source representation and test against the 
   expected

testcases/search/elemsrch1.pi -----
   elemsrch1.pi -  
   Test requirements:
     Test that element search operation works with various starting elements,
     and search directions. Test with an inclusion set which contains three 
     search elements, and an exclusion set which contains one search elements.

testcases/search/elemsrch2.pi -----
   elemsrch2.pi -  
   Test requirements:
     Test that element search operation works with different starting elements,
     and search directions. Test with an inclusion set that contains the
     search element PELEM_ALL, and an exclusion set that contains the search 
     element PELEM_NIL.

testcases/search/elemsrch3.pi -----
   elemsrch3.pi -  
   Test requirements:
     Test that element search operation works with different starting elements,
     and search directions. Test with an inclusion set which contains the
     search element PELEM_ALL and a search element that corresponds to an 
     existing element of the structure to be searched, and an empty exclusion 
     set. Test with a closed structure. 

testcases/search/elemsrch4.pi -----
   elemsrch4.pi -  
   Test requirements:
     Test that element search operation works with different starting elements
     and search directions. Test with an empty structure.

testcases/shared/macro.pi -----

testcases/shared/apimacro.pi -----

testcases/shared/strmacro.pi -----

testcases/shared/xpmacro.pi -----

testcases/shared/shmacro.pi -----

testcases/shared/scmacro.pi -----

testcases/shared/dcmacro.pi -----
   dcmacro.pi -  

testcases/shared/armacro.pi -----

testcases/statectl/archivest.pi -----
   archivest.pi -
   Test archive operating state 
   Test the following sequences:
   open archfile1, close archfile1, open archfile1 open archfile2,
   close archfile2, close archfile1
   Verify archive state changes 
   Verify the list of opened archive files

testcases/statectl/emclphigs.pi -----
   emclphigs.pi -
   Test emergency close phigs
   Test pemergency_close_phigs under PSYS_ST_PHOP,PSTRUCT_ST_STOP,PWS_ST_WSOP and PST_AROP,
   Verify that system state = PHCL.
   Try open phigs after emergencyclosephigs
   verify that system state = PHOP

testcases/statectl/structst.pi -----
   structst.pi -
   Test structure operating state 
   Test the following sequences:
   open str1, close str1, open str2 close str2, open str1
   Verify structure state changes 
   Verify the list of structure identifiers

testcases/statectl/systemst.pi -----
   systemst.pi -
   Test system operating state 
   Test the following sequences: 
   open phigs, close phigs, open phigs, close phigs
   Verify system state changes 
   open phigs

testcases/statectl/wsst1.pi -----
   wsst1.pi -
   Test X drawable workstation operating state 
   Test the following sequences:
   open ws1, close ws1, open ws1, open ws2, close ws2
   Verify workstation states changes 
   Verify the set of opened workstations

testcases/statectl/wsst2.pi -----
   wsst2.pi -
   Test X tool workstation operating state 
   Test the following sequences:
   open ws1, close ws1, open ws1, open ws2, close ws2
   Verify workstation states changes 
   Verify the set of opened workstations

testcases/strcon/copyall2.c -----
   copyall2.c - test pcopy_all_elems_struct() on some variable-length
   data - copy a structure with some variable-length elements,
   confirm with pinq_elem_content().

testcases/strcon/elemcon9.c -----
   elemcon9.c - test pinq_elem_type_size, pinq_elem_content,
   pinq_cur_elem_type_size, and pinq_cur_elem_content, as well
   as archiving and structure copying, for all element types.
   Command line switches turn on or off the different
   types of testing, and integer arguments specify structure
   elements to be stored; these two types of arguments can
   be freely intermixed.  Test execution scripts may choose
   to execute this test multiple times with different sets
   of elements.
  		 * ADD NAMES TO SET
  		 * ANNOTATION STYLE
  		 * ANNOTATION TEXT ALIGNMENT
  		 * ANNOTATION TEXT CHARACTER HEIGHT
  		 * ANNOTATION TEXT CHARACTER UP VECTOR
  		 * PELEM_ANNO_PATH
  		 * PELEM_ANNO_TEXT_REL
  		 * PELEM_ANNO_TEXT_REL3
  		 * PELEM_APPL_DATA
  		 * PELEM_CELL_ARRAY
  		 * PELEM_CELL_ARRAY3
  		 * PELEM_CHAR_EXPAN
  		 * PELEM_CHAR_HT
  		 * PELEM_CHAR_SPACE
  		 * PELEM_CHAR_UP_VEC
  		 * PELEM_EDGE_COLR_IND
  		 * PELEM_EDGE_FLAG
  		 * PELEM_EDGE_IND
  		 * PELEM_EDGETYPE
  		 * PELEM_EDGEWIDTH
  		 * PELEM_EXEC_STRUCT
  		 * PELEM_FILL_AREA
  		 * PELEM_FILL_AREA_SET
  		 * PELEM_FILL_AREA_SET3
  		 * PELEM_FILL_AREA3
  		 * PELEM_GLOBAL_MODEL_TRAN	
  		 * PELEM_GLOBAL_MODEL_TRAN3	
  		 * PELEM_HLHSR_ID
  		 * PELEM_INDIV_ASF
  		 * PELEM_INT_COLR_IND
  		 * PELEM_INT_IND
  		 * PELEM_INT_STYLE
  		 * PELEM_INT_STYLE_IND
  		 * PELEM_LABEL
  		 * PELEM_LINETYPE
  		 * PELEM_LINEWIDTH
  		 * PELEM_LOCAL_MODEL_TRAN
  		 * PELEM_LOCAL_MODEL_TRAN3
  		 * PELEM_MARKER_COLR_IND
  		 * PELEM_MARKER_SIZE
  		 * PELEM_MARKER_TYPE
  		 * PELEM_MODEL_CLIP_IND
  		 * PELEM_MODEL_CLIP_VOL
  		 * PELEM_MODEL_CLIP_VOL3
  		 * PELEM_PAT_REF_POINT
  		 * PELEM_PAT_REF_POINT_VECS
  		 * PELEM_PAT_SIZE
  		 * PELEM_PICK_ID
  		 * PELEM_POLYLINE
  		 * PELEM_LINE_COLR_IND
  		 * PELEM_LINE_IND
  		 * PELEM_POLYLINE3
  		 * PELEM_POLYMARKER
  		 * PELEM_MARKER_IND
  		 * PELEM_POLYMARKER3
  		 * PELEM_REMOVE_NAMES_SET
  		 * PELEM_RESTORE_MODEL_CLIP_VOL
  		 * PELEM_TEXT
  		 * PELEM_TEXT_ALIGN
  		 * PELEM_TEXT_COLR_IND
  		 * PELEM_TEXT_ALIGN
  		 * PELEM_TEXT_COLR_IND
  		 * PELEM_TEXT_FONT
  		 * PELEM_TEXT_IND
  		 * PELEM_TEXT_PATH
  		 * PELEM_TEXT_PREC
  		 * PELEM_TEXT3
  		 * PELEM_VIEW_IND
  		 * PELEM_REFL_PROPS
  		 * PELEM_BACK_REFL_PROPS
  		 * PELEM_BACK_INT_COLR
  		 * PELEM_BACK_INT_REFL_EQN
  		 * PELEM_BACK_INT_SHAD_METH
  		 * PELEM_BACK_INT_STYLE
  		 * PELEM_BACK_INT_STYLE_IND
  		 * PELEM_CURVE_APPROX_CRIT		
  		 * PELEM_DCUE_IND
  		 * PELEM_EDGE_COLR
  		 * PELEM_FACE_CULL_MODE
  		 * PELEM_FACE_DISTING_MODE
  		 * PELEM_FILL_AREA_SET3_DATA
  		 * PELEM_INT_COLR
  		 * PELEM_INT_REFL_EQN
  		 * PELEM_INT_SHAD_METH
  		 * PELEM_LIGHT_SRC_STATE
  		 * PELEM_LINE_COLR
  		 * PELEM_POLYLINE_SET3_DATA		
  		 * PELEM_LINE_SHAD_METH
  		 * PELEM_MARKER_COLR
  		 * PELEM_QUAD_MESH3_DATA
  		 * PELEM_SURF_APPROX_CRIT
  		 * PELEM_TEXT_COLR
  		 * PELEM_TRI_STRIP3_DATA

testcases/strcon/copyall1.pi -----
   copyall1.pi - test pcopy_all_elems_struct() by copying from
   non-existent and empty structure, and from multi-element
   structure.  Copy into beginning, middle, and end of a 
   structure.

testcases/strcon/delelem1.pi -----
   delelem1.pi - test pdel_elem on empty structure, single element structure,
   and with element pointer == 0

testcases/strcon/delelem2.pi -----
   delelem2.pi - test pdel_elem(), deleting from beginning, middle,
   and end of multi-element structure, and calling with struct ptr = 0.

testcases/strcon/dellabel1.pi -----
   dellabel1.pi - test DELETE ELEMENTS BETWEEN LABELS
   using labels of different value, and of same value.

testcases/strcon/delrange1.pi -----
   delrange1.pi - test DELETE ELEMENT RANGE with empty structure,
   deleting the only element in a structure,
   and in the middle of a loaded structure with ptr1 {<,>,==} ptr2

testcases/strcon/delrange2.pi -----
   delrange2.pi - test DELETE ELEMENT RANGE deleting elements at
   beginning and end of a structure

testcases/strcon/editmode1.pi -----
   editmode1.pi - simple test of setting and inquiry of edit mode,
   with and without workstations open - tests pset_edit_mode(), pinq_edit_mode().

testcases/strcon/editmode2.pi -----
   editmode2.pi - test functionality of REPLACE edit mode when
   element pointer is 0, with empty and non-empty structure

testcases/strcon/editmode3.pi -----
   editmode3.pi - test functionity of REPLACE (and INSERT) edit mode. 
   Try replacing a first element, last element,
   and middle element.  Also use INSERT mode to build up structure.

testcases/strcon/editmode4.pi -----
   editmode4.pi - test functionity of INSERT edit mode. 
   Insert elements into an empty structure, and at beginning, middle,
   and end of existing structure.

testcases/strcon/elemptr1.pi -----
   elemptr1.pi - basic test of setting & inquiring element pointer.
   Inquire element pointer before touching structure, after adding
   elements, after setting to less than 0, after setting to value
   higher than number of elements, after adding elements in middle
   of structure.

testcases/strcon/emptystr1.pi -----
   emptystr1.pi - test pempty_struct() on a non-existent structure,
   a closed structure, and an open structure (with and without contents).
   Verify with pinq_struct_status().

testcases/strcon/offset1.pi -----
   offset1.pi - test poffset_elem_ptr() with positive, negative, and zero offset,
   with negative offset where current+offset < 0, and 
   with positive offset where current+offset > length of structure.

testcases/strcon/openstr1.pi -----
   openstr1.pi - test pinq_open_struct() with no opened structure,
   with an open structure, and after a structure has been opened
   and closed.

testcases/strcon/openstr2.pi -----
   openstr2.pi - after opening a workstation, test pinq_open_struct() 
   with no opened structure, with an open structure, and after a 
   structure has been opened and closed.  

testcases/strcon/ptrlabel1.pi -----
   ptrlabel1.pi - test SET ELEMENT POINTER AT LABEL under following
   conditions: before first, middle, last occurrence;
   with different label between ptr and argument label

testcases/strcon/ptrlabel2.pi -----
   ptrlabel2.pi - test SET ELEMENT POINTER AT LABEL under error
   conditions: with no occurrence of the specified label,
   and after the last occurrence of the label

testcases/strcon/strstat1.pi -----
   strstat1.pi - test pinq_struct_status() on a non-existent structure,
   an empty structure, and a non-empty structure.

testcases/strman/changeid1.pi -----
   changeid1.pi - test pchange_struct_id() where original structure
   is non-existent or empty.

testcases/strman/delstr1.pi -----
   delstr1.pi - test pdel_struct() on non-existent structure, 
   and simple open and closed single-level structures.

testcases/strman/delstr2.pi -----
   delstr2.pi - test Delete Structure on multi-level structures.
   test that deleting a child causes the reference in the parent
   to be deleted (rendering the structure empty if it's the only
   element)
   Test that deleting a parent does not delete a child.

testcases/strman/delstr3.pi -----
   delstr3.pi -- deleting empty and non-empty open structures.
   Structure should still exist, but be empty.  References
   to it should be deleted.

testcases/strman/delstr4.pi -----
   delstr4.pi - deleting posted structures:
   delete empty and non-empty posted structures,
   and empty and non-empty open posted structures.

testcases/strman/delstr5.pi -----
   delstr5.pi - Deleting structures referenced in current open struct.
   test that deleting a child causes the reference in the open parent
   to be deleted, and the current element pointer adjusted 
   appropriately.  

testcases/strman/delallst1.pi -----
   delallst1.pi - test pdel_all_structs() on nonexistent, simple open and closed
   single-level structures.  Confirm by not core dumping, and with
   pinq_struct_status, pinq_struct_ids.

testcases/strman/delallst2.pi -----
   delallst2.pi - test pdel_all_structs() with multi-level posted structures.
   Create some, and delete, confirming with pinq_struct_status()
   and by inquiring posted structures.

testcases/strman/delstnet1.pi -----
   delstnet1.pi - test pdel_struct() on non-existent structure, 
   and simple open and closed single-level structures.

testcases/strman/delstnet2.pi -----
   delstnet2.pi - test pdel_struct() on simple open and closed
   single-level structures.

testcases/strman/delstr6.pi -----
   delstr6.pi - Deleting structures referenced in a different, closed struct.
   The reference in the closed structure should be deleted. 

testcases/strman/poststr1.pi -----
   poststr1.pi - post non-existent, open, and closed structures, test
   with pinq_posted_structs() pinq_struct_status(), plus pixel retrieval 
   (reading back polymarkers). Non-existent structure should be
   created, open and closed structs should be successfully posted.

testcases/strman/poststr2.pi -----
   poststr2.pi - post overlapping structures with different
   priority. Re-post the lower priority structure at a higher priority.
   Confirm that the fill area in the higher-priority
   structure is drawn on top, using pixel readback.

testcases/strman/poststr3.pi -----
   poststr3.pi - post two structures at different priorities
   on two different workstations.  On each workstation,
   confirm that the fill area in the higher-priority
   structure is drawn on top, using pixel readback.

testcases/strman/unpostal1.pi -----
   unpostal1.pi - test punpost_all_structs() by posting multiple
   structures to multiple workstations, unposting from one, 
   and confirming with pinq_posted_structs.

testcases/text/atx1.pi -----
   atx1.pi -  
   Test annotation text geometry and style 

testcases/text/atx10.pi -----
   atx10.pi -  
   Test annotation text bundle attributes
        char expansion:
        char spacing:
        text colour index:
        text colour:
        text font:
        text precision

testcases/text/atx11.pi -----
   atx11.pi -  
     Test that annotation text attributes ,which are set in a parent 
     structure, are inherited by a child structure.
     individual text attributes :
        annotation char height:
        annotation char upvector:
        annotation text path:
        annotation text alignment:
        annotation style:
  
        char expansion:
        char spacing:
        text colour index:

testcases/text/atx2.pi -----
   atx2.pi -  
   Test individual annotation text attributes :
        text colour index: 

testcases/text/tx2.pi -----
   tx2.pi -  
   Test individual text attributes :
        text colour index: 

testcases/text/atx4.pi -----
   atx4.pi -  
   Test individual annotation text attributes :
        annotation char upvector: 

testcases/text/atx5.pi -----
   atx5.pi -  
   Test individual annotation text attributes :
        char expansion: 

testcases/text/atx7.pi -----
   atx7.pi -  
   Test individual annotation text attributes :
        annotation char height: 

testcases/text/atx8.pi -----
   atx8.pi -  
   Test individual annotation text attributes :
        annotation text alignment: 

testcases/text/atx9.pi -----
   atx9.pi -  
   Test individual annotation text attributes :
        text font: 
        text precision: 
        text colour: 

testcases/text/tx1.pi -----
   tx1.pi -  
   Test text geometry

testcases/text/tx6.pi -----
   tx6.pi -  
   Test char spacing :
        char spacing: 

testcases/text/atx6.pi -----
   atx6.pi -  
   Test annotation text attributes :
        char spacing: 

testcases/text/tx10.pi -----
   tx10.pi -  
   Test text bundle attributes
        char expansion:
        char spacing:
        text colour index:
        text colour:
        text font:
        text precision

testcases/text/tx3.pi -----
   tx3.pi -  
   Test individual text attributes :
        text path: 

testcases/text/atx3.pi -----
   atx3.pi -  
   Test individual annotation text attributes :
        annotation text path: 

testcases/text/tx4.pi -----
   tx4.pi -  
   Test individual text attributes :
        char upvector: 

testcases/text/tx8.pi -----
   tx8.pi -  
   Test individual text attributes :
        text alignment: 

testcases/text/tx5.pi -----
   tx5.pi -  
   Test individual text attributes :
        char expansion: 

testcases/text/tx11.pi -----
   tx11.pi -  
     Test that text attributes ,which are set in a parent 
     structure, are inherited by a child structure.
     individual text attributes :
        char height:
        char upvector:
        text path:
        text alignment:
  
        char expansion:
        char spacing:
        text colour index:

testcases/text/tx7.pi -----
   tx7.pi -  
   Test individual text attributes :
        char height: 

testcases/text/tx9.pi -----
   tx9.pi -  
   Test individual text attributes :
        text font: 
        text precision: 
        text colour:

testcases/triquad/ts1.pi -----
   ts1.pi
   Test triangle strip geometry and facet/vertex colour
   	. 3 vertices FACET_COLOUR (indirect) VERT_COORD 
   	. 4 vertices FACET_NONE,VERT_COORD_COLOUR (RGB)
   	. 4 vertices FACET_COLOUR (RGB) VERT_COORD 
   	. 5 vertices FACET_NONE,VERT_COORD
   	. 3 vertices FACET_COLOUR (RGB) VERT_COORD_COLOUR (RGB) 

testcases/triquad/qm1.pi -----
   qm1.pi
   Test Quad Mesh geometry and facet/vertex colour
   	. 2*2 quad mesh FACET_COLOUR (indirect), VERT_COORD
   	. 3*3 quad mesh FACET_NONE, VERT_COORD_COLOUR (RGB)
   	. 3*3 quad mesh FACET_COLOUR (RGB), VERT_COORD
   	. 3*2 quad mesh FACET_NONE, VERT_COORD
   	. 2*2 quad mesh FACET_COLOUR (RGB), VERT_COORD_COLOUR (RGB)

testcases/triquad/faswd1.pi -----
   faswd1.pi
   Test fill area set geometry and facet/vertex colour
   	. 1-set vertices FACET_COLOUR (indirect) VERT_COORD 
   	. 2-set vertices FACET_NONE,VERT_COORD_COLOUR (RGB)
   	. 2-set vertices FACET_COLOUR (RGB) VERT_COORD 
   	. 2-set vertices with edges data FACET_NONE,VERT_COORD
   	. 2-set vertices with edges data FACET_NONE,VERT_COORD
   	. 1-set vertices FACET_COLOUR (RGB) VERT_COORD_COLOUR (RGB) 

testcases/triquad/faswd2.pi -----
   faswd2.pi
   Test fill area set with data interior attributes: 
  	. back int colour
  	. back int style
  	. int colour
  	. int style
  	. edge flag 
  	. edge colour 
  	. edge type
  	. edge width

testcases/triquad/qm2.pi -----
   qm2.pi
   Test quad mesh interior attributes: 
  	. back int colour
  	. back int style
  	. int colour
  	. int style
  	. edge flag 
  	. edge colour
  	. edge type
  	. edge width

testcases/triquad/ts2.pi -----
   ts2.pi
   Test triangle strip interior attributes: 
  	. back int colour
  	. back int style
  	. int colour
  	. int style
  	. edge flag 
  	. edge colour 
  	. edge type
  	. edge width

testcases/triquad/ts5.pi -----
   ts5.pi
   Test triangle strip interior attributes inheritance: 
  	. int colour
  	. int style
  	. back int colour
  	. back int style
  	. edge colour index
  	. edge type
  	. edge width

testcases/triquad/ts6.pi -----
   ts6.pi
   Test triangle strip interior attributes inheritance: 
  	. reflectance characteristic
  	. reflectance properties
  	. back reflectance characteristic
  	. back reflectance properties

testcases/triquad/ts3.pi -----
   ts3.pi
   Test triangle strip bundle interior, edge and reflectance attributes: 
  	. int index
  	. int colour
  	. int style
  	. edge index
  	. edge flag
  	. edge colour 
  	. edge type
  	. edge width
  	. int reflectance eq
  	. int shading method
  	. area properties
  	. back int style
  	. back int colour
  	. back int reflectance eq
  	. back int shading method
  	. back area properties

testcases/triquad/qm3.pi -----
   qm3.pi
   Test quad mesh bundle interior, edge and reflectance attributes: 
  	. int index
  	. int colour
  	. int style
  	. edge index
  	. edge flag
  	. edge colour 
  	. edge type
  	. edge width
  	. int reflectance eq
  	. int shading method
  	. area properties
  	. back int style
  	. back int colour
  	. back int reflectance eq
  	. back int shading method
  	. back area properties

testcases/triquad/faswd3.pi -----
   faswd3.pi
   Test fill area set with data bundle interior, edge and reflectance attributes: 
  	. int index
  	. int colour
  	. int style
  	. edge index
  	. edge flag
  	. edge colour 
  	. edge type
  	. edge width
  	. int reflectance eq
  	. int shading method
  	. area properties
  	. back int style
  	. back int colour
  	. back int reflectance eq
  	. back int shading method
  	. back area properties

testcases/triquad/ts4.pi -----
   ts4.pi
   Test triangle strip with data geometry with reflectance attributes
  	. reflectance properties
  	. reflectance charactics
  	. back reflectance properties
  	. back reflectance charactics
   with positional and ambient light source and the following triangle
   strip geometry:
  	. 4 vertices FACET_NONE/VERT_COORD
  	. 4 vertices FACET_NORMAL/VERT_COORD
  	. 4 vertices FACET_COLOUR_NORMAL/VERT_COORD
  	. 4 vertices FACET_NONE/VERT_COORD_NORMAL
  	. 4 vertices FACET_NONE/VERT_COORD_COLOUR_NORMAL

testcases/triquad/faswd4.pi -----
   faswd4.pi
   Test fill area with data with data geometry with reflectance attributes
  	. reflectance properties
  	. reflectance charactics
  	. back reflectance properties
  	. back reflectance charactics
   with positional and ambient light source and the following triangle
   strip geometry:
  	. 4 vertices FACET_NONE/VERT_COORD
  	. 4 vertices FACET_NORMAL/VERT_COORD
  	. 4 vertices FACET_COLOUR_NORMAL/VERT_COORD
  	. 4 vertices FACET_NONE/VERT_COORD_NORMAL
  	. 4 vertices FACET_NONE/VERT_COORD_COLOUR_NORMAL

testcases/triquad/qm4.pi -----
   qm4.pi
   Test quad mesh with data geometry with lighting attribute
   positional and ambient light source 
  	. 4 vertices FACET_NONE/VERT_COORD
  	. 4 vertices FACET_NORMAL/VERT_COORD
  	. 4 vertices FACET_COLOUR_NORMAL/VERT_COORD
  	. 4 vertices FACET_NONE/VERT_COORD_NORMAL
  	. 4 vertices FACET_NONE/VERT_COORD_COLOUR_NORMAL

testcases/triquad/sofas1.pi -----
   sofas1.pi
   Test set of fill area set geometry and facet/vertex colour
   	. ((1-set)) FACET_COLOUR (indirect),VERT_COORD
   	. ((1-set),(1-set)) FACET_NONE,VERT_COORD_COLOUR (RGB)
   	. ((2-set),(1-set)) FACET_COLOUR (RGB) VERT_COORD 
   	. ((2-set),(1-set)) with edges data FACET_NONE,VERT_COORD
   	. ((1-set),(1-set)) FACET_NONE,VERT_COORD

testcases/triquad/sofas2.pi -----
   sofas2.pi
   Test set of fill area set with data interior attributes: 
  	. back int colour
  	. back int style
  	. int colour
  	. int style
  	. edge flag 
  	. edge colour 
  	. edge type
  	. edge width

testcases/triquad/sofas3.pi -----
   sofas3.pi
   Test set of fill area set with data bundle interior, edge and reflectance attributes: 
  	. int index
  	. int colour
  	. int style
  	. edge index
  	. edge flag
  	. edge colour 
  	. edge type
  	. edge width
  	. int reflectance eq
  	. int shading method
  	. area properties
  	. back int style
  	. back int colour
  	. back int reflectance eq
  	. back int shading method
  	. back area properties

testcases/triquad/sofas4.pi -----
   sofas4.pi
   Test set of fill area with data with data geometry with reflectance attributes
  	. reflectance properties
  	. reflectance charactics
  	. back reflectance properties
  	. back reflectance charactics
   with positional and ambient light source and the following triangle
   strip geometry:
  	. 4 vertices FACET_NONE/VERT_COORD
  	. 4 vertices FACET_NORMAL/VERT_COORD
  	. 4 vertices FACET_COLOUR_NORMAL/VERT_COORD
  	. 4 vertices FACET_NONE/VERT_COORD_NORMAL
  	. 4 vertices FACET_NONE/VERT_COORD_COLOUR_NORMAL

testcases/utils/buildtran.pi -----
   buildtran.pi -
   Test matrix utility functions pbuild_tran_matrix, pbuild_tran_matrix3
   Test using different 
     reference points: origin,non-origin
     tranlation vectors: some values
     scaling vectors: some values
     rotation angles: some values
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/compmtx.pi -----
   compmtx.pi -
   Test matrix utility functions composematrix, composematrix3
   Test using different matrices: identity,non-identity
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/comptran.pi -----
   comptran.pi -
   Test matrix utility functions pcompose_tran_matrix, pcompose_tran_matrix3
   Test using different 
     matrices: non-identity
     reference points: origin,non-origin
     tranlation vectors: some values
     scaling vectors: some values
     rotation angles: some values
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/evalmap.pi -----
   evalmap.pi -  
   Test matrix utility functions peval_view_map_matrix, peval_view_map_matrix3
   Test using different 
     window,viewport: default,square,non-square,different aspect ratio 
     projection types: PARALLEL,PERSPECTIVE
     projection reference point: orthogonal,oblique
     front,view,back plane distances: F==V,V==B,F>V>B
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/evalori.pi -----
   evalori.pi -
   Test matrix utilities peval_view_ori_matrix, peval_view_ori_matrix3
   Test using different 
     view reference points: origin/non-origin, 
     view up vectors: any values
     view plane normals: any values
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/rotate.pi -----
   rotate.pi -
   Test matrix utility functions protate, protate_x, protate_y, protate_z
   Test using different rotation angles: 0,<0,>0 
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/scale.pi -----
   scale.pi -
   Test matrix utility functions pscale, pscale3
   Test using different scaling vectors: <1,1,>1 in x,y,z directions
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/tranpt.pi -----
   tranpt.pi -
   Test matrix utility functions ptran_point, ptran_point3
   Test using different matrices: identity/non-identity 
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/utils/translate.pi -----
   translate.pi -
   Test matrix utility functions ptranslate, ptranslate3
   Test using different translation vectors: 0,<0,>0 in x,y,z directions
   The resulting matrix from the utility is compared to the matrix 
   from the same operation performed in the test code.

testcases/xform/modelxf1.pi -----
   modelxf1.pi -  
   Test requirements:
     Test that local transformation, set with different compositiion types, 
     is correctly applied to an output primitive

testcases/xform/modelxf2.pi -----
   modelxf2.pi -  
   Test requirements:
     Test that composite transformation is correctly applied to 
     output primitives. 
     The composite transformation is formed from the
     local transformation and the composite transformation inherited from 
     the parent's structure.

testcases/xform/modelxf3.pi -----
   modelxf3.pi -  
   Test requirements:
     Test that global transformation attribute,which is set in a parent 
     structure, is inherited by a child structure.
     Test that global transformation attribute, which is set in a child 
     structure, affects the child structure, but not the parent.

testcases/xform/modelxf4.pi -----
   modelxf4.pi -  
   Test requirements:
     Test that the modelling clipping indicator is used to determine
     whether subsequent output primitives will be clipped against the
     modelling clipping volume during structure traversal.
     Also verify that the default modelling clip indicator is PIND_NO_CLIP

testcases/xform/modelxf5.pi -----
   modelxf5.pi -  
   Test requirements:
     Test that modelling clipping indicator attribute,which is set in a parent
     structure, is inherited by a child structure.
     Test that modelling clipping indicator attribute, which is set in a child
     structure, affects only the child structure, not the parent.

testcases/xform/modelxf6.pi -----
   modelxf6.pi -  
   Test requirements:
     Test modelling clipping volume(3) with operators PMC_INTERSECT 
     and PMC_REPLACE

testcases/xform/modelxf7.pi -----
   modelxf7.pi -  
   Test requirements:
     Test that modelling clipping volume(3) attribute,which is set in a parent
     structure, is inherited by a child structure.
     Test that modelling clipping volume(3) attribute, which is set in a child
     structure, affects only the child structure, not the parent.

testcases/xform/modelxf8.pi -----
   modelxf8.pi -  
   Test requirements:
     Test restore modelling clipping volume resets the current modelling
     clipping volume to the value inherited by the structure being traversed.

testcases/xform/modelxf9.pi -----
   modelxf9.pi -  
   Test requirements:
     Test the the half-spaces are transformed by the composite transformation

testcases/xform/viewxf1.pi -----
   viewxf1.pi -  
   Test that the view orientation transformation matrix is applied to output
   primitives. 
   Test with non-default view reference point, view plane normal(case 3D only) 
   and view up vector
   Draw polylines and verify the presence of pixels in transformed locations

testcases/xform/viewxf2.pi -----
   viewxf2.pi -  
   Test that the view mapping transformation matrix is applied to output
   primitives. 
   Test with non-default view reference point, view plane normal(case 3D only) 
   and view up vector
   Draw polylines and verify the presence of pixels in transformed locations

testcases/xform/viewxf3.pi -----
   viewxf3.pi -  
   Test view clipping
   Draw several polylines and verify the presence of pixels inside the
   viewport and the absence of pixels outside the viewport.

testcases/xform/viewxf4.pi -----
   viewxf4.pi -  
   Test view index attribute inheritance 
   Test that view index attribute, which is set in a parent structure,
     is inherited by a child structure. 
   Test that view index attribute, which is set in a child structure,
     affects the child structure, but not the parent.
   Draw polylines and verify the presence of pixels in the expected locations

testcases/xform/wsxf1.pi -----
   wsxf1.pi -  
   Verify the default workstation transformation
   Set and inquire workstation transformation 
   verify by comparing the values inquired against expected

testcases/xform/wsxf2.pi -----
   wsxf2.pi -  
   Verify the consistency of 2D/3D workstation transformation
   Set workstation transformation(2D), inquire workstation transformation (3D)
   Set workstation transformation(3D), inquire workstation transformation (2D)
   verify by comparing the values inquired against expected

testcases/xform/wsxf3.pi -----
   wsxf3.pi -  
   Set workstation transformation
   Test rendering with workstation transformation using square workstation
   Try different combinations of window and viewport: 
   	same asp ratio, different asp ratio, square, non-square
   Draw a polyline and verify pixels 

testcases/xform/wsxf4.pi -----
   wsxf4.pi -  
   Set workstation transformation
   Test rendering with workstation transformation using non-square workstation
   Try different combinations of window and viewport: 
   	same asp ratio, different asp ratio, square, non-square
   Draw a polyline and verify pixels 

testcases/xform/wsxf5.pi -----
   wsxf5.pi -  
   Test workstation clipping
   Draw several polylines and verify the presence of pixels inside the
   ws window and the absence of pixels outside the ws window.

testcases/xform/viewxf5.pi -----
   viewxf5.pi -  
   Test that the view clipping is applied to front and back plane

testcases/xform/primxf1.pi -----
   primxf1.pi -
   Test transformation with different primitives
     modelling :  rotation
     view orientation :  translation
     view mapping :  perspective
     workstation :  scaling

testcases/xform/primxf2.pi -----
   primxf2.pi -
   Test view clipping with different primitives

testcases/xform/primxf3.pi -----
   primxf3.pi -
   Test modelling clipping with different primitives

