Design: 02.02.02/P03

This is an abstract, language-independent design. Grim details may be found in the corresponding source code. You may return to the documentation for the module containing this program design, or to the entire hierarchical table of topics covered by the PVT.


PROGRAM 3: Generalized structure element

CHARACTERISTICS: nnnn

OPERATOR SCRIPT: passive test.

DESIGN:

Use <inquire current element type and size> thoughout to determine:
    celtyp = current element type
    celsiz = current element size

Use <inquire current element content> throughout to determine:
    celcon = current element content

dr = data record to hold
integers:  174,  175,  176
reals:     17.4, 17.5, 17.6
strings:   "This is a GSE test string.", "This is another."

TEST: #SR 12
      "<Inquire generalized structure element facilities> should
       return a valid list of GSE identifiers and workstation
       dependency indicators."

<inquire generalized structure element facilities> to set
  ugseid = an unsupported GSE identifier
  lgseim = list of workstation-dependent GSE's for this
           implementation.

pass/fail depending on (output from <inquire generalized
                        structure element facilities> is valid)

<generalized structure element> with ugseid, dr

TEST: #SR 7 8 9
      "<Inquire current element type and size> should return
       generalized structure element as the type of the created element
       and the appropriate element size."
<inquire current element type and size> to set celtyp, celsiz
pass/fail depending on
  (celtyp = generalized structure element and
   celsiz = values specified by the standard and language binding)

TEST: #SR 7 8 10
      "<Inquire current element content> should return the standard
       representation for generalized structure element."
<inquire current element content> to set celcon
pass/fail depending on
  (celcon = representation as specified by the standard and
   language binding)

gsemsg = 'No error yet'
lgseim = list of workstation-dependent GSE's for this
         implementation.
<inquire list of available workstation types> to get list of all
   workstation types

for each workstation type
   <inquire list of available generalized structure elements>
      to get list of all generic workstation GSE's
   if (cannot inquire on generic type) goto end_gse
   for each workstation GSE
      if (workstation GSE matches at least one element from lgseim) then
         mark implementation GSE as matched
      else
         gsemsg = 'Unmatched workstation GSE.'
         goto perform_test
      endif
   next workstation GSE
next workstation type

if all implementation GSE elements are marked then
   do nothing
else
   gsemsg = 'Unmatched PHIGS GSE.'
   goto perform_test
endif

perform_test:
TEST: #SR 11 12 13
      "The set of workstation dependent GSEs within the PHIGS GSE list
       as reported by <inquire generalized structure element facilities>
       should be the union of the workstation GSE lists as reported by
       <inquire list of available generalized structure elements>."

if (gsemsg = 'No error yet') then
   pass
else
   fail
   informative message: gsemsg
endif

end_gse:

END PROGRAM 3