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 Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour