wharmby         Sat Jan 17 22:52:26 2009 UTC

  Added files:                 (Branch: PHP_5_3)
    /php-src/ext/standard/tests/strings money_format_variation1.phpt 
                                        money_format_basic2.phpt 
                                        money_format_basic3.phpt 
                                        money_format_variation2.phpt 
                                        money_format_basic1.phpt 
                                        money_format_error.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_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_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_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_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===

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===
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to