Files
harbour-core/harbour/tests/tstasort.prg
Ron Pinkas c099169a37 2001-07-19 02:00 UTC-0800 Ron Pinkas <ron@profit-master.com>
* source/compiler/harbour.slx
     * Changed storing of MACROTEXT from hb_compIdentifierNew() to hb_strdup().

   * tests/tstasort.prg
     ! Fixed R/T Error resulting from comparing unrelated types in sorting codeblock.
2001-07-19 08:58:53 +00:00

66 lines
1.4 KiB
Plaintext

//
// $Id$
//
function main()
local oError := ErrorNew()
local a := { 3, 2, 1 }
local b := { 10 }
local c := { 2, .T., "B", NIL, { 1 }, {|| b }, oError, Date(), 1, .F., "A", NIL, Date() - 1, { 0 }, {|| a }, oError }
local t
?
?
? "Original.....:", aDump( t := a )
? "Asort.c......:", aDump( aSort( t := aClone( a ) ) )
? "Asort.c.block:", aDump( aSort( t := aClone( a ), , , {| x, y | x < y } ) )
?
? "Original.....:", aDump( t := b )
? "Asort.c......:", aDump( aSort( t := aClone( b ) ) )
? "Asort.c.block:", aDump( aSort( t := aClone( b ), , , {| x, y | x < y } ) )
?
? "Original.....:", aDump( t := c )
? "Asort.c......:", aDump( aSort( t := aClone( c ) ) )
? "Asort.c.block:", aDump( aSort( t := aClone( c ), , , {| x, y | xToStr(x) < xToStr(y) } ) )
return nil
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 if( xValue, ".T.", ".F." )
case cType == "U"
return "NIL"
case cType == "A"
return "{.}"
case cType == "B"
return "{|| }"
case cType == "O"
return "[O]"
endcase
return xValue