Design: 04.03.04.02/P02

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 2: Invisibility filter - setting and inquiring

CHARACTERISTICS: ynnn

OPERATOR SCRIPT: passive test.

DESIGN:
<open workstation>

TEST: #SR 6 7
      "Immediately after opening the workstation, the
       invisibility filter inclusion and exclusion sets should be
       null."
<inquire invisibility filter>
pass/fail depending on (inclusion = null and
                        exclusion = null)

TEST: #SR 5 6 10
      "Invisibility filter should be reported as it was set for
       any set of names drawn from the accessible range."
<set invisibility filter>:
   orig_inclusion set = 2,4,8,44,63
   orig_exclusion set = 0,4,5,32,59
<inquire invisibility filter>
pass/fail depending on (inclusion set = orig_inclusion and
                        exclusion set = orig_inclusion)

TEST: #SR 5 6
      "Invisibility filter should be reported as it was re-set
       for any set of names drawn from the accessible range."
<set invisibility filter>
   new_inclusion set = 59,47
   new_exclusion set = 13,15,18
<inquire invisibility filter>
pass/fail depending on (inclusion set = new_inclusion  and
                        exclusion set = new_exclusion)

TEST: #SR 5 6 11
      "Invisibility filter should be capable of containing at
       at least 64 names in its inclusion and exclusion sets."
<set invisibility filter>
   new_inclusion set = 0,1,2, ... ,62,63
   new_exclusion set = 0,1,2, ... ,62,63
<inquire invisibility filter>
pass/fail depending on (inclusion set = new_inclusion  and
                        exclusion set = new_exclusion)

<inquire PHIGS facilities> to determine
  nanams = number of available names in namesets

TEST: #SR 5 6 12
      "Invisibility filter should be capable of containing the
       minimum and maximum allowed value for a name."
<set invisibility filter>
   new_inclusion set = 0,nanams-1
   new_exclusion set = 0,nanams-1
<inquire invisibility filter>
pass/fail depending on (inclusion set = new_inclusion  and
                        exclusion set = new_exclusion)

TEST: #SR 5 6 12 13
      "Invisibility filter should contain only the valid names as set;
       invalid names specified by <set invisibility filter> should be
       ignored."
<set invisibility filter>
   inv_inclusion set = 0, nanams-1, nanams,    -10
   inv_exclusion set = 0, nanams-1, nanams+10, -10
<inquire invisibility filter>
pass/fail depending on (inclusion set = new_inclusion  and
                        exclusion set = new_exclusion)

TEST: #SR 6 7
      "Immediately after re-opening the workstation, the
       invisibility filter inclusion and exclusion sets should be
       null."

<close workstation>
<open workstation>

<inquire invisibility filter>
pass/fail depending on (inclusion = null and
                        exclusion = null)
<close workstation>

END PROGRAM 2