增加标准库单测文件

pull/1/head
韩天峰 8 months ago
parent 16787142d6
commit 7ae7e12ad8
  1. 28
      tests/std/hrtime/hrtime.phpt
  2. 15
      tests/std/hrtime/hrtime_array.phpt
  3. 31
      tests/std/math/intdiv.phpt
  4. 42
      tests/std/math/log.phpt
  5. 56
      tests/std/math/log_basic.phpt
  6. 135
      tests/std/math/number_format_basic.phpt
  7. 305
      tests/std/math/number_format_decimals.phpt
  8. 73
      tests/std/math/number_format_multichar.phpt
  9. 16
      tests/std/math/number_format_negative_zero.phpt
  10. 12
      tests/std/math/number_format_with_3_args.phpt
  11. 14
      tests/std/math/number_format_with_null_args.phpt
  12. 134
      tests/std/math/octdec_variation1.phpt
  13. 16
      tests/std/math/octdec_variation2.phpt
  14. 14
      tests/std/math/pi_basic.phpt

@ -0,0 +1,28 @@
--TEST--
Test hrtime() aligns with microtime()
--FLAKY--
This test frequently fails in CI
--FILE--
<?php
$m0 = microtime(true);
$h0 = hrtime(true);
for ($i = 0; $i < 1024*1024; $i++);
$h1 = hrtime(true);
$m1 = microtime(true);
$d0 = ($m1 - $m0)*1000000000.0;
$d1 = $h1 - $h0;
/* Relative uncertainty. */
$d = abs($d0 - $d1)/$d1;
if ($d > 0.05) {
print "FAIL, $d";
} else {
print "OK, $d";
}
?>
--EXPECTF--
OK, %f

@ -0,0 +1,15 @@
--TEST--
Test hrtime() return array
--FILE--
<?php
var_dump(hrtime());
?>
--EXPECTF--
array(2) {
[0]=>
int(%d)
[1]=>
int(%d)
}

