Design: 04.02.04.01/P11

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 11: Network inheritance and initialization for geometric
            annotation text attributes

CHARACTERISTICS: ynny

OPERATOR SCRIPT:

STRUCTURE NETWORK INHERITANCE FOR ANNOTATION TEXT CHARACTER
HEIGHT: This screen displays several left-right pairs of
annotation text strings, of varying annotation text character
height.  Make sure that all pairs except one have matching
heights.  Identify the non-matching pair.

STRUCTURE NETWORK INHERITANCE FOR ANNOTATION TEXT ALIGNMENT: This
screen displays several left-right pairs of annotation text
strings, each aligned differently with respect to the annotation
point, which is represented by an asterisk polymarker.  Make sure
that all pairs except one have matching alignments.  Identify the
non-matching pair.

STRUCTURE NETWORK INHERITANCE FOR ANNOTATION TEXT PATH AND
ANNOTATION TEXT CHARACTER UP: This screen displays several
left-right pairs of annotation text strings, with various
annotation text paths and annotation text character up vectors.
Make sure that all pairs except one match with respect to both
these attributes. Identify the non-matching pair.

STRUCTURE NETWORK INHERITANCE FOR ANNOTATION STYLE: This screen
displays several left-right pairs of annotation text strings,
with various annotation styles. Make sure that all pairs except
one have matching annotation styles.  Identify the non-matching
pair.

DESIGN:

All test cases use the same basic structure network for testing
inheritance.  Five (distinct if possible) values for the
attribute(s) to be tested are set up and propagated throughout
the network.  The first value is the system default from the PDT.
Note that structure #104 is executed by both #103 and #101.
Actual results are displayed on the left, expected results on the
right, with the 14th deliberately made incorrect.

default = val#1
  |                  102
  |                 /  prim 2
  |               /    attr = val#3   val#3
  V        val#1/      exec 103---------------103
101           /        prim 8                   prim 3
  prim 1    /                                   attr = val#4
  exec 102/                                     prim 4
  prim 9                                        exec 104\
  attr = val#2                                  prim 7    \ val#4
  prim 10                                                   \
  transform             val#2                                 \
  exec 104-----------------------------------------------------104
  un-transform                                                   prim 5/11
  prim 13                                                        attr = val#5
  prim 14                                                        prim 6/12
  exec 105---------->105
                       expected values


*** *** *** ***   annotation text character height   *** *** *** ***

lhts = list of 5 distinct annotation text character heights
     = [.010, .020, .015, .025, .030]
  with 0.010 (default) in 1st position.

randomize location of annotation text strings
set up CSS as described above; throughout, scale such that char-ht
  of 0.01 and nearby values are reasonably visible.
display 14 pairs of annotation text strings with annotation text
  character heights from lhts

TEST: #SR 5 48 53 54
      "The annotation text character height attribute should be
       saved and restored by <execute structure> during traversal."

OPQA/STRUCTURE NETWORK INHERITANCE FOR ANNOTATION TEXT CHARACTER
  HEIGHT: Which pair of annotation text strings does NOT match?
pass/fail depending on (location of 14th primitive selected)


*** *** *** ***   annotation text alignment   *** *** *** ***

lalgnh, lalgnv = list of 5 distinct annotation text alignments
                 (default in first position) =

        horizontal  vertical
        ----------  --------
   1:   LEFT        BASE
   2:   CENTER      HALF
   3:   RIGHT       CAP
   4:   LEFT        BOTTOM
   5:   RIGHT       TOP

randomize location of annotation text strings
set up CSS as described above
display 14 pairs of annotation text strings with annotation text
  alignments from lalgnh, lalgnv;
show alignment point for each with polymarker

TEST: #SR 5 65 66 68 69
      "The annotation text alignment attribute should be saved and
       restored by <execute structure> during traversal."

OPQA/STRUCTURE NETWORK INHERITANCE FOR ANNOTATION TEXT ALIGNMENT: Which
  pair of annotation text strings is NOT similarly aligned with respect
  to the marked annotation point?
pass/fail depending on (location of 14th primitive selected)


*** ***   annotation text path and character up   *** ***

ltxp, lchup = list of 5 distinct annotation text paths and character-ups
              (default in first position) =

        annotation text path   annotation text character up
        ---------   ------------
   1:   RIGHT        0, 1
   2:   UP          -3, 1
   3:   LEFT         1,-3
   4:   DOWN        -3,-1
   5:   LEFT        -1,-3

randomize location of annotation text strings
set up CSS as described above
display 14 pairs of annotation text strings with annotation text
  paths and character ups from ltxp, lchup

TEST: #SR 5 57 58 61 62 71 72 73 74
      "The annotation text path and annotation text character up
       attributes should be saved and restored by <execute
       structure> during traversal."

OPQA/STRUCTURE NETWORK INHERITANCE FOR ANNOTATION TEXT PATH AND
  CHARACTER UP: Which pair of annotation text strings does NOT match?
pass/fail depending on (location of 14th primitive selected)


*** *** ***   annotation style   *** *** ***

Use <inquire annotation facilities> to develop
  lanst = list of available annotation styles
lanst contains exactly five elements
element #1 = 1 (default)
element #2 not= element#4

if (less than 2 styles available) then
   message: skip test
   goto end_style
endif

randomize location of annotation text strings
set up CSS as described above
display 14 pairs of annotation text strings with annotation
  styles from lanst

TEST: #SR 5 76 83 84
      "The annotation style attribute should be saved and
       restored by <execute structure> during traversal."

OPQA/STRUCTURE NETWORK INHERITANCE FOR ANNOTATION STYLE: Which
  pair of annotation text strings does NOT match?
pass/fail depending on (location of 14th primitive selected)

end_style:

END PROGRAM 11