Design: 04.02.04.01/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: Annotation style

CHARACTERISTICS: ynny

OPERATOR SCRIPT:

Throughout this program, when an annotation text primitive is
displayed, its reference point is marked with an asterisk
polymarker, and its annotation point with a circle polymarker.

ANNOTATION STYLE 1: This screen should display several examples
of annotation style #1 (reference point unconnected to annotation
point), and one example of a different style.  Identify the
distinct style.

UNSUPPORTED ANNOTATION STYLES: As above, for ANNOTATION STYLE 1.

ANNOTATION STYLE 2: This screen should display several examples
of annotation style #2 (reference point connected to annotation
point), and one example of a different style.  Identify the
distinct style.

NON-MANDATORY REGISTERED ANNOTATION STYLES: This screen displays
a sample of supported registered annotation styles (at most 8).
For each displayed style, look up its annotation style identifier
in the ISO register and verify that the actual appearance of the
style agrees with the ISO specification.

IMPLEMENTOR DEFINED ANNOTATION STYLES: This screen displays a
sample of implementor defined annotation styles (at most 8).  For
each displayed style, look up its annotation style identifier in
the implementor's documentation and verify that the actual
appearance of the style agrees with the specification.

COMPLETE DOCUMENTATION FOR IMPLEMENTOR ANNOTATION STYLES: No
associated picture.  Verify that all the entries in the list of
available annotation styles for this workstation type are
documented by the implementor.  The list may be a subset of the
documented annotation styles.

DESIGN:

use <inquire annotation facilities> to determine:
  numas  = number of available annotation styles
  lavsas = list of available standard annotation styles
  lavras = list of available registered (non-mandatory) annotation styles
  lavias = list of available implementor-defined annotation styles

TEST: #SR 77
      "The list of available annotation styles returned by
       <inquire annotation facilities> should include styles
       number 1 and 2."
pass/fail depending on (lavsas includes styles 1 and 2)

message to operator: throughout this program, annotation text
  reference point is marked with asterisk polymarker, annotation
  point with circle polymarker.

if (annotation style #1 not available) then
   message: skipping tests for style #1
   goto end_style_1
endif

*** *** ***   style #1 (unconnected)   *** *** ***

set up perm to randomize order
ngstyl = random integer from 1 to 3
display interspersed 3 actual and 3 simulated examples of style #1,
  with actual #ngstyl done incorrectly (use style #2)

TEST: #SR 1 2 5 75 76 78 80
      "The mandatory annotation style number 1 should leave the
       reference point and the annotation point of the annotation
       text primitive unconnected."

OPQA/ANNOTATION STYLE 1: Which annotation style is different?
pass/fail depending on (operator correctly identifies primitive
  with style #2)

if (2 not available) then
   goto end_style_1
endif

lunsup = list of (mostly) unsupported annotation styles, contains:
  a negative unsupported type (< minimum in lavias)
  a positive unsupported type (> maximum in lavras)
  1,
  2, if supported (the only non-#1 style)
  0, if not in lavias

Display in random order annotation styles from lunsup

TEST: #SR 5 75 76 78 79 80
      "Unavailable annotation styles should be displayed as
       annotation style number 1."

OPQA/UNSUPPORTED ANNOTATION STYLES: Which annotation style is
  different?
pass/fail depending on (the #2 annotation style selected)

end_style_1:

*** *** ***   style #2 (connected)   *** *** ***

if (annotation style #2 not available) then
   message: skipping tests for style #2
   goto end_style_2
endif

set up perm to randomize order
ngstyl = random integer from 1 to 3
display interspersed 3 actual and 3 simulated examples of style #2,
  with actual #ngstyl done incorrectly (use style #1)

TEST: #SR 1 2 5 75 76 78 80
      "The mandatory annotation style number 2 should connect
       the reference point and annotation point with a polyline,
       using the current attributes."

OPQA/ANNOTATION STYLE 2: Which annotation style is different?
pass/fail depending on (operator correctly identifies primitive
  with style #2)

end_style_2:

*** *** ***   registered styles   *** *** ***

regdx = size of lavras
if regdx < 1 skip to neg_type, with message

if regdx < 9
   stydis = styles to be displayed = all annotation styles in lavras
else
   stydis = styles to be displayed = 8 annotation styles randomly
                                     selected from lavras
endif

display in order and label all annotation styles in stydis

TEST: #SR 5 75 76 78 81
      "The registered non-mandatory annotation styles (> 2) should
       agree with their registered description."

OPQA/NON-MANDATORY REGISTERED ANNOTATION STYLES: Is each
  annotation style depicted according to its numeric identifier's
  specification in the ISO register?
pass/fail depending on (operator responds "yes")

neg_type:

*** *** ***   implementor-defined styles   *** *** ***

impdx = size of lavias
if impdx < 1 goto end_annotation_style, with message

if impdx< 9
   stydis = styles to be displayed = all annotation styles in lavias
else
   stydis = styles to be displayed = 8 annotation styles randomly
                                     selected from lavias
endif

display in order and label all annotation styles in stydis

TEST: #SR 5 75 76 78 82
      "Implementor-defined annotation styles (< 1) should agree
       with the descriptions supplied by the implementor."

OPQA/IMPLEMENTOR DEFINED ANNOTATION STYLES: Is each annotation
  style depicted according to its numeric identifier's
  specification in the implementor documentation?
pass/fail depending on (operator responds "yes")

if (impdx <= 8) then
   all implementor annotation styles already shown - skip test
   goto end_annotation_style
endif

TEST: #SR 82
      "All reported implementor-defined annotation styles
       available for a given workstation type should be
       documented by the implementor."

OPQA/COMPLETE DOCUMENTATION FOR IMPLEMENTOR ANNOTATION STYLES:
  Are all these reportedly available annotation styles documented
  by the implementor <lavias> ?
pass/fail depending on (operator responds "yes")

end_annotation_style:

END PROGRAM 10