php-src/ext/standard/tests/strings/strnatcasecmp_variation1.phpt
Rasmus Lerdorf 53349c7769 Doing a strnatcasecmp(chr(128),chr(255)) is completely non-sensical.
Logically one might think that chr(128) would collate before chr(255) except
this is a case-insensitive comparison and internally we toupper() both args.
toupper(chr(128)) is 128.  There is no upper-case equivalent of this char.
toupper(chr(255)) is 120 so chr(255) collates before chr(128) in this
case-insensitive comparison.  And these are rather bogus characters to feed
to a natsort test anyway.
2009-08-08 14:48:47 +00:00

57 lines
918 B
PHP

--TEST--
Test strnatcasecmp() function : variation
--CREDITS--
Felix De Vliegher <felix.devliegher@gmail.com>
--FILE--
<?php
/* Prototype : int strnatcasecmp(string s1, string s2)
* Description: Returns the result of case-insensitive string comparison using 'natural' algorithm
* Source code: ext/standard/string.c
* Alias to functions:
*/
/* Preparation */
class a
{
function __toString()
{
return "Hello WORLD";
}
}
class b
{
function __toString()
{
return "HELLO world";
}
}
$a = new a();
$b = new b();
function str_dump($a, $b) {
var_dump(strnatcasecmp($a, $b));
}
echo "*** Testing strnatcasecmp() : variation ***\n";
str_dump('0', false);
str_dump('fooBar', '');
str_dump('', -1);
str_dump("Hello\0world", "Helloworld");
str_dump("\x0", "\0");
str_dump($a, $b);
?>
===DONE===
--EXPECT--
*** Testing strnatcasecmp() : variation ***
int(1)
int(6)
int(-2)
int(-1)
int(0)
int(0)
===DONE===