sniper Mon Apr 2 15:12:55 2007 UTC Modified files: /php-src/ext/standard/tests/strings printf_64bit.phpt Log: MFB- 64bit test
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/printf_64bit.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/printf_64bit.phpt diff -u /dev/null php-src/ext/standard/tests/strings/printf_64bit.phpt:1.2 --- /dev/null Mon Apr 2 15:12:55 2007 +++ php-src/ext/standard/tests/strings/printf_64bit.phpt Mon Apr 2 15:12:55 2007 @@ -0,0 +1,695 @@ +--TEST-- +Test printf() function (64bit) +--SKIPIF-- +<?php +if (!(PHP_INT_MAX > 2147483647)) { + die("skip 64bit test only"); +} +?> +--FILE-- +<?php + +/* Various input arrays for different format types */ + +$float_variation = array( "%f", "%-f", "%+f", "%7.2f", "%-7.2f", "%07.2f", "%-07.2f", "%'#7.2f" ); +$float_numbers = array( 0, 1, -1, 0.32, -0.32, 3.4. -3.4, 2.54, -2.54, 1.2345678e99, -1.2345678e99 ); + +$int_variation = array( "%d", "%-d", "%+d", "%7.2d", "%-7.2d", "%07.2d", "%-07.2d", "%'#7.2d" ); +$int_numbers = array( 0, 1, -1, 2.7, -2.7, 23333333, -23333333, "1234" ); + +$char_variation = array( 'a', "a", 67, -67, 99 ); + +$string_variation = array( "%5s", "%-5s", "%05s", "%'#5s" ); +$strings = array( NULL, "abc", 'aaa' ); + +/* Checking warning messages */ + +/* Zero argument */ +echo "\n*** Output for zero argument ***\n"; +printf(); + +/* Number of arguments not matching as specified in format field */ +echo "\n*** Output for insufficient number of arguments ***\n"; +$string = "dingy%sflem%dwombat"; +$nbr = 5; +$name = "voudras"; +printf("%d $string %s", $nbr, $name); + + +/* Scalar argument */ +echo "\n*** Output for scalar argument ***\n"; +printf(3); + +/* NULL argument */ +echo "\n*** Output for NULL as argument ***\n"; +printf(NULL); + + +/* Float type variations */ + +$counter = 1; +echo "\n\n*** Output for float type ***\n"; +echo "\n Input Float numbers variation array is:\n"; +print_r($float_numbers); + +foreach( $float_variation as $float_var ) +{ + echo "\n\nFloat Iteration $counter"; + foreach( $float_numbers as $float_num ) + { + echo "\n"; + printf( $float_var, $float_num ); + } + $counter++; +} + + +/* Integer type variations */ + +$counter = 1; +echo "\n\n*** Output for integer type ***\n"; +echo "\n Input Integer numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_variation as $int_var ) +{ + echo "\n\nInteger Iteration $counter"; + foreach( $int_numbers as $int_num ) + { + echo "\n"; + printf( $int_var, $int_num ); + } + $counter++; +} + + +/* Binary type variations */ + +echo "\n\n*** Output for binary type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + + foreach( $int_numbers as $bin_num ) + { + echo "\n"; + printf( "%b", $bin_num ); + } + + +/* Chararter type variations */ +echo "\n\n*** Output for char type ***\n"; +echo "\n Input Characters variation array is:\n"; +print_r($char_variation); + +foreach( $char_variation as $char ) +{ + echo "\n"; + printf( "%c", $char ); +} + +/* Scientific type variations */ +echo "\n\n*** Output for scientific type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $num ) +{ + echo "\n"; + printf( "%e", $num ); +} + +/* Unsigned Integer type variation */ +echo "\n\n*** Output for unsigned integer type ***\n"; +echo "\n Input Integer numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $unsig_num ) +{ + echo "\n"; + printf( "%u", $unsig_num ); +} + +/* Octal type variations */ +echo "\n\n*** Output for octal type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $octal_num ) +{ + echo "\n"; + printf( "%o", $octal_num ); +} + +/* Hexadecimal type variations */ +echo "\n\n*** Output for hexadecimal type ***\n"; +echo "\n Input numbers variation array is:\n"; +print_r($int_numbers); + +foreach( $int_numbers as $hexa_num ) +{ + echo "\n"; + printf( "%x", $hexa_num ); +} + +/* String type variations */ +echo "\n\n*** Output for string type ***\n"; +echo "\n Input Strings format variation array is:\n"; +print_r($string_variation); +echo "\n Input strings variation array is:\n"; +print_r($strings); + +foreach( $string_variation as $string_var ) +{ + foreach( $strings as $str ) + { + echo "\n"; + printf( $string_var, $str ); + } +} + + +/* variations of %g type */ +$format_g = array("%g", "%.0g", "%+g", "%-g", "%-1.2g", "%+1.2g", "%G", "%.0G", "%+G", "%-G", "%-1.2G", "%+1.2G"); + +echo "\n\n*** Output for '%g' type ***\n"; +echo "\n Input format variation array is:\n"; +print_r($format_g); + +foreach( $format_g as $formatg ) +{ + printf("\n$formatg",123456); + printf("\n$formatg",-123456); +} + + +/* Some more typical cases */ + +$tempnum = 12345; +$tempstring = "abcdefghjklmnpqrstuvwxyz"; + +echo"\n\n*** Output for '%%%.2f' as the format parameter ***\n"; +printf("%%%.2f",1.23456789e10); + +echo"\n\n*** Output for '%%' as the format parameter ***\n"; +printf("%%",1.23456789e10); + +echo"\n\n*** Output for precision value more than maximum ***\n"; +printf("%.988f",1.23456789e10); + +echo"\n\n*** Output for invalid width(-15) specifier ***\n"; +printf("%030.-15s", $tempstring); + +echo"\n\n*** Output for '%F' as the format parameter ***\n"; +printf("%F",1.23456789e10); + +echo"\n\n*** Output for '%X' as the format parameter ***\n"; +printf("%X",12); + +echo"\n\n*** Output with no format parameter ***\n"; +printf($tempnum); + +echo"\n\n*** Output for multiple format parameters ***\n"; +printf("%d %s %d\n", $tempnum, $tempstring, $tempnum); + +echo"\n\n*** Output for excess of mixed type arguments ***\n"; +printf("%s", $tempstring, $tempstring, $tempstring); + +echo"\n\n*** Output for string format parameter and integer type argument ***\n"; +printf("%s", $tempnum); + +echo"\n\n*** Output for integer format parameter and string type argument ***\n"; +printf("%d", $tempstring); + + +?> +--EXPECTF-- +*** Output for zero argument *** + +Warning: Wrong parameter count for printf() in /usr/src/php-5.2CVS/ext/standard/tests/strings/printf_64bit.php on line 20 + +*** Output for insufficient number of arguments *** + +Warning: printf(): Too few arguments in /usr/src/php-5.2CVS/ext/standard/tests/strings/printf_64bit.php on line 27 + +*** Output for scalar argument *** +3 +*** Output for NULL as argument *** + + +*** Output for float type *** + + Input Float numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 0.32 + [4] => -0.32 + [5] => 3.4-3.4 + [6] => 2.54 + [7] => -2.54 + [8] => 1.2345678E+99 + [9] => -1.2345678E+99 +) + + +Float Iteration 1 +0.000000 +1.000000 +-1.000000 +0.320000 +-0.320000 +3.400000 +2.540000 +-2.540000 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 + +Float Iteration 2 +0.000000 +1.000000 +-1.000000 +0.320000 +-0.320000 +3.400000 +2.540000 +-2.540000 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 + +Float Iteration 3 ++0.000000 ++1.000000 +-1.000000 ++0.320000 +-0.320000 ++3.400000 ++2.540000 +-2.540000 ++1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.000000 + +Float Iteration 4 + 0.00 + 1.00 + -1.00 + 0.32 + -0.32 + 3.40 + 2.54 + -2.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 5 +0.00 +1.00 +-1.00 +0.32 +-0.32 +3.40 +2.54 +-2.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 6 +0000.00 +0001.00 +-001.00 +0000.32 +-000.32 +0003.40 +0002.54 +-002.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 7 +0.00000 +1.00000 +-1.0000 +0.32000 +-0.3200 +3.40000 +2.54000 +-2.5400 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +Float Iteration 8 +###0.00 +###1.00 +##-1.00 +###0.32 +##-0.32 +###3.40 +###2.54 +##-2.54 +1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 +-1234567799999999974395005011934353453808157274826416694779123657996479008398428960266851879135215616.00 + +*** Output for integer type *** + + Input Integer numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + + +Integer Iteration 1 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 2 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 3 ++0 ++1 +-1 ++2 +-2 ++23333333 +-23333333 ++1234 + +Integer Iteration 4 + 0 + 1 + -1 + 2 + -2 +23333333 +-23333333 + 1234 + +Integer Iteration 5 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 6 +0000000 +0000001 +-000001 +0000002 +-000002 +23333333 +-23333333 +0001234 + +Integer Iteration 7 +0 +1 +-1 +2 +-2 +23333333 +-23333333 +1234 + +Integer Iteration 8 +######0 +######1 +#####-1 +######2 +#####-2 +23333333 +-23333333 +###1234 + +*** Output for binary type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +1111111111111111111111111111111111111111111111111111111111111111 +10 +1111111111111111111111111111111111111111111111111111111111111110 +1011001000000100111010101 +1111111111111111111111111111111111111110100110111111011000101011 +10011010010 + +*** Output for char type *** + + Input Characters variation array is: +Array +( + [0] => a + [1] => a + [2] => 67 + [3] => -67 + [4] => 99 +) + +++C +½ +c + +*** Output for scientific type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0.000000e+0 +1.000000e+0 +-1.000000e+0 +2.700000e+0 +-2.700000e+0 +2.333333e+7 +-2.333333e+7 +1.234000e+3 + +*** Output for unsigned integer type *** + + Input Integer numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +4294967295 +2 +4294967294 +23333333 +4271633963 +1234 + +*** Output for octal type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +1777777777777777777777 +2 +1777777777777777777776 +131004725 +1777777777777646773053 +2322 + +*** Output for hexadecimal type *** + + Input numbers variation array is: +Array +( + [0] => 0 + [1] => 1 + [2] => -1 + [3] => 2.7 + [4] => -2.7 + [5] => 23333333 + [6] => -23333333 + [7] => 1234 +) + +0 +1 +ffffffffffffffff +2 +fffffffffffffffe +16409d5 +fffffffffe9bf62b +4d2 + +*** Output for string type *** + + Input Strings format variation array is: +Array +( + [0] => %5s + [1] => %-5s + [2] => %05s + [3] => %'#5s +) + + Input strings variation array is: +Array +( + [0] => + [1] => abc + [2] => aaa +) + + + abc + aaa + +abc +aaa +00000 +00abc +00aaa +##### +##abc +##aaa + +*** Output for '%g' type *** + + Input format variation array is: +Array +( + [0] => %g + [1] => %.0g + [2] => %+g + [3] => %-g + [4] => %-1.2g + [5] => %+1.2g + [6] => %G + [7] => %.0G + [8] => %+G + [9] => %-G + [10] => %-1.2G + [11] => %+1.2G +) + +123456 +-123456 +1.0e+5 +-1.0e+5 ++123456 +-123456 +123456 +-123456 +120000 +-120000 ++120000 +-120000 +123456 +-123456 +1.0E+5 +-1.0E+5 ++123456 +-123456 +123456 +-123456 +120000 +-120000 ++120000 +-120000 + +*** Output for '%%%.2f' as the format parameter *** +%12345678900.00 + +*** Output for '%%' as the format parameter *** +% + +*** Output for precision value more than maximum *** +12345678900.0000000000000000000000000000000000000000 + +*** Output for invalid width(-15) specifier *** +15s + +*** Output for '%F' as the format parameter *** +12345678900.000000 + +*** Output for '%X' as the format parameter *** +C + +*** Output with no format parameter *** +12345 + +*** Output for multiple format parameters *** +12345 abcdefghjklmnpqrstuvwxyz 12345 + + +*** Output for excess of mixed type arguments *** +abcdefghjklmnpqrstuvwxyz + +*** Output for string format parameter and integer type argument *** +12345 + +*** Output for integer format parameter and string type argument *** +0
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php