@ -0,0 +1,31 @@
--TEST--
intdiv functionality
--FILE--
<?php
var_dump(intdiv(3, 2));
var_dump(intdiv(-3, 2));
var_dump(intdiv(3, -2));
var_dump(intdiv(-3, -2));
var_dump(intdiv(PHP_INT_MAX, PHP_INT_MAX));
var_dump(intdiv(PHP_INT_MIN, PHP_INT_MIN));
try {
var_dump(intdiv(PHP_INT_MIN, -1));
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
try {
var_dump(intdiv(1, 0));
} catch (Throwable $e) {
echo "Exception: " . $e->getMessage() . "\n";
}
?>
--EXPECT--
int(1)
int(-1)
int(-1)
int(1)
int(1)
int(1)
Exception: Division of PHP_INT_MIN by -1 is not an integer
Exception: Division by zero

@ -0,0 +1,42 @@
--TEST--
log() tests
--FILE--
<?php
echo "On failure, please mail result to php-dev@lists.php.net\n";
for ($x = 0, $count= 0; $x < 200; $x++) {
$x2 = (int) exp(log($x));
// e ^ log(x) should be close in range to x
if (($x2 < ($x + 2)) && ($x2 > ($x - 2))) {
$count++;
} else {
print "$x : $x2\n";
}
}
print $count . "\n";
// Now test the base form of log
for ($base = 2; $base < 11; $base++) {
for ($x = 0, $count= 0; $x < 50; $x++) {
$x2 = (int) pow($base, log($x, $base));
// base ^ log(x) should be close in range to x
if (($x2 < ($x + 2)) && ($x2 > ($x - 2))) {
$count++;
} else {
print "base $base: $x : $x2\n";
}
}
print $count . "\n";
}
?>
--EXPECT--
On failure, please mail result to php-dev@lists.php.net
200
50
50
50
50
50
50
50
50
50

@ -0,0 +1,56 @@
--TEST--
Test log() - basic function test log()
--INI--
precision=14
--FILE--
<?php
$values = array(23,
-23,
2.345e1,
-2.345e1,
0x17,
027,
"23",
"23.45",
"2.345e1",
true,
false);
echo "\n LOG tests...no base\n";
for ($i = 0; $i < count($values); $i++) {
$res = log($values[$i]);
var_dump($res);
}
echo "\n LOG tests...base\n";
for ($i = 0; $i < count($values); $i++) {
$res = log($values[$i], 4);
var_dump($res);
}
?>
--EXPECT--
LOG tests...no base
float(3.1354942159291497)
float(NAN)
float(3.1548704948922883)
float(NAN)
float(3.1354942159291497)
float(3.1354942159291497)
float(3.1354942159291497)
float(3.1548704948922883)
float(3.1548704948922883)
float(0)
float(-INF)
LOG tests...base
float(2.2617809780285065)
float(NAN)
float(2.275758008814007)
float(NAN)
float(2.2617809780285065)
float(2.2617809780285065)
float(2.2617809780285065)
float(2.275758008814007)
float(2.275758008814007)
float(0)
float(-INF)

@ -0,0 +1,135 @@
--TEST--
Test number_format() - basic function test number_format()
--FILE--
<?php
$values = array(1234.5678,
-1234.5678,
1234.6578e4,
-1234.56789e4,
999999,
-999999,
999999.0,
-999999.0,
0x1234CDEF,
02777777777,
"123456789",
"123.456789",
"12.3456789e1",
true,
false);
echo "\n number_format tests.....default\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i]);
var_dump($res);
}
echo "\n number_format tests.....with two dp\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i], 2);
var_dump($res);
}
echo "\n number_format tests.....English format\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i], 2, '.', ' ');
var_dump($res);
}
echo "\n number_format tests.....French format\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i], 2, ',' , ' ');
var_dump($res);
}
echo "\n number_format tests.....multichar format\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i], 2, ' DECIMALS ' , ' THOUSAND ');
var_dump($res);
}
?>
--EXPECT--
number_format tests.....default
string(5) "1,235"
string(6) "-1,235"
string(10) "12,346,578"
string(11) "-12,345,679"
string(7) "999,999"
string(8) "-999,999"
string(7) "999,999"
string(8) "-999,999"
string(11) "305,450,479"
string(11) "402,653,183"
string(11) "123,456,789"
string(3) "123"
string(3) "123"
string(1) "1"
string(1) "0"
number_format tests.....with two dp
string(8) "1,234.57"
string(9) "-1,234.57"
string(13) "12,346,578.00"
string(14) "-12,345,678.90"
string(10) "999,999.00"
string(11) "-999,999.00"
string(10) "999,999.00"
string(11) "-999,999.00"
string(14) "305,450,479.00"
string(14) "402,653,183.00"
string(14) "123,456,789.00"
string(6) "123.46"
string(6) "123.46"
string(4) "1.00"
string(4) "0.00"
number_format tests.....English format
string(8) "1 234.57"
string(9) "-1 234.57"
string(13) "12 346 578.00"
string(14) "-12 345 678.90"
string(10) "999 999.00"
string(11) "-999 999.00"
string(10) "999 999.00"
string(11) "-999 999.00"
string(14) "305 450 479.00"
string(14) "402 653 183.00"
string(14) "123 456 789.00"
string(6) "123.46"
string(6) "123.46"
string(4) "1.00"
string(4) "0.00"
number_format tests.....French format
string(8) "1 234,57"
string(9) "-1 234,57"
string(13) "12 346 578,00"
string(14) "-12 345 678,90"
string(10) "999 999,00"
string(11) "-999 999,00"
string(10) "999 999,00"
string(11) "-999 999,00"
string(14) "305 450 479,00"
string(14) "402 653 183,00"
string(14) "123 456 789,00"
string(6) "123,46"
string(6) "123,46"
string(4) "1,00"
string(4) "0,00"
number_format tests.....multichar format
string(26) "1 THOUSAND 234 DECIMALS 57"
string(27) "-1 THOUSAND 234 DECIMALS 57"
string(40) "12 THOUSAND 346 THOUSAND 578 DECIMALS 00"
string(41) "-12 THOUSAND 345 THOUSAND 678 DECIMALS 90"
string(28) "999 THOUSAND 999 DECIMALS 00"
string(29) "-999 THOUSAND 999 DECIMALS 00"
string(28) "999 THOUSAND 999 DECIMALS 00"
string(29) "-999 THOUSAND 999 DECIMALS 00"
string(41) "305 THOUSAND 450 THOUSAND 479 DECIMALS 00"
string(41) "402 THOUSAND 653 THOUSAND 183 DECIMALS 00"
string(41) "123 THOUSAND 456 THOUSAND 789 DECIMALS 00"
string(15) "123 DECIMALS 46"
string(15) "123 DECIMALS 46"
string(13) "1 DECIMALS 00"
string(13) "0 DECIMALS 00"

