Remove quicktester

This is barely used and more of a hinderence than anything else

Closes GH-6712
This commit is contained in:
George Peter Banyard 2021-02-20 10:55:02 +00:00
parent 8c206ba5ac
commit 3a4b89661e
9 changed files with 405 additions and 316 deletions

View file

@ -5,8 +5,6 @@ BZ2 with strings
--FILE-- --FILE--
<?php <?php
error_reporting(E_ALL);
# This FAILS # This FAILS
$blaat = <<<HEREDOC $blaat = <<<HEREDOC
This is some random data This is some random data
@ -17,11 +15,8 @@ HEREDOC;
$blaat2 = bzdecompress(bzcompress($blaat)); $blaat2 = bzdecompress(bzcompress($blaat));
$tests = <<<TESTS var_dump($blaat === $blaat2);
\$blaat === \$blaat2
TESTS;
include(__DIR__ . '/../../../tests/quicktester.inc');
?> ?>
--EXPECT-- --EXPECT--
OK bool(true)

View file

@ -8,18 +8,21 @@ define('LONG_MIN', -LONG_MAX - 1);
printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ), printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1)); is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$tests = <<<TESTS var_dump(1 === abs(-1));
1 === abs(-1) var_dump(1.5 === abs(-1.5));
1.5 === abs(-1.5) var_dump(1 === abs("-1"));
1 === abs("-1") var_dump(1.5 === abs("-1.5"));
1.5 === abs("-1.5") var_dump(-LONG_MIN+1 === abs(LONG_MIN-1));
-LONG_MIN+1 === abs(LONG_MIN-1) var_dump(-LONG_MIN === abs(LONG_MIN));
-LONG_MIN === abs(LONG_MIN) var_dump(-(LONG_MIN+1) === abs(LONG_MIN+1));
-(LONG_MIN+1) === abs(LONG_MIN+1)
TESTS;
include(__DIR__ . '/../../../../tests/quicktester.inc');
?> ?>
--EXPECT-- --EXPECT--
1,1,0,0 1,1,0,0
OK bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

View file

@ -6,17 +6,16 @@ Various pow() tests
$x = 2; $x = 2;
$x **= 3; $x **= 3;
$tests = <<<TESTS var_dump( -3 ** 2 === -9);
-3 ** 2 === -9 var_dump( (-3) **2 === 9);
(-3) **2 === 9 var_dump( 2 ** 3 ** 2 === 512);
2 ** 3 ** 2 === 512 var_dump( (2 ** 3) ** 2 === 64);
(2 ** 3) ** 2 === 64 var_dump( $x === 8);
$x === 8
TESTS;
echo "On failure, please mail result to php-dev@lists.php.net\n";
include(__DIR__ . '/../../../../tests/quicktester.inc');
?> ?>
--EXPECT-- --EXPECT--
On failure, please mail result to php-dev@lists.php.net bool(true)
OK bool(true)
bool(true)
bool(true)
bool(true)

View file

