wharmby Sat Jan 17 22:52:41 2009 UTC Added files: (Branch: PHP_5_2) /php-src/ext/standard/tests/strings money_format_basic3.phpt money_format_variation2.phpt money_format_basic2.phpt money_format_variation1.phpt money_format_error.phpt money_format_basic1.phpt Log: New money_format() tests. Tested on Windows, Linux and Linux 64 bit
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/money_format_basic3.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/money_format_basic3.phpt +++ php-src/ext/standard/tests/strings/money_format_basic3.phpt --TEST-- Test money_format() function : basic functionality using national currency symbols and de_DE locale --SKIPIF-- <?php if (!function_exists('money_format') || !function_exists('setlocale')) { die("SKIP money_format - not supported\n"); } if (setlocale(LC_MONETARY, 'de_DE') == false) { die("SKIP de_DE locale not available\n"); } ?> --FILE-- <?php /* Prototype : string money_format ( string $format , float $number ) * Description: Formats a number as a currency string * Source code: ext/standard/string.c */
echo "*** Testing money_format() : basic functionality using national currency symbols and de_DE locale***\n"; $original = setlocale(LC_MONETARY, 'de_DE'); $value = 1234.5678; $negative_value = -1234.5678; // Format with 14 positions of width, 8 digits of // left precision, 2 of right precision using national // format for en_US echo "Format values with 14 positions, 8 digits to left, 2 to right using national format\n"; var_dump( money_format('%14#8.2n', $value)); var_dump( money_format('%14#8.2n', $negative_value)); // Same again but use '(' for negative values echo "Format again but with ( for negative values\n"; var_dump( money_format('%(14#8.2n', $value)); var_dump( money_format('%(14#8.2n', $negative_value)); // Same again but use a '0' for padding character echo "Format with 0 for padding character\n"; var_dump( money_format('%=014#8.2n', $value)); var_dump( money_format('%=014#8.2n', $negative_value)); // Same again but use a '*' for padding character echo "Format again with * for padding character\n"; var_dump( money_format('%=*14#8.2n', $value)); var_dump( money_format('%=*14#8.2n', $negative_value)); // Same again but disable grouping character echo "Format again but disable grouping character\n"; var_dump( money_format('%=*^14#8.2n', $value)); var_dump( money_format('%=*^14#8.2n', $negative_value)); // Same again but suppress currency symbol echo "Format again suppress currency symbol\n"; var_dump( money_format('%=*!14#8.2n', $value)); var_dump( money_format('%=*!14#8.2n', $negative_value)); setlocale(LC_MONETARY, $original); ?> ===DONE=== --EXPECTF-- *** Testing money_format() : basic functionality using national currency symbols and de_DE locale*** Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d Format values with 14 positions, 8 digits to left, 2 to right using national format unicode(18) " 1.234,57 EUR" unicode(18) "- 1.234,57 EUR" Format again but with ( for negative values unicode(18) " 1.234,57 EUR" unicode(19) "( 1.234,57 EUR)" Format with 0 for padding character unicode(18) " 000001.234,57 EUR" unicode(18) "-000001.234,57 EUR" Format again with * for padding character unicode(18) " *****1.234,57 EUR" unicode(18) "-*****1.234,57 EUR" Format again but disable grouping character unicode(16) " ****1234,57 EUR" unicode(16) "-****1234,57 EUR" Format again suppress currency symbol unicode(14) " *****1.234,57" unicode(14) "-*****1.234,57" Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/money_format_variation2.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/money_format_variation2.phpt +++ php-src/ext/standard/tests/strings/money_format_variation2.phpt --TEST-- Test money_format() function : usage variations - test values for $number argument --SKIPIF-- <?php if (!function_exists('money_format') || !function_exists('setlocale')) { die("SKIP money_format - not supported\n"); } if (setlocale(LC_MONETARY, 'de_DE') == false) { die("SKIP de_DE locale not available\n"); } ?> --FILE-- <?php /* Prototype : string money_format ( string $format , float $number ) * Description: Formats a number as a currency string * Source code: ext/standard/string.c */ $original = setlocale(LC_MONETARY, 'en_US'); echo "*** Testing money_format() function: with unexpected inputs for 'number' argument ***\n"; //get an unset variable $unset_var = ' string_val '; unset($unset_var); //defining a couple of sample classes class class_no_tostring { } class class_with_tostring { public function __toString() { return " sample object "; } } //getting the resource $file_handle = fopen(__FILE__, "r"); // array with different values for $number $numbers = array ( // integer values /*1*/ 0, 1, 255, 256, 2147483647, -2147483648, // float values /*7*/ 10.5, -20.5, 10.1234567e10, // array values /*10*/ array(), array(0), array(1, 2), // boolean values /*13*/ true, false, TRUE, FALSE, // null values /*17*/ NULL, null, // string values /*19*/ "abcd", 'abcd', "0x12f", "%=*!14#8.2nabcd", // objects /*23*/ new class_no_tostring(), new class_with_tostring(), // resource /*25*/ $file_handle, // undefined variable /*26*/ @$undefined_var, // unset variable /*27*/ @$unset_var ); // loop through with each element of the $numbers array to test money_format() function $count = 1; $format = '%14#8.2i'; foreach($numbers as $number) { echo "-- Iteration $count --\n"; var_dump( money_format($format, $number) ); $count ++; } // close the file handle fclose($file_handle); // restore original locale setlocale(LC_MONETARY, $original); ?> ===DONE=== --EXPECTF-- Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d *** Testing money_format() function: with unexpected inputs for 'number' argument *** -- Iteration 1 -- unicode(18) " USD 0.00" -- Iteration 2 -- unicode(18) " USD 1.00" -- Iteration 3 -- unicode(18) " USD 255.00" -- Iteration 4 -- unicode(18) " USD 256.00" -- Iteration 5 -- unicode(21) " USD 2,147,483,647.00" -- Iteration 6 -- unicode(21) "-USD 2,147,483,648.00" -- Iteration 7 -- unicode(18) " USD 10.50" -- Iteration 8 -- unicode(18) "-USD 20.50" -- Iteration 9 -- unicode(23) " USD 101,234,567,000.00" -- Iteration 10 -- Warning: money_format() expects parameter 2 to be double, array given in %s on line %d NULL -- Iteration 11 -- Warning: money_format() expects parameter 2 to be double, array given in %s on line %d NULL -- Iteration 12 -- Warning: money_format() expects parameter 2 to be double, array given in %s on line %d NULL -- Iteration 13 -- unicode(18) " USD 1.00" -- Iteration 14 -- unicode(18) " USD 0.00" -- Iteration 15 -- unicode(18) " USD 1.00" -- Iteration 16 -- unicode(18) " USD 0.00" -- Iteration 17 -- unicode(18) " USD 0.00" -- Iteration 18 -- unicode(18) " USD 0.00" -- Iteration 19 -- Warning: money_format() expects parameter 2 to be double, Unicode string given in %s on line %d NULL -- Iteration 20 -- Warning: money_format() expects parameter 2 to be double, Unicode string given in %s on line %d NULL -- Iteration 21 -- unicode(18) " USD 303.00" -- Iteration 22 -- Warning: money_format() expects parameter 2 to be double, Unicode string given in %s on line %d NULL -- Iteration 23 -- Warning: money_format() expects parameter 2 to be double, object given in %s on line %d NULL -- Iteration 24 -- Warning: money_format() expects parameter 2 to be double, object given in %s on line %d NULL -- Iteration 25 -- Warning: money_format() expects parameter 2 to be double, resource given in %s on line %d NULL -- Iteration 26 -- unicode(18) " USD 0.00" -- Iteration 27 -- unicode(18) " USD 0.00" Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/money_format_basic2.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/money_format_basic2.phpt +++ php-src/ext/standard/tests/strings/money_format_basic2.phpt --TEST-- Test money_format() function : basic functionality using international currency symbols --SKIPIF-- <?php if (!function_exists('money_format') || !function_exists('setlocale')) { die("SKIP money_format - not supported\n"); } if (setlocale(LC_MONETARY, 'en_US') == false) { die("SKIP en_US locale not available\n"); } ?> --FILE-- <?php /* Prototype : string money_format ( string $format , float $number ) * Description: Formats a number as a currency string * Source code: ext/standard/string.c */ echo "*** Testing money_format() : basic functionality using international currency symbols***\n"; $original = setlocale(LC_MONETARY, 'en_US'); $value = 1234.5678; $negative_value = -1234.5678; // Format with 14 positions of width, 8 digits of // left precision, 2 of right precision using national // format for en_US echo "Format with 14 positions, 8 digits to left, 2 to right using national format\n"; var_dump( money_format('%14#8.2i', $value)); var_dump( money_format('%14#8.2i', $negative_value)); // Same again but use '(' for negative values echo "Format with ( for negative values\n"; var_dump( money_format('%(14#8.2i', $value)); var_dump( money_format('%(14#8.2i', $negative_value)); // Same again but use a '0' for padding character echo "Format with 0 for padding character\n"; var_dump( money_format('%=014#8.2i', $value)); var_dump( money_format('%=014#8.2i', $negative_value)); // Same again but use a '*' for padding character echo "Format with * for padding character\n"; var_dump( money_format('%=*14#8.2i', $value)); var_dump( money_format('%=*14#8.2i', $negative_value)); // Same again but disable grouping character echo "Format again but disable grouping character\n"; var_dump( money_format('%=*^14#8.2i', $value)); var_dump( money_format('%=*^14#8.2i', $negative_value)); // Same again but suppress currency symbol echo "Format again but suppress currency symbol\n"; var_dump( money_format('%=*!14#8.2i', $value)); var_dump( money_format('%=*!14#8.2i', $negative_value)); setlocale(LC_MONETARY, $original); ?> ===DONE=== --EXPECTF-- *** Testing money_format() : basic functionality using international currency symbols*** Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d Format with 14 positions, 8 digits to left, 2 to right using national format unicode(18) " USD 1,234.57" unicode(18) "-USD 1,234.57" Format with ( for negative values unicode(18) " USD 1,234.57" unicode(19) "(USD 1,234.57)" Format with 0 for padding character unicode(18) " USD 000001,234.57" unicode(18) "-USD 000001,234.57" Format with * for padding character unicode(18) " USD *****1,234.57" unicode(18) "-USD *****1,234.57" Format again but disable grouping character unicode(16) " USD ****1234.57" unicode(16) "-USD ****1234.57" Format again but suppress currency symbol unicode(14) " *****1,234.57" unicode(14) "-*****1,234.57" Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/money_format_variation1.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/money_format_variation1.phpt +++ php-src/ext/standard/tests/strings/money_format_variation1.phpt --TEST-- Test money_format() function : usage variations - test values for $format argument --SKIPIF-- <?php if (!function_exists('money_format') || !function_exists('setlocale')) { die("SKIP money_format - not supported\n"); } if (setlocale(LC_MONETARY, 'de_DE') == false) { die("SKIP de_DE locale not available\n"); } ?> --FILE-- <?php /* Prototype : string money_format ( string $format , float $number ) * Description: Formats a number as a currency string * Source code: ext/standard/string.c */ $original = setlocale(LC_MONETARY, 'en_US'); echo "*** Testing money_format() function: with unexpected inputs for 'format' argument ***\n"; //get an unset variable $unset_var = ' string_val '; unset($unset_var); //defining a couple of sample classes class class_no_tostring { } class class_with_tostring { public function __toString() { return " sample object "; } } //getting the resource $file_handle = fopen(__FILE__, "r"); // array with different values for $input $formats = array ( // integer values /*1*/ 0, 1, 255, 256, 2147483647, -2147483648, // float values /*7*/ 0.5, -20.5, 10.1234567e10, // array values /*10*/ array(), array(0), array(1, 2), // boolean values /*13*/ true, false, TRUE, FALSE, // null values /*17*/ NULL, null, // string values /*19*/ "abcd", 'abcd', "0x12f", "%=*!14#8.2nabcd", // objects /*23*/ new class_no_tostring(), new class_with_tostring(), // resource /*25*/ $file_handle, // undefined variable /*26*/ @$undefined_var, // unset variable /*27*/ @$unset_var ); // loop through with each element of the $formats array to test money_format() function $count = 1; $value = 1234.56; foreach($formats as $format) { echo "-- Iteration $count --\n"; var_dump( money_format($format, $value) ); $count ++; } // close the file handle fclose($file_handle); // restore original locale setlocale(LC_MONETARY, $original); ?> ===DONE=== --EXPECTF-- Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d *** Testing money_format() function: with unexpected inputs for 'format' argument *** -- Iteration 1 -- unicode(1) "0" -- Iteration 2 -- unicode(1) "1" -- Iteration 3 -- unicode(3) "255" -- Iteration 4 -- unicode(3) "256" -- Iteration 5 -- unicode(10) "2147483647" -- Iteration 6 -- unicode(11) "-2147483648" -- Iteration 7 -- unicode(3) "0.5" -- Iteration 8 -- unicode(5) "-20.5" -- Iteration 9 -- unicode(12) "101234567000" -- Iteration 10 -- Warning: money_format() expects parameter 1 to be binary string, array given in %s on line %d NULL -- Iteration 11 -- Warning: money_format() expects parameter 1 to be binary string, array given in %s on line %d NULL -- Iteration 12 -- Warning: money_format() expects parameter 1 to be binary string, array given in %s on line %d NULL -- Iteration 13 -- unicode(1) "1" -- Iteration 14 -- unicode(0) "" -- Iteration 15 -- unicode(1) "1" -- Iteration 16 -- unicode(0) "" -- Iteration 17 -- unicode(0) "" -- Iteration 18 -- unicode(0) "" -- Iteration 19 -- unicode(4) "abcd" -- Iteration 20 -- unicode(4) "abcd" -- Iteration 21 -- unicode(5) "0x12f" -- Iteration 22 -- unicode(18) " *****1,234.56abcd" -- Iteration 23 -- Warning: money_format() expects parameter 1 to be binary string, object given in %s on line %d NULL -- Iteration 24 -- unicode(17) " sample object " -- Iteration 25 -- Warning: money_format() expects parameter 1 to be binary string, resource given in %s on line %d NULL -- Iteration 26 -- unicode(0) "" -- Iteration 27 -- unicode(0) "" Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/money_format_error.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/money_format_error.phpt +++ php-src/ext/standard/tests/strings/money_format_error.phpt --TEST-- Test money_format() function : error conditions --SKIPIF-- <?php if (!function_exists('money_format')) { die("SKIP money_format - not supported\n"); } ?> --FILE-- <?php /* Prototype : string money_format ( string $format , float $number ) * Description: Formats a number as a currency string * Source code: ext/standard/string.c */ $string = '%14#8.2n'; $value = 1234.56; $extra_arg = 10; echo "*** Testing money_format() : error conditions ***\n"; echo "\n-- Testing money_format() function with no arguments --\n"; var_dump( money_format() ); echo "\n-- Testing money_format() function with insufficient arguments --\n"; var_dump( money_format($string) ); echo "\n-- Testing money_format() function with more than expected no. of arguments --\n"; var_dump( money_format($string, $value, $extra_arg) ); ?> ===DONE=== --EXPECTF-- *** Testing money_format() : error conditions *** -- Testing money_format() function with no arguments -- Warning: money_format() expects exactly 2 parameters, 0 given in %s on line %d NULL -- Testing money_format() function with insufficient arguments -- Warning: money_format() expects exactly 2 parameters, 1 given in %s on line %d NULL -- Testing money_format() function with more than expected no. of arguments -- Warning: money_format() expects exactly 2 parameters, 3 given in %s on line %d NULL ===DONE=== http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/money_format_basic1.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/strings/money_format_basic1.phpt +++ php-src/ext/standard/tests/strings/money_format_basic1.phpt --TEST-- Test money_format() function : basic functionality using national currency symbols --SKIPIF-- <?php if (!function_exists('money_format') || !function_exists('setlocale')) { die("SKIP money_format - not supported\n"); } if (setlocale(LC_MONETARY, 'en_US') == false) { die("SKIP en_US locale not available\n"); } ?> --FILE-- <?php /* Prototype : string money_format ( string $format , float $number ) * Description: Formats a number as a currency string * Source code: ext/standard/string.c */ echo "*** Testing money_format() : basic functionality using national currency symbols***\n"; $original = setlocale(LC_MONETARY, 'en_US'); $value = 1234.5678; $negative_value = -1234.5678; // Format with 14 positions of width, 8 digits of // left precision, 2 of right precision using national // format for en_US echo "Format values with 14 positions, 8 digits to left, 2 to right using national format\n"; var_dump( money_format('%14#8.2n', $value)); var_dump( money_format('%14#8.2n', $negative_value)); // Same again but use '(' for negative values echo "Format again but with ( for negative values\n"; var_dump( money_format('%(14#8.2n', $value)); var_dump( money_format('%(14#8.2n', $negative_value)); // Same again but use a '0' for padding character echo "Format with 0 for padding character\n"; var_dump( money_format('%=014#8.2n', $value)); var_dump( money_format('%=014#8.2n', $negative_value)); // Same again but use a '*' for padding character echo "Format again with * for padding character\n"; var_dump( money_format('%=*14#8.2n', $value)); var_dump( money_format('%=*14#8.2n', $negative_value)); // Same again but disable grouping character echo "Format again but disable grouping character\n"; var_dump( money_format('%=*^14#8.2n', $value)); var_dump( money_format('%=*^14#8.2n', $negative_value)); // Same again but suppress currency symbol echo "Format again suppress currency symbol\n"; var_dump( money_format('%=*!14#8.2n', $value)); var_dump( money_format('%=*!14#8.2n', $negative_value)); setlocale(LC_MONETARY, $original); ?> ===DONE=== --EXPECTF-- *** Testing money_format() : basic functionality using national currency symbols*** Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d Format values with 14 positions, 8 digits to left, 2 to right using national format unicode(15) " $ 1,234.57" unicode(15) "-$ 1,234.57" Format again but with ( for negative values unicode(15) " $ 1,234.57" unicode(16) "($ 1,234.57)" Format with 0 for padding character unicode(15) " $000001,234.57" unicode(15) "-$000001,234.57" Format again with * for padding character unicode(15) " $*****1,234.57" unicode(15) "-$*****1,234.57" Format again but disable grouping character unicode(14) " $****1234.57" unicode(14) " -$****1234.57" Format again suppress currency symbol unicode(14) " *****1,234.57" unicode(14) "-*****1,234.57" Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d ===DONE===
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php