@ -0,0 +1,305 @@
--TEST--
Test number_format() - test function with different decimal places
--FILE--
<?php
define("MAX_INT32", 2147483647);
define("MIN_INT32", -2147483647 - 1);
$values = array(
1.5151,
15.151,
151.51,
1515.1,
15151,
-1.5151,
-15.151,
-151.51,
-1515.1,
-15151,
999,
-999,
999.0,
-999.0,
999999,
-999999,
999999.0,
-999999.0,
MAX_INT32,
MIN_INT32,
);
$decimals = array(0, 1, 2, 3, 4, 5, -1, -2, -3, -4, -5, PHP_INT_MIN);
foreach ($values as $value) {
echo 'testing ';
var_dump($value);
foreach ($decimals as $decimal) {
echo '... with decimal places of ' . $decimal . ': ';
var_dump(number_format($value, $decimal));
}
}
?>
--EXPECTF--
testing float(1.5151)
... with decimal places of 0: string(1) "2"
... with decimal places of 1: string(3) "1.5"
... with decimal places of 2: string(4) "1.52"
... with decimal places of 3: string(5) "1.515"
... with decimal places of 4: string(6) "1.5151"
... with decimal places of 5: string(7) "1.51510"
... with decimal places of -1: string(1) "0"
... with decimal places of -2: string(1) "0"
... with decimal places of -3: string(1) "0"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(15.151)
... with decimal places of 0: string(2) "15"
... with decimal places of 1: string(4) "15.2"
... with decimal places of 2: string(5) "15.15"
... with decimal places of 3: string(6) "15.151"
... with decimal places of 4: string(7) "15.1510"
... with decimal places of 5: string(8) "15.15100"
... with decimal places of -1: string(2) "20"
... with decimal places of -2: string(1) "0"
... with decimal places of -3: string(1) "0"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(151.51)
... with decimal places of 0: string(3) "152"
... with decimal places of 1: string(5) "151.5"
... with decimal places of 2: string(6) "151.51"
... with decimal places of 3: string(7) "151.510"
... with decimal places of 4: string(8) "151.5100"
... with decimal places of 5: string(9) "151.51000"
... with decimal places of -1: string(3) "150"
... with decimal places of -2: string(3) "200"
... with decimal places of -3: string(1) "0"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(1515.1)
... with decimal places of 0: string(5) "1,515"
... with decimal places of 1: string(7) "1,515.1"
... with decimal places of 2: string(8) "1,515.10"
... with decimal places of 3: string(9) "1,515.100"
... with decimal places of 4: string(10) "1,515.1000"
... with decimal places of 5: string(11) "1,515.10000"
... with decimal places of -1: string(5) "1,520"
... with decimal places of -2: string(5) "1,500"
... with decimal places of -3: string(5) "2,000"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing int(15151)
... with decimal places of 0: string(6) "15,151"
... with decimal places of 1: string(8) "15,151.0"
... with decimal places of 2: string(9) "15,151.00"
... with decimal places of 3: string(10) "15,151.000"
... with decimal places of 4: string(11) "15,151.0000"
... with decimal places of 5: string(12) "15,151.00000"
... with decimal places of -1: string(6) "15,150"
... with decimal places of -2: string(6) "15,200"
... with decimal places of -3: string(6) "15,000"
... with decimal places of -4: string(6) "20,000"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(-1.5151)
... with decimal places of 0: string(2) "-2"
... with decimal places of 1: string(4) "-1.5"
... with decimal places of 2: string(5) "-1.52"
... with decimal places of 3: string(6) "-1.515"
... with decimal places of 4: string(7) "-1.5151"
... with decimal places of 5: string(8) "-1.51510"
... with decimal places of -1: string(1) "0"
... with decimal places of -2: string(1) "0"
... with decimal places of -3: string(1) "0"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(-15.151)
... with decimal places of 0: string(3) "-15"
... with decimal places of 1: string(5) "-15.2"
... with decimal places of 2: string(6) "-15.15"
... with decimal places of 3: string(7) "-15.151"
... with decimal places of 4: string(8) "-15.1510"
... with decimal places of 5: string(9) "-15.15100"
... with decimal places of -1: string(3) "-20"
... with decimal places of -2: string(1) "0"
... with decimal places of -3: string(1) "0"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(-151.51)
... with decimal places of 0: string(4) "-152"
... with decimal places of 1: string(6) "-151.5"
... with decimal places of 2: string(7) "-151.51"
... with decimal places of 3: string(8) "-151.510"
... with decimal places of 4: string(9) "-151.5100"
... with decimal places of 5: string(10) "-151.51000"
... with decimal places of -1: string(4) "-150"
... with decimal places of -2: string(4) "-200"
... with decimal places of -3: string(1) "0"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(-1515.1)
... with decimal places of 0: string(6) "-1,515"
... with decimal places of 1: string(8) "-1,515.1"
... with decimal places of 2: string(9) "-1,515.10"
... with decimal places of 3: string(10) "-1,515.100"
... with decimal places of 4: string(11) "-1,515.1000"
... with decimal places of 5: string(12) "-1,515.10000"
... with decimal places of -1: string(6) "-1,520"
... with decimal places of -2: string(6) "-1,500"
... with decimal places of -3: string(6) "-2,000"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing int(-15151)
... with decimal places of 0: string(7) "-15,151"
... with decimal places of 1: string(9) "-15,151.0"
... with decimal places of 2: string(10) "-15,151.00"
... with decimal places of 3: string(11) "-15,151.000"
... with decimal places of 4: string(12) "-15,151.0000"
... with decimal places of 5: string(13) "-15,151.00000"
... with decimal places of -1: string(7) "-15,150"
... with decimal places of -2: string(7) "-15,200"
... with decimal places of -3: string(7) "-15,000"
... with decimal places of -4: string(7) "-20,000"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing int(999)
... with decimal places of 0: string(3) "999"
... with decimal places of 1: string(5) "999.0"
... with decimal places of 2: string(6) "999.00"
... with decimal places of 3: string(7) "999.000"
... with decimal places of 4: string(8) "999.0000"
... with decimal places of 5: string(9) "999.00000"
... with decimal places of -1: string(5) "1,000"
... with decimal places of -2: string(5) "1,000"
... with decimal places of -3: string(5) "1,000"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing int(-999)
... with decimal places of 0: string(4) "-999"
... with decimal places of 1: string(6) "-999.0"
... with decimal places of 2: string(7) "-999.00"
... with decimal places of 3: string(8) "-999.000"
... with decimal places of 4: string(9) "-999.0000"
... with decimal places of 5: string(10) "-999.00000"
... with decimal places of -1: string(6) "-1,000"
... with decimal places of -2: string(6) "-1,000"
... with decimal places of -3: string(6) "-1,000"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(999)
... with decimal places of 0: string(3) "999"
... with decimal places of 1: string(5) "999.0"
... with decimal places of 2: string(6) "999.00"
... with decimal places of 3: string(7) "999.000"
... with decimal places of 4: string(8) "999.0000"
... with decimal places of 5: string(9) "999.00000"
... with decimal places of -1: string(5) "1,000"
... with decimal places of -2: string(5) "1,000"
... with decimal places of -3: string(5) "1,000"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing float(-999)
... with decimal places of 0: string(4) "-999"
... with decimal places of 1: string(6) "-999.0"
... with decimal places of 2: string(7) "-999.00"
... with decimal places of 3: string(8) "-999.000"
... with decimal places of 4: string(9) "-999.0000"
... with decimal places of 5: string(10) "-999.00000"
... with decimal places of -1: string(6) "-1,000"
... with decimal places of -2: string(6) "-1,000"
... with decimal places of -3: string(6) "-1,000"
... with decimal places of -4: string(1) "0"
... with decimal places of -5: string(1) "0"
... with decimal places of %i: string(1) "0"
testing int(999999)
... with decimal places of 0: string(7) "999,999"
... with decimal places of 1: string(9) "999,999.0"
... with decimal places of 2: string(10) "999,999.00"
... with decimal places of 3: string(11) "999,999.000"
... with decimal places of 4: string(12) "999,999.0000"
... with decimal places of 5: string(13) "999,999.00000"
... with decimal places of -1: string(9) "1,000,000"
... with decimal places of -2: string(9) "1,000,000"
... with decimal places of -3: string(9) "1,000,000"
... with decimal places of -4: string(9) "1,000,000"
... with decimal places of -5: string(9) "1,000,000"
... with decimal places of %i: string(1) "0"
testing int(-999999)
... with decimal places of 0: string(8) "-999,999"
... with decimal places of 1: string(10) "-999,999.0"
... with decimal places of 2: string(11) "-999,999.00"
... with decimal places of 3: string(12) "-999,999.000"
... with decimal places of 4: string(13) "-999,999.0000"
... with decimal places of 5: string(14) "-999,999.00000"
... with decimal places of -1: string(10) "-1,000,000"
... with decimal places of -2: string(10) "-1,000,000"
... with decimal places of -3: string(10) "-1,000,000"
... with decimal places of -4: string(10) "-1,000,000"
... with decimal places of -5: string(10) "-1,000,000"
... with decimal places of %i: string(1) "0"
testing float(999999)
... with decimal places of 0: string(7) "999,999"
... with decimal places of 1: string(9) "999,999.0"
... with decimal places of 2: string(10) "999,999.00"
... with decimal places of 3: string(11) "999,999.000"
... with decimal places of 4: string(12) "999,999.0000"
... with decimal places of 5: string(13) "999,999.00000"
... with decimal places of -1: string(9) "1,000,000"
... with decimal places of -2: string(9) "1,000,000"
... with decimal places of -3: string(9) "1,000,000"
... with decimal places of -4: string(9) "1,000,000"
... with decimal places of -5: string(9) "1,000,000"
... with decimal places of %i: string(1) "0"
testing float(-999999)
... with decimal places of 0: string(8) "-999,999"
... with decimal places of 1: string(10) "-999,999.0"
... with decimal places of 2: string(11) "-999,999.00"
... with decimal places of 3: string(12) "-999,999.000"
... with decimal places of 4: string(13) "-999,999.0000"
... with decimal places of 5: string(14) "-999,999.00000"
... with decimal places of -1: string(10) "-1,000,000"
... with decimal places of -2: string(10) "-1,000,000"
... with decimal places of -3: string(10) "-1,000,000"
... with decimal places of -4: string(10) "-1,000,000"
... with decimal places of -5: string(10) "-1,000,000"
... with decimal places of %i: string(1) "0"
testing int(2147483647)
... with decimal places of 0: string(13) "2,147,483,647"
... with decimal places of 1: string(15) "2,147,483,647.0"
... with decimal places of 2: string(16) "2,147,483,647.00"
... with decimal places of 3: string(17) "2,147,483,647.000"
... with decimal places of 4: string(18) "2,147,483,647.0000"
... with decimal places of 5: string(19) "2,147,483,647.00000"
... with decimal places of -1: string(13) "2,147,483,650"
... with decimal places of -2: string(13) "2,147,483,600"
... with decimal places of -3: string(13) "2,147,484,000"
... with decimal places of -4: string(13) "2,147,480,000"
... with decimal places of -5: string(13) "2,147,500,000"
... with decimal places of %i: string(1) "0"
testing int(-2147483648)
... with decimal places of 0: string(14) "-2,147,483,648"
... with decimal places of 1: string(16) "-2,147,483,648.0"
... with decimal places of 2: string(17) "-2,147,483,648.00"
... with decimal places of 3: string(18) "-2,147,483,648.000"
... with decimal places of 4: string(19) "-2,147,483,648.0000"
... with decimal places of 5: string(20) "-2,147,483,648.00000"
... with decimal places of -1: string(14) "-2,147,483,650"
... with decimal places of -2: string(14) "-2,147,483,600"
... with decimal places of -3: string(14) "-2,147,484,000"
... with decimal places of -4: string(14) "-2,147,480,000"
... with decimal places of -5: string(14) "-2,147,500,000"
... with decimal places of %i: string(1) "0"

