/* * test code for Transform() function * * Copyright 2008 Przemyslaw Czerpak * */ STATIC s_stop := .F. PROCEDURE 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 ? Replicate( "*", 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( hb_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 := hb_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 "" ? transtest( dt, "@E", "<31:12.87>" ) SET DATE FORMAT TO "|YY|MM|DD|" ? transtest( dt, "@E", "|31|12|87|" ) SET DATE FORMAT TO "MM
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! ", "" ) ? transtest( "abcdefghij", "@S0! ", "" ) ? transtest( "abcdefghij", "@S5! ", "