--TEST--
Test range() function (errors)
--INI--
precision=14
--FILE--
<?php

echo "\n*** Testing error conditions ***\n";

echo 
"\n-- Testing ( (low < high) && (step = 0) ) --"
var_dumprange(120) );
var_dumprange("a""b"0) );

echo 
"\n\n-- Testing ( (low > high) && (step = 0) ) --";
var_dumprange(210) );
var_dumprange("b""a"0) );

echo 
"\n\n-- Testing ( (low < high) && (high-low < step) ) --";
var_dumprange(1.07.06.5) );

echo 
"\n\n-- Testing ( (low > high) && (low-high < step) ) --";
var_dumprange(7.01.06.5) );

echo 
"\n-- Testing Invalid number of arguments --";        
var_dumprange() );  // No.of args = 0
var_dumprange(1) );  // No.of args < expected
var_dumprange(1,2,3,4) );  // No.of args > expected
var_dumprange(-1, -22) );  
var_dumprange("a""j""z") );

echo 
"\n-- Testing Invalid steps --";
$step_arr = array( "string"NULLFALSE"""\0" );

foreach( 
$step_arr as $step ) {
  
var_dumprange15$step ) );
}

echo 
"Done\n";
?>
--EXPECTF--
*** 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