@ -0,0 +1,73 @@
--TEST--
Test number_format() - multiple character separator support
--FILE--
<?php
$values = array(1234.5678,
-1234.5678,
1234.6578e4,
-1234.56789e4,
0x1234CDEF,
02777777777,
"123456789",
"123.456789",
"12.3456789e1",
true,
false);
echo " number_format tests.....multiple character decimal point\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i], 2, '&#183;', ' ');
var_dump($res);
}
echo "\n number_format tests.....multiple character thousand separator\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i], 2, '.' , '&thinsp;');
var_dump($res);
}
echo "\n number_format tests.....multiple character decimal and thousep\n";
for ($i = 0; $i < count($values); $i++) {
$res = number_format($values[$i], 2, '&#183;' , '&thinsp;');
var_dump($res);
}
?>
--EXPECT--
number_format tests.....multiple character decimal point
string(13) "1 234&#183;57"
string(14) "-1 234&#183;57"
string(18) "12 346 578&#183;00"
string(19) "-12 345 678&#183;90"
string(19) "305 450 479&#183;00"
string(19) "402 653 183&#183;00"
string(19) "123 456 789&#183;00"
string(11) "123&#183;46"
string(11) "123&#183;46"
string(9) "1&#183;00"
string(9) "0&#183;00"
number_format tests.....multiple character thousand separator
string(15) "1&thinsp;234.57"
string(16) "-1&thinsp;234.57"
string(27) "12&thinsp;346&thinsp;578.00"
string(28) "-12&thinsp;345&thinsp;678.90"
string(28) "305&thinsp;450&thinsp;479.00"
string(28) "402&thinsp;653&thinsp;183.00"
string(28) "123&thinsp;456&thinsp;789.00"
string(6) "123.46"
string(6) "123.46"
string(4) "1.00"
string(4) "0.00"
number_format tests.....multiple character decimal and thousep
string(20) "1&thinsp;234&#183;57"
string(21) "-1&thinsp;234&#183;57"
string(32) "12&thinsp;346&thinsp;578&#183;00"
string(33) "-12&thinsp;345&thinsp;678&#183;90"
string(33) "305&thinsp;450&thinsp;479&#183;00"
string(33) "402&thinsp;653&thinsp;183&#183;00"
string(33) "123&thinsp;456&thinsp;789&#183;00"
string(11) "123&#183;46"
string(11) "123&#183;46"
string(9) "1&#183;00"
string(9) "0&#183;00"