@ -8,142 +8,269 @@ define('LONG_MIN', -LONG_MAX - 1);
printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ), printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1)); is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$tests = <<<TESTS function epsilon_equal($left, $right): bool {
0.25 === pow(-2,-2) return abs(($left-$right) / $left) < 1e-12;
-0.5 === pow(-2,-1) }
1 === pow(-2, 0)
-2 === pow(-2, 1) var_dump(0.25 === pow(-2,-2));
4 === pow(-2, 2) var_dump(-0.5 === pow(-2,-1));
1.0 === pow(-1,-2) var_dump(1 === pow(-2, 0));
-1.0 === pow(-1,-1) var_dump(-2 === pow(-2, 1));
1 === pow(-1, 0) var_dump(4 === pow(-2, 2));
-1 === pow(-1, 1) var_dump(1.0 === pow(-1,-2));
1 === pow(-1, 2) var_dump(-1.0 === pow(-1,-1));
TRUE === is_infinite(pow(0,-2)) var_dump(1 === pow(-1, 0));
TRUE === is_infinite(pow(0,-1)) var_dump(-1 === pow(-1, 1));
1 === pow( 0, 0) var_dump(1 === pow(-1, 2));
0 === pow( 0, 1) var_dump(TRUE === is_infinite(pow(0,-2)));
0 === pow( 0, 2) var_dump(TRUE === is_infinite(pow(0,-1)));
1.0 === pow( 1,-2) var_dump(1 === pow( 0, 0));
1.0 === pow( 1,-1) var_dump(0 === pow( 0, 1));
1 === pow( 1, 0) var_dump(0 === pow( 0, 2));
1 === pow( 1, 1) var_dump(1.0 === pow( 1,-2));
1 === pow( 1, 2) var_dump(1.0 === pow( 1,-1));
0.25 === pow( 2,-2) var_dump(1 === pow( 1, 0));
0.5 === pow( 2,-1) var_dump(1 === pow( 1, 1));
1 === pow( 2, 0) var_dump(1 === pow( 1, 2));
2 === pow( 2, 1) var_dump(0.25 === pow( 2,-2));
4 === pow( 2, 2) var_dump(0.5 === pow( 2,-1));
0.25 === pow(-2,-2.0) var_dump(1 === pow( 2, 0));
-0.5 === pow(-2,-1.0) var_dump(2 === pow( 2, 1));
1.0 === pow(-2, 0.0) var_dump(4 === pow( 2, 2));
-2.0 === pow(-2, 1.0) var_dump(0.25 === pow(-2,-2.0));
4.0 === pow(-2, 2.0) var_dump(-0.5 === pow(-2,-1.0));
1.0 === pow(-1,-2.0) var_dump(1.0 === pow(-2, 0.0));
-1.0 === pow(-1,-1.0) var_dump(-2.0 === pow(-2, 1.0));
1.0 === pow(-1, 0.0) var_dump(4.0 === pow(-2, 2.0));
-1.0 === pow(-1, 1.0) var_dump(1.0 === pow(-1,-2.0));
1.0 === pow(-1, 2.0) var_dump(-1.0 === pow(-1,-1.0));
TRUE === is_infinite(pow(0,-2.0)) var_dump(1.0 === pow(-1, 0.0));
TRUE === is_infinite(pow(0,-1.0)) var_dump(-1.0 === pow(-1, 1.0));
1.0 === pow( 0, 0.0) var_dump(1.0 === pow(-1, 2.0));
0.0 === pow( 0, 1.0) var_dump(TRUE === is_infinite(pow(0,-2.0)));
0.0 === pow( 0, 2.0) var_dump(TRUE === is_infinite(pow(0,-1.0)));
1.0 === pow( 1,-2.0) var_dump(1.0 === pow( 0, 0.0));
1.0 === pow( 1,-1.0) var_dump(0.0 === pow( 0, 1.0));
1.0 === pow( 1, 0.0) var_dump(0.0 === pow( 0, 2.0));
1.0 === pow( 1, 1.0) var_dump(1.0 === pow( 1,-2.0));
1.0 === pow( 1, 2.0) var_dump(1.0 === pow( 1,-1.0));
0.25 === pow( 2,-2.0) var_dump(1.0 === pow( 1, 0.0));
0.5 === pow( 2,-1.0) var_dump(1.0 === pow( 1, 1.0));
1.0 === pow( 2, 0.0) var_dump(1.0 === pow( 1, 2.0));
2.0 === pow( 2, 1.0) var_dump(0.25 === pow( 2,-2.0));
4.0 === pow( 2, 2.0) var_dump(0.5 === pow( 2,-1.0));
2147483648 === pow(2,31) var_dump(1.0 === pow( 2, 0.0));
-2147483648 ~== pow(-2,31) var_dump(2.0 === pow( 2, 1.0));
1000000000 === pow(10,9) var_dump(4.0 === pow( 2, 2.0));
100000000 === pow(-10,8) var_dump(2147483648 === pow(2,31));
1 === pow(-1,1443279822) var_dump(epsilon_equal( -2147483648, pow(-2,31) ));
-1 === pow(-1,1443279821) var_dump(1000000000 === pow(10,9));
sqrt(2) ~== pow(2,1/2) var_dump(100000000 === pow(-10,8));
0.25 === pow(-2.0,-2.0) var_dump(1 === pow(-1,1443279822));
-0.5 === pow(-2.0,-1.0) var_dump(-1 === pow(-1,1443279821));
1.0 === pow(-2.0, 0.0) var_dump(epsilon_equal( sqrt(2), pow(2,1/2) ));
-2.0 === pow(-2.0, 1.0) var_dump(0.25 === pow(-2.0,-2.0));
4.0 === pow(-2.0, 2.0) var_dump(-0.5 === pow(-2.0,-1.0));
1.0 === pow(-1.0,-2.0) var_dump(1.0 === pow(-2.0, 0.0));
-1.0 === pow(-1.0,-1.0) var_dump(-2.0 === pow(-2.0, 1.0));
1.0 === pow(-1.0, 0.0) var_dump(4.0 === pow(-2.0, 2.0));
-1.0 === pow(-1.0, 1.0) var_dump(1.0 === pow(-1.0,-2.0));
1.0 === pow(-1.0, 2.0) var_dump(-1.0 === pow(-1.0,-1.0));
TRUE === is_infinite(pow(0.0,-2.0)) var_dump(1.0 === pow(-1.0, 0.0));
TRUE === is_infinite(pow(0.0,-1.0)) var_dump(-1.0 === pow(-1.0, 1.0));
1.0 === pow( 0.0, 0.0) var_dump(1.0 === pow(-1.0, 2.0));
0.0 === pow( 0.0, 1.0) var_dump(TRUE === is_infinite(pow(0.0,-2.0)));
0.0 === pow( 0.0, 2.0) var_dump(TRUE === is_infinite(pow(0.0,-1.0)));
1.0 === pow( 1.0,-2.0) var_dump(1.0 === pow( 0.0, 0.0));
1.0 === pow( 1.0,-1.0) var_dump(0.0 === pow( 0.0, 1.0));
1.0 === pow( 1.0, 0.0) var_dump(0.0 === pow( 0.0, 2.0));
1.0 === pow( 1.0, 1.0) var_dump(1.0 === pow( 1.0,-2.0));
1.0 === pow( 1.0, 2.0) var_dump(1.0 === pow( 1.0,-1.0));
0.25 === pow( 2.0,-2.0) var_dump(1.0 === pow( 1.0, 0.0));
0.5 === pow( 2.0,-1.0) var_dump(1.0 === pow( 1.0, 1.0));
1.0 === pow( 2.0, 0.0) var_dump(1.0 === pow( 1.0, 2.0));
2.0 === pow( 2.0, 1.0) var_dump(0.25 === pow( 2.0,-2.0));
4.0 === pow( 2.0, 2.0) var_dump(0.5 === pow( 2.0,-1.0));
0.25 === pow(-2.0,-2) var_dump(1.0 === pow( 2.0, 0.0));
-0.5 === pow(-2.0,-1) var_dump(2.0 === pow( 2.0, 1.0));
1.0 === pow(-2.0, 0) var_dump(4.0 === pow( 2.0, 2.0));
-2.0 === pow(-2.0, 1) var_dump(0.25 === pow(-2.0,-2));
4.0 === pow(-2.0, 2) var_dump(-0.5 === pow(-2.0,-1));
1.0 === pow(-1.0,-2) var_dump(1.0 === pow(-2.0, 0));
-1.0 === pow(-1.0,-1) var_dump(-2.0 === pow(-2.0, 1));
1.0 === pow(-1.0, 0) var_dump(4.0 === pow(-2.0, 2));
-1.0 === pow(-1.0, 1) var_dump(1.0 === pow(-1.0,-2));
1.0 === pow(-1.0, 2) var_dump(-1.0 === pow(-1.0,-1));
TRUE === is_infinite(pow( 0.0,-2)) var_dump(1.0 === pow(-1.0, 0));
TRUE === is_infinite(pow( 0.0,-1)) var_dump(-1.0 === pow(-1.0, 1));
1.0 === pow( 0.0, 0) var_dump(1.0 === pow(-1.0, 2));
0.0 === pow( 0.0, 1) var_dump(TRUE === is_infinite(pow( 0.0,-2)));
0.0 === pow( 0.0, 2) var_dump(TRUE === is_infinite(pow( 0.0,-1)));
1.0 === pow( 1.0,-2) var_dump(1.0 === pow( 0.0, 0));
1.0 === pow( 1.0,-1) var_dump(0.0 === pow( 0.0, 1));
1.0 === pow( 1.0, 0) var_dump(0.0 === pow( 0.0, 2));
1.0 === pow( 1.0, 1) var_dump(1.0 === pow( 1.0,-2));
1.0 === pow( 1.0, 2) var_dump(1.0 === pow( 1.0,-1));
0.25 === pow( 2.0,-2) var_dump(1.0 === pow( 1.0, 0));
0.5 === pow( 2.0,-1) var_dump(1.0 === pow( 1.0, 1));
1.0 === pow( 2.0, 0) var_dump(1.0 === pow( 1.0, 2));
2.0 === pow( 2.0, 1) var_dump(0.25 === pow( 2.0,-2));
4.0 === pow( 2.0, 2) var_dump(0.5 === pow( 2.0,-1));
2.0 === pow( 4, 0.5) var_dump(1.0 === pow( 2.0, 0));
2.0 === pow( 4.0, 0.5) var_dump(2.0 === pow( 2.0, 1));
3.0 === pow( 27, 1/3) var_dump(4.0 === pow( 2.0, 2));
3.0 === pow(27.0, 1/3) var_dump(2.0 === pow( 4, 0.5));
0.5 === pow( 4, -0.5) var_dump(2.0 === pow( 4.0, 0.5));
0.5 === pow( 4.0, -0.5) var_dump(3.0 === pow( 27, 1/3));
LONG_MAX-1 === pow(LONG_MAX-1,1) var_dump(3.0 === pow(27.0, 1/3));
LONG_MIN+1 === pow(LONG_MIN+1,1) var_dump(0.5 === pow( 4, -0.5));
(LONG_MAX-1)*(LONG_MAX-1) ~== pow(LONG_MAX-1,2) var_dump(0.5 === pow( 4.0, -0.5));
(LONG_MIN+1)*(LONG_MIN+1) ~== pow(LONG_MIN+1,2) var_dump(LONG_MAX-1 === pow(LONG_MAX-1,1));
(float)(LONG_MAX-1) === pow(LONG_MAX-1,1.0) var_dump(LONG_MIN+1 === pow(LONG_MIN+1,1));
(float)(LONG_MIN+1) === pow(LONG_MIN+1,1.0) var_dump(epsilon_equal( (LONG_MAX-1)*(LONG_MAX-1) , pow(LONG_MAX-1,2) ));
(LONG_MAX-1)*(LONG_MAX-1) ~== pow(LONG_MAX-1,2.0) var_dump(epsilon_equal( (LONG_MIN+1)*(LONG_MIN+1) , pow(LONG_MIN+1,2) ));
(LONG_MIN+1)*(LONG_MIN+1) ~== pow(LONG_MIN+1,2.0) var_dump((float)(LONG_MAX-1) === pow(LONG_MAX-1,1.0));
LONG_MAX === pow(LONG_MAX,1) var_dump((float)(LONG_MIN+1) === pow(LONG_MIN+1,1.0));
LONG_MIN === pow(LONG_MIN,1) var_dump(epsilon_equal( (LONG_MAX-1)*(LONG_MAX-1) , pow(LONG_MAX-1,2.0) ));
LONG_MAX*LONG_MAX ~== pow(LONG_MAX,2) var_dump(epsilon_equal( (LONG_MIN+1)*(LONG_MIN+1) , pow(LONG_MIN+1,2.0) ));
LONG_MIN*LONG_MIN ~== pow(LONG_MIN,2) var_dump(LONG_MAX === pow(LONG_MAX,1));
(float)LONG_MAX === pow(LONG_MAX,1.0) var_dump(LONG_MIN === pow(LONG_MIN,1));
(float)LONG_MIN === pow(LONG_MIN,1.0) var_dump(epsilon_equal( LONG_MAX*LONG_MAX , pow(LONG_MAX,2) ));
LONG_MAX*LONG_MAX ~== pow(LONG_MAX,2.0) var_dump(epsilon_equal( LONG_MIN*LONG_MIN , pow(LONG_MIN,2) ));
LONG_MIN*LONG_MIN ~== pow(LONG_MIN,2.0) var_dump((float)LONG_MAX === pow(LONG_MAX,1.0));
TESTS; var_dump((float)LONG_MIN === pow(LONG_MIN,1.0));
var_dump(epsilon_equal( LONG_MAX*LONG_MAX , pow(LONG_MAX,2.0) ));
var_dump(epsilon_equal( LONG_MIN*LONG_MIN , pow(LONG_MIN,2.0) ));
echo "On failure, please mail result to php-dev@lists.php.net\n";
include(__DIR__ . '/../../../../tests/quicktester.inc');
?> ?>
--EXPECT-- --EXPECT--
1,1,0,0 1,1,0,0
On failure, please mail result to php-dev@lists.php.net bool(true)
OK bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

