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