Files
harbour-core/tests/for.prg
2013-10-09 20:08:24 +02:00

65 lines
1.0 KiB
Plaintext

// Testing Harbour For Next loops for Clipper compatibility
// ; Donated to the public domain by
// Viktor Szakats (vszakats.net/harbour)
// TODO: add test for "step 0"
STATIC s_nFrom
STATIC s_nTo
STATIC s_nStep
PROCEDURE Main()
LOCAL array
LOCAL tmp, n
? "Testing Harbour For Next loops."
array := { ;
{ 1, 10, 1 }, ;
{ 10, 1, -1 }, ;
{ 1, 10, -1 }, ;
{ 10, 1, 1 }, ;
{ 1, 10, 4 }, ;
{ 10, 1, -4 }, ;
{ 1, 10, -4 }, ;
{ 10, 1, 4 } }
FOR tmp := 1 TO Len( array )
s_nFrom := array[ tmp ][ 1 ]
s_nTo := array[ tmp ][ 2 ]
s_nStep := array[ tmp ][ 3 ]
? ;
" From:", s_nFrom, ;
" To:", s_nTo, ;
" Step:", s_nStep
FOR n := Eval( {|| ValFrom() } ) TO Eval( {|| ValTo() } ) STEP Eval( {|| ValStep() } )
? "Exec", n
NEXT
NEXT
RETURN
STATIC FUNCTION ValFrom()
? "From"
RETURN s_nFrom
STATIC FUNCTION ValTo()
? "To"
RETURN s_nTo
STATIC FUNCTION ValStep()
? "Step"
RETURN s_nStep