View file

@ -8,31 +8,51 @@ define('LONG_MIN', -LONG_MAX - 1);
printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ), printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1)); is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$tests = <<<TESTS function epsilon_equal($left, $right): bool {
-1 ~== ceil(-1.5) return abs(($left-$right) / $left) < 1e-12;
2 ~== ceil( 1.5) }
-2 ~== floor(-1.5)
1 ~== floor(1.5) var_dump(epsilon_equal( -1 , ceil(-1.5) ));
LONG_MIN ~== ceil(LONG_MIN - 0.5) var_dump(epsilon_equal( 2 , ceil( 1.5) ));
LONG_MIN+1 ~== ceil(LONG_MIN + 0.5) var_dump(epsilon_equal( -2 , floor(-1.5) ));
LONG_MIN-1 ~== round(LONG_MIN - 0.6) var_dump(epsilon_equal( 1 , floor(1.5) ));
LONG_MIN ~== round(LONG_MIN - 0.4) var_dump(epsilon_equal( LONG_MIN , ceil(LONG_MIN - 0.5) ));
LONG_MIN ~== round(LONG_MIN + 0.4) var_dump(epsilon_equal( LONG_MIN+1 , ceil(LONG_MIN + 0.5) ));
LONG_MIN+1 ~== round(LONG_MIN + 0.6) var_dump(epsilon_equal( LONG_MIN-1 , round(LONG_MIN - 0.6) ));
LONG_MIN-1 ~== floor(LONG_MIN - 0.5) var_dump(epsilon_equal( LONG_MIN , round(LONG_MIN - 0.4) ));
LONG_MIN ~== floor(LONG_MIN + 0.5) var_dump(epsilon_equal( LONG_MIN , round(LONG_MIN + 0.4) ));
LONG_MAX ~== ceil(LONG_MAX - 0.5) var_dump(epsilon_equal( LONG_MIN+1 , round(LONG_MIN + 0.6) ));
LONG_MAX+1 ~== ceil(LONG_MAX + 0.5) var_dump(epsilon_equal( LONG_MIN-1 , floor(LONG_MIN - 0.5) ));
LONG_MAX-1 ~== round(LONG_MAX - 0.6) var_dump(epsilon_equal( LONG_MIN , floor(LONG_MIN + 0.5) ));
LONG_MAX ~== round(LONG_MAX - 0.4) var_dump(epsilon_equal( LONG_MAX , ceil(LONG_MAX - 0.5) ));
LONG_MAX ~== round(LONG_MAX + 0.4) var_dump(epsilon_equal( LONG_MAX+1 , ceil(LONG_MAX + 0.5) ));
LONG_MAX+1 ~== round(LONG_MAX + 0.6) var_dump(epsilon_equal( LONG_MAX-1 , round(LONG_MAX - 0.6) ));
LONG_MAX-1 ~== floor(LONG_MAX - 0.5) var_dump(epsilon_equal( LONG_MAX , round(LONG_MAX - 0.4) ));
LONG_MAX ~== floor(LONG_MAX + 0.5) var_dump(epsilon_equal( LONG_MAX , round(LONG_MAX + 0.4) ));
TESTS; var_dump(epsilon_equal( LONG_MAX+1 , round(LONG_MAX + 0.6) ));
var_dump(epsilon_equal( LONG_MAX-1 , floor(LONG_MAX - 0.5) ));
var_dump(epsilon_equal( LONG_MAX , floor(LONG_MAX + 0.5) ));
include(__DIR__ . '/../../../../tests/quicktester.inc');
?> ?>
--EXPECT-- --EXPECT--
1,1,0,0 1,1,0,0
OK bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

