Module #03.04 : Examining structures in an archive

All PVT documentation can be found under PHIGS Validation Tests - Overview. You may also return to the hierarchical table of topics covered by the PVT. For an explanation of the format of the individual module documentation, please see section 2.5 of the User's Guide.



DESCRIPTION: This module tests the basic features for obtaining
information about the contents of an archive file and its topography
as well as comparing the structures in the archive to those in the
CSS.


SEMANTIC REQUIREMENTS:

***   List of structure identifiers   ***


SR1. <Retrieve structure identifiers> returns a list of identifiers for all existing structures in the specified archive file.
#F 141
#D 9.1.1
#S 4.4.7/32/5
#T P01/1
***   Examine conflicting structures   ***


SR2. <Inquire all conflicting structures> returns a list of identifiers for all structures that exist in both the specified archive and the CSS.
#F 213
#D 4.5 7.1 9.1.1
#S 4.4.7/33/2
#T P02/7 P02/8

SR3. If structure network source = CSS, then <inquire conflicting structures in network> returns a list of identifiers for all structures that exist in both 1) the specified archive file, and 2) the CSS network whose root is the specified structure.
#F 214
#D 4.5 7.1 7.3.4 9.1.1
#S 4.4.7/33/2
#T P02/1 P02/3 P02/5

SR4. If structure network source = ARCHIVE, then <inquire conflicting structures in network> returns a list of identifiers for all structures that exist in both 1) the CSS, and 2) the archive network whose root is the specified structure.
#F 214
#D 4.5 7.1 9.1.1 9.1.2.4
#S 4.4.7/33/2
#T P02/2 P02/4 P02/6
***   Examine archive paths   ***


SR5. <Retrieve paths to ancestors> returns a list of ancestor paths in the specified archive file from the specified structure identifier.
#F 145
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P03/1 P03/2 P03/3


SR6. <Retrieve paths to descendants> returns a list of descendant paths in the specified archive file from the specified structure identifier.
#F 146
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P04/1 P04/2 P04/3 P04/4

SR7. An ancestor or descendant path is a sequence of at least two ordered pairs (one pair for the specified structure, the second for an immediate ancestor or descendant) each of which consists of a referring structure identifier and the position of the 'execute structure' element in that structure (0 if there is no such element in the structure).
#F 113 145 146
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P03/1 P03/2 P03/3 P04/1 P04/2 P04/3 P04/4 #C See defect 9592-1/066. A (non-truncated) path cannot consist
simply of the single specified structure.

SR8. Ancestor and descendant paths are ordered with the element for the referring (parent) structure identifier preceding that for the referred (child) structure identifier, i.e. top-down.
#F 113 145 146
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P03/1 P03/2 P03/3 P04/1 P04/2 P04/3 P04/4

SR9. If the structure network specified by <retrieve paths to descendants> contains an archived structure S that refers to a structure T which does not also exist in archive file, then the returned paths will be the same as if T were an existing empty structure.
#F 113 146
#D 9.1.2.4 9.1.1
#S
#T P04/4 #C Thus, the last element of a descendant path may be (T,0),
whether or not T exists.

SR10. An ancestor path returned by <retrieve paths to ancestors> is maximal if path depth is specified as zero or if path depth is positive but is not exceeded by the number of elements in the maximal path.
#F 145
#D 9.1.2.4 9.1.1
#S
#T P03/1 P03/2 P03/3

SR11. A descendant path returned by <retrieve paths to descendants> is maximal if path depth is specified as zero or if path depth is positive but is not exceeded by the number of elements in the maximal path.
#F 146
#D 9.1.2.4 9.1.1
#S
#T P04/1 P04/2 P04/3

SR12. If a positive path depth of P and path order of TOPFIRST is specified for <retrieve paths to ancestors>, then only the first P elements of any maximal ancestor path whose length exceeds P will be reported.
#F 145
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P03/2

SR13. If a positive path depth of P and path order of BOTTOMFIRST is specified for <retrieve paths to ancestors>, then only the last P elements of any maximal ancestor path whose length exceeds P will be reported.
#F 145
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P03/3

SR14. If a positive path depth of P and path order of TOPFIRST is specified for <retrieve paths to descendants>, then only the first P elements of any maximal descendant path whose length exceeds P will be reported.
#F 146
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P04/2

SR15. If a positive path depth of P and path order of BOTTOMFIRST is specified for <retrieve paths to descendants>, then only the last P elements of any maximal descendant path whose length exceeds P will be reported.
#F 146
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P04/3

SR16. If, after truncation due to path depth, the remaining portions of two distinct maximal ancestor paths are the same, then only one such portion is reported by <retrieve paths to ancestors>.
#F 145
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P03/2 P03/3

SR17. If, after truncation due to path depth, the remaining portions of two distinct maximal descendant paths are the same, then only one such portion is reported by <retrieve paths to descendants>.
#F 146
#D 9.1.2.4 9.1.1
#S 4.4.7/32/6
#T P04/2 P04/3

LOCAL DICTIONARY:

  Functions ---
  113: pexst   <execute structure>
  141: prsid   <retrieve structure identifiers>
  145: prepan  <retrieve paths to ancestors>
  146: prepde  <retrieve paths to descendants>
  213: pqcst   <inquire all conflicting structures>
  214: pqcstn  <inquire conflicting structures in network>
 
  Data Structures ---
  4  ...  phigs_state_list
  4.5  ...  list_of_structure_identifiers
  7  ...  structure_state_list
  7.1  ...  structure_identifier
  7.3  ...  list_of_structure_elements
  7.3.4  ...  execute_structure
  9  ...  archive
  9.1  ...  archive_file
  9.1.1  ...  structure_identifier
  9.1.2  ...  list_of_structure_elements
  9.1.2.4  ...  execute_structure
 
LOCAL SUBROUTINES:

ARCPTH accepts as a parameter a set of expected ancestor or
descendant paths in an archive file and compares the reported
(actual) set to this expected value to test for set-equality.



PROGRAM 1: Inquiring about structure identifiers

You may inspect either the design or code for this program.


PROGRAM 2: Examine conflicting structures

You may inspect either the design or code for this program.


PROGRAM 3: Retrieving ancestor paths

You may inspect either the design or code for this program.


PROGRAM 4: Retrieve descendant paths

You may inspect either the design or code for this program.

End of documentation for 03.04