The following example tests the output of the CPROPF command against that of other similar statements.
$$
$$ TEST THE OUTPUT OF THE CPROPF COMMAND
$$
$$ data = CPROPF(curve, parameter)
$$
ENTITY/CRV
NUMBER/PAR, USRESP, BADFLG
NUMBER/OLDDAT(14), NEWDAT(14)
PAR = 0.5
STEP1:
IDENT/'Select Curve', CRV, USRESP
JUMP/HALT:, HALT:, USRESP
STEP2:
&COLOR(CRV) = &COLOR(CRV) + 1
PARAM/'Specify Parameter', 'Parameter = ', PAR, USRESP
&COLOR(CRV) = &COLOR(CRV) - 1
JUMP/STEP1:,HALT:,USRESP
STEP3:
OLDDAT(1..3) = CPOSF(CRV,PAR)
OLDDAT(4..6) = CTANF(CRV,PAR)
NEWDAT(1..14) = CPROPF(CRV,PAR)
STEP4:
PRINT/' '
PRINT/'POINT = '
PRINT/NEWDAT(1..3)
PRINT/'TANGENT = '
PRINT/NEWDAT(4..6)
PRINT/'PRINCIPAL NORMAL = '
PRINT/NEWDAT(7..9)
PRINT/'BINORMAL = '
PRINT/NEWDAT(10..12)
PRINT/'TORSION = '
PRINT/NEWDAT(13)
PRINT/'RADIUS OF CURVATURE = '
PRINT/NEWDAT(14)
PRINT/' '
PRINT/'------------'
PRINT/OLDDAT(1..3)
PRINT/OLDDAT(4..6)
STEP5:
BADFLG = 0
IF/NEWDAT(1) <> OLDDAT(1), BADFLG = 1
IF/NEWDAT(2) <> OLDDAT(2), BADFLG = 1
IF/NEWDAT(3) <> OLDDAT(3), BADFLG = 1
IF/NEWDAT(4) <> OLDDAT(4), BADFLG = 1
IF/NEWDAT(5) <> OLDDAT(5), BADFLG = 1
IF/NEWDAT(6) <> OLDDAT(6), BADFLG = 1
IF/BADFLG == 1, MESSG/'Results Are Bad'
JUMP/STEP1:
HALT:
HALT
Parameter Position on a Curve - CPARF
Vector Tangent to a Curve - CTANF