View file

@ -3,25 +3,36 @@ trim(), rtrim() and ltrim() functions
--FILE-- --FILE--
<?php <?php
$tests = <<<TESTS var_dump('ABC' === trim('ABC'));
'ABC' === trim('ABC') var_dump('ABC' === ltrim('ABC'));
'ABC' === ltrim('ABC') var_dump('ABC' === rtrim('ABC'));
'ABC' === rtrim('ABC') var_dump('ABC' === trim(" \0\t\nABC \0\t\n"));
'ABC' === trim(" \\0\\t\\nABC \\0\\t\\n") var_dump("ABC \0\t\n" === ltrim(" \0\t\nABC \0\t\n"));
"ABC \\0\\t\\n" === ltrim(" \\0\\t\\nABC \\0\\t\\n") var_dump(" \0\t\nABC" === rtrim(" \0\t\nABC \0\t\n"));
" \\0\\t\\nABC" === rtrim(" \\0\\t\\nABC \\0\\t\\n") var_dump(" \0\t\nABC \0\t\n" === trim(" \0\t\nABC \0\t\n",''));
" \\0\\t\\nABC \\0\\t\\n" === trim(" \\0\\t\\nABC \\0\\t\\n",'') var_dump(" \0\t\nABC \0\t\n" === ltrim(" \0\t\nABC \0\t\n",''));
" \\0\\t\\nABC \\0\\t\\n" === ltrim(" \\0\\t\\nABC \\0\\t\\n",'') var_dump(" \0\t\nABC \0\t\n" === rtrim(" \0\t\nABC \0\t\n",''));
" \\0\\t\\nABC \\0\\t\\n" === rtrim(" \\0\\t\\nABC \\0\\t\\n",'') var_dump("ABC\x50\xC1" === trim("ABC\x50\xC1\x60\x90","\x51..\xC0"));
"ABC\\x50\\xC1" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC0") var_dump("ABC\x50" === trim("ABC\x50\xC1\x60\x90","\x51..\xC1"));
"ABC\\x50" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC1") var_dump("ABC" === trim("ABC\x50\xC1\x60\x90","\x50..\xC1"));
"ABC" === trim("ABC\\x50\\xC1\\x60\\x90","\\x50..\\xC1") var_dump("ABC\x50\xC1" === trim("ABC\x50\xC1\x60\x90","\x51..\xC0"));
"ABC\\x50\\xC1" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC0") var_dump("ABC\x50" === trim("ABC\x50\xC1\x60\x90","\x51..\xC1"));
"ABC\\x50" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC1") var_dump("ABC" === trim("ABC\x50\xC1\x60\x90","\x50..\xC1"));
"ABC" === trim("ABC\\x50\\xC1\\x60\\x90","\\x50..\\xC1")
TESTS;
include(__DIR__ . '/../../../../tests/quicktester.inc');
?> ?>
--EXPECT-- --EXPECT--
OK bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)

