1
0
mirror of https://github.com/php/php-src.git synced 2026-03-27 17:52:16 +01:00

A few new tests for math functions - Note the "constants" test will fail on Windows - Bug 42143.

This commit is contained in:
Zoe Slattery
2008-02-01 17:27:43 +00:00
parent 801ce5ee03
commit cc0b147a2f
9 changed files with 715 additions and 0 deletions

View File

@@ -0,0 +1,185 @@
--TEST--
Test atan2() - basic function test of atan2()
--INI--
precision=14
--FILE--
<?php
$valuesy = array(23,
-23,
2.345e1,
-2.345e1,
0x17,
027,
"23",
"23.45",
"2.345e1",
null,
true,
false);
$valuesx = array(23,
-23,
2.345e1,
-2.345e1,
0x17,
027,
"23",
"23.45",
"2.345e1",
null,
true,
false);
for ($i = 0; $i < count($valuesy); $i++) {
for ($j = 0; $j < count($valuesx); $j++) {
$res = atan2($valuesy[$i], $valuesx[$j]);
echo "Y:$valuesy[$i] X:$valuesx[$j] ";
var_dump($res);
}
}
?>
--EXPECTF--
Y:23 X:23 float(0.78539816339745)
Y:23 X:-23 float(2.3561944901923)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:-23.45 float(2.3658820235113)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:2.345e1 float(0.77571063007847)
Y:23 X: float(1.5707963267949)
Y:23 X:1 float(1.5273454314034)
Y:23 X: float(1.5707963267949)
Y:-23 X:23 float(-0.78539816339745)
Y:-23 X:-23 float(-2.3561944901923)
Y:-23 X:23.45 float(-0.77571063007847)
Y:-23 X:-23.45 float(-2.3658820235113)
Y:-23 X:23 float(-0.78539816339745)
Y:-23 X:23 float(-0.78539816339745)
Y:-23 X:23 float(-0.78539816339745)
Y:-23 X:23.45 float(-0.77571063007847)
Y:-23 X:2.345e1 float(-0.77571063007847)
Y:-23 X: float(-1.5707963267949)
Y:-23 X:1 float(-1.5273454314034)
Y:-23 X: float(-1.5707963267949)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:-23 float(2.3465069568734)
Y:23.45 X:23.45 float(0.78539816339745)
Y:23.45 X:-23.45 float(2.3561944901923)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:23.45 float(0.78539816339745)
Y:23.45 X:2.345e1 float(0.78539816339745)
Y:23.45 X: float(1.5707963267949)
Y:23.45 X:1 float(1.5281782247706)
Y:23.45 X: float(1.5707963267949)
Y:-23.45 X:23 float(-0.79508569671643)
Y:-23.45 X:-23 float(-2.3465069568734)
Y:-23.45 X:23.45 float(-0.78539816339745)
Y:-23.45 X:-23.45 float(-2.3561944901923)
Y:-23.45 X:23 float(-0.79508569671643)
Y:-23.45 X:23 float(-0.79508569671643)
Y:-23.45 X:23 float(-0.79508569671643)
Y:-23.45 X:23.45 float(-0.78539816339745)
Y:-23.45 X:2.345e1 float(-0.78539816339745)
Y:-23.45 X: float(-1.5707963267949)
Y:-23.45 X:1 float(-1.5281782247706)
Y:-23.45 X: float(-1.5707963267949)
Y:23 X:23 float(0.78539816339745)
Y:23 X:-23 float(2.3561944901923)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:-23.45 float(2.3658820235113)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:2.345e1 float(0.77571063007847)
Y:23 X: float(1.5707963267949)
Y:23 X:1 float(1.5273454314034)
Y:23 X: float(1.5707963267949)
Y:23 X:23 float(0.78539816339745)
Y:23 X:-23 float(2.3561944901923)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:-23.45 float(2.3658820235113)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:2.345e1 float(0.77571063007847)
Y:23 X: float(1.5707963267949)
Y:23 X:1 float(1.5273454314034)
Y:23 X: float(1.5707963267949)
Y:23 X:23 float(0.78539816339745)
Y:23 X:-23 float(2.3561944901923)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:-23.45 float(2.3658820235113)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23 float(0.78539816339745)
Y:23 X:23.45 float(0.77571063007847)
Y:23 X:2.345e1 float(0.77571063007847)
Y:23 X: float(1.5707963267949)
Y:23 X:1 float(1.5273454314034)
Y:23 X: float(1.5707963267949)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:-23 float(2.3465069568734)
Y:23.45 X:23.45 float(0.78539816339745)
Y:23.45 X:-23.45 float(2.3561944901923)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:23 float(0.79508569671643)
Y:23.45 X:23.45 float(0.78539816339745)
Y:23.45 X:2.345e1 float(0.78539816339745)
Y:23.45 X: float(1.5707963267949)
Y:23.45 X:1 float(1.5281782247706)
Y:23.45 X: float(1.5707963267949)
Y:2.345e1 X:23 float(0.79508569671643)
Y:2.345e1 X:-23 float(2.3465069568734)
Y:2.345e1 X:23.45 float(0.78539816339745)
Y:2.345e1 X:-23.45 float(2.3561944901923)
Y:2.345e1 X:23 float(0.79508569671643)
Y:2.345e1 X:23 float(0.79508569671643)
Y:2.345e1 X:23 float(0.79508569671643)
Y:2.345e1 X:23.45 float(0.78539816339745)
Y:2.345e1 X:2.345e1 float(0.78539816339745)
Y:2.345e1 X: float(1.5707963267949)
Y:2.345e1 X:1 float(1.5281782247706)
Y:2.345e1 X: float(1.5707963267949)
Y: X:23 float(0)
Y: X:-23 float(3.1415926535898)
Y: X:23.45 float(0)
Y: X:-23.45 float(3.1415926535898)
Y: X:23 float(0)
Y: X:23 float(0)
Y: X:23 float(0)
Y: X:23.45 float(0)
Y: X:2.345e1 float(0)
Y: X: float(0)
Y: X:1 float(0)
Y: X: float(0)
Y:1 X:23 float(0.043450895391531)
Y:1 X:-23 float(3.0981417581983)
Y:1 X:23.45 float(0.042618102024328)
Y:1 X:-23.45 float(3.0989745515655)
Y:1 X:23 float(0.043450895391531)
Y:1 X:23 float(0.043450895391531)
Y:1 X:23 float(0.043450895391531)
Y:1 X:23.45 float(0.042618102024328)
Y:1 X:2.345e1 float(0.042618102024328)
Y:1 X: float(1.5707963267949)
Y:1 X:1 float(0.78539816339745)
Y:1 X: float(1.5707963267949)
Y: X:23 float(0)
Y: X:-23 float(3.1415926535898)
Y: X:23.45 float(0)
Y: X:-23.45 float(3.1415926535898)
Y: X:23 float(0)
Y: X:23 float(0)
Y: X:23 float(0)
Y: X:23.45 float(0)
Y: X:2.345e1 float(0)
Y: X: float(0)
Y: X:1 float(0)
Y: X: float(0)

