Design: 04.02.05.02/P10

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 10: Appearance of predefined interior bundles

CHARACTERISTICS: ynny

OPERATOR SCRIPT:

WORKSTATION DESCRIPTION AND STATE LIST TABLES, INDICES 1-5: This
screen displays 6 pairs (consisting of the first 5, with one
repeated) of predefined interior bundles and individual
interiors.  Identify the pair of interiors (fill areas) that is
different.

WORKSTATION DESCRIPTION AND STATE LIST TABLES, INDICES > 5: This
screen displays several pairs (at most 8) of predefined interior
bundles and individual interiors.  Identify the pair of interiors
(fill areas) that is different.

PREDEFINED INTERIOR BUNDLES: This screen displays a sample (at
most 8) of predefined interior bundles and their bundle values
for interior style, interior style index, and color index, as
reported by <inquire predefined interior representation>.  For
each displayed bundle, verify that 1) the actual appearance of
the interior agrees with the aspect values reported on the screen
and 2) these both agree with any external documentation provided
by the implementor.

DESIGN:

set all ASFs to BUNDLED
set pattern size to .03,.03

use <inquire interior facilities> to determine:
  nprei  = number of predefined bundles

*** *** ***   predefined interior bundles 1-5   *** *** ***

numbun = 6
bundis = bundles to be displayed (1 to 5, with one repeated)
bundif = location of repeated bundle identifier (so that all 5
         may be verified)

TEST: #SR 3 4 7 21 25
      "Immediately after <open workstation>, the first 5 defined
       interior bundles of the WSL should appear as specified in
       the corresponding predefined interior bundles of the WDT."

The actual results (interiors drawn from initial state of WSL)
are drawn on the left side of the picture. The corresponding
expected results (interiors with individual attributes taken
from WDT) are drawn on the right side, except for one
interior which will be different.

display and label actual results from bundis.

set interior style, interior style index and color
   index ASF to individual

for ix = 1, numbun
   <inquire predefined interior representation> on index
        bundis(ix), determine:
      pdis  = predefined interior style
      pdisi = predefined interior style index
      pdci  = predefined interior color index
    if (ix = bundif) then
       if (pdis = HOLLOW) then
          pdis = EMPTY
       else
          pdis = (pdis mod 5) + 1
       endif
       pdisi = (pdisi mod 4) + 1
       pdci = (pdci mod 5) + 1
    endif
    draw interior with pdis, pdisi, pdci
next ix

OPQA/WORKSTATION DESCRIPTION AND STATE LIST TABLES, INDICES 1-5:
   Which pair of rectangles does NOT match?
pass/fail depending on (operator selects bundif)

*** *** ***   predefined interior bundles > 5   *** *** ***

if nprei <= 5 then
   skip to end_comp_tables
endif

numbun = min (8, nprei-5)
bundis = distinct bundles to be displayed - randomly chosen
         from [6,nprei] predefined bundles

TEST: #SR 3 4 7 21 25
      "Immediately after <open workstation>, the defined interior
       bundles >5 of the WSL should appear as specified in the
       corresponding predefined interior bundles of the WDT."

The actual results (interiors drawn from initial state of WSL)
are drawn on the left side of the picture. The corresponding
expected results (interior with individual attributes copied
from WDT) are drawn on the right side, except for one
interior which will be different.

display and label bundis

bundif = randomly selected bundle from bundis
set interior style, interior style index and color index
   ASF to individual

for ix = 1, numbun
   <inquire predefined interior representation> on index
        bundis(ix), determine
      pdis  = predefined interior style
      pdisi = predefined interior style index
      pdci  = predefined interior color index
    if (ix = bundif) then
       if (pdis = HOLLOW) then
          pdis = EMPTY
       else
          pdis = (pdis mode 5) + 1
       endif
       pdisi = (pdisi mod 4) + 1
       pdci = (pdci mod 5) + 1
    endif
    draw interior with pdis, pdisi, pdci
next ix

OPQA/WORKSTATION DESCRIPTION AND STATE LIST TABLES, INDICES > 5:
   Which pair of rectangles does NOT match?
pass/fail depending on (operator selects bundif)

end_comp_tables:

*** *** *** ***   predefined bundle descriptions   *** *** *** ***

TEST: #SR 3 4 7 21
      "The appearance of predefined interior bundles should agree
       with the descriptions supplied by the implementor."

numbun = min(8, nprei)
bundis = distinct bundles to be displayed, sorted

for ix = 1 to numbun
   <inquire predefined interior representation> for ixth entry in
    bundis to determine:
      pdis  = interior style
      pdisi = interior style index
      pdci  = interior color index
   display and label ixth entry in bundis and its pdis, pdisi, pdci
next ix

OPQA/PREDEFINED INTERIOR BUNDLES: Does the appearance of each
  interior agree with the displayed aspect values for that bundle?
if (operator responds "yes") then
   OPQA/PREDEFINED INTERIOR BUNDLES: If the implementor provides
      external documentation, is it consistent with the interior
      appearance and displayed aspect values for every bundle
      identifier?
   pass/fail depending on (operator responds "yes")
else
   fail
endif

END PROGRAM 10