@ -0,0 +1,16 @@
--TEST--
Prevent number_format from returning negative zero
--FILE--
<?php
$number = -1.15E-15;
var_dump($number);
var_dump(number_format($number, 2));
var_dump(number_format(-0.01, 2));
?>
--EXPECT--
float(-1.15E-15)
string(4) "0.00"
string(5) "-0.01"

@ -0,0 +1,12 @@
--TEST--
number_format should use default thousands seperator when 3 arguments are used
--FILE--
<?php
$number = 2020.1415;
var_dump(number_format($number, 2, 'F'));
?>
--EXPECT--
string(8) "2,020F14"

@ -0,0 +1,14 @@
--TEST--
number_format should use default values when passed null
--FILE--
<?php
$number = 2020.1415;
var_dump(number_format($number, 2, null, 'T'));
var_dump(number_format($number, 2, 'F', null));
?>
--EXPECT--
string(8) "2T020.14"
string(8) "2,020F14"

@ -0,0 +1,134 @@
--TEST--
Test octdec() function : usage variations - different data types as $octal_string arg
--INI--
precision=14
--FILE--
<?php
echo "*** Testing octdec() : usage variations ***\n";
// heredoc string
$heredoc = <<<EOT
abc
xyz
EOT;
// get a resource variable
$fp = fopen(__FILE__, "r");
$inputs = array(
// int data
/*1*/ 0,
1,
12345,
-2345,
4294967295, // largest decimal
4294967296,
// float data
/*7*/ 10.5,
-10.5,
12.3456789000e10,
12.3456789000E-10,
.5,
// boolean data
/*14*/ true,
false,
TRUE,
FALSE,
// empty data
/*18*/ "",
'',
array(),
// string data
/*21*/ "abcxyz",
'abcxyz',
$heredoc,
// resource variable
/*26*/ $fp
);
// loop through each element of $inputs to check the behaviour of octdec()
$iterator = 1;
foreach($inputs as $input) {
echo "\n-- Iteration $iterator --\n";
try {
var_dump(octdec($input));
} catch (TypeError $e) {
echo $e->getMessage(), "\n";
}
$iterator++;
};
fclose($fp);
?>
--EXPECTF--
*** Testing octdec() : usage variations ***
-- Iteration 1 --
int(0)
-- Iteration 2 --
int(1)
-- Iteration 3 --
int(5349)
-- Iteration 4 --
int(1253)
-- Iteration 5 --
int(1134037)
-- Iteration 6 --
int(1134038)
-- Iteration 7 --
int(69)
-- Iteration 8 --
int(69)
-- Iteration 9 --
int(175304192)
-- Iteration 10 --
int(342391)
-- Iteration 11 --
int(5)
-- Iteration 12 --
int(1)
-- Iteration 13 --
int(0)
-- Iteration 14 --
int(1)
-- Iteration 15 --
int(0)
-- Iteration 16 --
int(0)
-- Iteration 17 --
int(0)
-- Iteration 18 --
octdec(): Argument #1 ($octal_string) must be of type string, array given
-- Iteration 19 --
int(0)
-- Iteration 20 --
int(0)
-- Iteration 21 --
int(0)
-- Iteration 22 --
octdec(): Argument #1 ($octal_string) must be of type string, resource given

@ -0,0 +1,16 @@
--TEST--
Test octdec() function : strange literals
--FILE--
<?php
var_dump(octdec('0o'));
var_dump(octdec('0O'));
var_dump(octdec('0'));
var_dump(octdec(''));
?>
--EXPECT--
int(0)
int(0)
int(0)
int(0)

@ -0,0 +1,14 @@
--TEST--
Test pi() - basic function test pi()
--INI--
precision=17
--FILE--
<?php
echo pi(), "\n";
echo M_PI, "\n";
// N.B pi() ignores all specified arguments no error
// messages are produced if arguments are spcified.
?>
--EXPECT--
3.1415926535897931
3.1415926535897931
Loading…
Cancel
Save