View file

@ -3,35 +3,29 @@ wordwrap() function
--FILE-- --FILE--
<?php <?php
$tests = <<<TESTS var_dump("12345 12345 12345 12345" === wordwrap("12345 12345 12345 12345"));
"12345 12345 12345 12345" === wordwrap("12345 12345 12345 12345") var_dump("12345 12345\n1234567890\n1234567890" === wordwrap("12345 12345 1234567890 1234567890",12));
"12345 12345\\n1234567890\\n1234567890" === wordwrap("12345 12345 1234567890 1234567890",12) var_dump("12345\n12345\n12345\n12345" === wordwrap("12345 12345 12345 12345",0));
"12345\\n12345\\n12345\\n12345" === wordwrap("12345 12345 12345 12345",0) var_dump("12345ab12345ab12345ab12345" === wordwrap("12345 12345 12345 12345",0,"ab"));
"12345ab12345ab12345ab12345" === wordwrap("12345 12345 12345 12345",0,"ab") var_dump("12345 12345ab1234567890ab1234567890" === wordwrap("12345 12345 1234567890 1234567890",12,"ab"));
"12345 12345ab1234567890ab1234567890" === wordwrap("12345 12345 1234567890 1234567890",12,"ab") var_dump("123ab123ab123" === wordwrap("123ab123ab123", 3, "ab"));
"123ab123ab123" === wordwrap("123ab123ab123", 3, "ab") var_dump("123ab123ab123" === wordwrap("123ab123ab123", 5, "ab"));
"123ab123ab123" === wordwrap("123ab123ab123", 5, "ab") var_dump("123ab 123ab123" === wordwrap("123 123ab123", 3, "ab"));
"123ab 123ab123" === wordwrap("123 123ab123", 3, "ab") var_dump("123ab123ab123" === wordwrap("123 123ab123", 5, "ab"));
"123ab123ab123" === wordwrap("123 123ab123", 5, "ab") var_dump("123 123ab123" === wordwrap("123 123 123", 10, "ab"));
"123 123ab123" === wordwrap("123 123 123", 10, "ab")
"123ab123ab123" === wordwrap("123ab123ab123", 3, "ab", 1) var_dump("123ab123ab123" === wordwrap("123ab123ab123", 3, "ab", 1));
"123ab123ab123" === wordwrap("123ab123ab123", 5, "ab", 1) var_dump("123ab123ab123" === wordwrap("123ab123ab123", 5, "ab", 1));
"123ab 12ab3ab123" === wordwrap("123 123ab123", 3, "ab", 1) var_dump("123ab 12ab3ab123" === wordwrap("123 123ab123", 3, "ab", 1));
"123 ab123ab123" === wordwrap("123 123ab123", 5, "ab", 1) var_dump("123 ab123ab123" === wordwrap("123 123ab123", 5, "ab", 1));
"123 123ab 123" === wordwrap("123 123 123", 8, "ab", 1) var_dump("123 123ab 123" === wordwrap("123 123 123", 8, "ab", 1));
"123 ab12345 ab123" === wordwrap("123 12345 123", 8, "ab", 1) var_dump("123 ab12345 ab123" === wordwrap("123 12345 123", 8, "ab", 1));
"1ab2ab3ab4" === wordwrap("1234", 1, "ab", 1) var_dump("1ab2ab3ab4" === wordwrap("1234", 1, "ab", 1));
"12345|12345|67890" === wordwrap("12345 1234567890", 5, "|", 1) var_dump("12345|12345|67890" === wordwrap("12345 1234567890", 5, "|", 1));
"123|==1234567890|==123" === wordwrap("123 1234567890 123", 10, "|==", 1) var_dump("123|==1234567890|==123" === wordwrap("123 1234567890 123", 10, "|==", 1));
TESTS;
include(__DIR__ . '/../../../../tests/quicktester.inc');
echo "\n";
try { try {
wordwrap(chr(0), 0, ""); wordwrap(chr(0), 0, "");
@ -40,5 +34,23 @@ try {
} }
?> ?>
--EXPECT-- --EXPECT--
OK bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
bool(true)
wordwrap(): Argument #3 ($break) cannot be empty wordwrap(): Argument #3 ($break) cannot be empty

View file

@ -9,16 +9,12 @@ printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1)); is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$i = LONG_MAX; $i = LONG_MAX;
$j = $i * 1001; $j = $i * 1001;
$i *= 1001; $i *= 1001;
$tests = <<<TESTS var_dump($i === $j);
$i === $j
TESTS;
include(__DIR__ . '/../quicktester.inc');
?> ?>
--EXPECT-- --EXPECT--
1,1,0,0 1,1,0,0
OK bool(true)

