/* * Harbour Project source code: * Regression tests for the runtime library (strings) * * Copyright 1999-2001 Viktor Szakats (vszakats.net/harbour) * www - http://harbour-project.org * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this software; see the file COPYING.txt. If not, write to * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). * * As a special exception, the Harbour Project gives permission for * additional uses of the text contained in its release of Harbour. * * The exception is that, if you link the Harbour libraries with other * files to produce an executable, this does not by itself cause the * resulting executable to be covered by the GNU General Public License. * Your use of that executable is in no way restricted on account of * linking the Harbour library code into it. * * This exception does not however invalidate any other reasons why * the executable file might be covered by the GNU General Public License. * * This exception applies only to the code released by the Harbour * Project under the name Harbour. If you copy code from other * Harbour Project or Free Software Foundation releases into a copy of * Harbour, as the General Public License permits, the exception does * not apply to the code that you add in this way. To avoid misleading * anyone as to the status of such modified files, you must delete * this exception notice from them. * * If you write modifications of your own for Harbour, it is your choice * whether to permit this exception to apply to your modifications. * If you do not wish that, delete this exception notice. * */ #include "rt_main.ch" /* Don't change the position of this #include. */ #include "rt_vars.ch" PROCEDURE Main_TRANS() LOCAL cOldDate := Set( _SET_DATEFORMAT ) LOCAL cOldFixed := Set( _SET_FIXED ) LOCAL cOldDecim := Set( _SET_DECIMALS ) LOCAL dt, df /* Transform() */ HBTEST Transform( NIL , NIL ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:U:NIL;U:NIL F:S" HBTEST Transform( NIL , "" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:U:NIL;C: F:S" HBTEST Transform( NIL , "@" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:U:NIL;C:@ F:S" HBTEST Transform( {} , NIL ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:A:{.[0].};U:NIL F:S" HBTEST Transform( {} , "" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:A:{.[0].};C: F:S" HBTEST Transform( {} , "@" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:A:{.[0].};C:@ F:S" HBTEST Transform( ErrorNew(), NIL ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:O:ERROR Object;U:NIL F:S" HBTEST Transform( ErrorNew(), "" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:O:ERROR Object;C: F:S" HBTEST Transform( ErrorNew(), "@" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:O:ERROR Object;C:@ F:S" HBTEST Transform( {|| NIL } , NIL ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:B:{||...};U:NIL F:S" HBTEST Transform( {|| NIL } , "" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:B:{||...};C: F:S" HBTEST Transform( {|| NIL } , "@" ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:B:{||...};C:@ F:S" HBTEST Transform( "", "" ) IS "" HBTEST Transform( "", "@" ) IS "" #ifndef __XPP__ HBTEST Transform( "", NIL ) IS "" #endif HBTEST Transform( "", 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:C:;N:100 F:S" HBTEST Transform( "hello", "" ) IS "hello" HBTEST Transform( "hello", "@" ) IS "hello" #ifndef __XPP__ HBTEST Transform( "hello", NIL ) IS "hello" #endif HBTEST Transform( "hello", 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:C:hello;N:100 F:S" HBTEST Transform( 100.2, "" ) IS " 100.2" HBTEST Transform( 100.2, "@" ) IS " 100.2" #ifndef __XPP__ HBTEST Transform( 100.2, NIL ) IS " 100.2" #endif HBTEST Transform( 100.2, 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:N:100.2;N:100 F:S" HBTEST Transform( 100.20, "" ) IS " 100.20" HBTEST Transform( 100.20, "@" ) IS " 100.20" #ifndef __XPP__ HBTEST Transform( 100.20, NIL ) IS " 100.20" #endif HBTEST Transform( 100.20, 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:N:100.20;N:100 F:S" HBTEST Transform( Val( "100.2" ), "" ) IS "100.2" HBTEST Transform( Val( "100.2" ), "@" ) IS "100.2" #ifndef __XPP__ HBTEST Transform( Val( "100.2" ), NIL ) IS "100.2" #endif HBTEST Transform( Val( "100.2" ), 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:N:100.2;N:100 F:S" HBTEST Transform( Val( "100.20" ), "" ) IS "100.20" // HBTEST Transform( Val( "100.20" ), "@" ) IS "100.20" #ifndef __XPP__ HBTEST Transform( Val( "100.20" ), NIL ) IS "100.20" #endif HBTEST Transform( Val( "100.20" ), 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:N:100.20;N:100 F:S" HBTEST Transform( sdDate, "" ) IS "1984-03-25" HBTEST Transform( sdDate, "@" ) IS "1984-03-25" #ifndef __XPP__ HBTEST Transform( sdDate, NIL ) IS "1984-03-25" #endif HBTEST Transform( sdDate, 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:D:0d19840325;N:100 F:S" HBTEST Transform( .T., "" ) IS "T" HBTEST Transform( .T., "@" ) IS "T" #ifndef __XPP__ HBTEST Transform( .F., NIL ) IS "F" #endif HBTEST Transform( .F., 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:L:.F.;N:100 F:S" HBTEST Transform( scStringM, "!!!!!" ) IS "HELLO" HBTEST Transform( scStringM, "@!" ) IS "HELLO" #ifdef __HARBOUR__ HBTEST Transform( @scStringM, "!!!!!" ) IS "HELLO" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:U:Hello;C:!!!!! F:S" */ HBTEST Transform( @scStringM, "@!" ) IS "HELLO" /* Bug in CA-Cl*pper, it returns: "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:U:Hello;C:@! F:S" */ #endif HBTEST Transform( scStringM, "" ) IS "Hello" #ifndef __XPP__ HBTEST Transform( scStringM, NIL ) IS "Hello" #endif HBTEST Transform( scStringM, 100 ) IS "E 1 BASE 1122 Argument error (TRANSFORM) OS:0 #:0 A:2:C:Hello;N:100 F:S" HBTEST Transform( "abcdef", "@! !lkm!" ) IS "ABkmE" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@! 1234567890" ) IS "12345678I0" HBTEST Transform( "abcdefghijklmnopqrstuvwxyzabcdefg", "@! abcdefghijklmnopqrstuvwxyzabcdefg" ) IS "AbcdefghijkLmNopqrstuvwXYzAbcdefg" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@! `~!@#$% ^&*()_+-={}\|;':" ) IS "`~C@E$% ^&*()_+-={}\|;':" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@! ,./<>?" ) IS ",./<>?" HBTEST Transform( "hello", " @!" ) IS " @L" HBTEST Transform( "abcdef", "@R! !lkm!" ) IS "ABkmC" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@R! 1234567890" ) IS "12345678A0" HBTEST Transform( "abcdefghijklmnopqrstuvwxyzabcdefg", "@R! abcdefghijklmnopqrstuvwxyzabcdefg" ) IS "AbcdefghijkBmCopqrstuvwDNzFbcdefg" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@R! `~!@#$% ^&*()_+-={}\|;':" ) IS "`~A@B$% ^&*()_+-={}\|;':" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@R! ,./<>?" ) IS ",./<>?ABCDEFGHIJKLMNOPQRSTUVWXYZ" HBTEST Transform( "hello", " @R!" ) IS " @RL" HBTEST Transform( "abc", "@R !!!!" ) IS "ABC " HBTEST Transform( "abc", "@R XXXX" ) IS "abc " HBTEST Transform( "abc", "@R !!" ) IS "AB" HBTEST Transform( "abc", "@R XX" ) IS "ab" HBTEST Transform( "abc", "@!R !!!!" ) IS "ABC " HBTEST Transform( "abc", "@!R XXXX" ) IS "ABC " HBTEST Transform( "abc", "@!R !!" ) IS "AB" HBTEST Transform( "abc", "@!R XX" ) IS "AB" HBTEST Transform( "Hallo ", "!!!!!" ) IS "HALLO" HBTEST Transform( "Hallo ", "!!A!!" ) IS "HAlLO" HBTEST Transform( "Hallo ", "!!A9!" ) IS "HAllO" HBTEST Transform( "Hallo ", "!QA9!" ) IS "HQllO" HBTEST Transform( "Hallo ", "ZQA9!" ) IS "ZQllO" HBTEST Transform( "Hall" , "ZQA9!" ) IS "ZQll" HBTEST Transform( "Hallo ", "!AAA" ) IS "Hall" HBTEST Transform( "Hallo ", "@!" ) IS "HALLO " HBTEST Transform( "Hallo ", "@! AA" ) IS "HA" HBTEST Transform( "Hallo ", "@R" ) IS "Hallo " HBTEST Transform( "Hallo ", "@Z" ) IS " " HBTEST Transform( "Hallo ", "@R !!" ) IS "HA" HBTEST Transform( "Hi" , "@R !!!" ) IS "HI " HBTEST Transform( "Hallo ", "" ) IS "Hallo " HBTEST Transform( .T. , "" ) IS "T" HBTEST Transform( .F. , "" ) IS "F" HBTEST Transform( .T. , "L" ) IS "T" HBTEST Transform( .F. , "L" ) IS "F" HBTEST Transform( .T. , "Y" ) IS "Y" HBTEST Transform( .F. , "Y" ) IS "N" HBTEST Transform( .T. , "X" ) IS "X" HBTEST Transform( .F. , "#" ) IS "F" HBTEST Transform( .T. , "X!" ) IS "X" HBTEST Transform( .F. , "@R Y" ) IS "N" HBTEST Transform( .T. , "@R X!" ) IS "X!T" HBTEST Transform( hb_SToD( "20000101" ) , "@B" ) IS "2000-01-01" HBTEST Transform( hb_SToD( "19901214" ) , "99/99/9999" ) IS "1990-12-14" HBTEST Transform( hb_SToD( "19901202" ) , "99.99.9999" ) IS "1990-12-02" HBTEST Transform( hb_SToD( "" ) , "99/99/9999" ) IS " - - " HBTEST Transform( hb_SToD( "19901202" ) , "99/99/99" ) IS "1990-12-02" HBTEST Transform( hb_SToD( "19901214" ) , "99-99-99" ) IS "1990-12-14" HBTEST Transform( hb_SToD( "20040430" ) , "99.99.99" ) IS "2004-04-30" HBTEST Transform( hb_SToD( "" ) , "99/99/99" ) IS " - - " HBTEST Transform( hb_SToD( "19920101" ) , "THISWRNG" ) IS "1992-01-01" HBTEST Transform( hb_SToD( "19350605" ) , "999/99/9" ) IS "1935-06-05" HBTEST Transform( hb_SToD( "19101112" ) , "9#-9#/##" ) IS "1910-11-12" HBTEST Transform( hb_SToD( "19920101" ) , "" ) IS "1992-01-01" HBTEST Transform( hb_SToD( "19920101" ) , "DO THIS " ) IS "1992-01-01" HBTEST Transform( hb_SToD( "19920102" ) , "@E" ) IS "02-01-1992" /* Bug in CA-Cl*pper, it returns: "2-91901-02" */ HBTEST Transform( 1234 , "@D 9999" ) IS " -12-34" HBTEST Transform( 1234 , "@BD 9999" ) IS "-12-34 " df := Set( _SET_DATEFORMAT, "yyyy.mm.dd" ) HBTEST Transform( 1234 , "@D 9999" ) IS "1234.00.0 " HBTEST Transform( 1234 , "@BD 9999" ) IS "1234.00.0 " Set( _SET_DATEFORMAT, df ) SET CENTURY OFF HBTEST Transform( hb_SToD( "20000101" ) , "@B" ) IS "00-01-01" HBTEST Transform( hb_SToD( "19901214" ) , "99/99/9999" ) IS "90-12-14" HBTEST Transform( hb_SToD( "19901202" ) , "99.99.9999" ) IS "90-12-02" HBTEST Transform( hb_SToD( "" ) , "99/99/9999" ) IS " - - " HBTEST Transform( hb_SToD( "19901202" ) , "99/99/99" ) IS "90-12-02" HBTEST Transform( hb_SToD( "19901214" ) , "99-99-99" ) IS "90-12-14" HBTEST Transform( hb_SToD( "20040430" ) , "99.99.99" ) IS "04-04-30" HBTEST Transform( hb_SToD( "" ) , "99/99/99" ) IS " - - " HBTEST Transform( hb_SToD( "19920101" ) , "THISWRNG" ) IS "92-01-01" HBTEST Transform( hb_SToD( "19350605" ) , "999/99/9" ) IS "35-06-05" HBTEST Transform( hb_SToD( "19101112" ) , "9#-9#/##" ) IS "10-11-12" HBTEST Transform( hb_SToD( "19920101" ) , "" ) IS "92-01-01" HBTEST Transform( hb_SToD( "19920101" ) , "DO THIS " ) IS "92-01-01" HBTEST Transform( hb_SToD( "19920102" ) , "@E" ) IS "02-01-92" /* Bug in CA-Cl*pper, it returns: "01-92-02" */ HBTEST Transform( 1234 , "@D 9999" ) IS " -12-34" HBTEST Transform( 1234 , "@BD 9999" ) IS "-12-34 " df := Set( _SET_DATEFORMAT, "yy.mm.dd" ) HBTEST Transform( 1234 , "@D 9999" ) IS "**.**.* " HBTEST Transform( 1234 , "@BD 9999" ) IS "**.**.* " Set( _SET_DATEFORMAT, df ) SET CENTURY ON HBTEST Transform( 1 , "@b" ) IS "1 " HBTEST Transform( 1 , "@B" ) IS "1 " HBTEST Transform( 1.0 , "@B" ) IS "1.0 " HBTEST Transform( 15 , "9999" ) IS " 15" HBTEST Transform( 1.5 , "99.99" ) IS " 1.50" HBTEST Transform( 1.5 , "9999" ) IS " 2" HBTEST Transform( 15 , "####" ) IS " 15" HBTEST Transform( 1.5 , "##.##" ) IS " 1.50" HBTEST Transform( 1.5 , "####" ) IS " 2" HBTEST Transform( 15 , " AX##" ) IS " AX15" HBTEST Transform( 1.5 , "!9XPA.9" ) IS "!1XPA.5" HBTEST Transform( -15 , "9999" ) IS " -15" HBTEST Transform( -1.5 , "99.99" ) IS "-1.50" HBTEST Transform( -15 , "$999" ) IS "$-15" HBTEST Transform( -1.5 , "*9.99" ) IS "-1.50" HBTEST Transform( 41 , "$$$9" ) IS "$$41" HBTEST Transform( 41 , "***9" ) IS "**41" HBTEST Transform( 15000 , "9999" ) IS "****" HBTEST Transform( 15000 , "99,999" ) IS "15,000" HBTEST Transform( 1500 , "99,999" ) IS " 1,500" HBTEST Transform( 150 , "99,999" ) IS " 150" HBTEST Transform( 150 , "99,99" ) IS " 1,50" HBTEST Transform( 41 , "@Z 9999" ) IS " 41" HBTEST Transform( 0 , "@Z 9999" ) IS " " #ifdef __HARBOUR__ HBTEST Transform( 41 , "@0 9999" ) IS "0041" /* Extension in Harbour, in CA-Cl*pper it should return: " 41" */ HBTEST Transform( 0 , "@0 9999" ) IS "0000" /* Extension in Harbour, in CA-Cl*pper it should return: " 0" */ #endif HBTEST Transform( 41 , "@B 9999" ) IS "41 " HBTEST Transform( 41 , "@B 99.9" ) IS "41.0" HBTEST Transform( 7 , "@B 99.9" ) IS "7.0 " HBTEST Transform( 7 , "@C 99.9" ) IS " 7.0 CR" HBTEST Transform( -7 , "@C 99.9" ) IS "-7.0" HBTEST Transform( 7 , "@X 99.9" ) IS " 7.0" HBTEST Transform( -7 , "@X 99.9" ) IS " 7.0 DB" HBTEST Transform( 7 , "@( 99.9" ) IS " 7.0" HBTEST Transform( -7 , "@( 99.9" ) IS "(7.0)" HBTEST Transform( 7 , "9X9Z5.9" ) IS " X7Z5.0" HBTEST Transform( -7 , "@R 9X9^" ) IS "-X7^" HBTEST Transform( -7 , "9X9^" ) IS "-X7^" HBTEST Transform( 1 , "@R 9HI!" ) IS "1HI!" HBTEST Transform( 1 , "9HI!" ) IS "1HI!" HBTEST Transform( -12 , "@( 99" ) IS "(*)" /* Bug in CA-Cl*pper, it returns: "(2)" */ HBTEST Transform( 12 , "@( 99" ) IS "12" HBTEST Transform( 1 , "" ) IS " 1" HBTEST Transform( 32768 , "" ) IS " 32768" HBTEST Transform( -20 , "" ) IS " -20" HBTEST Transform( 1048576 , "" ) IS " 1048576" HBTEST Transform( 21.65 , "" ) IS " 21.65" HBTEST Transform( -3.33 , "" ) IS " -3.33" HBTEST Transform( -1234 , "@( 9999" ) IS "(***)" /* Bug in CA-Cl*pper, it returns: "(234)" */ HBTEST Transform( -1234 , "@B 9999" ) IS "****" HBTEST Transform( -1234 , "@B( 9999" ) IS "(***)" /* Bug in CA-Cl*pper, it returns: "(234)" */ HBTEST Transform( 1234 , "@E 9,999.99" ) IS "1.234,00" HBTEST Transform( 12.2 , "@E 9,999.99" ) IS " 12,20" HBTEST Transform( -1234 , "@X 9999" ) IS "1234 DB" HBTEST Transform( -1234 , "@BX 9999" ) IS "1234 DB" HBTEST Transform( 1234 , "@B 9999" ) IS "1234" HBTEST Transform( 1234 , "@BX 9999" ) IS "1234" HBTEST Transform( 0 , "@Z 9999" ) IS " " HBTEST Transform( 0 , "@BZ 9999" ) IS " " HBTEST Transform( 2334 , "Xxxxx: #####" ) IS "Xxxxx: 2334" HBTEST Transform( "Hello", "@S-1" ) IS "Hello" HBTEST Transform( "Hello", "@S3.0!" ) IS "HEL" HBTEST Transform( "Hello", "@S3" ) IS "Hel" HBTEST Transform( "Hello", "@S13" ) + "<" IS "Hello<" HBTEST Transform( "Hello", "@S000000000003K" ) IS "Hel" HBTEST Transform( "Hello", "@S3K" ) IS "Hel" HBTEST Transform( "Hello", "@S 3K" ) IS "3K" HBTEST Transform( "Hello", "@S3" + Chr( 9 ) ) IS "Hel" HBTEST Transform( "abcdef", "@! !lkm!" ) IS "ABkmE" HBTEST Transform( "abcdef", "@! !LKM!" ) IS "ABKME" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@! !lkm!x" ) IS "ABkmEF" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@! abcdefghijklmnopqrstuvwxyz" ) IS "AbcdefghijkLmNopqrstuvwXYz" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@! `~!@#$%^&*()_+-={}[]\|;':" ) IS "`~C@E$%^&*()_+-={}[]\|;':" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@! ,./<>?" ) IS ",./<>?" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@R! ,./<>?" ) IS ",./<>?ABCDEFGHIJKLMNOPQRSTUVWXYZ" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@R! ,./<>" ) IS ",./<>ABCDEFGHIJKLMNOPQRSTUVWXYZ" HBTEST Transform( "abcdefghijklmnopqrstuvwxyz", "@R! ,./<" ) IS ",./YY" HBTEST Transform( dt, "@E" ) IS "31<12>87" #ifdef __HARBOUR__ /* this are wrongly converted by CA-Cl*pper */ SET DATE FORMAT TO "DD:MM:YYYY" HBTEST Transform( dt, "@E" ) IS "31:12:1987" SET DATE FORMAT TO "YYYY:MM:DD" HBTEST Transform( dt, "@E" ) IS "31:12:1987" SET DATE FORMAT TO "YYYY:DD:MM" HBTEST Transform( dt, "@E" ) IS "31:12:1987" SET DATE FORMAT TO "YY:MM:DD" HBTEST Transform( dt, "@E" ) IS "31:12:87" SET DATE FORMAT TO "DD:MM:YY" HBTEST Transform( dt, "@E" ) IS "31:12:87" SET DATE FORMAT TO "" HBTEST Transform( dt, "@E" ) IS "<31:12.87>" SET DATE FORMAT TO "|YY|MM|DD|" HBTEST Transform( dt, "@E" ) IS "|31|12|87|" #endif SET DATE FORMAT TO "MM.DD.YYYY" HBTEST Transform( dt, "@E" ) IS "31.12.1987" HBTEST Transform( -5, "@(Z $###,##9.99" ) IS "( 5.00)" HBTEST Transform( -10, "@)Z $###,##9.99" ) IS "$ (10.00)" HBTEST Transform( -20, "@Z $###,##9.99" ) IS "$ -20.00" HBTEST Transform( 100, "9999." ) IS " 100." HBTEST Transform( 1.1, "@B!99.99" ) IS "1.1 " HBTEST Transform( 12.345, "@R 99/99" ) IS " /12" HBTEST Transform( "1234567890", "@9" ) IS "1234567890" HBTEST Transform( 1234567890, "@9" ) IS " 1234567890" HBTEST Transform( 1234, "9 999" ) IS "1 234" HBTEST Transform( 123.123456, "999.99.99.99" ) IS "123.12.45. " HBTEST Transform( 123.123456, "$$$.$$.$$.$$" ) IS "123.12.45. " HBTEST Transform( 123.123456, "***.**.**.**" ) IS "123.12.45. " HBTEST Transform( 99999, "9.999" ) IS "*.***" HBTEST Transform( 99, "*.***" ) IS "*.***" HBTEST Transform( 12345, "9999." ) IS "****." HBTEST Transform( -12345.00, "@(" ) IS "( 12345.00)" HBTEST Transform( -12345.00, "@)" ) IS " (12345.00)" HBTEST Transform( -123456789.00, "@(" ) IS "(123456789.00)" HBTEST Transform( -123456789.00, "@)" ) IS "(123456789.00)" HBTEST Transform( -1234567890, "@(" ) IS "( 1234567890)" HBTEST Transform( -1234567890, "@)" ) IS " (1234567890)" HBTEST Transform( -12345, "@( [999999]" ) IS "( 12345])" HBTEST Transform( -12345, "@) [999999]" ) IS "[(12345])" HBTEST Transform( -12345, "@( $999999" ) IS "( 12345)" HBTEST Transform( -12345, "@) $999999" ) IS "$(12345)" HBTEST Transform( -12345, "@( #999999" ) IS "( 12345)" HBTEST Transform( -12345, "@) #999999" ) IS " (12345)" HBTEST Transform( -12345, "@( $99999" ) IS "(12345)" HBTEST Transform( -12345, "@) $99999" ) IS "(12345)" HBTEST Transform( -12345, "@( #99999" ) IS "(12345)" HBTEST Transform( -12345, "@) #99999" ) IS "(12345)" HBTEST Transform( -12345, "@( 6798^999" ) IS "(7*8^***)" HBTEST Transform( -12345, "@( 9798^9999" ) IS "(718^2345)" HBTEST Transform( 134.24, "@E99,999.99" ) IS " 134,24" HBTEST Transform( -134.24, "@E99,999.99" ) IS " -134,24" HBTEST Transform( 0.80, ".9999" ) IS ".8000" HBTEST Transform( -0.80, ".9999" ) IS ".****" HBTEST Transform( 12345.123, "@X99" ) IS " 12345.123" HBTEST Transform( -12345.123, "@X99" ) IS " 12345.123 DB" HBTEST Transform( 123456.78, "@E" ) IS " 123456,78" HBTEST Transform( 0, "@C 9.99" ) IS "0.00" HBTEST Transform( 1.1, "@B!99.99" ) IS "1.1 " HBTEST Transform( -12345, "@) [999999]" ) IS "[(12345])" HBTEST Transform( -12345, "@) $999999" ) IS "$(12345)" HBTEST Transform( -12345, "@) *999999" ) IS "*(12345)" HBTEST Transform( -12345, "@) #999999" ) IS " (12345)" HBTEST Transform( -12345, "@) *9$9*999]" ) IS "*($12345])" HBTEST Transform( -12345, "@) *999*999]" ) IS "* (12345])" HBTEST Transform( -12345, "@) 0999*999]" ) IS "0 (12345])" HBTEST Transform( -12345, "@) 1999*999]" ) IS "1 (12345])" HBTEST Transform( -12345, "@) *[99*999]" ) IS "([ 12345])" HBTEST Transform( -12345, "@) *****999]" ) IS "(**12345])" HBTEST Transform( -12345, "@) *1***999]" ) IS "(1*12345])" HBTEST Transform( -12345, "@) * 999999]" ) IS "* (12345])" HBTEST Transform( -5, "@(Z $###,##9.99" ) IS "( 5.00)" HBTEST Transform( -10, "@)Z $###,##9.99" ) IS "$ (10.00)" HBTEST Transform( -5, "@(Z $999,999.99" ) IS "( 5.00)" HBTEST Transform( -10, "@)Z $999,999.99" ) IS "$ (10.00)" HBTEST Transform( -5, "@(Z 999,999.99" ) IS "( 5.00)" HBTEST Transform( -10, "@)Z 999,999.99" ) IS " (10.00)" HBTEST Transform( -20, "@Z $###,##9.99" ) IS "$ -20.00" HBTEST Transform( 0.1, ".9" ) IS ".1" HBTEST Transform( 0.0, ".9" ) IS ".0" HBTEST Transform( 1, ".9" ) IS ".*" HBTEST Transform( .456, ".9" ) IS ".5" HBTEST Transform( 123, "99.-" ) IS "**.-" HBTEST Transform( -123.45, "999,999.99" ) IS " -123.45" HBTEST Transform( -123456.78, "999,999,999.99" ) IS " -123,456.78" HBTEST Transform( -123456.78, "$$$,$$$,$$$.$$" ) IS "$$ -123,456.78" HBTEST Transform( -123456.78, "***,***,***.**" ) IS "***-123,456.78" HBTEST Transform( 123456.78, "@E 888,$$$,$$$.$$" ) IS "888.123.456,78" HBTEST Transform( 123456.78, "@E 888x,$$$,$$$.$$" ) IS "888xx123.456,78" HBTEST Transform( 123456.78, "@E 888x,,$$$,$$$.$$" ) IS "888xxx123.456,78" HBTEST Transform( 123456.78, "@E 8,88x,,$$$,$$$.$$" ) IS "8.88xxx123.456,78" HBTEST Transform( 123456.78, "@E 8,88x,,$$$,,$$$.$$" ) IS "8.88xxx123..456,78" HBTEST Transform( 123456.78, "@E 8,88x,,$$$,,$$$.$$77,7" ) IS "8.88xxx123..456,7877,7" HBTEST Transform( 123456, "@E 8,88x,,$$$,,$$$77,7" ) IS "8.88xxx123..45677,7" HBTEST Transform( 123456, "@E -,999,999" ) IS " -123.456" HBTEST Transform( 12345, "@E -,999,999" ) IS " - 12.345" HBTEST Transform( 12345, "@E -,|999,999" ) IS " -| 12.345" HBTEST Transform( 12345, "@E ^-,|999,999" ) IS "^^-| 12.345" HBTEST Transform( 12345, "@E 1-,|999,999" ) IS "11-| 12.345" HBTEST Transform( 12345, "@E |--,|999,999" ) IS "|---| 12.345" HBTEST Transform( 12.34, "@E 99'99" ) IS " '12" HBTEST Transform( 12.34, "99,99,11" ) IS " 12,11" HBTEST Transform( 12.34, "@E 99,99,11" ) IS " 12,11" HBTEST Transform( 12.34, "@E 99," ) IS "12," HBTEST Transform( 12.34, "@E 9,9" ) IS "1.2" HBTEST Transform( 12.34, "@E ab,cd.ef9,9.99,.--" ) IS "abbcd,ef***,* ,.--" HBTEST Transform( 12.34, "@E ab,cd,ef9,9.99,.--" ) IS "abbcddef1.2,34,.--" HBTEST Transform( 12.34, "@E ,ab,cd,ef9,9.99,.--" ) IS ",abbcddef1.2,34,.--" HBTEST Transform( 12.34, "@E ,,,,99,.99,.--" ) IS ",,,,12.,34,.--" HBTEST Transform( 124.4, "@E ,,,,9,9.99,.--" ) IS ",,,,***,**,.--" HBTEST Transform( 1.2, "@E ,,,,*,*.**,.--" ) IS ",,,,**1,20,.--" HBTEST Transform( 12.34, "@E ,,,,*,*.**,.--" ) IS ",,,,1.2,34,.--" HBTEST Transform( 12.34, "@E ,,,,*,*.**,.--,--" ) IS ",,,,1.2,34,.--,--" HBTEST Transform( 12.34, "@E ,,,,*,*,.,**" ) IS ",,,,1.2.,,34" HBTEST Transform( 12.34, ",,,,*,*,.,**" ) IS ",,,,1,2,..34" HBTEST Transform( 12.34, ",,,,*,*,.,*|,*" ) IS ",,,,1,2,..3||4" HBTEST Transform( 12.34, ",,,,*,*,.,*,*" ) IS ",,,,1,2,..3,4" HBTEST Transform( 123.345678912, "@E 999.99.99,99.99." ) IS "123,34,67.89, ." #ifdef __HARBOUR__ HBTEST Transform( 1234567890123456789, "99999999999999999999" ) IS " 1234567890123456789" HBTEST Transform( -1234567890123456789, "99999999999999999999" ) IS "-1234567890123456789" #else HBTEST Transform( 1234567890123456789, "99999999999999999999" ) IS " 1234567890123457000" HBTEST Transform( -1234567890123456789, "99999999999999999999" ) IS "-1234567890123457000" #endif Set( _SET_DATEFORMAT, "YYYY/MM/DD" ) HBTEST Transform( 12345678, "@D" ) IS "1234/56/78" Set( _SET_DATEFORMAT, "YYYY.MM.DD" ) HBTEST Transform( 1234.56789, "@D" ) IS "1234.56.9 " Set( _SET_DATEFORMAT, "YYYY.MM:DD" ) HBTEST Transform( 1234.56789, "@D" ) IS "1234.56:79" HBTEST Transform( 123.345678912, "@D" ) IS " 123.34:57" Set( _SET_DATEFORMAT, "MM-DD-YYYY" ) HBTEST Transform( .T., "@RE <|,yY#lL,|>" ) IS "99-99-9999T" HBTEST Transform( .F., "@RE <|,yY#lL,|>" ) IS "99-99-9999F" HBTEST Transform( .T., "@RD <|,yY#lL,|>" ) IS "99-99-9999T" HBTEST Transform( .F., "@RD <|,yY#lL,|>" ) IS "99-99-9999F" HBTEST Transform( .F., "@DE <|,yY#lL,|>" ) IS "9" HBTEST Transform( "abcdefghij", "@S15! " ) IS "" HBTEST Transform( "abcdefghij", "@S0! " ) IS "" HBTEST Transform( "abcdefghij", "@S5! " ) IS "