Design: 02.01.03.01/P03
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 3: Effects of <change structure identifier> on the
element pointer
CHARACTERISTICS: nnnn
OPERATOR SCRIPT: passive test.
DESIGN:
The following is the "standard" CSS network for module 02.01.03. This
CSS network will be used throughout to test the resulting state of the
CSS after execution of the <change structure identifier> function.
Before each test case the CSS state is completely reset.
100
/ \
/ \
1/ \2
/ \
/ \
101 102 120 130 140
| / | \ | /| |
|2 / | \ | / | 1|
| 1/ 2| 5\ 2| /3 |5 |
| / | \ | / | |
103 / | \ |/ | 142
104 105 106 107
| | | | / /\
2| |5 /|\ | / / \
| | 1/ | \2 1| 1/ /4 \5
109 / | \ | / / \
/ | \ |/ / 113
110 | 108
| |
| |2
|3 |
| |
| 111
| / |
| 1/ |
| / 3|
|/ |
114 115
Structure 111 in the CSS is set up as follows:
111
|
-----------------------------------------------------------
| | | | | | \ | / | |
|1 2| |10 |3 |4 |5 6\ |8/11 7| |9
| | | | | | \|/ | |
114 940 115 942 916 947 955
The nodes on the graph numbered 114 and 115 represent the
structure elements associated with <execute structure>. The nodes
between (900 and 999) represent the structure elements associated
with <label> . The arcs (1-11) represent the position of the
<execute structure> or <label> element within the structure.
TEST: #SR 4
"If the original and resulting identifier are the same and the
common structure is open and empty after execution of <change
structure identifier> then the element pointer should be at zero."
comstr = 142
<open structure> comstr
<change structure identifier> comstr, comstr
pass/fail depending on (element pointer = 0)
<close structure>
TEST: #SR 4
"If the original and resulting identifier are the same and the
common structure is open and not empty after execution of
<change structure identifier> then the element pointer should
remain at its current position."
set edit mode to REPLACE
comstr = 111
<open structure> comstr
set element pointer to 4
<change structure identifier> comstr, comstr
pass/fail depending on (element pointer = 4)
<close structure>
TEST: #SR 5
"If the original and resulting identifiers differ and the original
structure is open after execution of <change structure identifier>
then the open structure should be empty and the element pointer set
to zero."
orgid = 111
resid = 130
set edit mode to INSERT
<open structure> orgid
set element pointer to 3
<change structure identifier> orgid, resid
pass/fail depending on (element pointer = 0)
<close structure>
TEST: #SR 6
"If the original and resulting identifiers differ, the original
structure does not exist and the resulting structure is open after
execution of <change structure identifier> then the element pointer
of the open structure should be set to zero."
orgid = 300
resid = 111
<open structure> resid
<change structure identifier> orgid, resid
pass/fail depending on (element pointer = 0)
<close structure>
TEST: #SR 6
"If the original and resulting identifiers differ, the original
structure does exist and is empty, and the resulting structure
is open after execution of <change structure identifier> then
the element pointer of the open structure should be set to zero."
orgid = 142
resid = 111
<open structure> resid
set element pointer to 2
<change structure identifier> orgid, resid
pass/fail depending on (element pointer = 0)
<close structure>
TEST: #SR 6
"If the original and resulting identifiers differ, the original
structure does exist and is not empty, and the resulting structure
is open after execution of <change structure identifier> then the
element pointer of the open structure should be set to the last
element."
orgid = 111
resid = 104
<open structure> resid
set element pointer to 3
<change structure identifier> orgid, resid
pass/fail depending on (element pointer = 11)
<close structure>
END PROGRAM 3