View file

@ -1,74 +0,0 @@
<?php
/*
Helper for simple tests to check return-value. Usage:
$tests = <<<TESTS
expected_return_value === expression
2 === 1+1
4 === 2*2
FALSE === @ fopen('non_existent_file')
TESTS;
include( 'tests/quicktester.inc' );
Expect: OK
Remember to NOT put a trailing ; after a line!
*/
error_reporting(E_ALL);
$tests = explode("\n",$tests);
$success = TRUE;
foreach ($tests as $n=>$test)
{
// ignore empty lines
if (!$test) continue;
// warn for trailing ;
if (substr(trim($test), -1, 1) === ';') {
echo "WARNING: trailing ';' found in test ".($n+1)."\n";
exit;
}
// try for operators
$operators = array('===', '~==');
$operator = NULL;
foreach ($operators as $a_operator) {
if (strpos($test, $a_operator)!== FALSE) {
$operator = $a_operator;
list($left,$right) = explode($operator, $test);
break;
}
}
if (!$operator) {
echo "WARNING: unknown operator in '$test' (1)\n";
exit;
}
$left = eval("return ($left );");
$right = eval("return ($right);");
switch (@$operator) {
case '===': // exact match
$result = $left === $right;
break;
case '~==': // may differ after 12th significant number
if ( !is_float($left ) && !is_int($left )
|| !is_float($right) && !is_int($right)) {
$result = FALSE;
break;
}
$result = abs(($left-$right) / $left) < 1e-12;
break;
default:
echo "WARNING: unknown operator in '$test' (2)\n";
exit;
}
$success = $success && $result;
if (!$result) {
echo "\nAssert failed:\n";
echo "$test\n";
echo "Left: ";var_dump($left );
echo "Right: ";var_dump($right);
}
}
if ($success) echo "OK";