View File

@@ -0,0 +1,15 @@
--TEST--
Test atan2() - wrong params atan2()
--FILE--
<?php
atan2();
atan2(36);
atan2(36,25,0);
?>
--EXPECTF--
Warning: Wrong parameter count for atan2() in %s on line 2
Warning: Wrong parameter count for atan2() in %s on line 3
Warning: Wrong parameter count for atan2() in %s on line 4

View File

@@ -0,0 +1,316 @@
--TEST--
Test base_convert() - basic function tests base_convert()
--FILE--
<?php
$frombase = array(2,8,10,16,36);
$tobase = array(2,8,10,16,36);
$values = array(10,
27,
39,
039,
0x5F,
"10",
"27",
"39",
"5F",
"3XYZ"
);
for ($f= 0; $f < count($frombase); $f++) {
echo "\n...from base is ", $frombase[$f], "\n";
for ($t= 0; $t < count($tobase); $t++) {
echo "......to base is ", $tobase[$t], "\n";
for ($i =0; $i < count($values); $i++){
$res = base_convert($values[$i],$frombase[$f],$tobase[$t]);
echo ".........value= ", $values[$i], " res = ", $res, "\n";
}
}
}
?>
--EXPECTF--
...from base is 2
......to base is 2
.........value= 10 res = 10
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 3 res = 0
.........value= 95 res = 0
.........value= 10 res = 10
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 5F res = 0
.........value= 3XYZ res = 0
......to base is 8
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 3 res = 0
.........value= 95 res = 0
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 5F res = 0
.........value= 3XYZ res = 0
......to base is 10
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 3 res = 0
.........value= 95 res = 0
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 5F res = 0
.........value= 3XYZ res = 0
......to base is 16
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 3 res = 0
.........value= 95 res = 0
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 5F res = 0
.........value= 3XYZ res = 0
......to base is 36
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 3 res = 0
.........value= 95 res = 0
.........value= 10 res = 2
.........value= 27 res = 0
.........value= 39 res = 0
.........value= 5F res = 0
.........value= 3XYZ res = 0
...from base is 8
......to base is 2
.........value= 10 res = 1000
.........value= 27 res = 10111
.........value= 39 res = 11
.........value= 3 res = 11
.........value= 95 res = 101
.........value= 10 res = 1000
.........value= 27 res = 10111
.........value= 39 res = 11
.........value= 5F res = 101
.........value= 3XYZ res = 11
......to base is 8
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 3
.........value= 3 res = 3
.........value= 95 res = 5
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 3
.........value= 5F res = 5
.........value= 3XYZ res = 3
......to base is 10
.........value= 10 res = 8
.........value= 27 res = 23
.........value= 39 res = 3
.........value= 3 res = 3
.........value= 95 res = 5
.........value= 10 res = 8
.........value= 27 res = 23
.........value= 39 res = 3
.........value= 5F res = 5
.........value= 3XYZ res = 3
......to base is 16
.........value= 10 res = 8
.........value= 27 res = 17
.........value= 39 res = 3
.........value= 3 res = 3
.........value= 95 res = 5
.........value= 10 res = 8
.........value= 27 res = 17
.........value= 39 res = 3
.........value= 5F res = 5
.........value= 3XYZ res = 3
......to base is 36
.........value= 10 res = 8
.........value= 27 res = n
.........value= 39 res = 3
.........value= 3 res = 3
.........value= 95 res = 5
.........value= 10 res = 8
.........value= 27 res = n
.........value= 39 res = 3
.........value= 5F res = 5
.........value= 3XYZ res = 3
...from base is 10
......to base is 2
.........value= 10 res = 1010
.........value= 27 res = 11011
.........value= 39 res = 100111
.........value= 3 res = 11
.........value= 95 res = 1011111
.........value= 10 res = 1010
.........value= 27 res = 11011
.........value= 39 res = 100111
.........value= 5F res = 101
.........value= 3XYZ res = 11
......to base is 8
.........value= 10 res = 12
.........value= 27 res = 33
.........value= 39 res = 47
.........value= 3 res = 3
.........value= 95 res = 137
.........value= 10 res = 12
.........value= 27 res = 33
.........value= 39 res = 47
.........value= 5F res = 5
.........value= 3XYZ res = 3
......to base is 10
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 39
.........value= 3 res = 3
.........value= 95 res = 95
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 39
.........value= 5F res = 5
.........value= 3XYZ res = 3
......to base is 16
.........value= 10 res = a
.........value= 27 res = 1b
.........value= 39 res = 27
.........value= 3 res = 3
.........value= 95 res = 5f
.........value= 10 res = a
.........value= 27 res = 1b
.........value= 39 res = 27
.........value= 5F res = 5
.........value= 3XYZ res = 3
......to base is 36
.........value= 10 res = a
.........value= 27 res = r
.........value= 39 res = 13
.........value= 3 res = 3
.........value= 95 res = 2n
.........value= 10 res = a
.........value= 27 res = r
.........value= 39 res = 13
.........value= 5F res = 5
.........value= 3XYZ res = 3
...from base is 16
......to base is 2
.........value= 10 res = 10000
.........value= 27 res = 100111
.........value= 39 res = 111001
.........value= 3 res = 11
.........value= 95 res = 10010101
.........value= 10 res = 10000
.........value= 27 res = 100111
.........value= 39 res = 111001
.........value= 5F res = 1011111
.........value= 3XYZ res = 11
......to base is 8
.........value= 10 res = 20
.........value= 27 res = 47
.........value= 39 res = 71
.........value= 3 res = 3
.........value= 95 res = 225
.........value= 10 res = 20
.........value= 27 res = 47
.........value= 39 res = 71
.........value= 5F res = 137
.........value= 3XYZ res = 3
......to base is 10
.........value= 10 res = 16
.........value= 27 res = 39
.........value= 39 res = 57
.........value= 3 res = 3
.........value= 95 res = 149
.........value= 10 res = 16
.........value= 27 res = 39
.........value= 39 res = 57
.........value= 5F res = 95
.........value= 3XYZ res = 3
......to base is 16
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 39
.........value= 3 res = 3
.........value= 95 res = 95
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 39
.........value= 5F res = 5f
.........value= 3XYZ res = 3
......to base is 36
.........value= 10 res = g
.........value= 27 res = 13
.........value= 39 res = 1l
.........value= 3 res = 3
.........value= 95 res = 45
.........value= 10 res = g
.........value= 27 res = 13
.........value= 39 res = 1l
.........value= 5F res = 2n
.........value= 3XYZ res = 3
...from base is 36
......to base is 2
.........value= 10 res = 100100
.........value= 27 res = 1001111
.........value= 39 res = 1110101
.........value= 3 res = 11
.........value= 95 res = 101001001
.........value= 10 res = 100100
.........value= 27 res = 1001111
.........value= 39 res = 1110101
.........value= 5F res = 11000011
.........value= 3XYZ res = 101100111010111011
......to base is 8
.........value= 10 res = 44
.........value= 27 res = 117
.........value= 39 res = 165
.........value= 3 res = 3
.........value= 95 res = 511
.........value= 10 res = 44
.........value= 27 res = 117
.........value= 39 res = 165
.........value= 5F res = 303
.........value= 3XYZ res = 547273
......to base is 10
.........value= 10 res = 36
.........value= 27 res = 79
.........value= 39 res = 117
.........value= 3 res = 3
.........value= 95 res = 329
.........value= 10 res = 36
.........value= 27 res = 79
.........value= 39 res = 117
.........value= 5F res = 195
.........value= 3XYZ res = 183995
......to base is 16
.........value= 10 res = 24
.........value= 27 res = 4f
.........value= 39 res = 75
.........value= 3 res = 3
.........value= 95 res = 149
.........value= 10 res = 24
.........value= 27 res = 4f
.........value= 39 res = 75
.........value= 5F res = c3
.........value= 3XYZ res = 2cebb
......to base is 36
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 39
.........value= 3 res = 3
.........value= 95 res = 95
.........value= 10 res = 10
.........value= 27 res = 27
.........value= 39 res = 39
.........value= 5F res = 5f
.........value= 3XYZ res = 3xyz

