On Mon, 03 Mar 2008, Mindaugas Kavaliauskas wrote:
> Przemyslaw Czerpak wrote:
> >but I do not know if it's good idea to touch such important function
> >just before release. Your opinion?
> Hi,
> I would prefer release ASAP and changes later.
OK but how many changes we want to introduce before next release
and final 1.0 version? I would like to unblock SVN repository as
soon as possible.
And second thing. I would like to ask someone to control the release
process. Can some of you do it?
best regards,
Przemek
ps. I'm attaching regression test for transform() which shows some
of problems with current Harbour and xHarbour transform()
implementation. It should execute cleanly just like compiled
by Clipper and with the modifications I made it does.
static s_stop := .f.
proc main()
test()
return
function transtest( xVal, cPict, cExpect )
local cResult := transform( xVal, cPict )
if !cResult == cExpect
s_stop := .t.
endif
return iif( cResult == cExpect, "[OK] ", "[ERROR] ["+cExpect+"] => ") + ;
"[" + cResult + "]"
proc stop()
if s_stop
? repl("*",50)
inkey(0)
s_stop := .f.
endif
return
proc test()
local dt
? transtest( "abcd", "@9!*", "ABCD" )
? transtest( "abcd", "@_9!*", "ABCD" )
? transtest( "abcd", "@_9"+chr(9)+"9!9", "aBc" )
? transtest( "abcd", "@!!!", "ABCD" )
? transtest( "abcd", "@9", "abcd" )
?
? transtest( 134.24, "99,999.99", " 134.24" )
? transtest( 134.24, "@E 99,999.99", " 134,24" )
? transtest( -134.24,"@E 99,999.99", " -134,24" )
? transtest( 134.24, "@E99,999.99", " 134,24" )
? transtest( -134.24, "@E99,999.99", " -134,24" )
?
? transtest(-7, "@X 9999", " 7 DB")
? transtest(stod("19920509"), "@E", "09/05/92")
? transtest(val("3.10"),"@X", "3.10")
? transtest(0.80,".9999", ".8000" )
? transtest(-0.80, ".9999", ".****" )
? transtest(12345.123, "@X99", " 12345.123")
? transtest(-12345.123, "@X99", " 12345.123 DB" )
? transtest( 123456.78, "@E", " 123456,78")
? transtest(0,"@C 9.99", "0.00")
stop()
#ifdef __HARBOUR__
dt:=stod("19871231")
set date format to "MM:DD:YYYY"
? transtest( dt, "@E", "31:12:1987" )
set date format to "DD:MM:YYYY"
? transtest( dt, "@E", "31:12:1987")
set date format to "YYYY:MM:DD"
? transtest( dt, "@E", "31:12:1987")
set date format to "YYYY:DD:MM"
? transtest( dt, "@E", "31:12:1987")
set date format to "YY:MM:DD"
? transtest( dt, "@E", "31:12:87")
set date format to "MM:DD:YY"
? transtest( dt, "@E", "31:12:87")
set date format to "DD:MM:YY"
? transtest( dt, "@E", "31:12:87")
set date format to "<YY:DD.MM>"
? transtest( dt, "@E", "<31:12.87>")
set date format to "|YY|MM|DD|"
? transtest( dt, "@E", "|31|12|87|")
set date format to "MM<DD>YY"
? transtest( dt, "@E", "31<12>87")
stop()
#endif
? Transtest( -5, "@(Z $###,##9.99", "( 5.00)" )
? Transtest( -10, "@)Z $###,##9.99", "$ (10.00)" )
? Transtest( -20, "@Z $###,##9.99", "$ -20.00" )
? transtest(100,"9999.", " 100.")
? transtest(1.1,"@B!99.99", "1.1 ")
? transtest(12.345,"@R 99/99", " /12")
? transtest( "1234567890", "@9", "1234567890")
? transtest( 1234567890, "@9", " 1234567890")
? Transtest( 1234, "9 999", "1 234" )
? Transtest( 123.123456, "999.99.99.99", "123.12.45. " )
? Transtest( 123.123456, "$$$.$$.$$.$$", "123.12.45. " )
? Transtest( 123.123456, "***.**.**.**", "123.12.45. " )
? Transtest( 99999, "9.999", "*.***" )
? Transtest( 99, "*.***", "*.***" )
? transtest( 12345, "9999.", "****." )
stop()
? transtest(-12345.00, "@(", "( 12345.00)")
? transtest(-12345.00, "@)", " (12345.00)")
? transtest(-123456789.00, "@(", "(123456789.00)")
? transtest(-123456789.00, "@)", "(123456789.00)")
? transtest(-1234567890, "@(", "( 1234567890)")
? transtest(-1234567890, "@)", " (1234567890)")
? transtest(-12345, "@( [999999]", "( 12345])")
? transtest(-12345, "@) [999999]", "[(12345])")
? transtest(-12345, "@( $999999", "( 12345)")
? transtest(-12345, "@) $999999", "$(12345)")
? transtest(-12345, "@( #999999", "( 12345)")
? transtest(-12345, "@) #999999", " (12345)")
? transtest(-12345, "@( $99999", "(12345)")
? transtest(-12345, "@) $99999", "(12345)")
? transtest(-12345, "@( #99999", "(12345)")
? transtest(-12345, "@) #99999", "(12345)")
? transtest(-12345, "@( 6798^999", "(7*8^***)")
? transtest(-12345, "@( 9798^9999", "(718^2345)")
stop()
?
tofix()
return
proc tofix()
? transtest( 134.24, "@E99,999.99", " 134,24" )
? transtest( -134.24, "@E99,999.99", " -134,24" )
? transtest(0.80,".9999", ".8000")
? transtest(-0.80,".9999", ".****")
? transtest(12345.123, "@X99", " 12345.123")
? transtest(-12345.123, "@X99", " 12345.123 DB")
? transtest( 123456.78, "@E", " 123456,78")
? transtest(0,"@C 9.99", "0.00")
? transtest(1.1,"@B!99.99", "1.1 ")
? transtest(-12345, "@) [999999]", "[(12345])")
? transtest(-12345, "@) $999999", "$(12345)")
? transtest(-12345, "@) *999999", "*(12345)")
? transtest(-12345, "@) #999999", " (12345)")
? transtest(-12345, "@) *9$9*999]", "*($12345])")
? transtest(-12345, "@) *999*999]", "* (12345])")
? transtest(-12345, "@) 0999*999]", "0 (12345])")
? transtest(-12345, "@) 1999*999]", "1 (12345])")
? transtest(-12345, "@) *[99*999]", "([ 12345])")
? transtest(-12345, "@) *****999]", "(**12345])")
? transtest(-12345, "@) *1***999]", "(1*12345])")
? transtest(-12345, "@) * 999999]", "* (12345])")
? transtest( -5, "@(Z $###,##9.99", "( 5.00)" )
? transtest( -10, "@)Z $###,##9.99", "$ (10.00)" )
? transtest( -5, "@(Z $999,999.99", "( 5.00)" )
? transtest( -10, "@)Z $999,999.99", "$ (10.00)" )
? transtest( -5, "@(Z 999,999.99", "( 5.00)" )
? transtest( -10, "@)Z 999,999.99", " (10.00)" )
? transtest( -20, "@Z $###,##9.99", "$ -20.00" )
? transtest(0.1,".9", ".1")
? transtest(0.0,".9", ".0")
? transtest(1,".9", ".*")
? transtest(.456,".9", ".5")
? transtest(123,"99.-", "**.-")
stop()
? transtest(-123.45,"999,999.99", " -123.45")
? transtest(-123456.78,"999,999,999.99", " -123,456.78")
? transtest(-123456.78,"$$$,$$$,$$$.$$", "$$ -123,456.78")
? transtest(-123456.78,"***,***,***.**", "***-123,456.78")
? transtest(123456.78,"@E 888,$$$,$$$.$$", "888.123.456,78")
? transtest(123456.78,"@E 888x,$$$,$$$.$$", "888xx123.456,78")
? transtest(123456.78,"@E 888x,,$$$,$$$.$$", "888xxx123.456,78")
? transtest(123456.78,"@E 8,88x,,$$$,$$$.$$", "8.88xxx123.456,78")
? transtest(123456.78,"@E 8,88x,,$$$,,$$$.$$", "8.88xxx123..456,78")
? transtest(123456.78,"@E 8,88x,,$$$,,$$$.$$77,7", "8.88xxx123..456,7877,7")
? transtest(123456,"@E 8,88x,,$$$,,$$$77,7", "8.88xxx123..45677,7")
? transtest(123456,"@E -,999,999", " -123.456")
? transtest(12345,"@E -,999,999", " - 12.345")
? transtest(12345,"@E -,|999,999", " -| 12.345")
? transtest(12345,"@E ^-,|999,999", "^^-| 12.345")
? transtest(12345,"@E 1-,|999,999", "11-| 12.345")
? transtest(12345,"@E |--,|999,999", "|---| 12.345")
stop()
? transtest(12.34,"@E 99'99", " '12")
? transtest(12.34,"99,99,11", " 12,11")
? transtest(12.34,"@E 99,99,11", " 12,11")
? transtest(12.34,"@E 99,", "12,")
? transtest(12.34,"@E 9,9", "1.2")
? transtest(12.34,"@E ab,cd.ef9,9.99,.--", "abbcd,ef***,* ,.--")
? transtest(12.34,"@E ab,cd,ef9,9.99,.--", "abbcddef1.2,34,.--")
? transtest(12.34,"@E ,ab,cd,ef9,9.99,.--", ",abbcddef1.2,34,.--")
? transtest(12.34,"@E ,,,,99,.99,.--", ",,,,12.,34,.--")
? transtest(124.4,"@E ,,,,9,9.99,.--", ",,,,***,**,.--")
? transtest( 1.2,"@E ,,,,*,*.**,.--", ",,,,**1,20,.--")
? transtest(12.34,"@E ,,,,*,*.**,.--", ",,,,1.2,34,.--")
? transtest(12.34,"@E ,,,,*,*.**,.--,--", ",,,,1.2,34,.--,--")
? transtest(12.34,"@E ,,,,*,*,.,**", ",,,,1.2.,,34")
? transtest(12.34,",,,,*,*,.,**", ",,,,1,2,..34")
? transtest(12.34,",,,,*,*,.,*|,*", ",,,,1,2,..3||4")
? transtest(12.34,",,,,*,*,.,*,*", ",,,,1,2,..3,4")
? transtest(123.345678912,"@E 999.99.99,99.99.", "123,34,67.89, .")
#ifdef __HARBOUR__
? transtest( 1234567890123456789, "99999999999999999999", "
1234567890123456789" )
? transtest( -1234567890123456789, "99999999999999999999",
"-1234567890123456789" )
#else
? transtest( 1234567890123456789, "99999999999999999999", "
1234567890123457000" )
? transtest( -1234567890123456789, "99999999999999999999",
"-1234567890123457000" )
#endif
stop()
set(_SET_DATEFORMAT,"YYYY/MM/DD")
? transtest(12345678,"@D", "1234/56/78")
set(_SET_DATEFORMAT,"YYYY.MM.DD")
? transtest(1234.56789,"@D", "1234.56.9 ")
set(_SET_DATEFORMAT,"YYYY.MM:DD")
? transtest(1234.56789,"@D", "1234.56:79")
? transtest(123.345678912,"@D ", " 123.34:57")
set(_SET_DATEFORMAT,"MM-DD-YYYY")
? transtest(.t.,"@RE <|,yY#lL,|>", "99-99-9999T")
? transtest(.f.,"@RE <|,yY#lL,|>", "99-99-9999F")
? transtest(.t.,"@RD <|,yY#lL,|>", "99-99-9999T")
? transtest(.f.,"@RD <|,yY#lL,|>", "99-99-9999F")
? transtest(.f.,"@DE <|,yY#lL,|>", "9")
? transtest("abcdefghij","@S15! <XXXXXXXX>", "<BCDEFGHI>")
? transtest("abcdefghij","@S0! <XXXXXXXX>", "<BCDEFGHI>")
? transtest("abcdefghij","@S5! <XXXXXXXX>", "<BCDE")
stop()
SET FIXED ON
? transtest( 1234, , " 1234" )
? transtest( 1234, "" , " 1234" )
? transtest( 1234, "@" , " 1234" )
? transtest( 1234, "@!", " 1234" )
? transtest( -1234, , " -1234" )
? transtest( -1234, "@" , " -1234" )
#ifdef HB_C52_STRICT
? transtest( round(123,0), , " 123.00" )
? transtest( round(123,0), "@!", " 123.00" )
? transtest( round(123.0,0), , " 123.00" )
? transtest( round(123.0,0),"@!", " 123.00" )
#endif
stop()
? transtest( 1234.567, , " 1234.57" )
? transtest( 1234.567, "", " 1234.57" )
? transtest( 1234.567, "@" , " 1234.57" )
? transtest( 1234.567, "@!", " 1234.57" )
? transtest( -1234.567, , " -1234.57" )
? transtest( -1234.567, "@", " -1234.57" )
? transtest( val("-1.0"), , "-1.00" )
? transtest( val("-1.0"), "@", "-1.00" )
? transtest( val("-123"), , " -123" )
? transtest( val("-123"), "@", " -123" )
? transtest( 0, , " 0" )
? transtest( 0.0, , " 0.00" )
? transtest( val("1"), , " 1" )
? transtest( val("12"), , " 12" )
? transtest( val("123"), , " 123" )
? transtest( val("1234"), , " 1234" )
stop()
set decimal to 3
? transtest( 0.0, , " 0.000" )
? transtest( val("1"), , " 1" )
? transtest( val("12"), , " 12" )
? transtest( val("123"), , " 123" )
? transtest( val("1234"), , " 1234" )
set decimal to 4
? transtest( 0.0, , " 0.0000" )
? transtest( val("1"), , " 1" )
? transtest( val("12"), , " 12" )
? transtest( val("123"), , " 123" )
? transtest( val("1234"), , " 1234" )
SET FIXED OFF
stop()
? transtest( -1234, , " -1234" )
? transtest( -1234, "@B", "-1234 " )
? transtest( -1234, "@(", "( 1234)" )
? transtest( -1234, "@)", " (1234)" )
? transtest( -1234, "@B)", "(1234) " )
? transtest( -1234, "@B(", "(1234) " )
? transtest( "( 12)", "@B(", "( 12)" )
? transtest( "( 12)", "@B)", "( 12)" )
? transtest( " 12", "@B(", "12 " )
? transtest( " 12", "@B)", "12 " )
#ifdef __HARBOUR__
? transtest( 1234, "@L", "0000001234" )
? transtest( 1234, "@0", "0000001234" )
? transtest( 1234, "@L(", "0000001234" )
? transtest( 1234, "@0)", "0000001234" )
? transtest( -1234, "@L(", "(000001234)" )
? transtest( -1234, "@0)", "(000001234)" )
/* please test it with FoxPro and xbase++ to check if they give the same result
*/
? transtest( -1234, "@L", "-000001234" )
? transtest( -1234, "@0", "-000001234" )
#endif
/* FlagShip extensions */
? transtest( -1234, "@Z", " -1234" )
? transtest( 1234, "@Z", " 1234" )
? transtest( -1234, "@F", " -1234" )
? transtest( 1234, "@F", " 1234" )
? transtest( -1234, "@T", " -1234" )
? transtest( 1234, "@T", " 1234" )
? transtest( 123456789.12, "@,39 999,999,999.99", "123,456,789.12" )
? transtest( 123456789.12, "@,39 999,999,999.99", "123,456,789.12" )
? transtest( 123.456, "@R 9 9 9.9", "1 2 3.5" )
stop()
return
#ifndef __HARBOUR__
func stod(s)
local cDf:=set(_SET_DATEFORMAT,"YYYY/MM/DD"), dt
dt:=ctod(stuff(stuff(s,7,0,"/"),5,0,"/"))
set(_SET_DATEFORMAT,cDf)
return dt
#endif
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour