Design: 06.02.02/P04

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 4: Setting and inquiring on the WSL view table

CHARACTERISTICS: ynnn

OPERATOR SCRIPT: passive test.

DESIGN:

<inquire workstation state table lengths> to determine
   maxvw = maximum size of the view table

TEST: #SR 12 13
      "Reported maximum size of the view table should be
       at least 6."
pass/fail depending on (maxvw > 5)

expected values for entry are:
exvom(4,4) = orientation matrix   =
   | -5.378     -2.251  -7.886     30.706    |
   | -0.4014    0.6207  9.1292E-02 -5.423    |
   | -104.806   0.0     2.804      8.502E-02 |
   | -7.375E-02 -21.465 -128.958   -0.2066   |

exvmm(4,4) = mapping matrix       =
   | 28.482  106.135 -131.300 16.022 |
   | -150.45 0.0     0.0      13.851 |
   | 35.318  -0.5466 84.676   0.7512 |
   | 2.4107  -5.7922 -101.682 1.1572 |

exvclm(6)  = view clipping limits = .2 .3 .4 .5 .6 .7
exvcid(3)  = clipping indicators  = NOCLIP, CLIP, NOCLIP

TEST: #SR 12 14 17 23
      "<Set view representation 3> should be able to set all
       requested entries, up to the maximum table size."

for ivwdx = 1 to maxvw-1
    <Set view representation 3> for index #ivwdx, with entry value =
       exvom, exvmm, exvclm, exvcid
    if (error signalled) then
       fail
       informational message re error code
       goto end_set3
    endif
    <Inquire view representation> for index #ivwdx, to determine
       invom, invmm, invclm, invcid
    if (invom  = exvom   .and.
        invmm  = exvmm   .and.
        invclm = exvclm  .and.
        invcid = exvcid  .and. ) then
       OK so far
    else
       fail
       informational message re ivwdx
       goto end_set3
    endif
next ivwdx
pass

end_set3:

Set/expected values for entry are:
e2vom(3,3) = orientation matrix   =
   | -5.378     -2.251  30.706    |
   | -0.4014    0.6207  -5.423    |
   | -7.375E-02 -21.465 -0.2066   |

exvom(4,4) = expanded version of e2vom

e2vmm(3,3) = mapping matrix       =
   | 28.482  106.135 16.022 |
   | -150.45 0.0     13.851 |
   | 2.4107  -5.7922 1.1572 |

exvmm(4,4) = expanded version of e2vmm

e2vclm(4)  = view clipping limits = .1 .2 .3 .4
e2vcid     = x-y clipping indicator = NOCLIP

TEST: #SR 15 16 17 23
      "<Set view representation> should be able to re-set a
       user-defined requested entry, with correct defaults
       supplied by the implementation."

<Set view representation> for index #1, with entry value =
   e2vom, e2vmm, e2vclm, e2vcid
if (error signalled) then
   fail
   informational message re error code
   goto end_set2
endif
<Inquire view representation> for index #1, to determine
   invom, invmm, invclm, invcid
pass/fail depending on
   (invom  = exvom               .and.
    invmm  = exvmm               .and.
    invclm = e2vclm, 0.0, 1.0    .and.
    invcid = e2vcid, CLIP, CLIP  .and. )

end_set2:

END PROGRAM 4