* tests/longdev.prg
* tests/hbpptest/hbpptest.prg
* tests/testcgi.prg
* tests/foreach.prg
* tests/onidle.prg
* tests/tstchbx.prg
* tests/codebl.prg
* tests/tstdbi.prg
* tests/vmasort.prg
* tests/tstasort.prg
* tests/testbrw.prg
* tests/inkeytst.prg
* tests/testrdd2.prg
* tests/keywords.prg
* tests/testhtml.prg
* tests/readhrb.prg
* tests/stripem.prg
* tests/wvtext.prg
* tests/testpre.prg
* tests/seconds.prg
* tests/fsplit.prg
* tests/mousetst.prg
* contrib/hbmysql/tmysql.prg
* contrib/hbct/numconv.prg
* contrib/hbct/ctmisc.prg
* contrib/hbodbc/todbc.prg
* contrib/hbapollo/tests/apollo.prg
* contrib/hbnf/acctyear.prg
* contrib/hbnf/acctadj.prg
* contrib/hbnf/nwsem.prg
* contrib/hbnf/week.prg
* contrib/hbnf/acctmnth.prg
* contrib/hbnf/savearr.prg
* contrib/hbnf/madd.prg
* contrib/hbnf/mouse1.prg
* contrib/hbnf/month.prg
* contrib/hbnf/findith.prg
* contrib/hbnf/acctweek.prg
* contrib/hbnf/pegs.prg
* contrib/hbnf/acctqtr.prg
* contrib/hbnf/nooccur.prg
* contrib/hbnf/dayofyr.prg
* contrib/hbnf/menu1.prg
* contrib/hbnf/sqzn.prg
* contrib/hbnf/asum.prg
* contrib/hbnf/aavg.prg
* contrib/hbnf/any2any.prg
* contrib/hbnf/adessort.prg
* contrib/hbnf/amedian.prg
* contrib/hbnf/blink.prg
* contrib/hbnf/qtr.prg
* contrib/hbnf/aredit.prg
* contrib/hbnf/xbox.prg
* contrib/hbnf/ftround.prg
* contrib/hbnf/invclr.prg
* contrib/hbnf/tempfile.prg
* contrib/hbnf/diskfunc.prg
* contrib/hbnf/mouse2.prg
* contrib/hbnf/daytobow.prg
* contrib/hbnf/anomatch.prg
* contrib/hbnf/datecnfg.prg
* contrib/hbnf/tbwhile.prg
* contrib/hbnf/year.prg
* contrib/hbnf/elapsed.prg
* contrib/hbnf/dfile.prg
* contrib/hbnf/clrsel.prg
* contrib/hbmisc/twirler.prg
* contrib/hbmisc/fileread.prg
* contrib/hbmisc/stringp.prg
* contrib/hbgf/hbgfw32/winctrl.prg
* contrib/hbgf/hbgfw32/form.prg
* contrib/hbgf/hbgfos2/winctrl.prg
* contrib/hbgf/hbgfos2/tform.prg
* contrib/hbtip/httpcln.prg
* contrib/hbvpdf/hbvpdf.prg
* contrib/hbvpdf/hbvpdft.prg
* contrib/examples/guestbk/guestbk.prg
* contrib/examples/pe/editorhi.prg
* Some more general code cleanups ( if() -> iif() ).
86 lines
1.6 KiB
Plaintext
86 lines
1.6 KiB
Plaintext
//
|
|
// $Id$
|
|
//
|
|
|
|
function Main( nPass )
|
|
|
|
LOCAL aTest
|
|
LOCAL aOrig
|
|
|
|
if nPass == NIL
|
|
nPass := 1
|
|
else
|
|
nPass := Val( nPass )
|
|
endif
|
|
|
|
? "Testing aSort with " + Str( nPass ) + " loops."
|
|
?
|
|
aTest := aMkArray( nPass )
|
|
aOrig := aClone( aTest )
|
|
|
|
set( _SET_DATEFORMAT, "mm/dd/yyyy" )
|
|
|
|
? "Original.....:", aDump( aOrig )
|
|
? "Asort.c......:", aDump( aSort( aTest ) )
|
|
// ? "Asort.c.block:", aDump( aSort( aTest, , , {| x, y | x < y } ) )
|
|
|
|
return nil
|
|
|
|
static function aMkArray( nPass )
|
|
|
|
LOCAL aData := {}
|
|
LOCAL n
|
|
LOCAL nMult := 200
|
|
LOCAL nMid := ( nMult / 2 ) + 1
|
|
LOCAL nMax := nPass * nMult
|
|
|
|
for n := 1 to nMax
|
|
aAdd( aData, NIL )
|
|
aAdd( aData, nMid - n )
|
|
aAdd( aData, Date() - n )
|
|
aAdd( aData, iif( n % 2 == 0, .f., .t. ) )
|
|
aAdd( aData, Replicate( Chr( 64 + ( n % 256 ) ) , nPass ) )
|
|
aAdd( aData, {|| n } )
|
|
aAdd( aData, Array( n ) )
|
|
aAdd( aData, ErrorNew() )
|
|
next
|
|
|
|
return aData
|
|
|
|
function aDump( a )
|
|
|
|
local cStr := ""
|
|
local n := len( a )
|
|
local i
|
|
|
|
for i := 1 to n
|
|
cStr += alltrim( xToStr( a[i] ) ) + " "
|
|
next
|
|
|
|
return cStr
|
|
|
|
function xToStr( xValue )
|
|
|
|
LOCAL cType := ValType( xValue )
|
|
|
|
do case
|
|
case cType == "C" .or. cType == "M"
|
|
return xValue
|
|
case cType == "N"
|
|
return AllTrim( Str( xValue ) )
|
|
case cType == "D"
|
|
return DToC( xValue )
|
|
case cType == "L"
|
|
return iif( xValue, ".T.", ".F." )
|
|
case cType == "U"
|
|
return "NIL"
|
|
case cType == "A"
|
|
return "{.}"
|
|
case cType == "B"
|
|
return "{|| }"
|
|
case cType == "O"
|
|
return "[O]"
|
|
endcase
|
|
|
|
return xValue
|