View File

@@ -0,0 +1,21 @@
--TEST--
Test base_convert() - wrong params base_convert()
--FILE--
<?php
base_convert();
base_convert(35);
base_convert(35,2);
base_convert(1234, 1, 10);
base_convert(1234, 10, 37);
?>
--EXPECTF--
Warning: Wrong parameter count for base_convert() in %s on line 2
Warning: Wrong parameter count for base_convert() in %s on line 3
Warning: Wrong parameter count for base_convert() in %s on line 4
Warning: base_convert(): Invalid `from base' (1) in %s on line 5
Warning: base_convert(): Invalid `to base' (37) in %s on line 6

View File

@@ -0,0 +1,49 @@
--TEST--
Test bindec() - basic function test bindec()
--FILE--
<?php
$values = array(111000111,
011100000,
1111111111111111111111111111111,
10000000000000000000000000000000,
100002001,
'111000111',
'011100000',
'1111111111111111111111111111111',
'10000000000000000000000000000000',
'100002001',
'abcdefg',
311015,
31101.3,
31.1013e5,
0x111ABC,
011237,
true,
false,
null);
for ($i = 0; $i < count($values); $i++) {
$res = bindec($values[$i]);
var_dump($res);
}
?>
--EXPECTF--
int(455)
int(0)
int(32766)
int(5)
int(129)
int(455)
int(224)
int(2147483647)
float(2147483648)
int(129)
int(0)
int(13)
int(13)
int(26)
int(6)
int(0)
int(1)
int(0)
int(0)

