php-src/ext/standard/tests/array/range.phpt

1204 lines
17 KiB
Plaintext
Raw Normal View History

--TEST--
2007-05-16 21:07:33 +00:00
Test range() function
2007-05-07 22:30:16 +00:00
--INI--
precision=14
--FILE--
<?php
2007-05-16 21:07:33 +00:00
/* Prototype: array range ( mixed $low, mixed $high [, number $step] );
Description: Create an array containing a range of elements
*/
echo "*** Testing range() function on basic operations ***\n";
echo "\n-- Integers as Low and High --\n";
echo "-- An array of elements from low to high --\n";
var_dump( range(1, 10) );
echo "\n-- An array of elements from high to low --\n";
var_dump( range(10, 1) );
echo "\n-- Numeric Strings as Low and High --\n";
echo "-- An array of elements from low to high --\n";
var_dump( range("1", "10") );
echo "\n-- An array of elements from high to low --\n";
var_dump( range("10", "1") );
echo "\n-- Chars as Low and High --\n";
echo "-- An array of elements from low to high --\n";
var_dump( range("a", "z") );
echo "\n-- An array of elements from high to low --\n";
var_dump( range("z", "a") );
echo "\n-- Low and High are equal --\n";
var_dump( range(5, 5) );
var_dump( range("q", "q") );
echo "\n-- floats as Low and High --\n";
var_dump( range(5.1, 10.1) );
var_dump( range(10.1, 5.1) );
var_dump( range("5.1", "10.1") );
var_dump( range("10.1", "5.1") );
echo "\n-- Passing step with Low and High --\n";
var_dump( range(1, 2, 0.1) );
var_dump( range(2, 1, 0.1) );
var_dump( range(1, 2, "0.1") );
var_dump( range("1", "2", 0.1) );
echo "\n-- Testing basic string with step --\n";
var_dump( range("abcd", "mnop", 2) );
echo "\n*** Testing range() with various low and high values ***";
$low_arr = array( "ABCD", -10.5555, TRUE, NULL, FALSE, "", array(1,2));
$high_arr = array( "ABCD", -10.5555, TRUE, NULL, FALSE, "", array(1,2));
for( $i = 0; $i < count($low_arr); $i++) {
for( $j = 0; $j < count($high_arr); $j++) {
echo "\n-- creating an array with low = '$low_arr[$i]' and high = '$high_arr[$j]' --\n";
var_dump( range( $low_arr[$i], $high_arr[$j] ) );
}
}
echo "\n*** Possible variatins with steps ***\n";
var_dump( range( 1, 5, TRUE ) );
var_dump( range( 1, 5, array(1, 2) ) );
echo "\n*** Testing max/outof range values ***\n";
/*var_dump( range("a", "z", 255) );
var_dump( range("z", "a", 255) ); */
var_dump( range(2147483645, 2147483646) );
var_dump( range(2147483646, 2147483648) );
var_dump( range(-2147483647, -2147483646) );
var_dump( range(-2147483648, -2147483647) );
var_dump( range(-2147483649, -2147483647) );
echo "\n*** Testing error conditions ***\n";
echo "\n-- Testing ( (low < high) && (step = 0) ) --";
var_dump( range(1, 2, 0) );
var_dump( range("a", "b", 0) );
echo "\n\n-- Testing ( (low > high) && (step = 0) ) --";
var_dump( range(2, 1, 0) );
var_dump( range("b", "a", 0) );
echo "\n\n-- Testing ( (low < high) && (high-low < step) ) --";
var_dump( range(1.0, 7.0, 6.5) );
echo "\n\n-- Testing ( (low > high) && (low-high < step) ) --";
var_dump( range(7.0, 1.0, 6.5) );
echo "\n-- Testing Invalid number of arguments --";
var_dump( range() ); // No.of args = 0
var_dump( range(1) ); // No.of args < expected
var_dump( range(1,2,3,4) ); // No.of args > expected
var_dump( range(-1, -2, 2) );
var_dump( range("a", "j", "z") );
echo "\n-- Testing Invalid steps --";
$step_arr = array( "string", NULL, FALSE, "", "\0" );
foreach( $step_arr as $step ) {
var_dump( range( 1, 5, $step ) );
}
echo "\nDone";
?>
2007-05-16 21:07:33 +00:00
--EXPECTF--
*** Testing range() function on basic operations ***
-- Integers as Low and High --
-- An array of elements from low to high --
array(10) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
[7]=>
int(8)
[8]=>
int(9)
[9]=>
int(10)
2007-05-16 21:07:33 +00:00
}
-- An array of elements from high to low --
array(10) {
[0]=>
int(10)
2007-05-16 21:07:33 +00:00
[1]=>
int(9)
2007-05-16 21:07:33 +00:00
[2]=>
int(8)
2007-05-16 21:07:33 +00:00
[3]=>
int(7)
2007-05-16 21:07:33 +00:00
[4]=>
int(6)
2007-05-16 21:07:33 +00:00
[5]=>
int(5)
2007-05-16 21:07:33 +00:00
[6]=>
int(4)
2007-05-16 21:07:33 +00:00
[7]=>
int(3)
2007-05-16 21:07:33 +00:00
[8]=>
int(2)
2007-05-16 21:07:33 +00:00
[9]=>
int(1)
}
2007-05-16 21:07:33 +00:00
-- Numeric Strings as Low and High --
-- An array of elements from low to high --
array(10) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
[5]=>
int(6)
[6]=>
int(7)
[7]=>
int(8)
[8]=>
int(9)
[9]=>
int(10)
2007-05-16 21:07:33 +00:00
}
-- An array of elements from high to low --
array(10) {
[0]=>
int(10)
2007-05-16 21:07:33 +00:00
[1]=>
int(9)
2007-05-16 21:07:33 +00:00
[2]=>
int(8)
2007-05-16 21:07:33 +00:00
[3]=>
int(7)
2007-05-16 21:07:33 +00:00
[4]=>
int(6)
2007-05-16 21:07:33 +00:00
[5]=>
int(5)
2007-05-16 21:07:33 +00:00
[6]=>
int(4)
2007-05-16 21:07:33 +00:00
[7]=>
int(3)
2007-05-16 21:07:33 +00:00
[8]=>
int(2)
2007-05-16 21:07:33 +00:00
[9]=>
int(1)
}
2007-05-16 21:07:33 +00:00
-- Chars as Low and High --
-- An array of elements from low to high --
array(26) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
[4]=>
string(1) "e"
[5]=>
string(1) "f"
[6]=>
string(1) "g"
[7]=>
string(1) "h"
[8]=>
string(1) "i"
[9]=>
string(1) "j"
[10]=>
string(1) "k"
[11]=>
string(1) "l"
[12]=>
string(1) "m"
[13]=>
string(1) "n"
[14]=>
string(1) "o"
[15]=>
string(1) "p"
[16]=>
string(1) "q"
[17]=>
string(1) "r"
[18]=>
string(1) "s"
[19]=>
string(1) "t"
[20]=>
string(1) "u"
[21]=>
string(1) "v"
[22]=>
string(1) "w"
[23]=>
string(1) "x"
[24]=>
string(1) "y"
[25]=>
string(1) "z"
}
2007-05-16 21:07:33 +00:00
-- An array of elements from high to low --
array(26) {
[0]=>
string(1) "z"
[1]=>
string(1) "y"
[2]=>
string(1) "x"
[3]=>
string(1) "w"
[4]=>
string(1) "v"
[5]=>
string(1) "u"
[6]=>
string(1) "t"
[7]=>
string(1) "s"
[8]=>
string(1) "r"
[9]=>
string(1) "q"
[10]=>
string(1) "p"
[11]=>
string(1) "o"
[12]=>
string(1) "n"
[13]=>
string(1) "m"
[14]=>
string(1) "l"
[15]=>
string(1) "k"
[16]=>
string(1) "j"
[17]=>
string(1) "i"
[18]=>
string(1) "h"
[19]=>
string(1) "g"
[20]=>
string(1) "f"
[21]=>
string(1) "e"
[22]=>
string(1) "d"
[23]=>
string(1) "c"
[24]=>
string(1) "b"
[25]=>
string(1) "a"
}
2007-05-16 21:07:33 +00:00
-- Low and High are equal --
array(1) {
[0]=>
2007-05-16 21:07:33 +00:00
int(5)
}
array(1) {
[0]=>
2007-05-16 21:07:33 +00:00
string(1) "q"
}
2007-05-16 21:07:33 +00:00
-- floats as Low and High --
array(6) {
[0]=>
float(5.1)
[1]=>
float(6.1)
[2]=>
float(7.1)
[3]=>
float(8.1)
[4]=>
float(9.1)
[5]=>
float(10.1)
}
array(6) {
[0]=>
float(10.1)
[1]=>
float(9.1)
[2]=>
float(8.1)
[3]=>
float(7.1)
[4]=>
float(6.1)
[5]=>
float(5.1)
}
array(6) {
[0]=>
float(5.1)
[1]=>
float(6.1)
[2]=>
float(7.1)
[3]=>
float(8.1)
[4]=>
float(9.1)
[5]=>
float(10.1)
}
array(6) {
[0]=>
float(10.1)
[1]=>
float(9.1)
[2]=>
float(8.1)
[3]=>
float(7.1)
[4]=>
float(6.1)
[5]=>
float(5.1)
}
2007-05-16 21:07:33 +00:00
-- Passing step with Low and High --
array(11) {
[0]=>
float(1)
[1]=>
float(1.1)
[2]=>
float(1.2)
[3]=>
float(1.3)
[4]=>
float(1.4)
[5]=>
float(1.5)
[6]=>
float(1.6)
[7]=>
float(1.7)
[8]=>
float(1.8)
[9]=>
float(1.9)
[10]=>
float(2)
2007-05-16 21:07:33 +00:00
}
array(11) {
[0]=>
float(2)
2007-05-16 21:07:33 +00:00
[1]=>
float(1.9)
2007-05-16 21:07:33 +00:00
[2]=>
float(1.8)
2007-05-16 21:07:33 +00:00
[3]=>
float(1.7)
2007-05-16 21:07:33 +00:00
[4]=>
float(1.6)
2007-05-16 21:07:33 +00:00
[5]=>
float(1.5)
2007-05-16 21:07:33 +00:00
[6]=>
float(1.4)
2007-05-16 21:07:33 +00:00
[7]=>
float(1.3)
2007-05-16 21:07:33 +00:00
[8]=>
float(1.2)
2007-05-16 21:07:33 +00:00
[9]=>
float(1.1)
2007-05-16 21:07:33 +00:00
[10]=>
float(1)
}
2007-05-16 21:07:33 +00:00
array(11) {
[0]=>
float(1)
[1]=>
float(1.1)
[2]=>
float(1.2)
[3]=>
float(1.3)
[4]=>
float(1.4)
[5]=>
float(1.5)
[6]=>
float(1.6)
[7]=>
float(1.7)
[8]=>
float(1.8)
[9]=>
float(1.9)
[10]=>
float(2)
2007-05-16 21:07:33 +00:00
}
array(11) {
[0]=>
float(1)
[1]=>
float(1.1)
[2]=>
float(1.2)
[3]=>
float(1.3)
[4]=>
float(1.4)
[5]=>
float(1.5)
[6]=>
float(1.6)
[7]=>
float(1.7)
[8]=>
float(1.8)
[9]=>
float(1.9)
[10]=>
float(2)
2007-05-16 21:07:33 +00:00
}
-- Testing basic string with step --
array(7) {
[0]=>
string(1) "a"
[1]=>
string(1) "c"
[2]=>
string(1) "e"
[3]=>
string(1) "g"
[4]=>
string(1) "i"
[5]=>
string(1) "k"
[6]=>
string(1) "m"
}
*** Testing range() with various low and high values ***
-- creating an array with low = 'ABCD' and high = 'ABCD' --
array(1) {
[0]=>
string(1) "A"
}
-- creating an array with low = 'ABCD' and high = '-10.5555' --
array(11) {
[0]=>
float(0)
[1]=>
float(-1)
[2]=>
float(-2)
[3]=>
float(-3)
[4]=>
float(-4)
[5]=>
float(-5)
[6]=>
float(-6)
[7]=>
float(-7)
[8]=>
float(-8)
[9]=>
float(-9)
[10]=>
float(-10)
}
-- creating an array with low = 'ABCD' and high = '1' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = 'ABCD' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = 'ABCD' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = 'ABCD' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = 'ABCD' and high = 'Array' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = '-10.5555' and high = 'ABCD' --
array(11) {
[0]=>
float(-10.5555)
[1]=>
float(-9.5555)
[2]=>
float(-8.5555)
[3]=>
float(-7.5555)
[4]=>
float(-6.5555)
[5]=>
float(-5.5555)
[6]=>
float(-4.5555)
[7]=>
float(-3.5555)
[8]=>
float(-2.5555)
[9]=>
float(-1.5555)
[10]=>
float(-0.5555)
}
-- creating an array with low = '-10.5555' and high = '-10.5555' --
array(1) {
[0]=>
float(-10.5555)
}
-- creating an array with low = '-10.5555' and high = '1' --
array(12) {
[0]=>
float(-10.5555)
[1]=>
float(-9.5555)
[2]=>
float(-8.5555)
[3]=>
float(-7.5555)
[4]=>
float(-6.5555)
[5]=>
float(-5.5555)
[6]=>
float(-4.5555)
[7]=>
float(-3.5555)
[8]=>
float(-2.5555)
[9]=>
float(-1.5555)
[10]=>
float(-0.5555)
[11]=>
2007-05-16 21:07:33 +00:00
float(0.4445)
}
-- creating an array with low = '-10.5555' and high = '' --
array(11) {
[0]=>
float(-10.5555)
[1]=>
float(-9.5555)
[2]=>
float(-8.5555)
[3]=>
float(-7.5555)
[4]=>
float(-6.5555)
[5]=>
float(-5.5555)
[6]=>
float(-4.5555)
[7]=>
float(-3.5555)
[8]=>
float(-2.5555)
[9]=>
float(-1.5555)
[10]=>
float(-0.5555)
}
-- creating an array with low = '-10.5555' and high = '' --
array(11) {
[0]=>
float(-10.5555)
[1]=>
float(-9.5555)
[2]=>
float(-8.5555)
[3]=>
float(-7.5555)
[4]=>
float(-6.5555)
[5]=>
float(-5.5555)
[6]=>
float(-4.5555)
[7]=>
float(-3.5555)
[8]=>
float(-2.5555)
[9]=>
float(-1.5555)
[10]=>
float(-0.5555)
}
-- creating an array with low = '-10.5555' and high = '' --
array(11) {
[0]=>
float(-10.5555)
[1]=>
float(-9.5555)
[2]=>
float(-8.5555)
[3]=>
float(-7.5555)
[4]=>
float(-6.5555)
[5]=>
float(-5.5555)
[6]=>
float(-4.5555)
[7]=>
float(-3.5555)
[8]=>
float(-2.5555)
[9]=>
float(-1.5555)
[10]=>
float(-0.5555)
}
-- creating an array with low = '-10.5555' and high = 'Array' --
array(12) {
[0]=>
float(-10.5555)
[1]=>
float(-9.5555)
[2]=>
float(-8.5555)
[3]=>
float(-7.5555)
[4]=>
float(-6.5555)
[5]=>
float(-5.5555)
[6]=>
float(-4.5555)
[7]=>
float(-3.5555)
[8]=>
float(-2.5555)
[9]=>
float(-1.5555)
[10]=>
float(-0.5555)
[11]=>
float(0.4445)
}
-- creating an array with low = '1' and high = 'ABCD' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = '1' and high = '-10.5555' --
array(12) {
[0]=>
float(1)
[1]=>
float(0)
[2]=>
float(-1)
[3]=>
float(-2)
[4]=>
float(-3)
[5]=>
float(-4)
[6]=>
float(-5)
[7]=>
float(-6)
[8]=>
float(-7)
[9]=>
float(-8)
[10]=>
float(-9)
[11]=>
float(-10)
}
-- creating an array with low = '1' and high = '1' --
array(1) {
[0]=>
int(1)
}
-- creating an array with low = '1' and high = '' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = '1' and high = '' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = '1' and high = '' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = '1' and high = 'Array' --
array(1) {
[0]=>
int(1)
}
-- creating an array with low = '' and high = 'ABCD' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '-10.5555' --
array(11) {
[0]=>
float(0)
[1]=>
float(-1)
[2]=>
float(-2)
[3]=>
float(-3)
[4]=>
float(-4)
[5]=>
float(-5)
[6]=>
float(-6)
[7]=>
float(-7)
[8]=>
float(-8)
[9]=>
float(-9)
[10]=>
float(-10)
}
-- creating an array with low = '' and high = '1' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = 'Array' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = '' and high = 'ABCD' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '-10.5555' --
array(11) {
[0]=>
float(0)
[1]=>
float(-1)
[2]=>
float(-2)
[3]=>
float(-3)
[4]=>
float(-4)
[5]=>
float(-5)
[6]=>
float(-6)
[7]=>
float(-7)
[8]=>
float(-8)
[9]=>
float(-9)
[10]=>
float(-10)
}
-- creating an array with low = '' and high = '1' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = 'Array' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = '' and high = 'ABCD' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '-10.5555' --
array(11) {
[0]=>
float(0)
[1]=>
float(-1)
[2]=>
float(-2)
[3]=>
float(-3)
[4]=>
float(-4)
[5]=>
float(-5)
[6]=>
float(-6)
[7]=>
float(-7)
[8]=>
float(-8)
[9]=>
float(-9)
[10]=>
float(-10)
}
-- creating an array with low = '' and high = '1' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = '' --
array(1) {
[0]=>
int(0)
}
-- creating an array with low = '' and high = 'Array' --
array(2) {
[0]=>
int(0)
[1]=>
int(1)
}
-- creating an array with low = 'Array' and high = 'ABCD' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = 'Array' and high = '-10.5555' --
array(12) {
[0]=>
float(1)
[1]=>
float(0)
[2]=>
float(-1)
[3]=>
float(-2)
[4]=>
float(-3)
[5]=>
float(-4)
[6]=>
float(-5)
[7]=>
float(-6)
[8]=>
float(-7)
[9]=>
float(-8)
[10]=>
float(-9)
[11]=>
float(-10)
}
-- creating an array with low = 'Array' and high = '1' --
array(1) {
[0]=>
int(1)
}
-- creating an array with low = 'Array' and high = '' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = 'Array' and high = '' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = 'Array' and high = '' --
array(2) {
[0]=>
int(1)
[1]=>
int(0)
}
-- creating an array with low = 'Array' and high = 'Array' --
array(1) {
[0]=>
int(1)
}
*** Possible variatins with steps ***
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
}
array(5) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
int(4)
[4]=>
int(5)
}
*** Testing max/outof range values ***
array(2) {
[0]=>
int(2147483645)
[1]=>
int(2147483646)
}
array(3) {
[0]=>
float(2147483646)
[1]=>
float(2147483647)
[2]=>
float(2147483648)
}
array(2) {
[0]=>
int(-2147483647)
[1]=>
int(-2147483646)
}
array(2) {
[0]=>
float(-2147483648)
[1]=>
float(-2147483647)
}
array(3) {
[0]=>
float(-2147483649)
[1]=>
float(-2147483648)
[2]=>
float(-2147483647)
}
2007-05-16 21:07:33 +00:00
*** Testing error conditions ***
-- Testing ( (low < high) && (step = 0) ) --
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
-- Testing ( (low > high) && (step = 0) ) --
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
-- Testing ( (low < high) && (high-low < step) ) --
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
-- Testing ( (low > high) && (low-high < step) ) --
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
-- Testing Invalid number of arguments --
Warning: range() expects at least 2 parameters, 0 given in %s on line %d
bool(false)
Warning: range() expects at least 2 parameters, 1 given in %s on line %d
bool(false)
Warning: range() expects at most 3 parameters, 4 given in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
-- Testing Invalid steps --
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Warning: range(): step exceeds the specified range in %s on line %d
bool(false)
Done