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--
<?php
error_reporting(E_ALL);
# This FAILS
$blaat = <<<HEREDOC
This is some random data
@ -17,11 +15,8 @@ HEREDOC;
$blaat2 = bzdecompress(bzcompress($blaat));
$tests = <<<TESTS
\$blaat === \$blaat2
TESTS;
var_dump($blaat === $blaat2);
include(__DIR__ . '/../../../tests/quicktester.inc');
?>
--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 ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$tests = <<<TESTS
1 === abs(-1)
1.5 === abs(-1.5)
1 === abs("-1")
1.5 === abs("-1.5")
-LONG_MIN+1 === abs(LONG_MIN-1)
-LONG_MIN === abs(LONG_MIN)
-(LONG_MIN+1) === abs(LONG_MIN+1)
TESTS;
var_dump(1 === abs(-1));
var_dump(1.5 === abs(-1.5));
var_dump(1 === abs("-1"));
var_dump(1.5 === abs("-1.5"));
var_dump(-LONG_MIN+1 === abs(LONG_MIN-1));
var_dump(-LONG_MIN === abs(LONG_MIN));
var_dump(-(LONG_MIN+1) === abs(LONG_MIN+1));
include(__DIR__ . '/../../../../tests/quicktester.inc');
?>
--EXPECT--
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 **= 3;
$tests = <<<TESTS
-3 ** 2 === -9
(-3) **2 === 9
2 ** 3 ** 2 === 512
(2 ** 3) ** 2 === 64
$x === 8
TESTS;
var_dump( -3 ** 2 === -9);
var_dump( (-3) **2 === 9);
var_dump( 2 ** 3 ** 2 === 512);
var_dump( (2 ** 3) ** 2 === 64);
var_dump( $x === 8);
echo "On failure, please mail result to php-dev@lists.php.net\n";
include(__DIR__ . '/../../../../tests/quicktester.inc');
?>
--EXPECT--
On failure, please mail result to php-dev@lists.php.net
OK
bool(true)
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 ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$tests = <<<TESTS
0.25 === pow(-2,-2)
-0.5 === pow(-2,-1)
1 === pow(-2, 0)
-2 === pow(-2, 1)
4 === pow(-2, 2)
1.0 === pow(-1,-2)
-1.0 === pow(-1,-1)
1 === pow(-1, 0)
-1 === pow(-1, 1)
1 === pow(-1, 2)
TRUE === is_infinite(pow(0,-2))
TRUE === is_infinite(pow(0,-1))
1 === pow( 0, 0)
0 === pow( 0, 1)
0 === pow( 0, 2)
1.0 === pow( 1,-2)
1.0 === pow( 1,-1)
1 === pow( 1, 0)
1 === pow( 1, 1)
1 === pow( 1, 2)
0.25 === pow( 2,-2)
0.5 === pow( 2,-1)
1 === pow( 2, 0)
2 === pow( 2, 1)
4 === pow( 2, 2)
0.25 === pow(-2,-2.0)
-0.5 === pow(-2,-1.0)
1.0 === pow(-2, 0.0)
-2.0 === pow(-2, 1.0)
4.0 === pow(-2, 2.0)
1.0 === pow(-1,-2.0)
-1.0 === pow(-1,-1.0)
1.0 === pow(-1, 0.0)
-1.0 === pow(-1, 1.0)
1.0 === pow(-1, 2.0)
TRUE === is_infinite(pow(0,-2.0))
TRUE === is_infinite(pow(0,-1.0))
1.0 === pow( 0, 0.0)
0.0 === pow( 0, 1.0)
0.0 === pow( 0, 2.0)
1.0 === pow( 1,-2.0)
1.0 === pow( 1,-1.0)
1.0 === pow( 1, 0.0)
1.0 === pow( 1, 1.0)
1.0 === pow( 1, 2.0)
0.25 === pow( 2,-2.0)
0.5 === pow( 2,-1.0)
1.0 === pow( 2, 0.0)
2.0 === pow( 2, 1.0)
4.0 === pow( 2, 2.0)
2147483648 === pow(2,31)
-2147483648 ~== pow(-2,31)
1000000000 === pow(10,9)
100000000 === pow(-10,8)
1 === pow(-1,1443279822)
-1 === pow(-1,1443279821)
sqrt(2) ~== pow(2,1/2)
0.25 === pow(-2.0,-2.0)
-0.5 === pow(-2.0,-1.0)
1.0 === pow(-2.0, 0.0)
-2.0 === pow(-2.0, 1.0)
4.0 === pow(-2.0, 2.0)
1.0 === pow(-1.0,-2.0)
-1.0 === pow(-1.0,-1.0)
1.0 === pow(-1.0, 0.0)
-1.0 === pow(-1.0, 1.0)
1.0 === pow(-1.0, 2.0)
TRUE === is_infinite(pow(0.0,-2.0))
TRUE === is_infinite(pow(0.0,-1.0))
1.0 === pow( 0.0, 0.0)
0.0 === pow( 0.0, 1.0)
0.0 === pow( 0.0, 2.0)
1.0 === pow( 1.0,-2.0)
1.0 === pow( 1.0,-1.0)
1.0 === pow( 1.0, 0.0)
1.0 === pow( 1.0, 1.0)
1.0 === pow( 1.0, 2.0)
0.25 === pow( 2.0,-2.0)
0.5 === pow( 2.0,-1.0)
1.0 === pow( 2.0, 0.0)
2.0 === pow( 2.0, 1.0)
4.0 === pow( 2.0, 2.0)
0.25 === pow(-2.0,-2)
-0.5 === pow(-2.0,-1)
1.0 === pow(-2.0, 0)
-2.0 === pow(-2.0, 1)
4.0 === pow(-2.0, 2)
1.0 === pow(-1.0,-2)
-1.0 === pow(-1.0,-1)
1.0 === pow(-1.0, 0)
-1.0 === pow(-1.0, 1)
1.0 === pow(-1.0, 2)
TRUE === is_infinite(pow( 0.0,-2))
TRUE === is_infinite(pow( 0.0,-1))
1.0 === pow( 0.0, 0)
0.0 === pow( 0.0, 1)
0.0 === pow( 0.0, 2)
1.0 === pow( 1.0,-2)
1.0 === pow( 1.0,-1)
1.0 === pow( 1.0, 0)
1.0 === pow( 1.0, 1)
1.0 === pow( 1.0, 2)
0.25 === pow( 2.0,-2)
0.5 === pow( 2.0,-1)
1.0 === pow( 2.0, 0)
2.0 === pow( 2.0, 1)
4.0 === pow( 2.0, 2)
2.0 === pow( 4, 0.5)
2.0 === pow( 4.0, 0.5)
3.0 === pow( 27, 1/3)
3.0 === pow(27.0, 1/3)
0.5 === pow( 4, -0.5)
0.5 === pow( 4.0, -0.5)
LONG_MAX-1 === pow(LONG_MAX-1,1)
LONG_MIN+1 === pow(LONG_MIN+1,1)
(LONG_MAX-1)*(LONG_MAX-1) ~== pow(LONG_MAX-1,2)
(LONG_MIN+1)*(LONG_MIN+1) ~== pow(LONG_MIN+1,2)
(float)(LONG_MAX-1) === pow(LONG_MAX-1,1.0)
(float)(LONG_MIN+1) === pow(LONG_MIN+1,1.0)
(LONG_MAX-1)*(LONG_MAX-1) ~== pow(LONG_MAX-1,2.0)
(LONG_MIN+1)*(LONG_MIN+1) ~== pow(LONG_MIN+1,2.0)
LONG_MAX === pow(LONG_MAX,1)
LONG_MIN === pow(LONG_MIN,1)
LONG_MAX*LONG_MAX ~== pow(LONG_MAX,2)
LONG_MIN*LONG_MIN ~== pow(LONG_MIN,2)
(float)LONG_MAX === pow(LONG_MAX,1.0)
(float)LONG_MIN === pow(LONG_MIN,1.0)
LONG_MAX*LONG_MAX ~== pow(LONG_MAX,2.0)
LONG_MIN*LONG_MIN ~== pow(LONG_MIN,2.0)
TESTS;
function epsilon_equal($left, $right): bool {
return abs(($left-$right) / $left) < 1e-12;
}
var_dump(0.25 === pow(-2,-2));
var_dump(-0.5 === pow(-2,-1));
var_dump(1 === pow(-2, 0));
var_dump(-2 === pow(-2, 1));
var_dump(4 === pow(-2, 2));
var_dump(1.0 === pow(-1,-2));
var_dump(-1.0 === pow(-1,-1));
var_dump(1 === pow(-1, 0));
var_dump(-1 === pow(-1, 1));
var_dump(1 === pow(-1, 2));
var_dump(TRUE === is_infinite(pow(0,-2)));
var_dump(TRUE === is_infinite(pow(0,-1)));
var_dump(1 === pow( 0, 0));
var_dump(0 === pow( 0, 1));
var_dump(0 === pow( 0, 2));
var_dump(1.0 === pow( 1,-2));
var_dump(1.0 === pow( 1,-1));
var_dump(1 === pow( 1, 0));
var_dump(1 === pow( 1, 1));
var_dump(1 === pow( 1, 2));
var_dump(0.25 === pow( 2,-2));
var_dump(0.5 === pow( 2,-1));
var_dump(1 === pow( 2, 0));
var_dump(2 === pow( 2, 1));
var_dump(4 === pow( 2, 2));
var_dump(0.25 === pow(-2,-2.0));
var_dump(-0.5 === pow(-2,-1.0));
var_dump(1.0 === pow(-2, 0.0));
var_dump(-2.0 === pow(-2, 1.0));
var_dump(4.0 === pow(-2, 2.0));
var_dump(1.0 === pow(-1,-2.0));
var_dump(-1.0 === pow(-1,-1.0));
var_dump(1.0 === pow(-1, 0.0));
var_dump(-1.0 === pow(-1, 1.0));
var_dump(1.0 === pow(-1, 2.0));
var_dump(TRUE === is_infinite(pow(0,-2.0)));
var_dump(TRUE === is_infinite(pow(0,-1.0)));
var_dump(1.0 === pow( 0, 0.0));
var_dump(0.0 === pow( 0, 1.0));
var_dump(0.0 === pow( 0, 2.0));
var_dump(1.0 === pow( 1,-2.0));
var_dump(1.0 === pow( 1,-1.0));
var_dump(1.0 === pow( 1, 0.0));
var_dump(1.0 === pow( 1, 1.0));
var_dump(1.0 === pow( 1, 2.0));
var_dump(0.25 === pow( 2,-2.0));
var_dump(0.5 === pow( 2,-1.0));
var_dump(1.0 === pow( 2, 0.0));
var_dump(2.0 === pow( 2, 1.0));
var_dump(4.0 === pow( 2, 2.0));
var_dump(2147483648 === pow(2,31));
var_dump(epsilon_equal( -2147483648, pow(-2,31) ));
var_dump(1000000000 === pow(10,9));
var_dump(100000000 === pow(-10,8));
var_dump(1 === pow(-1,1443279822));
var_dump(-1 === pow(-1,1443279821));
var_dump(epsilon_equal( sqrt(2), pow(2,1/2) ));
var_dump(0.25 === pow(-2.0,-2.0));
var_dump(-0.5 === pow(-2.0,-1.0));
var_dump(1.0 === pow(-2.0, 0.0));
var_dump(-2.0 === pow(-2.0, 1.0));
var_dump(4.0 === pow(-2.0, 2.0));
var_dump(1.0 === pow(-1.0,-2.0));
var_dump(-1.0 === pow(-1.0,-1.0));
var_dump(1.0 === pow(-1.0, 0.0));
var_dump(-1.0 === pow(-1.0, 1.0));
var_dump(1.0 === pow(-1.0, 2.0));
var_dump(TRUE === is_infinite(pow(0.0,-2.0)));
var_dump(TRUE === is_infinite(pow(0.0,-1.0)));
var_dump(1.0 === pow( 0.0, 0.0));
var_dump(0.0 === pow( 0.0, 1.0));
var_dump(0.0 === pow( 0.0, 2.0));
var_dump(1.0 === pow( 1.0,-2.0));
var_dump(1.0 === pow( 1.0,-1.0));
var_dump(1.0 === pow( 1.0, 0.0));
var_dump(1.0 === pow( 1.0, 1.0));
var_dump(1.0 === pow( 1.0, 2.0));
var_dump(0.25 === pow( 2.0,-2.0));
var_dump(0.5 === pow( 2.0,-1.0));
var_dump(1.0 === pow( 2.0, 0.0));
var_dump(2.0 === pow( 2.0, 1.0));
var_dump(4.0 === pow( 2.0, 2.0));
var_dump(0.25 === pow(-2.0,-2));
var_dump(-0.5 === pow(-2.0,-1));
var_dump(1.0 === pow(-2.0, 0));
var_dump(-2.0 === pow(-2.0, 1));
var_dump(4.0 === pow(-2.0, 2));
var_dump(1.0 === pow(-1.0,-2));
var_dump(-1.0 === pow(-1.0,-1));
var_dump(1.0 === pow(-1.0, 0));
var_dump(-1.0 === pow(-1.0, 1));
var_dump(1.0 === pow(-1.0, 2));
var_dump(TRUE === is_infinite(pow( 0.0,-2)));
var_dump(TRUE === is_infinite(pow( 0.0,-1)));
var_dump(1.0 === pow( 0.0, 0));
var_dump(0.0 === pow( 0.0, 1));
var_dump(0.0 === pow( 0.0, 2));
var_dump(1.0 === pow( 1.0,-2));
var_dump(1.0 === pow( 1.0,-1));
var_dump(1.0 === pow( 1.0, 0));
var_dump(1.0 === pow( 1.0, 1));
var_dump(1.0 === pow( 1.0, 2));
var_dump(0.25 === pow( 2.0,-2));
var_dump(0.5 === pow( 2.0,-1));
var_dump(1.0 === pow( 2.0, 0));
var_dump(2.0 === pow( 2.0, 1));
var_dump(4.0 === pow( 2.0, 2));
var_dump(2.0 === pow( 4, 0.5));
var_dump(2.0 === pow( 4.0, 0.5));
var_dump(3.0 === pow( 27, 1/3));
var_dump(3.0 === pow(27.0, 1/3));
var_dump(0.5 === pow( 4, -0.5));
var_dump(0.5 === pow( 4.0, -0.5));
var_dump(LONG_MAX-1 === pow(LONG_MAX-1,1));
var_dump(LONG_MIN+1 === pow(LONG_MIN+1,1));
var_dump(epsilon_equal( (LONG_MAX-1)*(LONG_MAX-1) , pow(LONG_MAX-1,2) ));
var_dump(epsilon_equal( (LONG_MIN+1)*(LONG_MIN+1) , pow(LONG_MIN+1,2) ));
var_dump((float)(LONG_MAX-1) === pow(LONG_MAX-1,1.0));
var_dump((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.0) ));
var_dump(epsilon_equal( (LONG_MIN+1)*(LONG_MIN+1) , pow(LONG_MIN+1,2.0) ));
var_dump(LONG_MAX === pow(LONG_MAX,1));
var_dump(LONG_MIN === pow(LONG_MIN,1));
var_dump(epsilon_equal( LONG_MAX*LONG_MAX , pow(LONG_MAX,2) ));
var_dump(epsilon_equal( LONG_MIN*LONG_MIN , pow(LONG_MIN,2) ));
var_dump((float)LONG_MAX === pow(LONG_MAX,1.0));
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--
1,1,0,0
On failure, please mail result to php-dev@lists.php.net
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)
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 ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$tests = <<<TESTS
-1 ~== ceil(-1.5)
2 ~== ceil( 1.5)
-2 ~== floor(-1.5)
1 ~== floor(1.5)
LONG_MIN ~== ceil(LONG_MIN - 0.5)
LONG_MIN+1 ~== ceil(LONG_MIN + 0.5)
LONG_MIN-1 ~== round(LONG_MIN - 0.6)
LONG_MIN ~== round(LONG_MIN - 0.4)
LONG_MIN ~== round(LONG_MIN + 0.4)
LONG_MIN+1 ~== round(LONG_MIN + 0.6)
LONG_MIN-1 ~== floor(LONG_MIN - 0.5)
LONG_MIN ~== floor(LONG_MIN + 0.5)
LONG_MAX ~== ceil(LONG_MAX - 0.5)
LONG_MAX+1 ~== ceil(LONG_MAX + 0.5)
LONG_MAX-1 ~== round(LONG_MAX - 0.6)
LONG_MAX ~== round(LONG_MAX - 0.4)
LONG_MAX ~== round(LONG_MAX + 0.4)
LONG_MAX+1 ~== round(LONG_MAX + 0.6)
LONG_MAX-1 ~== floor(LONG_MAX - 0.5)
LONG_MAX ~== floor(LONG_MAX + 0.5)
TESTS;
function epsilon_equal($left, $right): bool {
return abs(($left-$right) / $left) < 1e-12;
}
var_dump(epsilon_equal( -1 , ceil(-1.5) ));
var_dump(epsilon_equal( 2 , ceil( 1.5) ));
var_dump(epsilon_equal( -2 , floor(-1.5) ));
var_dump(epsilon_equal( 1 , floor(1.5) ));
var_dump(epsilon_equal( LONG_MIN , ceil(LONG_MIN - 0.5) ));
var_dump(epsilon_equal( LONG_MIN+1 , ceil(LONG_MIN + 0.5) ));
var_dump(epsilon_equal( LONG_MIN-1 , round(LONG_MIN - 0.6) ));
var_dump(epsilon_equal( LONG_MIN , round(LONG_MIN - 0.4) ));
var_dump(epsilon_equal( LONG_MIN , round(LONG_MIN + 0.4) ));
var_dump(epsilon_equal( LONG_MIN+1 , round(LONG_MIN + 0.6) ));
var_dump(epsilon_equal( LONG_MIN-1 , floor(LONG_MIN - 0.5) ));
var_dump(epsilon_equal( LONG_MIN , floor(LONG_MIN + 0.5) ));
var_dump(epsilon_equal( LONG_MAX , ceil(LONG_MAX - 0.5) ));
var_dump(epsilon_equal( LONG_MAX+1 , ceil(LONG_MAX + 0.5) ));
var_dump(epsilon_equal( LONG_MAX-1 , round(LONG_MAX - 0.6) ));
var_dump(epsilon_equal( LONG_MAX , round(LONG_MAX - 0.4) ));
var_dump(epsilon_equal( LONG_MAX , round(LONG_MAX + 0.4) ));
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--
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--
<?php
$tests = <<<TESTS
'ABC' === trim('ABC')
'ABC' === ltrim('ABC')
'ABC' === rtrim('ABC')
'ABC' === trim(" \\0\\t\\nABC \\0\\t\\n")
"ABC \\0\\t\\n" === ltrim(" \\0\\t\\nABC \\0\\t\\n")
" \\0\\t\\nABC" === rtrim(" \\0\\t\\nABC \\0\\t\\n")
" \\0\\t\\nABC \\0\\t\\n" === trim(" \\0\\t\\nABC \\0\\t\\n",'')
" \\0\\t\\nABC \\0\\t\\n" === ltrim(" \\0\\t\\nABC \\0\\t\\n",'')
" \\0\\t\\nABC \\0\\t\\n" === rtrim(" \\0\\t\\nABC \\0\\t\\n",'')
"ABC\\x50\\xC1" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC0")
"ABC\\x50" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC1")
"ABC" === trim("ABC\\x50\\xC1\\x60\\x90","\\x50..\\xC1")
"ABC\\x50\\xC1" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC0")
"ABC\\x50" === trim("ABC\\x50\\xC1\\x60\\x90","\\x51..\\xC1")
"ABC" === trim("ABC\\x50\\xC1\\x60\\x90","\\x50..\\xC1")
TESTS;
var_dump('ABC' === trim('ABC'));
var_dump('ABC' === ltrim('ABC'));
var_dump('ABC' === rtrim('ABC'));
var_dump('ABC' === trim(" \0\t\nABC \0\t\n"));
var_dump("ABC \0\t\n" === ltrim(" \0\t\nABC \0\t\n"));
var_dump(" \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",''));
var_dump(" \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",''));
var_dump("ABC\x50\xC1" === trim("ABC\x50\xC1\x60\x90","\x51..\xC0"));
var_dump("ABC\x50" === trim("ABC\x50\xC1\x60\x90","\x51..\xC1"));
var_dump("ABC" === trim("ABC\x50\xC1\x60\x90","\x50..\xC1"));
var_dump("ABC\x50\xC1" === trim("ABC\x50\xC1\x60\x90","\x51..\xC0"));
var_dump("ABC\x50" === trim("ABC\x50\xC1\x60\x90","\x51..\xC1"));
var_dump("ABC" === trim("ABC\x50\xC1\x60\x90","\x50..\xC1"));
include(__DIR__ . '/../../../../tests/quicktester.inc');
?>
--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--
<?php
$tests = <<<TESTS
"12345 12345 12345 12345" === wordwrap("12345 12345 12345 12345")
"12345 12345\\n1234567890\\n1234567890" === wordwrap("12345 12345 1234567890 1234567890",12)
"12345\\n12345\\n12345\\n12345" === wordwrap("12345 12345 12345 12345",0)
"12345ab12345ab12345ab12345" === wordwrap("12345 12345 12345 12345",0,"ab")
"12345 12345ab1234567890ab1234567890" === wordwrap("12345 12345 1234567890 1234567890",12,"ab")
"123ab123ab123" === wordwrap("123ab123ab123", 3, "ab")
"123ab123ab123" === wordwrap("123ab123ab123", 5, "ab")
"123ab 123ab123" === wordwrap("123 123ab123", 3, "ab")
"123ab123ab123" === wordwrap("123 123ab123", 5, "ab")
"123 123ab123" === wordwrap("123 123 123", 10, "ab")
var_dump("12345 12345 12345 12345" === wordwrap("12345 12345 12345 12345"));
var_dump("12345 12345\n1234567890\n1234567890" === wordwrap("12345 12345 1234567890 1234567890",12));
var_dump("12345\n12345\n12345\n12345" === wordwrap("12345 12345 12345 12345",0));
var_dump("12345ab12345ab12345ab12345" === wordwrap("12345 12345 12345 12345",0,"ab"));
var_dump("12345 12345ab1234567890ab1234567890" === wordwrap("12345 12345 1234567890 1234567890",12,"ab"));
var_dump("123ab123ab123" === wordwrap("123ab123ab123", 3, "ab"));
var_dump("123ab123ab123" === wordwrap("123ab123ab123", 5, "ab"));
var_dump("123ab 123ab123" === wordwrap("123 123ab123", 3, "ab"));
var_dump("123ab123ab123" === wordwrap("123 123ab123", 5, "ab"));
var_dump("123 123ab123" === wordwrap("123 123 123", 10, "ab"));
"123ab123ab123" === wordwrap("123ab123ab123", 3, "ab", 1)
"123ab123ab123" === wordwrap("123ab123ab123", 5, "ab", 1)
"123ab 12ab3ab123" === wordwrap("123 123ab123", 3, "ab", 1)
"123 ab123ab123" === wordwrap("123 123ab123", 5, "ab", 1)
"123 123ab 123" === wordwrap("123 123 123", 8, "ab", 1)
"123 ab12345 ab123" === wordwrap("123 12345 123", 8, "ab", 1)
"1ab2ab3ab4" === wordwrap("1234", 1, "ab", 1)
var_dump("123ab123ab123" === wordwrap("123ab123ab123", 3, "ab", 1));
var_dump("123ab123ab123" === wordwrap("123ab123ab123", 5, "ab", 1));
var_dump("123ab 12ab3ab123" === wordwrap("123 123ab123", 3, "ab", 1));
var_dump("123 ab123ab123" === wordwrap("123 123ab123", 5, "ab", 1));
var_dump("123 123ab 123" === wordwrap("123 123 123", 8, "ab", 1));
var_dump("123 ab12345 ab123" === wordwrap("123 12345 123", 8, "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 {
wordwrap(chr(0), 0, "");
@ -40,5 +34,23 @@ try {
}
?>
--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

View file

@ -8,17 +8,13 @@ define('LONG_MIN', -LONG_MAX - 1);
printf("%d,%d,%d,%d\n",is_int(LONG_MIN ),is_int(LONG_MAX ),
is_int(LONG_MIN-1),is_int(LONG_MAX+1));
$i = LONG_MAX;
$i = LONG_MAX;
$j = $i * 1001;
$i *= 1001;
$j = $i * 1001;
$i *= 1001;
var_dump($i === $j);
$tests = <<<TESTS
$i === $j
TESTS;
include(__DIR__ . '/../quicktester.inc');
?>
--EXPECT--
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";