View File

@@ -0,0 +1,12 @@
--TEST--
Test bindec() - basic function test bindec()
--FILE--
<?php
bindec();
bindec('01010101111',true);
?>
--EXPECTF--
Warning: Wrong parameter count for bindec() in %s on line 2
Warning: Wrong parameter count for bindec() in %s on line 3

View File

@@ -0,0 +1,65 @@
--TEST--
Test for pre-defined math constants
--INI--
precision=14
--FILE--
<?php
echo "M_E= ";
var_dump(M_E);
echo "M_LOG2E= ";
var_dump(M_LOG2E);
echo "M_LOG10E= ";
var_dump(M_LOG10E);
echo "M_LN2= ";
var_dump(M_LN2);
echo "M_LN10= ";
var_dump(M_LN10);
echo "M_PI= ";
var_dump(M_PI);
echo "M_PI_2= ";
var_dump(M_PI_2);
echo "M_PI_4= ";
var_dump(M_PI_4);
echo "M_1_PI= ";
var_dump(M_1_PI);
echo "M_2_PI= ";
var_dump(M_2_PI);
echo "M_SQRTPI= ";
var_dump(M_SQRTPI);
echo "M_2_SQRTPI= ";
var_dump(M_2_SQRTPI);
echo "M_LNPI= ";
var_dump(M_LNPI);
echo "M_EULER= ";
var_dump(M_EULER);
echo "M_SQRT2= ";
var_dump(M_SQRT2);
echo "M_SQRT1_2= ";
var_dump(M_SQRT1_2);
echo "M_SQRT3= ";
var_dump(M_SQRT3);
echo "INF= ";
var_dump(INF);
echo "NAN= ";
var_dump(NAN);
?>
--EXPECT--
M_E= float(2.718281828459)
M_LOG2E= float(1.442695040889)
M_LOG10E= float(0.43429448190325)
M_LN2= float(0.69314718055995)
M_LN10= float(2.302585092994)
M_PI= float(3.1415926535898)
M_PI_2= float(1.5707963267949)
M_PI_4= float(0.78539816339745)
M_1_PI= float(0.31830988618379)
M_2_PI= float(0.63661977236758)
M_SQRTPI= float(1.7724538509055)
M_2_SQRTPI= float(1.1283791670955)
M_LNPI= float(1.1447298858494)
M_EULER= float(0.57721566490153)
M_SQRT2= float(1.4142135623731)
M_SQRT1_2= float(0.70710678118655)
M_SQRT3= float(1.7320508075689)
INF= float(INF)
NAN= float(NAN)

View File

@@ -0,0 +1,39 @@
--TEST--
Test decbin() - basic function test
--FILE--
<?php
$values = array(10,
3950.5,
3.9505e3,
039,
0x5F,
"10",
"3950.5",
"3.9505e3",
"039",
"0x5F",
true,
false,
null,
);
for ($i = 0; $i < count($values); $i++) {
$res = decbin($values[$i]);
var_dump($res);
}
?>
--EXPECTF--
string(4) "1010"
string(12) "111101101110"
string(12) "111101101110"
string(2) "11"
string(7) "1011111"
string(4) "1010"
string(12) "111101101110"
string(2) "11"
string(6) "100111"
string(1) "0"
string(1) "1"
string(1) "0"
string(1) "0"

View File

@@ -0,0 +1,13 @@
--TEST--
Test decbin() - wrong params
--FILE--
<?php
decbin();
decbin(23,2,true);
?>
--EXPECTF--
Warning: Wrong parameter count for decbin() in %s on line 2
Warning: Wrong parameter count for decbin() in %s on line 3