PageRenderTime 109ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 2ms

/cake/tests/cases/libs/multibyte.test.php

https://github.com/hardsshah/bookmarks
PHP | 9315 lines | 7511 code | 1553 blank | 251 comment | 0 complexity | 7f67a41ea5b47f9bf6feaaa739ed0fd5 MD5 | raw file
  1. <?php
  2. /* SVN FILE: $Id$ */
  3. /**
  4. * MultibyteTest file
  5. *
  6. * Long description for file
  7. *
  8. * PHP versions 4 and 5
  9. *
  10. * CakePHP(tm) Tests <https://trac.cakephp.org/wiki/Developement/TestSuite>
  11. * Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
  12. *
  13. * Licensed under The Open Group Test Suite License
  14. * Redistributions of files must retain the above copyright notice.
  15. *
  16. * @filesource
  17. * @copyright Copyright 2005-2008, Cake Software Foundation, Inc. (http://www.cakefoundation.org)
  18. * @link https://trac.cakephp.org/wiki/Developement/TestSuite CakePHP(tm) Tests
  19. * @package cake
  20. * @subpackage cake.tests.cases.libs
  21. * @since CakePHP(tm) v 1.2.0.6833
  22. * @version $Revision$
  23. * @modifiedby $LastChangedBy$
  24. * @lastmodified $Date$
  25. * @license http://www.opensource.org/licenses/opengroup.php The Open Group Test Suite License
  26. */
  27. App::import('Core', 'Multibyte');
  28. /**
  29. * MultibyteTest class
  30. *
  31. * @package cake
  32. * @subpackage cake.tests.cases.libs
  33. */
  34. class MultibyteTest extends CakeTestCase {
  35. /**
  36. * testUtf8 method
  37. *
  38. * @access public
  39. * @return void
  40. */
  41. function testUtf8() {
  42. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  43. $result = Multibyte::utf8($string);
  44. $expected = array(33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  45. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
  46. 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  47. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126);
  48. $this->assertEqual($result, $expected);
  49. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  50. $result = Multibyte::utf8($string);
  51. $expected = array(161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  52. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200);
  53. $this->assertEqual($result, $expected);
  54. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  55. $result = Multibyte::utf8($string);
  56. $expected = array(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  57. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
  58. 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  59. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
  60. 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300);
  61. $this->assertEqual($result, $expected);
  62. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  63. $result = Multibyte::utf8($string);
  64. $expected = array(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
  65. 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
  66. 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
  67. 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
  68. 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400);
  69. $this->assertEqual($result, $expected);
  70. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  71. $result = Multibyte::utf8($string);
  72. $expected = array(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
  73. 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
  74. 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
  75. 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
  76. 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500);
  77. $this->assertEqual($result, $expected);
  78. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  79. $result = Multibyte::utf8($string);
  80. $expected = array(601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
  81. 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
  82. 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
  83. 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
  84. 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700);
  85. $this->assertEqual($result, $expected);
  86. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  87. $result = Multibyte::utf8($string);
  88. $expected = array(1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
  89. 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051);
  90. $this->assertEqual($result, $expected);
  91. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  92. $result = Multibyte::utf8($string);
  93. $expected = array(1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
  94. 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
  95. 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100);
  96. $this->assertEqual($result, $expected);
  97. $string = 'չպջռսվտ';
  98. $result = Multibyte::utf8($string);
  99. $expected = array(1401, 1402, 1403, 1404, 1405, 1406, 1407);
  100. $this->assertEqual($result, $expected);
  101. $string = 'فقكلمنهوىيًٌٍَُ';
  102. $result = Multibyte::utf8($string);
  103. $expected = array(1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615);
  104. $this->assertEqual($result, $expected);
  105. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  106. $result = Multibyte::utf8($string);
  107. $expected = array(10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044,
  108. 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057,
  109. 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070,
  110. 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078);
  111. $this->assertEqual($result, $expected);
  112. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  113. $result = Multibyte::utf8($string);
  114. $expected = array(11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919,
  115. 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11931, 11932, 11933, 11934, 11935, 11936,
  116. 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952,
  117. 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968,
  118. 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984,
  119. 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000);
  120. $this->assertEqual($result, $expected);
  121. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  122. $result = Multibyte::utf8($string);
  123. $expected = array(12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116,
  124. 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132,
  125. 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148,
  126. 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159);
  127. $this->assertEqual($result, $expected);
  128. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  129. $result = Multibyte::utf8($string);
  130. $expected = array(45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616,
  131. 45617, 45618, 45619, 45620, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632,
  132. 45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648,
  133. 45649, 45650, 45651, 45652, 45653, 45654, 45655, 45656, 45657, 45658, 45659, 45660, 45661, 45662, 45663, 45664,
  134. 45665, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 45678, 45679, 45680,
  135. 45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 45694, 45695, 45696,
  136. 45697, 45698, 45699, 45700);
  137. $this->assertEqual($result, $expected);
  138. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  139. $result = Multibyte::utf8($string);
  140. $expected = array(65136, 65137, 65138, 65139, 65140, 65141, 65142, 65143, 65144, 65145, 65146, 65147, 65148, 65149, 65150, 65151,
  141. 65152, 65153, 65154, 65155, 65156, 65157, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 65166, 65167,
  142. 65168, 65169, 65170, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 65183,
  143. 65184, 65185, 65186, 65187, 65188, 65189, 65190, 65191, 65192, 65193, 65194, 65195, 65196, 65197, 65198, 65199,
  144. 65200);
  145. $this->assertEqual($result, $expected);
  146. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  147. $result = Multibyte::utf8($string);
  148. $expected = array(65201, 65202, 65203, 65204, 65205, 65206, 65207, 65208, 65209, 65210, 65211, 65212, 65213, 65214, 65215, 65216,
  149. 65217, 65218, 65219, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 65229, 65230, 65231, 65232,
  150. 65233, 65234, 65235, 65236, 65237, 65238, 65239, 65240, 65241, 65242, 65243, 65244, 65245, 65246, 65247, 65248,
  151. 65249, 65250, 65251, 65252, 65253, 65254, 65255, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 65264,
  152. 65265, 65266, 65267, 65268, 65269, 65270, 65271, 65272, 65273, 65274, 65275, 65276);
  153. $this->assertEqual($result, $expected);
  154. $string = 'abcdefghijklmnopqrstuvwxyz';
  155. $result = Multibyte::utf8($string);
  156. $expected = array(65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360,
  157. 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370);
  158. $this->assertEqual($result, $expected);
  159. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  160. $result = Multibyte::utf8($string);
  161. $expected = array(65377, 65378, 65379, 65380, 65381, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392,
  162. 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400);
  163. $this->assertEqual($result, $expected);
  164. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  165. $result = Multibyte::utf8($string);
  166. $expected = array(65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416,
  167. 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432,
  168. 65433, 65434, 65435, 65436, 65437, 65438);
  169. $this->assertEqual($result, $expected);
  170. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  171. $result = Multibyte::utf8($string);
  172. $expected = array(292, 275, 314, 316, 335, 44, 32, 372, 337, 345, 316, 271, 33);
  173. $this->assertEqual($result, $expected);
  174. $string = 'Hello, World!';
  175. $result = Multibyte::utf8($string);
  176. $expected = array(72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33);
  177. $this->assertEqual($result, $expected);
  178. $string = '¨';
  179. $result = Multibyte::utf8($string);
  180. $expected = array(168);
  181. $this->assertEqual($result, $expected);
  182. $string = '¿';
  183. $result = Multibyte::utf8($string);
  184. $expected = array(191);
  185. $this->assertEqual($result, $expected);
  186. $string = 'čini';
  187. $result = Multibyte::utf8($string);
  188. $expected = array(269, 105, 110, 105);
  189. $this->assertEqual($result, $expected);
  190. $string = 'moći';
  191. $result = Multibyte::utf8($string);
  192. $expected = array(109, 111, 263, 105);
  193. $this->assertEqual($result, $expected);
  194. $string = 'državni';
  195. $result = Multibyte::utf8($string);
  196. $expected = array(100, 114, 382, 97, 118, 110, 105);
  197. $this->assertEqual($result, $expected);
  198. $string = '把百度设为首页';
  199. $result = Multibyte::utf8($string);
  200. $expected = array(25226, 30334, 24230, 35774, 20026, 39318, 39029);
  201. $this->assertEqual($result, $expected);
  202. $string = '一二三周永龍';
  203. $result = Multibyte::utf8($string);
  204. $expected = array(19968, 20108, 19977, 21608, 27704, 40845);
  205. $this->assertEqual($result, $expected);
  206. $string = 'ԀԂԄԆԈԊԌԎԐԒ';
  207. $result = Multibyte::utf8($string);
  208. $expected = array(1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298);
  209. $this->assertEqual($result, $expected);
  210. $string = 'ԁԃԅԇԉԋԍԏԐԒ';
  211. $result = Multibyte::utf8($string);
  212. $expected = array(1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1296, 1298);
  213. $this->assertEqual($result, $expected);
  214. $string = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
  215. $result = Multibyte::utf8($string);
  216. $expected = array(1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
  217. 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
  218. 1365, 1366, 1415);
  219. $this->assertEqual($result, $expected);
  220. $string = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
  221. $result = Multibyte::utf8($string);
  222. $expected = array(1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
  223. 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
  224. 1413, 1414, 1415);
  225. $this->assertEqual($result, $expected);
  226. $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  227. $result = Multibyte::utf8($string);
  228. $expected = array(4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273,
  229. 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291,
  230. 4292, 4293);
  231. $this->assertEqual($result, $expected);
  232. $string = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
  233. $result = Multibyte::utf8($string);
  234. $expected = array(7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714,
  235. 7716, 7718, 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750,
  236. 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, 7786,
  237. 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822,
  238. 7824, 7826, 7828, 7830, 7831, 7832, 7833, 7834, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856,
  239. 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892,
  240. 7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, 7928);
  241. $this->assertEqual($result, $expected);
  242. $string = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
  243. $result = Multibyte::utf8($string);
  244. $expected = array(7681, 7683, 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715,
  245. 7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751,
  246. 7753, 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, 7781, 7783, 7785, 7787,
  247. 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823,
  248. 7825, 7827, 7829, 7830, 7831, 7832, 7833, 7834, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859,
  249. 7861, 7863, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889, 7891, 7893, 7895,
  250. 7897, 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, 7915, 7917, 7919, 7921, 7923, 7925, 7927, 7929);
  251. $this->assertEqual($result, $expected);
  252. $string = 'ΩKÅℲ';
  253. $result = Multibyte::utf8($string);
  254. $expected = array(8486, 8490, 8491, 8498);
  255. $this->assertEqual($result, $expected);
  256. $string = 'ωkåⅎ';
  257. $result = Multibyte::utf8($string);
  258. $expected = array(969, 107, 229, 8526);
  259. $this->assertEqual($result, $expected);
  260. $string = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
  261. $result = Multibyte::utf8($string);
  262. $expected = array(8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8579);
  263. $this->assertEqual($result, $expected);
  264. $string = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
  265. $result = Multibyte::utf8($string);
  266. $expected = array(8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8580);
  267. $this->assertEqual($result, $expected);
  268. $string = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
  269. $result = Multibyte::utf8($string);
  270. $expected = array(9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414,
  271. 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423);
  272. $this->assertEqual($result, $expected);
  273. $string = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
  274. $result = Multibyte::utf8($string);
  275. $expected = array(9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441,
  276. 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449);
  277. $this->assertEqual($result, $expected);
  278. $string = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
  279. $result = Multibyte::utf8($string);
  280. $expected = array(11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278,
  281. 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293,
  282. 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308,
  283. 11309, 11310);
  284. $this->assertEqual($result, $expected);
  285. $string = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
  286. $result = Multibyte::utf8($string);
  287. $expected = array(11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327,
  288. 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343,
  289. 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358);
  290. $this->assertEqual($result, $expected);
  291. $string = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
  292. $result = Multibyte::utf8($string);
  293. $expected = array(11392, 11394, 11396, 11398, 11400, 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 11420,
  294. 11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448, 11450,
  295. 11452, 11454, 11456, 11458, 11460, 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480,
  296. 11482, 11484, 11486, 11488, 11490);
  297. $this->assertEqual($result, $expected);
  298. $string = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
  299. $result = Multibyte::utf8($string);
  300. $expected = array(11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417, 11419, 11421, 11423,
  301. 11425, 11427, 11429, 11431, 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451, 11453, 11455,
  302. 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487,
  303. 11489, 11491);
  304. $this->assertEqual($result, $expected);
  305. $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  306. $result = Multibyte::utf8($string);
  307. $expected = array(64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279);
  308. $this->assertEqual($result, $expected);
  309. }
  310. /**
  311. * testAscii method
  312. *
  313. * @access public
  314. * @return void
  315. */
  316. function testAscii() {
  317. $utf8 = array(33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
  318. 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
  319. 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
  320. 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126);
  321. $result = Multibyte::ascii($utf8);
  322. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  323. $this->assertEqual($result, $expected);
  324. $utf8 = array(161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
  325. 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200);
  326. $result = Multibyte::ascii($utf8);
  327. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  328. $this->assertEqual($result, $expected);
  329. $utf8 = array(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
  330. 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
  331. 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
  332. 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
  333. 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300);
  334. $result = Multibyte::ascii($utf8);
  335. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  336. $this->assertEqual($result, $expected);
  337. $utf8 = array(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
  338. 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
  339. 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
  340. 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
  341. 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400);
  342. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  343. $result = Multibyte::ascii($utf8);
  344. $this->assertEqual($result, $expected);
  345. $utf8 = array(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
  346. 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
  347. 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
  348. 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
  349. 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500);
  350. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  351. $result = Multibyte::ascii($utf8);
  352. $this->assertEqual($result, $expected);
  353. $utf8 = array(601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
  354. 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
  355. 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
  356. 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
  357. 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700);
  358. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  359. $result = Multibyte::ascii($utf8);
  360. $this->assertEqual($result, $expected);
  361. $utf8 = array(1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
  362. 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051);
  363. $expected = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  364. $result = Multibyte::ascii($utf8);
  365. $this->assertEqual($result, $expected);
  366. $utf8 = array(1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
  367. 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
  368. 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100);
  369. $expected = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  370. $result = Multibyte::ascii($utf8);
  371. $this->assertEqual($result, $expected);
  372. $utf8 = array(1401, 1402, 1403, 1404, 1405, 1406, 1407);
  373. $expected = 'չպջռսվտ';
  374. $result = Multibyte::ascii($utf8);
  375. $this->assertEqual($result, $expected);
  376. $utf8 = array(1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615);
  377. $expected = 'فقكلمنهوىيًٌٍَُ';
  378. $result = Multibyte::ascii($utf8);
  379. $this->assertEqual($result, $expected);
  380. $utf8 = array(10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044,
  381. 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057,
  382. 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070,
  383. 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078);
  384. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  385. $result = Multibyte::ascii($utf8);
  386. $this->assertEqual($result, $expected);
  387. $utf8 = array(11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919,
  388. 11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11931, 11932, 11933, 11934, 11935, 11936,
  389. 11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952,
  390. 11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968,
  391. 11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984,
  392. 11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000);
  393. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  394. $result = Multibyte::ascii($utf8);
  395. $this->assertEqual($result, $expected);
  396. $utf8 = array(12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116,
  397. 12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132,
  398. 12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148,
  399. 12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159);
  400. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  401. $result = Multibyte::ascii($utf8);
  402. $this->assertEqual($result, $expected);
  403. $utf8 = array(45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616,
  404. 45617, 45618, 45619, 45620, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632,
  405. 45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648,
  406. 45649, 45650, 45651, 45652, 45653, 45654, 45655, 45656, 45657, 45658, 45659, 45660, 45661, 45662, 45663, 45664,
  407. 45665, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 45678, 45679, 45680,
  408. 45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 45694, 45695, 45696,
  409. 45697, 45698, 45699, 45700);
  410. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  411. $result = Multibyte::ascii($utf8);
  412. $this->assertEqual($result, $expected);
  413. $utf8 = array(65136, 65137, 65138, 65139, 65140, 65141, 65142, 65143, 65144, 65145, 65146, 65147, 65148, 65149, 65150, 65151,
  414. 65152, 65153, 65154, 65155, 65156, 65157, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 65166, 65167,
  415. 65168, 65169, 65170, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 65183,
  416. 65184, 65185, 65186, 65187, 65188, 65189, 65190, 65191, 65192, 65193, 65194, 65195, 65196, 65197, 65198, 65199,
  417. 65200);
  418. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  419. $result = Multibyte::ascii($utf8);
  420. $this->assertEqual($result, $expected);
  421. $utf8 = array(65201, 65202, 65203, 65204, 65205, 65206, 65207, 65208, 65209, 65210, 65211, 65212, 65213, 65214, 65215, 65216,
  422. 65217, 65218, 65219, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 65229, 65230, 65231, 65232,
  423. 65233, 65234, 65235, 65236, 65237, 65238, 65239, 65240, 65241, 65242, 65243, 65244, 65245, 65246, 65247, 65248,
  424. 65249, 65250, 65251, 65252, 65253, 65254, 65255, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 65264,
  425. 65265, 65266, 65267, 65268, 65269, 65270, 65271, 65272, 65273, 65274, 65275, 65276);
  426. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  427. $result = Multibyte::ascii($utf8);
  428. $this->assertEqual($result, $expected);
  429. $utf8 = array(65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360,
  430. 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370);
  431. $expected = 'abcdefghijklmnopqrstuvwxyz';
  432. $result = Multibyte::ascii($utf8);
  433. $this->assertEqual($result, $expected);
  434. $utf8 = array(65377, 65378, 65379, 65380, 65381, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392,
  435. 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400);
  436. $expected = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  437. $result = Multibyte::ascii($utf8);
  438. $this->assertEqual($result, $expected);
  439. $utf8 = array(65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416,
  440. 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432,
  441. 65433, 65434, 65435, 65436, 65437, 65438);
  442. $expected = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  443. $result = Multibyte::ascii($utf8);
  444. $this->assertEqual($result, $expected);
  445. $utf8 = array(292, 275, 314, 316, 335, 44, 32, 372, 337, 345, 316, 271, 33);
  446. $expected = 'Ĥēĺļŏ, Ŵőřļď!';
  447. $result = Multibyte::ascii($utf8);
  448. $this->assertEqual($result, $expected);
  449. $utf8 = array(72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33);
  450. $expected = 'Hello, World!';
  451. $result = Multibyte::ascii($utf8);
  452. $this->assertEqual($result, $expected);
  453. $utf8 = array(168);
  454. $expected = '¨';
  455. $result = Multibyte::ascii($utf8);
  456. $this->assertEqual($result, $expected);
  457. $utf8 = array(191);
  458. $expected = '¿';
  459. $result = Multibyte::ascii($utf8);
  460. $this->assertEqual($result, $expected);
  461. $utf8 = array(269, 105, 110, 105);
  462. $expected = 'čini';
  463. $result = Multibyte::ascii($utf8);
  464. $this->assertEqual($result, $expected);
  465. $utf8 = array(109, 111, 263, 105);
  466. $expected = 'moći';
  467. $result = Multibyte::ascii($utf8);
  468. $this->assertEqual($result, $expected);
  469. $utf8 = array(100, 114, 382, 97, 118, 110, 105);
  470. $expected = 'državni';
  471. $result = Multibyte::ascii($utf8);
  472. $this->assertEqual($result, $expected);
  473. $utf8 = array(25226, 30334, 24230, 35774, 20026, 39318, 39029);
  474. $expected = '把百度设为首页';
  475. $result = Multibyte::ascii($utf8);
  476. $this->assertEqual($result, $expected);
  477. $utf8 = array(19968, 20108, 19977, 21608, 27704, 40845);
  478. $expected = '一二三周永龍';
  479. $result = Multibyte::ascii($utf8);
  480. $this->assertEqual($result, $expected);
  481. $utf8 = array(1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298);
  482. $expected = 'ԀԂԄԆԈԊԌԎԐԒ';
  483. $result = Multibyte::ascii($utf8);
  484. $this->assertEqual($result, $expected);
  485. $utf8 = array(1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1296, 1298);
  486. $expected = 'ԁԃԅԇԉԋԍԏԐԒ';
  487. $result = Multibyte::ascii($utf8);
  488. $this->assertEqual($result, $expected);
  489. $utf8 = array(1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
  490. 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
  491. 1366, 1415);
  492. $result = Multibyte::ascii($utf8);
  493. $expected = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
  494. $this->assertEqual($result, $expected);
  495. $utf8 = array(1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
  496. 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
  497. 1413, 1414, 1415);
  498. $result = Multibyte::ascii($utf8);
  499. $expected = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
  500. $this->assertEqual($result, $expected);
  501. $utf8 = array(4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274,
  502. 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293);
  503. $result = Multibyte::ascii($utf8);
  504. $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  505. $this->assertEqual($result, $expected);
  506. $utf8 = array(7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714,
  507. 7716, 7718, 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750,
  508. 7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, 7786,
  509. 7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822,
  510. 7824, 7826, 7828, 7830, 7831, 7832, 7833, 7834, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856,
  511. 7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892,
  512. 7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, 7928);
  513. $result = Multibyte::ascii($utf8);
  514. $expected = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
  515. $this->assertEqual($result, $expected);
  516. $utf8 = array(7681, 7683, 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715,
  517. 7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751,
  518. 7753, 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, 7781, 7783, 7785, 7787,
  519. 7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823,
  520. 7825, 7827, 7829, 7830, 7831, 7832, 7833, 7834, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859,
  521. 7861, 7863, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889, 7891, 7893, 7895,
  522. 7897, 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, 7915, 7917, 7919, 7921, 7923, 7925, 7927, 7929);
  523. $result = Multibyte::ascii($utf8);
  524. $expected = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
  525. $this->assertEqual($result, $expected);
  526. $utf8 = array(8486, 8490, 8491, 8498);
  527. $result = Multibyte::ascii($utf8);
  528. $expected = 'ΩKÅℲ';
  529. $this->assertEqual($result, $expected);
  530. $utf8 = array(969, 107, 229, 8526);
  531. $result = Multibyte::ascii($utf8);
  532. $expected = 'ωkåⅎ';
  533. $this->assertEqual($result, $expected);
  534. $utf8 = array(8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8579);
  535. $result = Multibyte::ascii($utf8);
  536. $expected = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
  537. $this->assertEqual($result, $expected);
  538. $utf8 = array(8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8580);
  539. $result = Multibyte::ascii($utf8);
  540. $expected = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
  541. $this->assertEqual($result, $expected);
  542. $utf8 = array(9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414,
  543. 9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423);
  544. $result = Multibyte::ascii($utf8);
  545. $expected = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
  546. $this->assertEqual($result, $expected);
  547. $utf8 = array(9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441,
  548. 9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449);
  549. $result = Multibyte::ascii($utf8);
  550. $expected = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
  551. $this->assertEqual($result, $expected);
  552. $utf8 = array(11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279,
  553. 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295,
  554. 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310);
  555. $result = Multibyte::ascii($utf8);
  556. $expected = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
  557. $this->assertEqual($result, $expected);
  558. $utf8 = array(11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327,
  559. 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343,
  560. 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358);
  561. $result = Multibyte::ascii($utf8);
  562. $expected = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
  563. $this->assertEqual($result, $expected);
  564. $utf8 = array(11392, 11394, 11396, 11398, 11400, 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 11420,
  565. 11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448, 11450,
  566. 11452, 11454, 11456, 11458, 11460, 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480,
  567. 11482, 11484, 11486, 11488, 11490);
  568. $result = Multibyte::ascii($utf8);
  569. $expected = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
  570. $this->assertEqual($result, $expected);
  571. $utf8 = array(11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417, 11419, 11421, 11423,
  572. 11425, 11427, 11429, 11431, 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451, 11453, 11455,
  573. 11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487,
  574. 11489, 11491);
  575. $result = Multibyte::ascii($utf8);
  576. $expected = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
  577. $this->assertEqual($result, $expected);
  578. $utf8 = array(64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279);
  579. $result = Multibyte::ascii($utf8);
  580. $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  581. $this->assertEqual($result, $expected);
  582. }
  583. /**
  584. * testUsingMbStripos method
  585. *
  586. * @access public
  587. * @return void
  588. */
  589. function testUsingMbStripos() {
  590. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  591. $find = 'f';
  592. $result = mb_stripos($string, $find);
  593. $expected = 5;
  594. $this->assertEqual($result, $expected);
  595. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  596. $find = 'f';
  597. $result = mb_stripos($string, $find, 6);
  598. $expected = 17;
  599. $this->assertEqual($result, $expected);
  600. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  601. $find = 'å';
  602. $result = mb_stripos($string, $find);
  603. $expected = 5;
  604. $this->assertEqual($result, $expected);
  605. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  606. $find = 'å';
  607. $result = mb_stripos($string, $find, 6);
  608. $expected = 24;
  609. $this->assertEqual($result, $expected);
  610. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  611. $find = 'ċ';
  612. $result = mb_stripos($string, $find);
  613. $expected = 5;
  614. $this->assertEqual($result, $expected);
  615. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  616. $find = 'ċ';
  617. $result = mb_stripos($string, $find, 6);
  618. $expected = 32;
  619. $this->assertEqual($result, $expected);
  620. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  621. $find = 'f';
  622. $result = mb_stripos($string, $find);
  623. $expected = 37;
  624. $this->assertEqual($result, $expected);
  625. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  626. $find = 'Μ';
  627. $result = mb_stripos($string, $find);
  628. $expected = 20;
  629. $this->assertEqual($result, $expected);
  630. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  631. $find = 'É';
  632. $result = mb_stripos($string, $find, 6);
  633. $expected = 32;
  634. $this->assertEqual($result, $expected);
  635. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  636. $find = 'Ņ';
  637. $result = mb_stripos($string, $find);
  638. $expected = 24;
  639. $this->assertEqual($result, $expected);
  640. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  641. $find = 'Ƹ';
  642. $result = mb_stripos($string, $find);
  643. $expected = 39;
  644. $this->assertEqual($result, $expected);
  645. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  646. $find = 'Ƹ';
  647. $result = mb_stripos($string, $find, 40);
  648. $expected = 40;
  649. $this->assertEqual($result, $expected);
  650. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  651. $find = 'Ʀ';
  652. $result = mb_stripos($string, $find);
  653. $expected = 39;
  654. $this->assertEqual($result, $expected);
  655. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  656. $find = 'ї';
  657. $result = mb_stripos($string, $find);
  658. $expected = 7;
  659. $this->assertEqual($result, $expected);
  660. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  661. $find = 'Р';
  662. $result = mb_stripos($string, $find);
  663. $expected = 4;
  664. $this->assertEqual($result, $expected);
  665. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  666. $find = 'Р';
  667. $result = mb_stripos($string, $find, 5);
  668. $expected = 36;
  669. $this->assertEqual($result, $expected);
  670. $string = 'فقكلمنهوىيًٌٍَُ';
  671. $find = 'ن';
  672. $result = mb_stripos($string, $find);
  673. $expected = 5;
  674. $this->assertEqual($result, $expected);
  675. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  676. $find = '✿';
  677. $result = mb_stripos($string, $find);
  678. $expected = 15;
  679. $this->assertEqual($result, $expected);
  680. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  681. $find = '⺐';
  682. $result = mb_stripos($string, $find);
  683. $expected = 16;
  684. $this->assertEqual($result, $expected);
  685. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  686. $find = '⽤';
  687. $result = mb_stripos($string, $find);
  688. $expected = 31;
  689. $this->assertEqual($result, $expected);
  690. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  691. $find = '눻';
  692. $result = mb_stripos($string, $find);
  693. $expected = 26;
  694. $this->assertEqual($result, $expected);
  695. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  696. $find = 'ﺞ';
  697. $result = mb_stripos($string, $find);
  698. $expected = 46;
  699. $this->assertEqual($result, $expected);
  700. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  701. $find = 'ﻞ';
  702. $result = mb_stripos($string, $find);
  703. $expected = 45;
  704. $this->assertEqual($result, $expected);
  705. $string = 'abcdefghijklmnopqrstuvwxyz';
  706. $find = 'k';
  707. $result = mb_stripos($string, $find);
  708. $expected = 10;
  709. $this->assertEqual($result, $expected);
  710. $string = 'abcdefghijklmnopqrstuvwxyz';
  711. $find = 'K';
  712. $result = mb_stripos($string, $find);
  713. $expected = 10;
  714. $this->assertEqual($result, $expected);
  715. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  716. $find = 'ア';
  717. $result = mb_stripos($string, $find);
  718. $expected = 16;
  719. $this->assertEqual($result, $expected);
  720. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  721. $find = 'ハ';
  722. $result = mb_stripos($string, $find);
  723. $expected = 17;
  724. $this->assertEqual($result, $expected);
  725. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  726. $find = 'ő';
  727. $result = mb_stripos($string, $find);
  728. $expected = 8;
  729. $this->assertEqual($result, $expected);
  730. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  731. $find = 'Ő';
  732. $result = mb_stripos($string, $find);
  733. $expected = 8;
  734. $this->assertEqual($result, $expected);
  735. $string = 'Hello, World!';
  736. $find = 'O';
  737. $result = mb_stripos($string, $find);
  738. $expected = 4;
  739. $this->assertEqual($result, $expected);
  740. $string = 'Hello, World!';
  741. $find = 'o';
  742. $result = mb_stripos($string, $find);
  743. $expected = 4;
  744. $this->assertEqual($result, $expected);
  745. $string = 'čini';
  746. $find = 'n';
  747. $result = mb_stripos($string, $find);
  748. $expected = 2;
  749. $this->assertEqual($result, $expected);
  750. $string = 'čini';
  751. $find = 'N';
  752. $result = mb_stripos($string, $find);
  753. $expected = 2;
  754. $this->assertEqual($result, $expected);
  755. $string = 'moći';
  756. $find = 'ć';
  757. $result = mb_stripos($string, $find);
  758. $expected = 2;
  759. $this->assertEqual($result, $expected);
  760. $string = 'moći';
  761. $find = 'Ć';
  762. $result = mb_stripos($string, $find);
  763. $expected = 2;
  764. $this->assertEqual($result, $expected);
  765. $string = 'državni';
  766. $find = 'ž';
  767. $result = mb_stripos($string, $find);
  768. $expected = 2;
  769. $this->assertEqual($result, $expected);
  770. $string = 'državni';
  771. $find = 'Ž';
  772. $result = mb_stripos($string, $find);
  773. $expected = 2;
  774. $this->assertEqual($result, $expected);
  775. $string = '把百度设为首页';
  776. $find = '设';
  777. $result = mb_stripos($string, $find);
  778. $expected = 3;
  779. $this->assertEqual($result, $expected);
  780. $string = '一二三周永龍';
  781. $find = '周';
  782. $result = mb_stripos($string, $find);
  783. $expected = 3;
  784. $this->assertEqual($result, $expected);
  785. $string = 'državni';
  786. $find = 'DŽ';
  787. $result = mb_stripos($string, $find);
  788. $expected = false;
  789. $this->assertEqual($result, $expected);
  790. }
  791. /**
  792. * testMultibyteStripos method
  793. *
  794. * @access public
  795. * @return void
  796. */
  797. function testMultibyteStripos() {
  798. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  799. $find = 'f';
  800. $result = Multibyte::stripos($string, $find);
  801. $expected = 5;
  802. $this->assertEqual($result, $expected);
  803. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  804. $find = 'f';
  805. $result = Multibyte::stripos($string, $find, 6);
  806. $expected = 17;
  807. $this->assertEqual($result, $expected);
  808. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  809. $find = 'å';
  810. $result = Multibyte::stripos($string, $find);
  811. $expected = 5;
  812. $this->assertEqual($result, $expected);
  813. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  814. $find = 'å';
  815. $result = Multibyte::stripos($string, $find, 6);
  816. $expected = 24;
  817. $this->assertEqual($result, $expected);
  818. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  819. $find = 'ċ';
  820. $result = Multibyte::stripos($string, $find);
  821. $expected = 5;
  822. $this->assertEqual($result, $expected);
  823. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  824. $find = 'ċ';
  825. $result = Multibyte::stripos($string, $find, 6);
  826. $expected = 32;
  827. $this->assertEqual($result, $expected);
  828. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  829. $find = 'f';
  830. $result = Multibyte::stripos($string, $find);
  831. $expected = 37;
  832. $this->assertEqual($result, $expected);
  833. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  834. $find = 'Μ';
  835. $result = Multibyte::stripos($string, $find);
  836. $expected = 20;
  837. $this->assertEqual($result, $expected);
  838. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  839. $find = 'É';
  840. $result = Multibyte::stripos($string, $find, 6);
  841. $expected = 32;
  842. $this->assertEqual($result, $expected);
  843. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  844. $find = 'Ņ';
  845. $result = Multibyte::stripos($string, $find);
  846. $expected = 24;
  847. $this->assertEqual($result, $expected);
  848. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  849. $find = 'Ƹ';
  850. $result = Multibyte::stripos($string, $find);
  851. $expected = 39;
  852. $this->assertEqual($result, $expected);
  853. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  854. $find = 'Ƹ';
  855. $result = Multibyte::stripos($string, $find, 40);
  856. $expected = 40;
  857. $this->assertEqual($result, $expected);
  858. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  859. $find = 'Ʀ';
  860. $result = Multibyte::stripos($string, $find);
  861. $expected = 39;
  862. $this->assertEqual($result, $expected);
  863. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  864. $find = 'ї';
  865. $result = Multibyte::stripos($string, $find);
  866. $expected = 7;
  867. $this->assertEqual($result, $expected);
  868. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  869. $find = 'Р';
  870. $result = Multibyte::stripos($string, $find);
  871. $expected = 4;
  872. $this->assertEqual($result, $expected);
  873. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  874. $find = 'Р';
  875. $result = Multibyte::stripos($string, $find, 5);
  876. $expected = 36;
  877. $this->assertEqual($result, $expected);
  878. $string = 'فقكلمنهوىيًٌٍَُ';
  879. $find = 'ن';
  880. $result = Multibyte::stripos($string, $find);
  881. $expected = 5;
  882. $this->assertEqual($result, $expected);
  883. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  884. $find = '✿';
  885. $result = Multibyte::stripos($string, $find);
  886. $expected = 15;
  887. $this->assertEqual($result, $expected);
  888. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  889. $find = '⺐';
  890. $result = Multibyte::stripos($string, $find);
  891. $expected = 16;
  892. $this->assertEqual($result, $expected);
  893. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  894. $find = '⽤';
  895. $result = Multibyte::stripos($string, $find);
  896. $expected = 31;
  897. $this->assertEqual($result, $expected);
  898. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  899. $find = '눻';
  900. $result = Multibyte::stripos($string, $find);
  901. $expected = 26;
  902. $this->assertEqual($result, $expected);
  903. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  904. $find = 'ﺞ';
  905. $result = Multibyte::stripos($string, $find);
  906. $expected = 46;
  907. $this->assertEqual($result, $expected);
  908. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  909. $find = 'ﻞ';
  910. $result = Multibyte::stripos($string, $find);
  911. $expected = 45;
  912. $this->assertEqual($result, $expected);
  913. $string = 'abcdefghijklmnopqrstuvwxyz';
  914. $find = 'k';
  915. $result = Multibyte::stripos($string, $find);
  916. $expected = 10;
  917. $this->assertEqual($result, $expected);
  918. $string = 'abcdefghijklmnopqrstuvwxyz';
  919. $find = 'K';
  920. $result = Multibyte::stripos($string, $find);
  921. $expected = 10;
  922. $this->assertEqual($result, $expected);
  923. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  924. $find = 'ア';
  925. $result = Multibyte::stripos($string, $find);
  926. $expected = 16;
  927. $this->assertEqual($result, $expected);
  928. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  929. $find = 'ハ';
  930. $result = Multibyte::stripos($string, $find);
  931. $expected = 17;
  932. $this->assertEqual($result, $expected);
  933. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  934. $find = 'ő';
  935. $result = Multibyte::stripos($string, $find);
  936. $expected = 8;
  937. $this->assertEqual($result, $expected);
  938. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  939. $find = 'Ő';
  940. $result = Multibyte::stripos($string, $find);
  941. $expected = 8;
  942. $this->assertEqual($result, $expected);
  943. $string = 'Hello, World!';
  944. $find = 'O';
  945. $result = Multibyte::stripos($string, $find);
  946. $expected = 4;
  947. $this->assertEqual($result, $expected);
  948. $string = 'Hello, World!';
  949. $find = 'o';
  950. $result = Multibyte::stripos($string, $find);
  951. $expected = 4;
  952. $this->assertEqual($result, $expected);
  953. $string = 'čini';
  954. $find = 'n';
  955. $result = Multibyte::stripos($string, $find);
  956. $expected = 2;
  957. $this->assertEqual($result, $expected);
  958. $string = 'čini';
  959. $find = 'N';
  960. $result = Multibyte::stripos($string, $find);
  961. $expected = 2;
  962. $this->assertEqual($result, $expected);
  963. $string = 'moći';
  964. $find = 'ć';
  965. $result = Multibyte::stripos($string, $find);
  966. $expected = 2;
  967. $this->assertEqual($result, $expected);
  968. $string = 'moći';
  969. $find = 'Ć';
  970. $result = Multibyte::stripos($string, $find);
  971. $expected = 2;
  972. $this->assertEqual($result, $expected);
  973. $string = 'državni';
  974. $find = 'ž';
  975. $result = Multibyte::stripos($string, $find);
  976. $expected = 2;
  977. $this->assertEqual($result, $expected);
  978. $string = 'državni';
  979. $find = 'Ž';
  980. $result = Multibyte::stripos($string, $find);
  981. $expected = 2;
  982. $this->assertEqual($result, $expected);
  983. $string = '把百度设为首页';
  984. $find = '设';
  985. $result = Multibyte::stripos($string, $find);
  986. $expected = 3;
  987. $this->assertEqual($result, $expected);
  988. $string = '一二三周永龍';
  989. $find = '周';
  990. $result = Multibyte::stripos($string, $find);
  991. $expected = 3;
  992. $this->assertEqual($result, $expected);
  993. $string = 'državni';
  994. $find = 'DŽ';
  995. $result = Multibyte::stripos($string, $find);
  996. $expected = false;
  997. $this->assertEqual($result, $expected);
  998. }
  999. /**
  1000. * testUsingMbStristr method
  1001. *
  1002. * @access public
  1003. * @return void
  1004. */
  1005. function testUsingMbStristr() {
  1006. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1007. $find = 'f';
  1008. $result = mb_stristr($string, $find);
  1009. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  1010. $this->assertEqual($result, $expected);
  1011. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1012. $find = 'f';
  1013. $result = mb_stristr($string, $find, true);
  1014. $expected = 'ABCDE';
  1015. $this->assertEqual($result, $expected);
  1016. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1017. $find = 'å';
  1018. $result = mb_stristr($string, $find);
  1019. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1020. $this->assertEqual($result, $expected);
  1021. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1022. $find = 'å';
  1023. $result = mb_stristr($string, $find, true);
  1024. $expected = 'ÀÁÂÃÄ';
  1025. $this->assertEqual($result, $expected);
  1026. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1027. $find = 'ċ';
  1028. $result = mb_stristr($string, $find);
  1029. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1030. $this->assertEqual($result, $expected);
  1031. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1032. $find = 'ċ';
  1033. $result = mb_stristr($string, $find, true);
  1034. $expected = 'ĀĂĄĆĈ';
  1035. $this->assertEqual($result, $expected);
  1036. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1037. $find = 'f';
  1038. $result = mb_stristr($string, $find);
  1039. $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1040. $this->assertEqual($result, $expected);
  1041. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1042. $find = 'f';
  1043. $result = mb_stristr($string, $find, true);
  1044. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
  1045. $this->assertEqual($result, $expected);
  1046. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1047. $find = 'Μ';
  1048. $result = mb_stristr($string, $find);
  1049. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1050. $this->assertEqual($result, $expected);
  1051. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1052. $find = 'Μ';
  1053. $result = mb_stristr($string, $find, true);
  1054. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  1055. $this->assertEqual($result, $expected);
  1056. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1057. $find = 'þ';
  1058. $result = mb_stristr($string, $find);
  1059. $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1060. $this->assertEqual($result, $expected);
  1061. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1062. $find = 'þ';
  1063. $result = mb_stristr($string, $find, true);
  1064. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
  1065. $this->assertEqual($result, $expected);
  1066. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1067. $find = 'Ņ';
  1068. $result = mb_stristr($string, $find);
  1069. $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1070. $this->assertEqual($result, $expected);
  1071. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1072. $find = 'Ņ';
  1073. $result = mb_stristr($string, $find, true);
  1074. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
  1075. $this->assertEqual($result, $expected);
  1076. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1077. $find = 'Ƹ';
  1078. $result = mb_stristr($string, $find);
  1079. $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1080. $this->assertEqual($result, $expected);
  1081. $find = 'Ƹ';
  1082. $result = mb_stristr($string, $find, true);
  1083. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
  1084. $this->assertEqual($result, $expected);
  1085. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1086. $find = 'Ʀ';
  1087. $result = mb_stristr($string, $find);
  1088. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1089. $this->assertEqual($result, $expected);
  1090. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1091. $find = 'Ʀ';
  1092. $result = mb_stristr($string, $find, true);
  1093. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  1094. $this->assertEqual($result, $expected);
  1095. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1096. $find = 'ї';
  1097. $result = mb_stristr($string, $find);
  1098. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1099. $this->assertEqual($result, $expected);
  1100. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1101. $find = 'ї';
  1102. $result = mb_stristr($string, $find, true);
  1103. $expected = 'ЀЁЂЃЄЅІ';
  1104. $this->assertEqual($result, $expected);
  1105. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1106. $find = 'Р';
  1107. $result = mb_stristr($string, $find);
  1108. $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1109. $this->assertEqual($result, $expected);
  1110. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1111. $find = 'Р';
  1112. $result = mb_stristr($string, $find, true);
  1113. $expected = 'МНОП';
  1114. $this->assertEqual($result, $expected);
  1115. $string = 'فقكلمنهوىيًٌٍَُ';
  1116. $find = 'ن';
  1117. $result = mb_stristr($string, $find);
  1118. $expected = 'نهوىيًٌٍَُ';
  1119. $this->assertEqual($result, $expected);
  1120. $string = 'فقكلمنهوىيًٌٍَُ';
  1121. $find = 'ن';
  1122. $result = mb_stristr($string, $find, true);
  1123. $expected = 'فقكلم';
  1124. $this->assertEqual($result, $expected);
  1125. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1126. $find = '✿';
  1127. $result = mb_stristr($string, $find);
  1128. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1129. $this->assertEqual($result, $expected);
  1130. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1131. $find = '✿';
  1132. $result = mb_stristr($string, $find, true);
  1133. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  1134. $this->assertEqual($result, $expected);
  1135. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1136. $find = '⺐';
  1137. $result = mb_stristr($string, $find);
  1138. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1139. $this->assertEqual($result, $expected);
  1140. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1141. $find = '⺐';
  1142. $result = mb_stristr($string, $find, true);
  1143. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  1144. $this->assertEqual($result, $expected);
  1145. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1146. $find = '⽤';
  1147. $result = mb_stristr($string, $find);
  1148. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1149. $this->assertEqual($result, $expected);
  1150. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1151. $find = '⽤';
  1152. $result = mb_stristr($string, $find, true);
  1153. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  1154. $this->assertEqual($result, $expected);
  1155. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1156. $find = '눻';
  1157. $result = mb_stristr($string, $find);
  1158. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1159. $this->assertEqual($result, $expected);
  1160. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1161. $find = '눻';
  1162. $result = mb_stristr($string, $find, true);
  1163. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  1164. $this->assertEqual($result, $expected);
  1165. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1166. $find = 'ﺞ';
  1167. $result = mb_stristr($string, $find);
  1168. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1169. $this->assertEqual($result, $expected);
  1170. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1171. $find = 'ﺞ';
  1172. $result = mb_stristr($string, $find, true);
  1173. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  1174. $this->assertEqual($result, $expected);
  1175. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1176. $find = 'ﻞ';
  1177. $result = mb_stristr($string, $find);
  1178. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1179. $this->assertEqual($result, $expected);
  1180. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1181. $find = 'ﻞ';
  1182. $result = mb_stristr($string, $find, true);
  1183. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  1184. $this->assertEqual($result, $expected);
  1185. $string = 'abcdefghijklmnopqrstuvwxyz';
  1186. $find = 'K';
  1187. $result = mb_stristr($string, $find);
  1188. $expected = 'klmnopqrstuvwxyz';
  1189. $this->assertEqual($result, $expected);
  1190. $string = 'abcdefghijklmnopqrstuvwxyz';
  1191. $find = 'K';
  1192. $result = mb_stristr($string, $find, true);
  1193. $expected = 'abcdefghij';
  1194. $this->assertEqual($result, $expected);
  1195. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  1196. $find = 'ア';
  1197. $result = mb_stristr($string, $find);
  1198. $expected = 'アイウエオカキク';
  1199. $this->assertEqual($result, $expected);
  1200. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  1201. $find = 'ア';
  1202. $result = mb_stristr($string, $find, true);
  1203. $expected = '。「」、・ヲァィゥェォャュョッー';
  1204. $this->assertEqual($result, $expected);
  1205. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1206. $find = 'ハ';
  1207. $result = mb_stristr($string, $find);
  1208. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1209. $this->assertEqual($result, $expected);
  1210. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1211. $find = 'ハ';
  1212. $result = mb_stristr($string, $find, true);
  1213. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  1214. $this->assertEqual($result, $expected);
  1215. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1216. $find = 'Ő';
  1217. $result = mb_stristr($string, $find);
  1218. $expected = 'őřļď!';
  1219. $this->assertEqual($result, $expected);
  1220. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1221. $find = 'Ő';
  1222. $result = mb_stristr($string, $find, true);
  1223. $expected = 'Ĥēĺļŏ, Ŵ';
  1224. $this->assertEqual($result, $expected);
  1225. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1226. $find = 'ĺļ';
  1227. $result = mb_stristr($string, $find, true);
  1228. $expected = 'Ĥē';
  1229. $this->assertEqual($result, $expected);
  1230. $string = 'Hello, World!';
  1231. $find = 'O';
  1232. $result = mb_stristr($string, $find);
  1233. $expected = 'o, World!';
  1234. $this->assertEqual($result, $expected);
  1235. $string = 'Hello, World!';
  1236. $find = 'O';
  1237. $result = mb_stristr($string, $find, true);
  1238. $expected = 'Hell';
  1239. $this->assertEqual($result, $expected);
  1240. $string = 'Hello, World!';
  1241. $find = 'Wo';
  1242. $result = mb_stristr($string, $find);
  1243. $expected = 'World!';
  1244. $this->assertEqual($result, $expected);
  1245. $string = 'Hello, World!';
  1246. $find = 'Wo';
  1247. $result = mb_stristr($string, $find, true);
  1248. $expected = 'Hello, ';
  1249. $this->assertEqual($result, $expected);
  1250. $string = 'Hello, World!';
  1251. $find = 'll';
  1252. $result = mb_stristr($string, $find);
  1253. $expected = 'llo, World!';
  1254. $this->assertEqual($result, $expected);
  1255. $string = 'Hello, World!';
  1256. $find = 'll';
  1257. $result = mb_stristr($string, $find, true);
  1258. $expected = 'He';
  1259. $this->assertEqual($result, $expected);
  1260. $string = 'Hello, World!';
  1261. $find = 'rld';
  1262. $result = mb_stristr($string, $find);
  1263. $expected = 'rld!';
  1264. $this->assertEqual($result, $expected);
  1265. $string = 'Hello, World!';
  1266. $find = 'rld';
  1267. $result = mb_stristr($string, $find, true);
  1268. $expected = 'Hello, Wo';
  1269. $this->assertEqual($result, $expected);
  1270. $string = 'čini';
  1271. $find = 'N';
  1272. $result = mb_stristr($string, $find);
  1273. $expected = 'ni';
  1274. $this->assertEqual($result, $expected);
  1275. $string = 'čini';
  1276. $find = 'N';
  1277. $result = mb_stristr($string, $find, true);
  1278. $expected = 'či';
  1279. $this->assertEqual($result, $expected);
  1280. $string = 'moći';
  1281. $find = 'Ć';
  1282. $result = mb_stristr($string, $find);
  1283. $expected = 'ći';
  1284. $this->assertEqual($result, $expected);
  1285. $string = 'moći';
  1286. $find = 'Ć';
  1287. $result = mb_stristr($string, $find, true);
  1288. $expected = 'mo';
  1289. $this->assertEqual($result, $expected);
  1290. $string = 'državni';
  1291. $find = 'Ž';
  1292. $result = mb_stristr($string, $find);
  1293. $expected = 'žavni';
  1294. $this->assertEqual($result, $expected);
  1295. $string = 'državni';
  1296. $find = 'Ž';
  1297. $result = mb_stristr($string, $find, true);
  1298. $expected = 'dr';
  1299. $this->assertEqual($result, $expected);
  1300. $string = '把百度设为首页';
  1301. $find = '设';
  1302. $result = mb_stristr($string, $find);
  1303. $expected = '设为首页';
  1304. $this->assertEqual($result, $expected);
  1305. $string = '把百度设为首页';
  1306. $find = '设';
  1307. $result = mb_stristr($string, $find, true);
  1308. $expected = '把百度';
  1309. $this->assertEqual($result, $expected);
  1310. $string = '一二三周永龍';
  1311. $find = '周';
  1312. $result = mb_stristr($string, $find);
  1313. $expected = '周永龍';
  1314. $this->assertEqual($result, $expected);
  1315. $string = '一二三周永龍';
  1316. $find = '周';
  1317. $result = mb_stristr($string, $find, true);
  1318. $expected = '一二三';
  1319. $this->assertEqual($result, $expected);
  1320. $string = '一二三周永龍';
  1321. $find = '二周';
  1322. $result = mb_stristr($string, $find);
  1323. $expected = false;
  1324. $this->assertEqual($result, $expected);
  1325. }
  1326. /**
  1327. * testMultibyteStristr method
  1328. *
  1329. * @access public
  1330. * @return void
  1331. */
  1332. function testMultibyteStristr() {
  1333. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1334. $find = 'f';
  1335. $result = Multibyte::stristr($string, $find);
  1336. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  1337. $this->assertEqual($result, $expected);
  1338. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1339. $find = 'f';
  1340. $result = Multibyte::stristr($string, $find, true);
  1341. $expected = 'ABCDE';
  1342. $this->assertEqual($result, $expected);
  1343. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1344. $find = 'å';
  1345. $result = Multibyte::stristr($string, $find);
  1346. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1347. $this->assertEqual($result, $expected);
  1348. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1349. $find = 'å';
  1350. $result = Multibyte::stristr($string, $find, true);
  1351. $expected = 'ÀÁÂÃÄ';
  1352. $this->assertEqual($result, $expected);
  1353. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1354. $find = 'ċ';
  1355. $result = Multibyte::stristr($string, $find);
  1356. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1357. $this->assertEqual($result, $expected);
  1358. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1359. $find = 'ċ';
  1360. $result = Multibyte::stristr($string, $find, true);
  1361. $expected = 'ĀĂĄĆĈ';
  1362. $this->assertEqual($result, $expected);
  1363. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1364. $find = 'f';
  1365. $result = Multibyte::stristr($string, $find);
  1366. $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1367. $this->assertEqual($result, $expected);
  1368. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1369. $find = 'f';
  1370. $result = Multibyte::stristr($string, $find, true);
  1371. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
  1372. $this->assertEqual($result, $expected);
  1373. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1374. $find = 'Μ';
  1375. $result = Multibyte::stristr($string, $find);
  1376. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1377. $this->assertEqual($result, $expected);
  1378. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1379. $find = 'Μ';
  1380. $result = Multibyte::stristr($string, $find, true);
  1381. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  1382. $this->assertEqual($result, $expected);
  1383. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1384. $find = 'þ';
  1385. $result = Multibyte::stristr($string, $find);
  1386. $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1387. $this->assertEqual($result, $expected);
  1388. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1389. $find = 'þ';
  1390. $result = Multibyte::stristr($string, $find, true);
  1391. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
  1392. $this->assertEqual($result, $expected);
  1393. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1394. $find = 'Ņ';
  1395. $result = Multibyte::stristr($string, $find);
  1396. $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1397. $this->assertEqual($result, $expected);
  1398. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1399. $find = 'Ņ';
  1400. $result = Multibyte::stristr($string, $find, true);
  1401. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
  1402. $this->assertEqual($result, $expected);
  1403. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1404. $find = 'Ƹ';
  1405. $result = Multibyte::stristr($string, $find);
  1406. $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1407. $this->assertEqual($result, $expected);
  1408. $find = 'Ƹ';
  1409. $result = Multibyte::stristr($string, $find, true);
  1410. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
  1411. $this->assertEqual($result, $expected);
  1412. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1413. $find = 'Ʀ';
  1414. $result = Multibyte::stristr($string, $find);
  1415. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1416. $this->assertEqual($result, $expected);
  1417. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1418. $find = 'Ʀ';
  1419. $result = Multibyte::stristr($string, $find, true);
  1420. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  1421. $this->assertEqual($result, $expected);
  1422. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1423. $find = 'ї';
  1424. $result = Multibyte::stristr($string, $find);
  1425. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1426. $this->assertEqual($result, $expected);
  1427. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1428. $find = 'ї';
  1429. $result = Multibyte::stristr($string, $find, true);
  1430. $expected = 'ЀЁЂЃЄЅІ';
  1431. $this->assertEqual($result, $expected);
  1432. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1433. $find = 'Р';
  1434. $result = Multibyte::stristr($string, $find);
  1435. $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1436. $this->assertEqual($result, $expected);
  1437. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1438. $find = 'Р';
  1439. $result = Multibyte::stristr($string, $find, true);
  1440. $expected = 'МНОП';
  1441. $this->assertEqual($result, $expected);
  1442. $string = 'فقكلمنهوىيًٌٍَُ';
  1443. $find = 'ن';
  1444. $result = Multibyte::stristr($string, $find);
  1445. $expected = 'نهوىيًٌٍَُ';
  1446. $this->assertEqual($result, $expected);
  1447. $string = 'فقكلمنهوىيًٌٍَُ';
  1448. $find = 'ن';
  1449. $result = Multibyte::stristr($string, $find, true);
  1450. $expected = 'فقكلم';
  1451. $this->assertEqual($result, $expected);
  1452. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1453. $find = '✿';
  1454. $result = Multibyte::stristr($string, $find);
  1455. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1456. $this->assertEqual($result, $expected);
  1457. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1458. $find = '✿';
  1459. $result = Multibyte::stristr($string, $find, true);
  1460. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  1461. $this->assertEqual($result, $expected);
  1462. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1463. $find = '⺐';
  1464. $result = Multibyte::stristr($string, $find);
  1465. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1466. $this->assertEqual($result, $expected);
  1467. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1468. $find = '⺐';
  1469. $result = Multibyte::stristr($string, $find, true);
  1470. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  1471. $this->assertEqual($result, $expected);
  1472. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1473. $find = '⽤';
  1474. $result = Multibyte::stristr($string, $find);
  1475. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1476. $this->assertEqual($result, $expected);
  1477. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1478. $find = '⽤';
  1479. $result = Multibyte::stristr($string, $find, true);
  1480. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  1481. $this->assertEqual($result, $expected);
  1482. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1483. $find = '눻';
  1484. $result = Multibyte::stristr($string, $find);
  1485. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1486. $this->assertEqual($result, $expected);
  1487. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1488. $find = '눻';
  1489. $result = Multibyte::stristr($string, $find, true);
  1490. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  1491. $this->assertEqual($result, $expected);
  1492. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1493. $find = 'ﺞ';
  1494. $result = Multibyte::stristr($string, $find);
  1495. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1496. $this->assertEqual($result, $expected);
  1497. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1498. $find = 'ﺞ';
  1499. $result = Multibyte::stristr($string, $find, true);
  1500. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  1501. $this->assertEqual($result, $expected);
  1502. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1503. $find = 'ﻞ';
  1504. $result = Multibyte::stristr($string, $find);
  1505. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1506. $this->assertEqual($result, $expected);
  1507. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1508. $find = 'ﻞ';
  1509. $result = Multibyte::stristr($string, $find, true);
  1510. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  1511. $this->assertEqual($result, $expected);
  1512. $string = 'abcdefghijklmnopqrstuvwxyz';
  1513. $find = 'K';
  1514. $result = Multibyte::stristr($string, $find);
  1515. $expected = 'klmnopqrstuvwxyz';
  1516. $this->assertEqual($result, $expected);
  1517. $string = 'abcdefghijklmnopqrstuvwxyz';
  1518. $find = 'K';
  1519. $result = Multibyte::stristr($string, $find, true);
  1520. $expected = 'abcdefghij';
  1521. $this->assertEqual($result, $expected);
  1522. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  1523. $find = 'ア';
  1524. $result = Multibyte::stristr($string, $find);
  1525. $expected = 'アイウエオカキク';
  1526. $this->assertEqual($result, $expected);
  1527. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  1528. $find = 'ア';
  1529. $result = Multibyte::stristr($string, $find, true);
  1530. $expected = '。「」、・ヲァィゥェォャュョッー';
  1531. $this->assertEqual($result, $expected);
  1532. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1533. $find = 'ハ';
  1534. $result = Multibyte::stristr($string, $find);
  1535. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1536. $this->assertEqual($result, $expected);
  1537. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1538. $find = 'ハ';
  1539. $result = Multibyte::stristr($string, $find, true);
  1540. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  1541. $this->assertEqual($result, $expected);
  1542. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1543. $find = 'Ő';
  1544. $result = Multibyte::stristr($string, $find);
  1545. $expected = 'őřļď!';
  1546. $this->assertEqual($result, $expected);
  1547. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1548. $find = 'Ő';
  1549. $result = Multibyte::stristr($string, $find, true);
  1550. $expected = 'Ĥēĺļŏ, Ŵ';
  1551. $this->assertEqual($result, $expected);
  1552. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1553. $find = 'ĺļ';
  1554. $result = Multibyte::stristr($string, $find, true);
  1555. $expected = 'Ĥē';
  1556. $this->assertEqual($result, $expected);
  1557. $string = 'Hello, World!';
  1558. $find = 'O';
  1559. $result = Multibyte::stristr($string, $find);
  1560. $expected = 'o, World!';
  1561. $this->assertEqual($result, $expected);
  1562. $string = 'Hello, World!';
  1563. $find = 'O';
  1564. $result = Multibyte::stristr($string, $find, true);
  1565. $expected = 'Hell';
  1566. $this->assertEqual($result, $expected);
  1567. $string = 'Hello, World!';
  1568. $find = 'Wo';
  1569. $result = Multibyte::stristr($string, $find);
  1570. $expected = 'World!';
  1571. $this->assertEqual($result, $expected);
  1572. $string = 'Hello, World!';
  1573. $find = 'Wo';
  1574. $result = Multibyte::stristr($string, $find, true);
  1575. $expected = 'Hello, ';
  1576. $this->assertEqual($result, $expected);
  1577. $string = 'Hello, World!';
  1578. $find = 'll';
  1579. $result = Multibyte::stristr($string, $find);
  1580. $expected = 'llo, World!';
  1581. $this->assertEqual($result, $expected);
  1582. $string = 'Hello, World!';
  1583. $find = 'll';
  1584. $result = Multibyte::stristr($string, $find, true);
  1585. $expected = 'He';
  1586. $this->assertEqual($result, $expected);
  1587. $string = 'Hello, World!';
  1588. $find = 'rld';
  1589. $result = Multibyte::stristr($string, $find);
  1590. $expected = 'rld!';
  1591. $this->assertEqual($result, $expected);
  1592. $string = 'Hello, World!';
  1593. $find = 'rld';
  1594. $result = Multibyte::stristr($string, $find, true);
  1595. $expected = 'Hello, Wo';
  1596. $this->assertEqual($result, $expected);
  1597. $string = 'čini';
  1598. $find = 'N';
  1599. $result = Multibyte::stristr($string, $find);
  1600. $expected = 'ni';
  1601. $this->assertEqual($result, $expected);
  1602. $string = 'čini';
  1603. $find = 'N';
  1604. $result = Multibyte::stristr($string, $find, true);
  1605. $expected = 'či';
  1606. $this->assertEqual($result, $expected);
  1607. $string = 'moći';
  1608. $find = 'Ć';
  1609. $result = Multibyte::stristr($string, $find);
  1610. $expected = 'ći';
  1611. $this->assertEqual($result, $expected);
  1612. $string = 'moći';
  1613. $find = 'Ć';
  1614. $result = Multibyte::stristr($string, $find, true);
  1615. $expected = 'mo';
  1616. $this->assertEqual($result, $expected);
  1617. $string = 'državni';
  1618. $find = 'Ž';
  1619. $result = Multibyte::stristr($string, $find);
  1620. $expected = 'žavni';
  1621. $this->assertEqual($result, $expected);
  1622. $string = 'državni';
  1623. $find = 'Ž';
  1624. $result = Multibyte::stristr($string, $find, true);
  1625. $expected = 'dr';
  1626. $this->assertEqual($result, $expected);
  1627. $string = '把百度设为首页';
  1628. $find = '设';
  1629. $result = Multibyte::stristr($string, $find);
  1630. $expected = '设为首页';
  1631. $this->assertEqual($result, $expected);
  1632. $string = '把百度设为首页';
  1633. $find = '设';
  1634. $result = Multibyte::stristr($string, $find, true);
  1635. $expected = '把百度';
  1636. $this->assertEqual($result, $expected);
  1637. $string = '一二三周永龍';
  1638. $find = '周';
  1639. $result = Multibyte::stristr($string, $find);
  1640. $expected = '周永龍';
  1641. $this->assertEqual($result, $expected);
  1642. $string = '一二三周永龍';
  1643. $find = '周';
  1644. $result = Multibyte::stristr($string, $find, true);
  1645. $expected = '一二三';
  1646. $this->assertEqual($result, $expected);
  1647. $string = '一二三周永龍';
  1648. $find = '二周';
  1649. $result = Multibyte::stristr($string, $find);
  1650. $expected = false;
  1651. $this->assertEqual($result, $expected);
  1652. }
  1653. /**
  1654. * testUsingMbStrlen method
  1655. *
  1656. * @access public
  1657. * @return void
  1658. */
  1659. function testUsingMbStrlen() {
  1660. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1661. $result = mb_strlen($string);
  1662. $expected = 36;
  1663. $this->assertEqual($result, $expected);
  1664. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1665. $result = mb_strlen($string);
  1666. $expected = 30;
  1667. $this->assertEqual($result, $expected);
  1668. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1669. $result = mb_strlen($string);
  1670. $expected = 61;
  1671. $this->assertEqual($result, $expected);
  1672. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1673. $result = mb_strlen($string);
  1674. $expected = 94;
  1675. $this->assertEqual($result, $expected);
  1676. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1677. $result = mb_strlen($string);
  1678. $expected = 40;
  1679. $this->assertEqual($result, $expected);
  1680. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1681. $result = mb_strlen($string);
  1682. $expected = 100;
  1683. $this->assertEqual($result, $expected);
  1684. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1685. $result = mb_strlen($string);
  1686. $expected = 100;
  1687. $this->assertEqual($result, $expected);
  1688. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1689. $result = mb_strlen($string);
  1690. $expected = 100;
  1691. $this->assertEqual($result, $expected);
  1692. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1693. $result = mb_strlen($string);
  1694. $expected = 100;
  1695. $this->assertEqual($result, $expected);
  1696. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1697. $result = mb_strlen($string);
  1698. $expected = 28;
  1699. $this->assertEqual($result, $expected);
  1700. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1701. $result = mb_strlen($string);
  1702. $expected = 49;
  1703. $this->assertEqual($result, $expected);
  1704. $string = 'فقكلمنهوىيًٌٍَُ';
  1705. $result = mb_strlen($string);
  1706. $expected = 15;
  1707. $this->assertEqual($result, $expected);
  1708. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1709. $result = mb_strlen($string);
  1710. $expected = 47;
  1711. $this->assertEqual($result, $expected);
  1712. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1713. $result = mb_strlen($string);
  1714. $expected = 96;
  1715. $this->assertEqual($result, $expected);
  1716. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1717. $result = mb_strlen($string);
  1718. $expected = 59;
  1719. $this->assertEqual($result, $expected);
  1720. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1721. $result = mb_strlen($string);
  1722. $expected = 100;
  1723. $this->assertEqual($result, $expected);
  1724. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1725. $result = mb_strlen($string);
  1726. $expected = 65;
  1727. $this->assertEqual($result, $expected);
  1728. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1729. $result = mb_strlen($string);
  1730. $expected = 76;
  1731. $this->assertEqual($result, $expected);
  1732. $string = 'abcdefghijklmnopqrstuvwxyz';
  1733. $result = mb_strlen($string);
  1734. $expected = 26;
  1735. $this->assertEqual($result, $expected);
  1736. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  1737. $result = mb_strlen($string);
  1738. $expected = 24;
  1739. $this->assertEqual($result, $expected);
  1740. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1741. $result = mb_strlen($string);
  1742. $expected = 38;
  1743. $this->assertEqual($result, $expected);
  1744. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1745. $result = mb_strlen($string);
  1746. $expected = 13;
  1747. $this->assertEqual($result, $expected);
  1748. $string = 'Hello, World!';
  1749. $result = mb_strlen($string);
  1750. $expected = 13;
  1751. $this->assertEqual($result, $expected);
  1752. $string = 'čini';
  1753. $result = mb_strlen($string);
  1754. $expected = 4;
  1755. $this->assertEqual($result, $expected);
  1756. $string = 'moći';
  1757. $result = mb_strlen($string);
  1758. $expected = 4;
  1759. $this->assertEqual($result, $expected);
  1760. $string = 'državni';
  1761. $result = mb_strlen($string);
  1762. $expected = 7;
  1763. $this->assertEqual($result, $expected);
  1764. $string = '把百度设为首页';
  1765. $result = mb_strlen($string);
  1766. $expected = 7;
  1767. $this->assertEqual($result, $expected);
  1768. $string = '一二三周永龍';
  1769. $result = mb_strlen($string);
  1770. $expected = 6;
  1771. $this->assertEqual($result, $expected);
  1772. }
  1773. /**
  1774. * testMultibyteStrlen method
  1775. *
  1776. * @access public
  1777. * @return void
  1778. */
  1779. function testMultibyteStrlen() {
  1780. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1781. $result = Multibyte::strlen($string);
  1782. $expected = 36;
  1783. $this->assertEqual($result, $expected);
  1784. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1785. $result = Multibyte::strlen($string);
  1786. $expected = 30;
  1787. $this->assertEqual($result, $expected);
  1788. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1789. $result = Multibyte::strlen($string);
  1790. $expected = 61;
  1791. $this->assertEqual($result, $expected);
  1792. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1793. $result = Multibyte::strlen($string);
  1794. $expected = 94;
  1795. $this->assertEqual($result, $expected);
  1796. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1797. $result = Multibyte::strlen($string);
  1798. $expected = 40;
  1799. $this->assertEqual($result, $expected);
  1800. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1801. $result = Multibyte::strlen($string);
  1802. $expected = 100;
  1803. $this->assertEqual($result, $expected);
  1804. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1805. $result = Multibyte::strlen($string);
  1806. $expected = 100;
  1807. $this->assertEqual($result, $expected);
  1808. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1809. $result = Multibyte::strlen($string);
  1810. $expected = 100;
  1811. $this->assertEqual($result, $expected);
  1812. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1813. $result = Multibyte::strlen($string);
  1814. $expected = 100;
  1815. $this->assertEqual($result, $expected);
  1816. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1817. $result = Multibyte::strlen($string);
  1818. $expected = 28;
  1819. $this->assertEqual($result, $expected);
  1820. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1821. $result = Multibyte::strlen($string);
  1822. $expected = 49;
  1823. $this->assertEqual($result, $expected);
  1824. $string = 'فقكلمنهوىيًٌٍَُ';
  1825. $result = Multibyte::strlen($string);
  1826. $expected = 15;
  1827. $this->assertEqual($result, $expected);
  1828. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1829. $result = Multibyte::strlen($string);
  1830. $expected = 47;
  1831. $this->assertEqual($result, $expected);
  1832. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1833. $result = Multibyte::strlen($string);
  1834. $expected = 96;
  1835. $this->assertEqual($result, $expected);
  1836. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1837. $result = Multibyte::strlen($string);
  1838. $expected = 59;
  1839. $this->assertEqual($result, $expected);
  1840. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  1841. $result = Multibyte::strlen($string);
  1842. $expected = 100;
  1843. $this->assertEqual($result, $expected);
  1844. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  1845. $result = Multibyte::strlen($string);
  1846. $expected = 65;
  1847. $this->assertEqual($result, $expected);
  1848. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  1849. $result = Multibyte::strlen($string);
  1850. $expected = 76;
  1851. $this->assertEqual($result, $expected);
  1852. $string = 'abcdefghijklmnopqrstuvwxyz';
  1853. $result = Multibyte::strlen($string);
  1854. $expected = 26;
  1855. $this->assertEqual($result, $expected);
  1856. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  1857. $result = Multibyte::strlen($string);
  1858. $expected = 24;
  1859. $this->assertEqual($result, $expected);
  1860. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  1861. $result = Multibyte::strlen($string);
  1862. $expected = 38;
  1863. $this->assertEqual($result, $expected);
  1864. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  1865. $result = Multibyte::strlen($string);
  1866. $expected = 13;
  1867. $this->assertEqual($result, $expected);
  1868. $string = 'Hello, World!';
  1869. $result = Multibyte::strlen($string);
  1870. $expected = 13;
  1871. $this->assertEqual($result, $expected);
  1872. $string = 'čini';
  1873. $result = Multibyte::strlen($string);
  1874. $expected = 4;
  1875. $this->assertEqual($result, $expected);
  1876. $string = 'moći';
  1877. $result = Multibyte::strlen($string);
  1878. $expected = 4;
  1879. $this->assertEqual($result, $expected);
  1880. $string = 'državni';
  1881. $result = Multibyte::strlen($string);
  1882. $expected = 7;
  1883. $this->assertEqual($result, $expected);
  1884. $string = '把百度设为首页';
  1885. $result = Multibyte::strlen($string);
  1886. $expected = 7;
  1887. $this->assertEqual($result, $expected);
  1888. $string = '一二三周永龍';
  1889. $result = Multibyte::strlen($string);
  1890. $expected = 6;
  1891. $this->assertEqual($result, $expected);
  1892. }
  1893. /**
  1894. * testUsingMbStrpos method
  1895. *
  1896. * @access public
  1897. * @return void
  1898. */
  1899. function testUsingMbStrpos() {
  1900. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  1901. $find = 'F';
  1902. $result = mb_strpos($string, $find);
  1903. $expected = 5;
  1904. $this->assertEqual($result, $expected);
  1905. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  1906. $find = 'F';
  1907. $result = mb_strpos($string, $find, 6);
  1908. $expected = 17;
  1909. $this->assertEqual($result, $expected);
  1910. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  1911. $find = 'Å';
  1912. $result = mb_strpos($string, $find);
  1913. $expected = 5;
  1914. $this->assertEqual($result, $expected);
  1915. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  1916. $find = 'Å';
  1917. $result = mb_strpos($string, $find, 6);
  1918. $expected = 24;
  1919. $this->assertEqual($result, $expected);
  1920. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1921. $find = 'Ċ';
  1922. $result = mb_strpos($string, $find);
  1923. $expected = 5;
  1924. $this->assertEqual($result, $expected);
  1925. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  1926. $find = 'Ċ';
  1927. $result = mb_strpos($string, $find, 6);
  1928. $expected = 32;
  1929. $this->assertEqual($result, $expected);
  1930. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  1931. $find = 'F';
  1932. $result = mb_strpos($string, $find);
  1933. $expected = 37;
  1934. $this->assertEqual($result, $expected);
  1935. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  1936. $find = 'µ';
  1937. $result = mb_strpos($string, $find);
  1938. $expected = 20;
  1939. $this->assertEqual($result, $expected);
  1940. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  1941. $find = 'é';
  1942. $result = mb_strpos($string, $find);
  1943. $expected = 32;
  1944. $this->assertEqual($result, $expected);
  1945. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  1946. $find = 'Ņ';
  1947. $result = mb_strpos($string, $find);
  1948. $expected = 24;
  1949. $this->assertEqual($result, $expected);
  1950. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1951. $find = 'Ƹ';
  1952. $result = mb_strpos($string, $find);
  1953. $expected = 39;
  1954. $this->assertEqual($result, $expected);
  1955. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  1956. $find = 'ƹ';
  1957. $result = mb_strpos($string, $find);
  1958. $expected = 40;
  1959. $this->assertEqual($result, $expected);
  1960. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  1961. $find = 'ʀ';
  1962. $result = mb_strpos($string, $find);
  1963. $expected = 39;
  1964. $this->assertEqual($result, $expected);
  1965. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  1966. $find = 'Ї';
  1967. $result = mb_strpos($string, $find);
  1968. $expected = 7;
  1969. $this->assertEqual($result, $expected);
  1970. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1971. $find = 'Р';
  1972. $result = mb_strpos($string, $find);
  1973. $expected = 4;
  1974. $this->assertEqual($result, $expected);
  1975. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  1976. $find = 'р';
  1977. $result = mb_strpos($string, $find, 5);
  1978. $expected = 36;
  1979. $this->assertEqual($result, $expected);
  1980. $string = 'فقكلمنهوىيًٌٍَُ';
  1981. $find = 'ن';
  1982. $result = mb_strpos($string, $find);
  1983. $expected = 5;
  1984. $this->assertEqual($result, $expected);
  1985. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  1986. $find = '✿';
  1987. $result = mb_strpos($string, $find);
  1988. $expected = 15;
  1989. $this->assertEqual($result, $expected);
  1990. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  1991. $find = '⺐';
  1992. $result = mb_strpos($string, $find);
  1993. $expected = 16;
  1994. $this->assertEqual($result, $expected);
  1995. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  1996. $find = '⽤';
  1997. $result = mb_strpos($string, $find);
  1998. $expected = 31;
  1999. $this->assertEqual($result, $expected);
  2000. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2001. $find = '눻';
  2002. $result = mb_strpos($string, $find);
  2003. $expected = 26;
  2004. $this->assertEqual($result, $expected);
  2005. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2006. $find = 'ﺞ';
  2007. $result = mb_strpos($string, $find);
  2008. $expected = 46;
  2009. $this->assertEqual($result, $expected);
  2010. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2011. $find = 'ﻞ';
  2012. $result = mb_strpos($string, $find);
  2013. $expected = 45;
  2014. $this->assertEqual($result, $expected);
  2015. $string = 'abcdefghijklmnopqrstuvwxyz';
  2016. $find = 'k';
  2017. $result = mb_strpos($string, $find);
  2018. $expected = 10;
  2019. $this->assertEqual($result, $expected);
  2020. $string = 'abcdefghijklmnopqrstuvwxyz';
  2021. $find = 'k';
  2022. $result = mb_strpos($string, $find);
  2023. $expected = 10;
  2024. $this->assertEqual($result, $expected);
  2025. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  2026. $find = 'ア';
  2027. $result = mb_strpos($string, $find);
  2028. $expected = 16;
  2029. $this->assertEqual($result, $expected);
  2030. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2031. $find = 'ハ';
  2032. $result = mb_strpos($string, $find);
  2033. $expected = 17;
  2034. $this->assertEqual($result, $expected);
  2035. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2036. $find = 'ő';
  2037. $result = mb_strpos($string, $find);
  2038. $expected = 8;
  2039. $this->assertEqual($result, $expected);
  2040. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2041. $find = 'ő';
  2042. $result = mb_strpos($string, $find);
  2043. $expected = 8;
  2044. $this->assertEqual($result, $expected);
  2045. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2046. $find = 'őř';
  2047. $result = mb_strpos($string, $find);
  2048. $expected = 8;
  2049. $this->assertEqual($result, $expected);
  2050. $string = 'Hello, World!';
  2051. $find = 'o';
  2052. $result = mb_strpos($string, $find);
  2053. $expected = 4;
  2054. $this->assertEqual($result, $expected);
  2055. $string = 'Hello, World!';
  2056. $find = 'o';
  2057. $result = mb_strpos($string, $find, 5);
  2058. $expected = 8;
  2059. $this->assertEqual($result, $expected);
  2060. $string = 'čini';
  2061. $find = 'n';
  2062. $result = mb_strpos($string, $find);
  2063. $expected = 2;
  2064. $this->assertEqual($result, $expected);
  2065. $string = 'čini';
  2066. $find = 'n';
  2067. $result = mb_strpos($string, $find);
  2068. $expected = 2;
  2069. $this->assertEqual($result, $expected);
  2070. $string = 'moći';
  2071. $find = 'ć';
  2072. $result = mb_strpos($string, $find);
  2073. $expected = 2;
  2074. $this->assertEqual($result, $expected);
  2075. $string = 'moći';
  2076. $find = 'ć';
  2077. $result = mb_strpos($string, $find);
  2078. $expected = 2;
  2079. $this->assertEqual($result, $expected);
  2080. $string = 'državni';
  2081. $find = 'ž';
  2082. $result = mb_strpos($string, $find);
  2083. $expected = 2;
  2084. $this->assertEqual($result, $expected);
  2085. $string = '把百度设为首页';
  2086. $find = '设';
  2087. $result = mb_strpos($string, $find);
  2088. $expected = 3;
  2089. $this->assertEqual($result, $expected);
  2090. $string = '一二三周永龍';
  2091. $find = '周';
  2092. $result = mb_strpos($string, $find);
  2093. $expected = 3;
  2094. $this->assertEqual($result, $expected);
  2095. $string = '一二三周永龍';
  2096. $find = '一周';
  2097. $result = mb_strpos($string, $find);
  2098. $expected = false;
  2099. $this->assertEqual($result, $expected);
  2100. }
  2101. /**
  2102. * testMultibyteStrpos method
  2103. *
  2104. * @access public
  2105. * @return void
  2106. */
  2107. function testMultibyteStrpos() {
  2108. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  2109. $find = 'F';
  2110. $result = Multibyte::strpos($string, $find);
  2111. $expected = 5;
  2112. $this->assertEqual($result, $expected);
  2113. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  2114. $find = 'F';
  2115. $result = Multibyte::strpos($string, $find, 6);
  2116. $expected = 17;
  2117. $this->assertEqual($result, $expected);
  2118. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2119. $find = 'Å';
  2120. $result = Multibyte::strpos($string, $find);
  2121. $expected = 5;
  2122. $this->assertEqual($result, $expected);
  2123. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  2124. $find = 'Å';
  2125. $result = Multibyte::strpos($string, $find, 6);
  2126. $expected = 24;
  2127. $this->assertEqual($result, $expected);
  2128. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2129. $find = 'Ċ';
  2130. $result = Multibyte::strpos($string, $find);
  2131. $expected = 5;
  2132. $this->assertEqual($result, $expected);
  2133. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2134. $find = 'Ċ';
  2135. $result = Multibyte::strpos($string, $find, 6);
  2136. $expected = 32;
  2137. $this->assertEqual($result, $expected);
  2138. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2139. $find = 'F';
  2140. $result = Multibyte::strpos($string, $find);
  2141. $expected = 37;
  2142. $this->assertEqual($result, $expected);
  2143. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  2144. $find = 'µ';
  2145. $result = Multibyte::strpos($string, $find);
  2146. $expected = 20;
  2147. $this->assertEqual($result, $expected);
  2148. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  2149. $find = 'é';
  2150. $result = Multibyte::strpos($string, $find);
  2151. $expected = 32;
  2152. $this->assertEqual($result, $expected);
  2153. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  2154. $find = 'Ņ';
  2155. $result = Multibyte::strpos($string, $find);
  2156. $expected = 24;
  2157. $this->assertEqual($result, $expected);
  2158. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  2159. $find = 'Ƹ';
  2160. $result = Multibyte::strpos($string, $find);
  2161. $expected = 39;
  2162. $this->assertEqual($result, $expected);
  2163. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  2164. $find = 'ƹ';
  2165. $result = Multibyte::strpos($string, $find);
  2166. $expected = 40;
  2167. $this->assertEqual($result, $expected);
  2168. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  2169. $find = 'ʀ';
  2170. $result = Multibyte::strpos($string, $find);
  2171. $expected = 39;
  2172. $this->assertEqual($result, $expected);
  2173. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  2174. $find = 'Ї';
  2175. $result = Multibyte::strpos($string, $find);
  2176. $expected = 7;
  2177. $this->assertEqual($result, $expected);
  2178. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2179. $find = 'Р';
  2180. $result = Multibyte::strpos($string, $find);
  2181. $expected = 4;
  2182. $this->assertEqual($result, $expected);
  2183. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2184. $find = 'р';
  2185. $result = Multibyte::strpos($string, $find, 5);
  2186. $expected = 36;
  2187. $this->assertEqual($result, $expected);
  2188. $string = 'فقكلمنهوىيًٌٍَُ';
  2189. $find = 'ن';
  2190. $result = Multibyte::strpos($string, $find);
  2191. $expected = 5;
  2192. $this->assertEqual($result, $expected);
  2193. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  2194. $find = '✿';
  2195. $result = Multibyte::strpos($string, $find);
  2196. $expected = 15;
  2197. $this->assertEqual($result, $expected);
  2198. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  2199. $find = '⺐';
  2200. $result = Multibyte::strpos($string, $find);
  2201. $expected = 16;
  2202. $this->assertEqual($result, $expected);
  2203. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  2204. $find = '⽤';
  2205. $result = Multibyte::strpos($string, $find);
  2206. $expected = 31;
  2207. $this->assertEqual($result, $expected);
  2208. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2209. $find = '눻';
  2210. $result = Multibyte::strpos($string, $find);
  2211. $expected = 26;
  2212. $this->assertEqual($result, $expected);
  2213. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2214. $find = 'ﺞ';
  2215. $result = Multibyte::strpos($string, $find);
  2216. $expected = 46;
  2217. $this->assertEqual($result, $expected);
  2218. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2219. $find = 'ﻞ';
  2220. $result = Multibyte::strpos($string, $find);
  2221. $expected = 45;
  2222. $this->assertEqual($result, $expected);
  2223. $string = 'abcdefghijklmnopqrstuvwxyz';
  2224. $find = 'k';
  2225. $result = Multibyte::strpos($string, $find);
  2226. $expected = 10;
  2227. $this->assertEqual($result, $expected);
  2228. $string = 'abcdefghijklmnopqrstuvwxyz';
  2229. $find = 'k';
  2230. $result = Multibyte::strpos($string, $find);
  2231. $expected = 10;
  2232. $this->assertEqual($result, $expected);
  2233. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  2234. $find = 'ア';
  2235. $result = Multibyte::strpos($string, $find);
  2236. $expected = 16;
  2237. $this->assertEqual($result, $expected);
  2238. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2239. $find = 'ハ';
  2240. $result = Multibyte::strpos($string, $find);
  2241. $expected = 17;
  2242. $this->assertEqual($result, $expected);
  2243. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2244. $find = 'ő';
  2245. $result = Multibyte::strpos($string, $find);
  2246. $expected = 8;
  2247. $this->assertEqual($result, $expected);
  2248. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2249. $find = 'ő';
  2250. $result = Multibyte::strpos($string, $find);
  2251. $expected = 8;
  2252. $this->assertEqual($result, $expected);
  2253. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2254. $find = 'őř';
  2255. $result = Multibyte::strpos($string, $find);
  2256. $expected = 8;
  2257. $this->assertEqual($result, $expected);
  2258. $string = 'Hello, World!';
  2259. $find = 'o';
  2260. $result = Multibyte::strpos($string, $find);
  2261. $expected = 4;
  2262. $this->assertEqual($result, $expected);
  2263. $string = 'Hello, World!';
  2264. $find = 'o';
  2265. $result = Multibyte::strpos($string, $find, 5);
  2266. $expected = 8;
  2267. $this->assertEqual($result, $expected);
  2268. $string = 'čini';
  2269. $find = 'n';
  2270. $result = Multibyte::strpos($string, $find);
  2271. $expected = 2;
  2272. $this->assertEqual($result, $expected);
  2273. $string = 'čini';
  2274. $find = 'n';
  2275. $result = Multibyte::strpos($string, $find);
  2276. $expected = 2;
  2277. $this->assertEqual($result, $expected);
  2278. $string = 'moći';
  2279. $find = 'ć';
  2280. $result = Multibyte::strpos($string, $find);
  2281. $expected = 2;
  2282. $this->assertEqual($result, $expected);
  2283. $string = 'moći';
  2284. $find = 'ć';
  2285. $result = Multibyte::strpos($string, $find);
  2286. $expected = 2;
  2287. $this->assertEqual($result, $expected);
  2288. $string = 'državni';
  2289. $find = 'ž';
  2290. $result = Multibyte::strpos($string, $find);
  2291. $expected = 2;
  2292. $this->assertEqual($result, $expected);
  2293. $string = '把百度设为首页';
  2294. $find = '设';
  2295. $result = Multibyte::strpos($string, $find);
  2296. $expected = 3;
  2297. $this->assertEqual($result, $expected);
  2298. $string = '一二三周永龍';
  2299. $find = '周';
  2300. $result = Multibyte::strpos($string, $find);
  2301. $expected = 3;
  2302. $this->assertEqual($result, $expected);
  2303. $string = '一二三周永龍';
  2304. $find = '一周';
  2305. $result = Multibyte::strpos($string, $find);
  2306. $expected = false;
  2307. $this->assertEqual($result, $expected);
  2308. }
  2309. /**
  2310. * testUsingMbStrrchr method
  2311. *
  2312. * @access public
  2313. * @return void
  2314. */
  2315. function testUsingMbStrrchr() {
  2316. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  2317. $find = 'F';
  2318. $result = mb_strrchr($string, $find);
  2319. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  2320. $this->assertEqual($result, $expected);
  2321. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  2322. $find = 'F';
  2323. $result = mb_strrchr($string, $find, true);
  2324. $expected = 'ABCDE';
  2325. $this->assertEqual($result, $expected);
  2326. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2327. $find = 'Å';
  2328. $result = mb_strrchr($string, $find);
  2329. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2330. $this->assertEqual($result, $expected);
  2331. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2332. $find = 'Å';
  2333. $result = mb_strrchr($string, $find, true);
  2334. $expected = 'ÀÁÂÃÄ';
  2335. $this->assertEqual($result, $expected);
  2336. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2337. $find = 'Ċ';
  2338. $result = mb_strrchr($string, $find);
  2339. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2340. $this->assertEqual($result, $expected);
  2341. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2342. $find = 'Ċ';
  2343. $result = mb_strrchr($string, $find, true);
  2344. $expected = 'ĀĂĄĆĈ';
  2345. $this->assertEqual($result, $expected);
  2346. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2347. $find = 'F';
  2348. $result = mb_strrchr($string, $find);
  2349. $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2350. $this->assertEqual($result, $expected);
  2351. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2352. $find = 'F';
  2353. $result = mb_strrchr($string, $find, true);
  2354. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
  2355. $this->assertEqual($result, $expected);
  2356. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  2357. $find = 'µ';
  2358. $result = mb_strrchr($string, $find);
  2359. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  2360. $this->assertEqual($result, $expected);
  2361. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  2362. $find = 'µ';
  2363. $result = mb_strrchr($string, $find, true);
  2364. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  2365. $this->assertEqual($result, $expected);
  2366. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  2367. $find = 'Þ';
  2368. $result = mb_strrchr($string, $find);
  2369. $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  2370. $this->assertEqual($result, $expected);
  2371. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  2372. $find = 'Þ';
  2373. $result = mb_strrchr($string, $find, true);
  2374. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
  2375. $this->assertEqual($result, $expected);
  2376. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  2377. $find = 'Ņ';
  2378. $result = mb_strrchr($string, $find);
  2379. $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  2380. $this->assertEqual($result, $expected);
  2381. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  2382. $find = 'Ņ';
  2383. $result = mb_strrchr($string, $find, true);
  2384. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
  2385. $this->assertEqual($result, $expected);
  2386. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  2387. $find = 'Ƹ';
  2388. $result = mb_strrchr($string, $find);
  2389. $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  2390. $this->assertEqual($result, $expected);
  2391. $find = 'Ƹ';
  2392. $result = mb_strrchr($string, $find, true);
  2393. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
  2394. $this->assertEqual($result, $expected);
  2395. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  2396. $find = 'ʀ';
  2397. $result = mb_strrchr($string, $find);
  2398. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  2399. $this->assertEqual($result, $expected);
  2400. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  2401. $find = 'ʀ';
  2402. $result = mb_strrchr($string, $find, true);
  2403. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  2404. $this->assertEqual($result, $expected);
  2405. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  2406. $find = 'Ї';
  2407. $result = mb_strrchr($string, $find);
  2408. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  2409. $this->assertEqual($result, $expected);
  2410. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  2411. $find = 'Ї';
  2412. $result = mb_strrchr($string, $find, true);
  2413. $expected = 'ЀЁЂЃЄЅІ';
  2414. $this->assertEqual($result, $expected);
  2415. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2416. $find = 'Р';
  2417. $result = mb_strrchr($string, $find);
  2418. $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2419. $this->assertEqual($result, $expected);
  2420. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2421. $find = 'Р';
  2422. $result = mb_strrchr($string, $find, true);
  2423. $expected = 'МНОП';
  2424. $this->assertEqual($result, $expected);
  2425. $string = 'فقكلمنهوىيًٌٍَُ';
  2426. $find = 'ن';
  2427. $result = mb_strrchr($string, $find);
  2428. $expected = 'نهوىيًٌٍَُ';
  2429. $this->assertEqual($result, $expected);
  2430. $string = 'فقكلمنهوىيًٌٍَُ';
  2431. $find = 'ن';
  2432. $result = mb_strrchr($string, $find, true);
  2433. $expected = 'فقكلم';
  2434. $this->assertEqual($result, $expected);
  2435. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  2436. $find = '✿';
  2437. $result = mb_strrchr($string, $find);
  2438. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  2439. $this->assertEqual($result, $expected);
  2440. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  2441. $find = '✿';
  2442. $result = mb_strrchr($string, $find, true);
  2443. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  2444. $this->assertEqual($result, $expected);
  2445. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  2446. $find = '⺐';
  2447. $result = mb_strrchr($string, $find);
  2448. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  2449. $this->assertEqual($result, $expected);
  2450. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  2451. $find = '⺐';
  2452. $result = mb_strrchr($string, $find, true);
  2453. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  2454. $this->assertEqual($result, $expected);
  2455. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  2456. $find = '⽤';
  2457. $result = mb_strrchr($string, $find);
  2458. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  2459. $this->assertEqual($result, $expected);
  2460. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  2461. $find = '⽤';
  2462. $result = mb_strrchr($string, $find, true);
  2463. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  2464. $this->assertEqual($result, $expected);
  2465. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2466. $find = '눻';
  2467. $result = mb_strrchr($string, $find);
  2468. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2469. $this->assertEqual($result, $expected);
  2470. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2471. $find = '눻';
  2472. $result = mb_strrchr($string, $find, true);
  2473. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  2474. $this->assertEqual($result, $expected);
  2475. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2476. $find = 'ﺞ';
  2477. $result = mb_strrchr($string, $find);
  2478. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2479. $this->assertEqual($result, $expected);
  2480. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2481. $find = 'ﺞ';
  2482. $result = mb_strrchr($string, $find, true);
  2483. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  2484. $this->assertEqual($result, $expected);
  2485. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2486. $find = 'ﻞ';
  2487. $result = mb_strrchr($string, $find);
  2488. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2489. $this->assertEqual($result, $expected);
  2490. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2491. $find = 'ﻞ';
  2492. $result = mb_strrchr($string, $find, true);
  2493. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  2494. $this->assertEqual($result, $expected);
  2495. $string = 'abcdefghijklmnopqrstuvwxyz';
  2496. $find = 'k';
  2497. $result = mb_strrchr($string, $find);
  2498. $expected = 'klmnopqrstuvwxyz';
  2499. $this->assertEqual($result, $expected);
  2500. $string = 'abcdefghijklmnopqrstuvwxyz';
  2501. $find = 'k';
  2502. $result = mb_strrchr($string, $find, true);
  2503. $expected = 'abcdefghij';
  2504. $this->assertEqual($result, $expected);
  2505. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  2506. $find = 'ア';
  2507. $result = mb_strrchr($string, $find);
  2508. $expected = 'アイウエオカキク';
  2509. $this->assertEqual($result, $expected);
  2510. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  2511. $find = 'ア';
  2512. $result = mb_strrchr($string, $find, true);
  2513. $expected = '。「」、・ヲァィゥェォャュョッー';
  2514. $this->assertEqual($result, $expected);
  2515. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2516. $find = 'ハ';
  2517. $result = mb_strrchr($string, $find);
  2518. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2519. $this->assertEqual($result, $expected);
  2520. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2521. $find = 'ハ';
  2522. $result = mb_strrchr($string, $find, true);
  2523. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  2524. $this->assertEqual($result, $expected);
  2525. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2526. $find = 'ő';
  2527. $result = mb_strrchr($string, $find);
  2528. $expected = 'őřļď!';
  2529. $this->assertEqual($result, $expected);
  2530. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2531. $find = 'ő';
  2532. $result = mb_strrchr($string, $find, true);
  2533. $expected = 'Ĥēĺļŏ, Ŵ';
  2534. $this->assertEqual($result, $expected);
  2535. $string = 'Hello, World!';
  2536. $find = 'o';
  2537. $result = mb_strrchr($string, $find);
  2538. $expected = 'orld!';
  2539. $this->assertEqual($result, $expected);
  2540. $string = 'Hello, World!';
  2541. $find = 'o';
  2542. $result = mb_strrchr($string, $find, true);
  2543. $expected = 'Hello, W';
  2544. $this->assertEqual($result, $expected);
  2545. $string = 'Hello, World!';
  2546. $find = 'Wo';
  2547. $result = mb_strrchr($string, $find);
  2548. $expected = 'World!';
  2549. $this->assertEqual($result, $expected);
  2550. $string = 'Hello, World!';
  2551. $find = 'Wo';
  2552. $result = mb_strrchr($string, $find, true);
  2553. $expected = 'Hello, ';
  2554. $this->assertEqual($result, $expected);
  2555. $string = 'Hello, World!';
  2556. $find = 'll';
  2557. $result = mb_strrchr($string, $find);
  2558. $expected = 'llo, World!';
  2559. $this->assertEqual($result, $expected);
  2560. $string = 'Hello, World!';
  2561. $find = 'll';
  2562. $result = mb_strrchr($string, $find, true);
  2563. $expected = 'He';
  2564. $this->assertEqual($result, $expected);
  2565. $string = 'Hello, World!';
  2566. $find = 'rld';
  2567. $result = mb_strrchr($string, $find);
  2568. $expected = 'rld!';
  2569. $this->assertEqual($result, $expected);
  2570. $string = 'Hello, World!';
  2571. $find = 'rld';
  2572. $result = mb_strrchr($string, $find, true);
  2573. $expected = 'Hello, Wo';
  2574. $this->assertEqual($result, $expected);
  2575. $string = 'čini';
  2576. $find = 'n';
  2577. $result = mb_strrchr($string, $find);
  2578. $expected = 'ni';
  2579. $this->assertEqual($result, $expected);
  2580. $string = 'čini';
  2581. $find = 'n';
  2582. $result = mb_strrchr($string, $find, true);
  2583. $expected = 'či';
  2584. $this->assertEqual($result, $expected);
  2585. $string = 'moći';
  2586. $find = 'ć';
  2587. $result = mb_strrchr($string, $find);
  2588. $expected = 'ći';
  2589. $this->assertEqual($result, $expected);
  2590. $string = 'moći';
  2591. $find = 'ć';
  2592. $result = mb_strrchr($string, $find, true);
  2593. $expected = 'mo';
  2594. $this->assertEqual($result, $expected);
  2595. $string = 'državni';
  2596. $find = 'ž';
  2597. $result = mb_strrchr($string, $find);
  2598. $expected = 'žavni';
  2599. $this->assertEqual($result, $expected);
  2600. $string = 'državni';
  2601. $find = 'ž';
  2602. $result = mb_strrchr($string, $find, true);
  2603. $expected = 'dr';
  2604. $this->assertEqual($result, $expected);
  2605. $string = '把百度设为首页';
  2606. $find = '设';
  2607. $result = mb_strrchr($string, $find);
  2608. $expected = '设为首页';
  2609. $this->assertEqual($result, $expected);
  2610. $string = '把百度设为首页';
  2611. $find = '设';
  2612. $result = mb_strrchr($string, $find, true);
  2613. $expected = '把百度';
  2614. $this->assertEqual($result, $expected);
  2615. $string = '一二三周永龍';
  2616. $find = '周';
  2617. $result = mb_strrchr($string, $find);
  2618. $expected = '周永龍';
  2619. $this->assertEqual($result, $expected);
  2620. $string = '一二三周永龍';
  2621. $find = '周';
  2622. $result = mb_strrchr($string, $find, true);
  2623. $expected = '一二三';
  2624. $this->assertEqual($result, $expected);
  2625. $string = '一二三周永龍';
  2626. $find = '周龍';
  2627. $result = mb_strrchr($string, $find, true);
  2628. $expected = false;
  2629. $this->assertEqual($result, $expected);
  2630. }
  2631. /**
  2632. * testMultibyteStrrchr method
  2633. *
  2634. * @access public
  2635. * @return void
  2636. */
  2637. function testMultibyteStrrchr() {
  2638. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  2639. $find = 'F';
  2640. $result = Multibyte::strrchr($string, $find);
  2641. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  2642. $this->assertEqual($result, $expected);
  2643. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  2644. $find = 'F';
  2645. $result = Multibyte::strrchr($string, $find, true);
  2646. $expected = 'ABCDE';
  2647. $this->assertEqual($result, $expected);
  2648. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2649. $find = 'Å';
  2650. $result = Multibyte::strrchr($string, $find);
  2651. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2652. $this->assertEqual($result, $expected);
  2653. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2654. $find = 'Å';
  2655. $result = Multibyte::strrchr($string, $find, true);
  2656. $expected = 'ÀÁÂÃÄ';
  2657. $this->assertEqual($result, $expected);
  2658. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2659. $find = 'Ċ';
  2660. $result = Multibyte::strrchr($string, $find);
  2661. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2662. $this->assertEqual($result, $expected);
  2663. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2664. $find = 'Ċ';
  2665. $result = Multibyte::strrchr($string, $find, true);
  2666. $expected = 'ĀĂĄĆĈ';
  2667. $this->assertEqual($result, $expected);
  2668. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2669. $find = 'F';
  2670. $result = Multibyte::strrchr($string, $find);
  2671. $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2672. $this->assertEqual($result, $expected);
  2673. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2674. $find = 'F';
  2675. $result = Multibyte::strrchr($string, $find, true);
  2676. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
  2677. $this->assertEqual($result, $expected);
  2678. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  2679. $find = 'µ';
  2680. $result = Multibyte::strrchr($string, $find);
  2681. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  2682. $this->assertEqual($result, $expected);
  2683. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  2684. $find = 'µ';
  2685. $result = Multibyte::strrchr($string, $find, true);
  2686. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  2687. $this->assertEqual($result, $expected);
  2688. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  2689. $find = 'Þ';
  2690. $result = Multibyte::strrchr($string, $find);
  2691. $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  2692. $this->assertEqual($result, $expected);
  2693. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  2694. $find = 'Þ';
  2695. $result = Multibyte::strrchr($string, $find, true);
  2696. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
  2697. $this->assertEqual($result, $expected);
  2698. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  2699. $find = 'Ņ';
  2700. $result = Multibyte::strrchr($string, $find);
  2701. $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  2702. $this->assertEqual($result, $expected);
  2703. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  2704. $find = 'Ņ';
  2705. $result = Multibyte::strrchr($string, $find, true);
  2706. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
  2707. $this->assertEqual($result, $expected);
  2708. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  2709. $find = 'Ƹ';
  2710. $result = Multibyte::strrchr($string, $find);
  2711. $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  2712. $this->assertEqual($result, $expected);
  2713. $find = 'Ƹ';
  2714. $result = Multibyte::strrchr($string, $find, true);
  2715. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
  2716. $this->assertEqual($result, $expected);
  2717. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  2718. $find = 'ʀ';
  2719. $result = Multibyte::strrchr($string, $find);
  2720. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  2721. $this->assertEqual($result, $expected);
  2722. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  2723. $find = 'ʀ';
  2724. $result = Multibyte::strrchr($string, $find, true);
  2725. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  2726. $this->assertEqual($result, $expected);
  2727. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  2728. $find = 'Ї';
  2729. $result = Multibyte::strrchr($string, $find);
  2730. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  2731. $this->assertEqual($result, $expected);
  2732. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  2733. $find = 'Ї';
  2734. $result = Multibyte::strrchr($string, $find, true);
  2735. $expected = 'ЀЁЂЃЄЅІ';
  2736. $this->assertEqual($result, $expected);
  2737. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2738. $find = 'Р';
  2739. $result = Multibyte::strrchr($string, $find);
  2740. $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2741. $this->assertEqual($result, $expected);
  2742. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  2743. $find = 'Р';
  2744. $result = Multibyte::strrchr($string, $find, true);
  2745. $expected = 'МНОП';
  2746. $this->assertEqual($result, $expected);
  2747. $string = 'فقكلمنهوىيًٌٍَُ';
  2748. $find = 'ن';
  2749. $result = Multibyte::strrchr($string, $find);
  2750. $expected = 'نهوىيًٌٍَُ';
  2751. $this->assertEqual($result, $expected);
  2752. $string = 'فقكلمنهوىيًٌٍَُ';
  2753. $find = 'ن';
  2754. $result = Multibyte::strrchr($string, $find, true);
  2755. $expected = 'فقكلم';
  2756. $this->assertEqual($result, $expected);
  2757. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  2758. $find = '✿';
  2759. $result = Multibyte::strrchr($string, $find);
  2760. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  2761. $this->assertEqual($result, $expected);
  2762. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  2763. $find = '✿';
  2764. $result = Multibyte::strrchr($string, $find, true);
  2765. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  2766. $this->assertEqual($result, $expected);
  2767. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  2768. $find = '⺐';
  2769. $result = Multibyte::strrchr($string, $find);
  2770. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  2771. $this->assertEqual($result, $expected);
  2772. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  2773. $find = '⺐';
  2774. $result = Multibyte::strrchr($string, $find, true);
  2775. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  2776. $this->assertEqual($result, $expected);
  2777. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  2778. $find = '⽤';
  2779. $result = Multibyte::strrchr($string, $find);
  2780. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  2781. $this->assertEqual($result, $expected);
  2782. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  2783. $find = '⽤';
  2784. $result = Multibyte::strrchr($string, $find, true);
  2785. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  2786. $this->assertEqual($result, $expected);
  2787. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2788. $find = '눻';
  2789. $result = Multibyte::strrchr($string, $find);
  2790. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2791. $this->assertEqual($result, $expected);
  2792. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  2793. $find = '눻';
  2794. $result = Multibyte::strrchr($string, $find, true);
  2795. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  2796. $this->assertEqual($result, $expected);
  2797. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2798. $find = 'ﺞ';
  2799. $result = Multibyte::strrchr($string, $find);
  2800. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2801. $this->assertEqual($result, $expected);
  2802. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  2803. $find = 'ﺞ';
  2804. $result = Multibyte::strrchr($string, $find, true);
  2805. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  2806. $this->assertEqual($result, $expected);
  2807. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2808. $find = 'ﻞ';
  2809. $result = Multibyte::strrchr($string, $find);
  2810. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2811. $this->assertEqual($result, $expected);
  2812. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  2813. $find = 'ﻞ';
  2814. $result = Multibyte::strrchr($string, $find, true);
  2815. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  2816. $this->assertEqual($result, $expected);
  2817. $string = 'abcdefghijklmnopqrstuvwxyz';
  2818. $find = 'k';
  2819. $result = Multibyte::strrchr($string, $find);
  2820. $expected = 'klmnopqrstuvwxyz';
  2821. $this->assertEqual($result, $expected);
  2822. $string = 'abcdefghijklmnopqrstuvwxyz';
  2823. $find = 'k';
  2824. $result = Multibyte::strrchr($string, $find, true);
  2825. $expected = 'abcdefghij';
  2826. $this->assertEqual($result, $expected);
  2827. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  2828. $find = 'ア';
  2829. $result = Multibyte::strrchr($string, $find);
  2830. $expected = 'アイウエオカキク';
  2831. $this->assertEqual($result, $expected);
  2832. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  2833. $find = 'ア';
  2834. $result = Multibyte::strrchr($string, $find, true);
  2835. $expected = '。「」、・ヲァィゥェォャュョッー';
  2836. $this->assertEqual($result, $expected);
  2837. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2838. $find = 'ハ';
  2839. $result = Multibyte::strrchr($string, $find);
  2840. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2841. $this->assertEqual($result, $expected);
  2842. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  2843. $find = 'ハ';
  2844. $result = Multibyte::strrchr($string, $find, true);
  2845. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  2846. $this->assertEqual($result, $expected);
  2847. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2848. $find = 'ő';
  2849. $result = Multibyte::strrchr($string, $find);
  2850. $expected = 'őřļď!';
  2851. $this->assertEqual($result, $expected);
  2852. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  2853. $find = 'ő';
  2854. $result = Multibyte::strrchr($string, $find, true);
  2855. $expected = 'Ĥēĺļŏ, Ŵ';
  2856. $this->assertEqual($result, $expected);
  2857. $string = 'Hello, World!';
  2858. $find = 'o';
  2859. $result = Multibyte::strrchr($string, $find);
  2860. $expected = 'orld!';
  2861. $this->assertEqual($result, $expected);
  2862. $string = 'Hello, World!';
  2863. $find = 'o';
  2864. $result = Multibyte::strrchr($string, $find, true);
  2865. $expected = 'Hello, W';
  2866. $this->assertEqual($result, $expected);
  2867. $string = 'Hello, World!';
  2868. $find = 'Wo';
  2869. $result = Multibyte::strrchr($string, $find);
  2870. $expected = 'World!';
  2871. $this->assertEqual($result, $expected);
  2872. $string = 'Hello, World!';
  2873. $find = 'Wo';
  2874. $result = Multibyte::strrchr($string, $find, true);
  2875. $expected = 'Hello, ';
  2876. $this->assertEqual($result, $expected);
  2877. $string = 'Hello, World!';
  2878. $find = 'll';
  2879. $result = Multibyte::strrchr($string, $find);
  2880. $expected = 'llo, World!';
  2881. $this->assertEqual($result, $expected);
  2882. $string = 'Hello, World!';
  2883. $find = 'll';
  2884. $result = Multibyte::strrchr($string, $find, true);
  2885. $expected = 'He';
  2886. $this->assertEqual($result, $expected);
  2887. $string = 'Hello, World!';
  2888. $find = 'rld';
  2889. $result = Multibyte::strrchr($string, $find);
  2890. $expected = 'rld!';
  2891. $this->assertEqual($result, $expected);
  2892. $string = 'Hello, World!';
  2893. $find = 'rld';
  2894. $result = Multibyte::strrchr($string, $find, true);
  2895. $expected = 'Hello, Wo';
  2896. $this->assertEqual($result, $expected);
  2897. $string = 'čini';
  2898. $find = 'n';
  2899. $result = Multibyte::strrchr($string, $find);
  2900. $expected = 'ni';
  2901. $this->assertEqual($result, $expected);
  2902. $string = 'čini';
  2903. $find = 'n';
  2904. $result = Multibyte::strrchr($string, $find, true);
  2905. $expected = 'či';
  2906. $this->assertEqual($result, $expected);
  2907. $string = 'moći';
  2908. $find = 'ć';
  2909. $result = Multibyte::strrchr($string, $find);
  2910. $expected = 'ći';
  2911. $this->assertEqual($result, $expected);
  2912. $string = 'moći';
  2913. $find = 'ć';
  2914. $result = Multibyte::strrchr($string, $find, true);
  2915. $expected = 'mo';
  2916. $this->assertEqual($result, $expected);
  2917. $string = 'državni';
  2918. $find = 'ž';
  2919. $result = Multibyte::strrchr($string, $find);
  2920. $expected = 'žavni';
  2921. $this->assertEqual($result, $expected);
  2922. $string = 'državni';
  2923. $find = 'ž';
  2924. $result = Multibyte::strrchr($string, $find, true);
  2925. $expected = 'dr';
  2926. $this->assertEqual($result, $expected);
  2927. $string = '把百度设为首页';
  2928. $find = '设';
  2929. $result = Multibyte::strrchr($string, $find);
  2930. $expected = '设为首页';
  2931. $this->assertEqual($result, $expected);
  2932. $string = '把百度设为首页';
  2933. $find = '设';
  2934. $result = Multibyte::strrchr($string, $find, true);
  2935. $expected = '把百度';
  2936. $this->assertEqual($result, $expected);
  2937. $string = '一二三周永龍';
  2938. $find = '周';
  2939. $result = Multibyte::strrchr($string, $find);
  2940. $expected = '周永龍';
  2941. $this->assertEqual($result, $expected);
  2942. $string = '一二三周永龍';
  2943. $find = '周';
  2944. $result = Multibyte::strrchr($string, $find, true);
  2945. $expected = '一二三';
  2946. $this->assertEqual($result, $expected);
  2947. $string = '一二三周永龍';
  2948. $find = '周龍';
  2949. $result = Multibyte::strrchr($string, $find, true);
  2950. $expected = false;
  2951. $this->assertEqual($result, $expected);
  2952. }
  2953. /**
  2954. * testUsingMbStrrichr method
  2955. *
  2956. * @access public
  2957. * @return void
  2958. */
  2959. function testUsingMbStrrichr() {
  2960. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  2961. $find = 'F';
  2962. $result = mb_strrichr($string, $find);
  2963. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  2964. $this->assertEqual($result, $expected);
  2965. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  2966. $find = 'F';
  2967. $result = mb_strrichr($string, $find, true);
  2968. $expected = 'ABCDE';
  2969. $this->assertEqual($result, $expected);
  2970. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2971. $find = 'Å';
  2972. $result = mb_strrichr($string, $find);
  2973. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2974. $this->assertEqual($result, $expected);
  2975. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  2976. $find = 'Å';
  2977. $result = mb_strrichr($string, $find, true);
  2978. $expected = 'ÀÁÂÃÄ';
  2979. $this->assertEqual($result, $expected);
  2980. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2981. $find = 'Ċ';
  2982. $result = mb_strrichr($string, $find);
  2983. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2984. $this->assertEqual($result, $expected);
  2985. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  2986. $find = 'Ċ';
  2987. $result = mb_strrichr($string, $find, true);
  2988. $expected = 'ĀĂĄĆĈ';
  2989. $this->assertEqual($result, $expected);
  2990. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2991. $find = 'F';
  2992. $result = mb_strrichr($string, $find);
  2993. $expected = 'fghijklmnopqrstuvwxyz{|}~';
  2994. $this->assertEqual($result, $expected);
  2995. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  2996. $find = 'F';
  2997. $result = mb_strrichr($string, $find, true);
  2998. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde';
  2999. $this->assertEqual($result, $expected);
  3000. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3001. $find = 'µ';
  3002. $result = mb_strrichr($string, $find);
  3003. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3004. $this->assertEqual($result, $expected);
  3005. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3006. $find = 'µ';
  3007. $result = mb_strrichr($string, $find, true);
  3008. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  3009. $this->assertEqual($result, $expected);
  3010. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3011. $find = 'Þ';
  3012. $result = mb_strrichr($string, $find);
  3013. $expected = 'þÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3014. $this->assertEqual($result, $expected);
  3015. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3016. $find = 'Þ';
  3017. $result = mb_strrichr($string, $find, true);
  3018. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüý';
  3019. $this->assertEqual($result, $expected);
  3020. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3021. $find = 'Ņ';
  3022. $result = mb_strrichr($string, $find);
  3023. $expected = 'ņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3024. $this->assertEqual($result, $expected);
  3025. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3026. $find = 'Ņ';
  3027. $result = mb_strrichr($string, $find, true);
  3028. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅ';
  3029. $this->assertEqual($result, $expected);
  3030. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3031. $find = 'Ƹ';
  3032. $result = mb_strrichr($string, $find);
  3033. $expected = 'ƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3034. $this->assertEqual($result, $expected);
  3035. $find = 'Ƹ';
  3036. $result = mb_strrichr($string, $find, true);
  3037. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸ';
  3038. $this->assertEqual($result, $expected);
  3039. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3040. $find = 'ʀ';
  3041. $result = mb_strrichr($string, $find);
  3042. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3043. $this->assertEqual($result, $expected);
  3044. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3045. $find = 'ʀ';
  3046. $result = mb_strrichr($string, $find, true);
  3047. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  3048. $this->assertEqual($result, $expected);
  3049. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3050. $find = 'Ї';
  3051. $result = mb_strrichr($string, $find);
  3052. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3053. $this->assertEqual($result, $expected);
  3054. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3055. $find = 'Ї';
  3056. $result = mb_strrichr($string, $find, true);
  3057. $expected = 'ЀЁЂЃЄЅІ';
  3058. $this->assertEqual($result, $expected);
  3059. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  3060. $find = 'Р';
  3061. $result = mb_strrichr($string, $find);
  3062. $expected = 'рстуфхцчшщъыь';
  3063. $this->assertEqual($result, $expected);
  3064. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп';
  3065. $find = 'Р';
  3066. $result = mb_strrichr($string, $find, true);
  3067. $expected = 'МНОП';
  3068. $this->assertEqual($result, $expected);
  3069. $string = 'فقكلمنهوىيًٌٍَُ';
  3070. $find = 'ن';
  3071. $result = mb_strrichr($string, $find);
  3072. $expected = 'نهوىيًٌٍَُ';
  3073. $this->assertEqual($result, $expected);
  3074. $string = 'فقكلمنهوىيًٌٍَُ';
  3075. $find = 'ن';
  3076. $result = mb_strrichr($string, $find, true);
  3077. $expected = 'فقكلم';
  3078. $this->assertEqual($result, $expected);
  3079. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3080. $find = '✿';
  3081. $result = mb_strrichr($string, $find);
  3082. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3083. $this->assertEqual($result, $expected);
  3084. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3085. $find = '✿';
  3086. $result = mb_strrichr($string, $find, true);
  3087. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  3088. $this->assertEqual($result, $expected);
  3089. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3090. $find = '⺐';
  3091. $result = mb_strrichr($string, $find);
  3092. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3093. $this->assertEqual($result, $expected);
  3094. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3095. $find = '⺐';
  3096. $result = mb_strrichr($string, $find, true);
  3097. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  3098. $this->assertEqual($result, $expected);
  3099. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3100. $find = '⽤';
  3101. $result = mb_strrichr($string, $find);
  3102. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3103. $this->assertEqual($result, $expected);
  3104. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3105. $find = '⽤';
  3106. $result = mb_strrichr($string, $find, true);
  3107. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  3108. $this->assertEqual($result, $expected);
  3109. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3110. $find = '눻';
  3111. $result = mb_strrichr($string, $find);
  3112. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3113. $this->assertEqual($result, $expected);
  3114. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3115. $find = '눻';
  3116. $result = mb_strrichr($string, $find, true);
  3117. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  3118. $this->assertEqual($result, $expected);
  3119. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3120. $find = 'ﺞ';
  3121. $result = mb_strrichr($string, $find);
  3122. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3123. $this->assertEqual($result, $expected);
  3124. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3125. $find = 'ﺞ';
  3126. $result = mb_strrichr($string, $find, true);
  3127. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  3128. $this->assertEqual($result, $expected);
  3129. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3130. $find = 'ﻞ';
  3131. $result = mb_strrichr($string, $find);
  3132. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3133. $this->assertEqual($result, $expected);
  3134. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3135. $find = 'ﻞ';
  3136. $result = mb_strrichr($string, $find, true);
  3137. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  3138. $this->assertEqual($result, $expected);
  3139. $string = 'abcdefghijklmnopqrstuvwxyz';
  3140. $find = 'k';
  3141. $result = mb_strrichr($string, $find);
  3142. $expected = 'klmnopqrstuvwxyz';
  3143. $this->assertEqual($result, $expected);
  3144. $string = 'abcdefghijklmnopqrstuvwxyz';
  3145. $find = 'k';
  3146. $result = mb_strrichr($string, $find, true);
  3147. $expected = 'abcdefghij';
  3148. $this->assertEqual($result, $expected);
  3149. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  3150. $find = 'ア';
  3151. $result = mb_strrichr($string, $find);
  3152. $expected = 'アイウエオカキク';
  3153. $this->assertEqual($result, $expected);
  3154. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  3155. $find = 'ア';
  3156. $result = mb_strrichr($string, $find, true);
  3157. $expected = '。「」、・ヲァィゥェォャュョッー';
  3158. $this->assertEqual($result, $expected);
  3159. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3160. $find = 'ハ';
  3161. $result = mb_strrichr($string, $find);
  3162. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3163. $this->assertEqual($result, $expected);
  3164. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3165. $find = 'ハ';
  3166. $result = mb_strrichr($string, $find, true);
  3167. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  3168. $this->assertEqual($result, $expected);
  3169. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3170. $find = 'ő';
  3171. $result = mb_strrichr($string, $find);
  3172. $expected = 'őřļď!';
  3173. $this->assertEqual($result, $expected);
  3174. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3175. $find = 'ő';
  3176. $result = mb_strrichr($string, $find, true);
  3177. $expected = 'Ĥēĺļŏ, Ŵ';
  3178. $this->assertEqual($result, $expected);
  3179. $string = 'Hello, World!';
  3180. $find = 'o';
  3181. $result = mb_strrichr($string, $find);
  3182. $expected = 'orld!';
  3183. $this->assertEqual($result, $expected);
  3184. $string = 'Hello, World!';
  3185. $find = 'o';
  3186. $result = mb_strrichr($string, $find, true);
  3187. $expected = 'Hello, W';
  3188. $this->assertEqual($result, $expected);
  3189. $string = 'Hello, World!';
  3190. $find = 'Wo';
  3191. $result = mb_strrichr($string, $find);
  3192. $expected = 'World!';
  3193. $this->assertEqual($result, $expected);
  3194. $string = 'Hello, World!';
  3195. $find = 'Wo';
  3196. $result = mb_strrichr($string, $find, true);
  3197. $expected = 'Hello, ';
  3198. $this->assertEqual($result, $expected);
  3199. $string = 'Hello, World!';
  3200. $find = 'll';
  3201. $result = mb_strrichr($string, $find);
  3202. $expected = 'llo, World!';
  3203. $this->assertEqual($result, $expected);
  3204. $string = 'Hello, World!';
  3205. $find = 'll';
  3206. $result = mb_strrichr($string, $find, true);
  3207. $expected = 'He';
  3208. $this->assertEqual($result, $expected);
  3209. $string = 'Hello, World!';
  3210. $find = 'rld';
  3211. $result = mb_strrichr($string, $find);
  3212. $expected = 'rld!';
  3213. $this->assertEqual($result, $expected);
  3214. $string = 'Hello, World!';
  3215. $find = 'rld';
  3216. $result = mb_strrichr($string, $find, true);
  3217. $expected = 'Hello, Wo';
  3218. $this->assertEqual($result, $expected);
  3219. $string = 'čini';
  3220. $find = 'n';
  3221. $result = mb_strrichr($string, $find);
  3222. $expected = 'ni';
  3223. $this->assertEqual($result, $expected);
  3224. $string = 'čini';
  3225. $find = 'n';
  3226. $result = mb_strrichr($string, $find, true);
  3227. $expected = 'či';
  3228. $this->assertEqual($result, $expected);
  3229. $string = 'moći';
  3230. $find = 'ć';
  3231. $result = mb_strrichr($string, $find);
  3232. $expected = 'ći';
  3233. $this->assertEqual($result, $expected);
  3234. $string = 'moći';
  3235. $find = 'ć';
  3236. $result = mb_strrichr($string, $find, true);
  3237. $expected = 'mo';
  3238. $this->assertEqual($result, $expected);
  3239. $string = 'državni';
  3240. $find = 'ž';
  3241. $result = mb_strrichr($string, $find);
  3242. $expected = 'žavni';
  3243. $this->assertEqual($result, $expected);
  3244. $string = 'državni';
  3245. $find = 'ž';
  3246. $result = mb_strrichr($string, $find, true);
  3247. $expected = 'dr';
  3248. $this->assertEqual($result, $expected);
  3249. $string = '把百度设为首页';
  3250. $find = '设';
  3251. $result = mb_strrichr($string, $find);
  3252. $expected = '设为首页';
  3253. $this->assertEqual($result, $expected);
  3254. $string = '把百度设为首页';
  3255. $find = '设';
  3256. $result = mb_strrichr($string, $find, true);
  3257. $expected = '把百度';
  3258. $this->assertEqual($result, $expected);
  3259. $string = '一二三周永龍';
  3260. $find = '周';
  3261. $result = mb_strrichr($string, $find);
  3262. $expected = '周永龍';
  3263. $this->assertEqual($result, $expected);
  3264. $string = '一二三周永龍';
  3265. $find = '周';
  3266. $result = mb_strrichr($string, $find, true);
  3267. $expected = '一二三';
  3268. $this->assertEqual($result, $expected);
  3269. $string = '把百度设为首页';
  3270. $find = '百设';
  3271. $result = mb_strrichr($string, $find, true);
  3272. $expected = false;
  3273. $this->assertEqual($result, $expected);
  3274. }
  3275. /**
  3276. * testMultibyteStrrichr method
  3277. *
  3278. * @access public
  3279. * @return void
  3280. */
  3281. function testMultibyteStrrichr() {
  3282. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  3283. $find = 'F';
  3284. $result = Multibyte::strrichr($string, $find);
  3285. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  3286. $this->assertEqual($result, $expected);
  3287. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  3288. $find = 'F';
  3289. $result = Multibyte::strrichr($string, $find, true);
  3290. $expected = 'ABCDE';
  3291. $this->assertEqual($result, $expected);
  3292. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  3293. $find = 'Å';
  3294. $result = Multibyte::strrichr($string, $find);
  3295. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  3296. $this->assertEqual($result, $expected);
  3297. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  3298. $find = 'Å';
  3299. $result = Multibyte::strrichr($string, $find, true);
  3300. $expected = 'ÀÁÂÃÄ';
  3301. $this->assertEqual($result, $expected);
  3302. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  3303. $find = 'Ċ';
  3304. $result = Multibyte::strrichr($string, $find);
  3305. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  3306. $this->assertEqual($result, $expected);
  3307. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  3308. $find = 'Ċ';
  3309. $result = Multibyte::strrichr($string, $find, true);
  3310. $expected = 'ĀĂĄĆĈ';
  3311. $this->assertEqual($result, $expected);
  3312. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  3313. $find = 'F';
  3314. $result = Multibyte::strrichr($string, $find);
  3315. $expected = 'fghijklmnopqrstuvwxyz{|}~';
  3316. $this->assertEqual($result, $expected);
  3317. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  3318. $find = 'F';
  3319. $result = Multibyte::strrichr($string, $find, true);
  3320. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde';
  3321. $this->assertEqual($result, $expected);
  3322. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3323. $find = 'µ';
  3324. $result = Multibyte::strrichr($string, $find);
  3325. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3326. $this->assertEqual($result, $expected);
  3327. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3328. $find = 'µ';
  3329. $result = Multibyte::strrichr($string, $find, true);
  3330. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  3331. $this->assertEqual($result, $expected);
  3332. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3333. $find = 'Þ';
  3334. $result = Multibyte::strrichr($string, $find);
  3335. $expected = 'þÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3336. $this->assertEqual($result, $expected);
  3337. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3338. $find = 'Þ';
  3339. $result = Multibyte::strrichr($string, $find, true);
  3340. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüý';
  3341. $this->assertEqual($result, $expected);
  3342. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3343. $find = 'Ņ';
  3344. $result = Multibyte::strrichr($string, $find);
  3345. $expected = 'ņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3346. $this->assertEqual($result, $expected);
  3347. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3348. $find = 'Ņ';
  3349. $result = Multibyte::strrichr($string, $find, true);
  3350. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅ';
  3351. $this->assertEqual($result, $expected);
  3352. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3353. $find = 'Ƹ';
  3354. $result = Multibyte::strrichr($string, $find);
  3355. $expected = 'ƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3356. $this->assertEqual($result, $expected);
  3357. $find = 'Ƹ';
  3358. $result = Multibyte::strrichr($string, $find, true);
  3359. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸ';
  3360. $this->assertEqual($result, $expected);
  3361. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3362. $find = 'ʀ';
  3363. $result = Multibyte::strrichr($string, $find);
  3364. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3365. $this->assertEqual($result, $expected);
  3366. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3367. $find = 'ʀ';
  3368. $result = Multibyte::strrichr($string, $find, true);
  3369. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  3370. $this->assertEqual($result, $expected);
  3371. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3372. $find = 'Ї';
  3373. $result = Multibyte::strrichr($string, $find);
  3374. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3375. $this->assertEqual($result, $expected);
  3376. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3377. $find = 'Ї';
  3378. $result = Multibyte::strrichr($string, $find, true);
  3379. $expected = 'ЀЁЂЃЄЅІ';
  3380. $this->assertEqual($result, $expected);
  3381. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  3382. $find = 'Р';
  3383. $result = Multibyte::strrichr($string, $find);
  3384. $expected = 'рстуфхцчшщъыь';
  3385. $this->assertEqual($result, $expected);
  3386. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп';
  3387. $find = 'Р';
  3388. $result = Multibyte::strrichr($string, $find, true);
  3389. $expected = 'МНОП';
  3390. $this->assertEqual($result, $expected);
  3391. $string = 'فقكلمنهوىيًٌٍَُ';
  3392. $find = 'ن';
  3393. $result = Multibyte::strrichr($string, $find);
  3394. $expected = 'نهوىيًٌٍَُ';
  3395. $this->assertEqual($result, $expected);
  3396. $string = 'فقكلمنهوىيًٌٍَُ';
  3397. $find = 'ن';
  3398. $result = Multibyte::strrichr($string, $find, true);
  3399. $expected = 'فقكلم';
  3400. $this->assertEqual($result, $expected);
  3401. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3402. $find = '✿';
  3403. $result = Multibyte::strrichr($string, $find);
  3404. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3405. $this->assertEqual($result, $expected);
  3406. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3407. $find = '✿';
  3408. $result = Multibyte::strrichr($string, $find, true);
  3409. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  3410. $this->assertEqual($result, $expected);
  3411. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3412. $find = '⺐';
  3413. $result = Multibyte::strrichr($string, $find);
  3414. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3415. $this->assertEqual($result, $expected);
  3416. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3417. $find = '⺐';
  3418. $result = Multibyte::strrichr($string, $find, true);
  3419. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  3420. $this->assertEqual($result, $expected);
  3421. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3422. $find = '⽤';
  3423. $result = Multibyte::strrichr($string, $find);
  3424. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3425. $this->assertEqual($result, $expected);
  3426. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3427. $find = '⽤';
  3428. $result = Multibyte::strrichr($string, $find, true);
  3429. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  3430. $this->assertEqual($result, $expected);
  3431. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3432. $find = '눻';
  3433. $result = Multibyte::strrichr($string, $find);
  3434. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3435. $this->assertEqual($result, $expected);
  3436. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3437. $find = '눻';
  3438. $result = Multibyte::strrichr($string, $find, true);
  3439. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  3440. $this->assertEqual($result, $expected);
  3441. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3442. $find = 'ﺞ';
  3443. $result = Multibyte::strrichr($string, $find);
  3444. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3445. $this->assertEqual($result, $expected);
  3446. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3447. $find = 'ﺞ';
  3448. $result = Multibyte::strrichr($string, $find, true);
  3449. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  3450. $this->assertEqual($result, $expected);
  3451. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3452. $find = 'ﻞ';
  3453. $result = Multibyte::strrichr($string, $find);
  3454. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3455. $this->assertEqual($result, $expected);
  3456. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3457. $find = 'ﻞ';
  3458. $result = Multibyte::strrichr($string, $find, true);
  3459. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  3460. $this->assertEqual($result, $expected);
  3461. $string = 'abcdefghijklmnopqrstuvwxyz';
  3462. $find = 'k';
  3463. $result = Multibyte::strrichr($string, $find);
  3464. $expected = 'klmnopqrstuvwxyz';
  3465. $this->assertEqual($result, $expected);
  3466. $string = 'abcdefghijklmnopqrstuvwxyz';
  3467. $find = 'k';
  3468. $result = Multibyte::strrichr($string, $find, true);
  3469. $expected = 'abcdefghij';
  3470. $this->assertEqual($result, $expected);
  3471. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  3472. $find = 'ア';
  3473. $result = Multibyte::strrichr($string, $find);
  3474. $expected = 'アイウエオカキク';
  3475. $this->assertEqual($result, $expected);
  3476. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  3477. $find = 'ア';
  3478. $result = Multibyte::strrichr($string, $find, true);
  3479. $expected = '。「」、・ヲァィゥェォャュョッー';
  3480. $this->assertEqual($result, $expected);
  3481. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3482. $find = 'ハ';
  3483. $result = Multibyte::strrichr($string, $find);
  3484. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3485. $this->assertEqual($result, $expected);
  3486. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3487. $find = 'ハ';
  3488. $result = Multibyte::strrichr($string, $find, true);
  3489. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  3490. $this->assertEqual($result, $expected);
  3491. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3492. $find = 'ő';
  3493. $result = Multibyte::strrichr($string, $find);
  3494. $expected = 'őřļď!';
  3495. $this->assertEqual($result, $expected);
  3496. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3497. $find = 'ő';
  3498. $result = Multibyte::strrichr($string, $find, true);
  3499. $expected = 'Ĥēĺļŏ, Ŵ';
  3500. $this->assertEqual($result, $expected);
  3501. $string = 'Hello, World!';
  3502. $find = 'o';
  3503. $result = Multibyte::strrichr($string, $find);
  3504. $expected = 'orld!';
  3505. $this->assertEqual($result, $expected);
  3506. $string = 'Hello, World!';
  3507. $find = 'o';
  3508. $result = Multibyte::strrichr($string, $find, true);
  3509. $expected = 'Hello, W';
  3510. $this->assertEqual($result, $expected);
  3511. $string = 'Hello, World!';
  3512. $find = 'Wo';
  3513. $result = Multibyte::strrichr($string, $find);
  3514. $expected = 'World!';
  3515. $this->assertEqual($result, $expected);
  3516. $string = 'Hello, World!';
  3517. $find = 'Wo';
  3518. $result = Multibyte::strrichr($string, $find, true);
  3519. $expected = 'Hello, ';
  3520. $this->assertEqual($result, $expected);
  3521. $string = 'Hello, World!';
  3522. $find = 'll';
  3523. $result = Multibyte::strrichr($string, $find);
  3524. $expected = 'llo, World!';
  3525. $this->assertEqual($result, $expected);
  3526. $string = 'Hello, World!';
  3527. $find = 'll';
  3528. $result = Multibyte::strrichr($string, $find, true);
  3529. $expected = 'He';
  3530. $this->assertEqual($result, $expected);
  3531. $string = 'Hello, World!';
  3532. $find = 'rld';
  3533. $result = Multibyte::strrichr($string, $find);
  3534. $expected = 'rld!';
  3535. $this->assertEqual($result, $expected);
  3536. $string = 'Hello, World!';
  3537. $find = 'rld';
  3538. $result = Multibyte::strrichr($string, $find, true);
  3539. $expected = 'Hello, Wo';
  3540. $this->assertEqual($result, $expected);
  3541. $string = 'čini';
  3542. $find = 'n';
  3543. $result = Multibyte::strrichr($string, $find);
  3544. $expected = 'ni';
  3545. $this->assertEqual($result, $expected);
  3546. $string = 'čini';
  3547. $find = 'n';
  3548. $result = Multibyte::strrichr($string, $find, true);
  3549. $expected = 'či';
  3550. $this->assertEqual($result, $expected);
  3551. $string = 'moći';
  3552. $find = 'ć';
  3553. $result = Multibyte::strrichr($string, $find);
  3554. $expected = 'ći';
  3555. $this->assertEqual($result, $expected);
  3556. $string = 'moći';
  3557. $find = 'ć';
  3558. $result = Multibyte::strrichr($string, $find, true);
  3559. $expected = 'mo';
  3560. $this->assertEqual($result, $expected);
  3561. $string = 'državni';
  3562. $find = 'ž';
  3563. $result = Multibyte::strrichr($string, $find);
  3564. $expected = 'žavni';
  3565. $this->assertEqual($result, $expected);
  3566. $string = 'državni';
  3567. $find = 'ž';
  3568. $result = Multibyte::strrichr($string, $find, true);
  3569. $expected = 'dr';
  3570. $this->assertEqual($result, $expected);
  3571. $string = '把百度设为首页';
  3572. $find = '设';
  3573. $result = Multibyte::strrichr($string, $find);
  3574. $expected = '设为首页';
  3575. $this->assertEqual($result, $expected);
  3576. $string = '把百度设为首页';
  3577. $find = '设';
  3578. $result = Multibyte::strrichr($string, $find, true);
  3579. $expected = '把百度';
  3580. $this->assertEqual($result, $expected);
  3581. $string = '一二三周永龍';
  3582. $find = '周';
  3583. $result = Multibyte::strrichr($string, $find);
  3584. $expected = '周永龍';
  3585. $this->assertEqual($result, $expected);
  3586. $string = '一二三周永龍';
  3587. $find = '周';
  3588. $result = Multibyte::strrichr($string, $find, true);
  3589. $expected = '一二三';
  3590. $this->assertEqual($result, $expected);
  3591. $string = '把百度设为首页';
  3592. $find = '百设';
  3593. $result = Multibyte::strrichr($string, $find, true);
  3594. $expected = false;
  3595. $this->assertEqual($result, $expected);
  3596. }
  3597. /**
  3598. * testUsingMbStrripos method
  3599. *
  3600. * @access public
  3601. * @return void
  3602. */
  3603. function testUsingMbStrripos() {
  3604. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  3605. $find = 'F';
  3606. $result = mb_strripos($string, $find);
  3607. $expected = 5;
  3608. $this->assertEqual($result, $expected);
  3609. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  3610. $find = 'F';
  3611. $result = mb_strripos($string, $find, 6);
  3612. $expected = 17;
  3613. $this->assertEqual($result, $expected);
  3614. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  3615. $find = 'Å';
  3616. $result = mb_strripos($string, $find);
  3617. $expected = 5;
  3618. $this->assertEqual($result, $expected);
  3619. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  3620. $find = 'Å';
  3621. $result = mb_strripos($string, $find, 6);
  3622. $expected = 24;
  3623. $this->assertEqual($result, $expected);
  3624. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  3625. $find = 'ÓÔ';
  3626. $result = mb_strripos($string, $find);
  3627. $expected = 19;
  3628. $this->assertEqual($result, $expected);
  3629. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  3630. $find = 'Ċ';
  3631. $result = mb_strripos($string, $find);
  3632. $expected = 5;
  3633. $this->assertEqual($result, $expected);
  3634. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  3635. $find = 'Ċ';
  3636. $result = mb_strripos($string, $find, 6);
  3637. $expected = 32;
  3638. $this->assertEqual($result, $expected);
  3639. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  3640. $find = 'F';
  3641. $result = mb_strripos($string, $find);
  3642. $expected = 69;
  3643. $this->assertEqual($result, $expected);
  3644. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3645. $find = 'µ';
  3646. $result = mb_strripos($string, $find);
  3647. $expected = 20;
  3648. $this->assertEqual($result, $expected);
  3649. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3650. $find = 'é';
  3651. $result = mb_strripos($string, $find);
  3652. $expected = 32;
  3653. $this->assertEqual($result, $expected);
  3654. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3655. $find = 'Ņ';
  3656. $result = mb_strripos($string, $find);
  3657. $expected = 25;
  3658. $this->assertEqual($result, $expected);
  3659. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3660. $find = 'Ƹ';
  3661. $result = mb_strripos($string, $find);
  3662. $expected = 40;
  3663. $this->assertEqual($result, $expected);
  3664. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3665. $find = 'ƹ';
  3666. $result = mb_strripos($string, $find);
  3667. $expected = 40;
  3668. $this->assertEqual($result, $expected);
  3669. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3670. $find = 'ʀ';
  3671. $result = mb_strripos($string, $find);
  3672. $expected = 39;
  3673. $this->assertEqual($result, $expected);
  3674. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3675. $find = 'Ї';
  3676. $result = mb_strripos($string, $find);
  3677. $expected = 7;
  3678. $this->assertEqual($result, $expected);
  3679. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  3680. $find = 'Р';
  3681. $result = mb_strripos($string, $find);
  3682. $expected = 36;
  3683. $this->assertEqual($result, $expected);
  3684. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  3685. $find = 'р';
  3686. $result = mb_strripos($string, $find, 5);
  3687. $expected = 36;
  3688. $this->assertEqual($result, $expected);
  3689. $string = 'فقكلمنهوىيًٌٍَُ';
  3690. $find = 'ن';
  3691. $result = mb_strripos($string, $find);
  3692. $expected = 5;
  3693. $this->assertEqual($result, $expected);
  3694. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3695. $find = '✿';
  3696. $result = mb_strripos($string, $find);
  3697. $expected = 15;
  3698. $this->assertEqual($result, $expected);
  3699. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3700. $find = '⺐';
  3701. $result = mb_strripos($string, $find);
  3702. $expected = 16;
  3703. $this->assertEqual($result, $expected);
  3704. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3705. $find = '⽤';
  3706. $result = mb_strripos($string, $find);
  3707. $expected = 31;
  3708. $this->assertEqual($result, $expected);
  3709. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3710. $find = '눻';
  3711. $result = mb_strripos($string, $find);
  3712. $expected = 26;
  3713. $this->assertEqual($result, $expected);
  3714. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3715. $find = 'ﺞ';
  3716. $result = mb_strripos($string, $find);
  3717. $expected = 46;
  3718. $this->assertEqual($result, $expected);
  3719. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3720. $find = 'ﻞ';
  3721. $result = mb_strripos($string, $find);
  3722. $expected = 45;
  3723. $this->assertEqual($result, $expected);
  3724. $string = 'abcdefghijklmnopqrstuvwxyz';
  3725. $find = 'k';
  3726. $result = mb_strripos($string, $find);
  3727. $expected = 10;
  3728. $this->assertEqual($result, $expected);
  3729. $string = 'abcdefghijklmnopqrstuvwxyz';
  3730. $find = 'k';
  3731. $result = mb_strripos($string, $find);
  3732. $expected = 10;
  3733. $this->assertEqual($result, $expected);
  3734. $string = 'abcdefghijklmnoppqrstuvwxyz';
  3735. $find = 'pp';
  3736. $result = mb_strripos($string, $find);
  3737. $expected = 15;
  3738. $this->assertEqual($result, $expected);
  3739. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  3740. $find = 'ア';
  3741. $result = mb_strripos($string, $find);
  3742. $expected = 16;
  3743. $this->assertEqual($result, $expected);
  3744. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3745. $find = 'ハ';
  3746. $result = mb_strripos($string, $find);
  3747. $expected = 17;
  3748. $this->assertEqual($result, $expected);
  3749. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3750. $find = 'ő';
  3751. $result = mb_strripos($string, $find);
  3752. $expected = 8;
  3753. $this->assertEqual($result, $expected);
  3754. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3755. $find = 'ő';
  3756. $result = mb_strripos($string, $find);
  3757. $expected = 8;
  3758. $this->assertEqual($result, $expected);
  3759. $string = 'Hello, World!';
  3760. $find = 'o';
  3761. $result = mb_strripos($string, $find);
  3762. $expected = 8;
  3763. $this->assertEqual($result, $expected);
  3764. $string = 'Hello, World!';
  3765. $find = 'o';
  3766. $result = mb_strripos($string, $find, 5);
  3767. $expected = 8;
  3768. $this->assertEqual($result, $expected);
  3769. $string = 'čini';
  3770. $find = 'n';
  3771. $result = mb_strripos($string, $find);
  3772. $expected = 2;
  3773. $this->assertEqual($result, $expected);
  3774. $string = 'čini';
  3775. $find = 'n';
  3776. $result = mb_strripos($string, $find);
  3777. $expected = 2;
  3778. $this->assertEqual($result, $expected);
  3779. $string = 'moći';
  3780. $find = 'ć';
  3781. $result = mb_strripos($string, $find);
  3782. $expected = 2;
  3783. $this->assertEqual($result, $expected);
  3784. $string = 'moći';
  3785. $find = 'ć';
  3786. $result = mb_strripos($string, $find);
  3787. $expected = 2;
  3788. $this->assertEqual($result, $expected);
  3789. $string = 'državni';
  3790. $find = 'ž';
  3791. $result = mb_strripos($string, $find);
  3792. $expected = 2;
  3793. $this->assertEqual($result, $expected);
  3794. $string = '把百度设为首页';
  3795. $find = '设';
  3796. $result = mb_strripos($string, $find);
  3797. $expected = 3;
  3798. $this->assertEqual($result, $expected);
  3799. $string = '一二三周永龍';
  3800. $find = '周';
  3801. $result = mb_strripos($string, $find);
  3802. $expected = 3;
  3803. $this->assertEqual($result, $expected);
  3804. $string = 'državni';
  3805. $find = 'dž';
  3806. $result = mb_strripos($string, $find);
  3807. $expected = false;
  3808. $this->assertEqual($result, $expected);
  3809. }
  3810. /**
  3811. * testMultibyteStrripos method
  3812. *
  3813. * @access public
  3814. * @return void
  3815. */
  3816. function testMultibyteStrripos() {
  3817. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  3818. $find = 'F';
  3819. $result = Multibyte::strripos($string, $find);
  3820. $expected = 5;
  3821. $this->assertEqual($result, $expected);
  3822. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  3823. $find = 'F';
  3824. $result = Multibyte::strripos($string, $find, 6);
  3825. $expected = 17;
  3826. $this->assertEqual($result, $expected);
  3827. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  3828. $find = 'Å';
  3829. $result = Multibyte::strripos($string, $find);
  3830. $expected = 5;
  3831. $this->assertEqual($result, $expected);
  3832. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  3833. $find = 'Å';
  3834. $result = Multibyte::strripos($string, $find, 6);
  3835. $expected = 24;
  3836. $this->assertEqual($result, $expected);
  3837. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  3838. $find = 'ÓÔ';
  3839. $result = Multibyte::strripos($string, $find);
  3840. $expected = 19;
  3841. $this->assertEqual($result, $expected);
  3842. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  3843. $find = 'Ċ';
  3844. $result = Multibyte::strripos($string, $find);
  3845. $expected = 5;
  3846. $this->assertEqual($result, $expected);
  3847. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  3848. $find = 'Ċ';
  3849. $result = Multibyte::strripos($string, $find, 6);
  3850. $expected = 32;
  3851. $this->assertEqual($result, $expected);
  3852. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  3853. $find = 'F';
  3854. $result = Multibyte::strripos($string, $find);
  3855. $expected = 69;
  3856. $this->assertEqual($result, $expected);
  3857. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  3858. $find = 'µ';
  3859. $result = Multibyte::strripos($string, $find);
  3860. $expected = 20;
  3861. $this->assertEqual($result, $expected);
  3862. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  3863. $find = 'é';
  3864. $result = Multibyte::strripos($string, $find);
  3865. $expected = 32;
  3866. $this->assertEqual($result, $expected);
  3867. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  3868. $find = 'Ņ';
  3869. $result = Multibyte::strripos($string, $find);
  3870. $expected = 25;
  3871. $this->assertEqual($result, $expected);
  3872. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3873. $find = 'Ƹ';
  3874. $result = Multibyte::strripos($string, $find);
  3875. $expected = 40;
  3876. $this->assertEqual($result, $expected);
  3877. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  3878. $find = 'ƹ';
  3879. $result = Multibyte::strripos($string, $find);
  3880. $expected = 40;
  3881. $this->assertEqual($result, $expected);
  3882. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  3883. $find = 'ʀ';
  3884. $result = Multibyte::strripos($string, $find);
  3885. $expected = 39;
  3886. $this->assertEqual($result, $expected);
  3887. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  3888. $find = 'Ї';
  3889. $result = Multibyte::strripos($string, $find);
  3890. $expected = 7;
  3891. $this->assertEqual($result, $expected);
  3892. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  3893. $find = 'Р';
  3894. $result = Multibyte::strripos($string, $find);
  3895. $expected = 36;
  3896. $this->assertEqual($result, $expected);
  3897. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  3898. $find = 'р';
  3899. $result = Multibyte::strripos($string, $find, 5);
  3900. $expected = 36;
  3901. $this->assertEqual($result, $expected);
  3902. $string = 'فقكلمنهوىيًٌٍَُ';
  3903. $find = 'ن';
  3904. $result = Multibyte::strripos($string, $find);
  3905. $expected = 5;
  3906. $this->assertEqual($result, $expected);
  3907. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  3908. $find = '✿';
  3909. $result = Multibyte::strripos($string, $find);
  3910. $expected = 15;
  3911. $this->assertEqual($result, $expected);
  3912. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  3913. $find = '⺐';
  3914. $result = Multibyte::strripos($string, $find);
  3915. $expected = 16;
  3916. $this->assertEqual($result, $expected);
  3917. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  3918. $find = '⽤';
  3919. $result = Multibyte::strripos($string, $find);
  3920. $expected = 31;
  3921. $this->assertEqual($result, $expected);
  3922. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  3923. $find = '눻';
  3924. $result = Multibyte::strripos($string, $find);
  3925. $expected = 26;
  3926. $this->assertEqual($result, $expected);
  3927. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  3928. $find = 'ﺞ';
  3929. $result = Multibyte::strripos($string, $find);
  3930. $expected = 46;
  3931. $this->assertEqual($result, $expected);
  3932. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  3933. $find = 'ﻞ';
  3934. $result = Multibyte::strripos($string, $find);
  3935. $expected = 45;
  3936. $this->assertEqual($result, $expected);
  3937. $string = 'abcdefghijklmnopqrstuvwxyz';
  3938. $find = 'k';
  3939. $result = Multibyte::strripos($string, $find);
  3940. $expected = 10;
  3941. $this->assertEqual($result, $expected);
  3942. $string = 'abcdefghijklmnopqrstuvwxyz';
  3943. $find = 'k';
  3944. $result = Multibyte::strripos($string, $find);
  3945. $expected = 10;
  3946. $this->assertEqual($result, $expected);
  3947. $string = 'abcdefghijklmnoppqrstuvwxyz';
  3948. $find = 'pp';
  3949. $result = Multibyte::strripos($string, $find);
  3950. $expected = 15;
  3951. $this->assertEqual($result, $expected);
  3952. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  3953. $find = 'ア';
  3954. $result = Multibyte::strripos($string, $find);
  3955. $expected = 16;
  3956. $this->assertEqual($result, $expected);
  3957. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  3958. $find = 'ハ';
  3959. $result = Multibyte::strripos($string, $find);
  3960. $expected = 17;
  3961. $this->assertEqual($result, $expected);
  3962. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3963. $find = 'ő';
  3964. $result = Multibyte::strripos($string, $find);
  3965. $expected = 8;
  3966. $this->assertEqual($result, $expected);
  3967. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  3968. $find = 'ő';
  3969. $result = Multibyte::strripos($string, $find);
  3970. $expected = 8;
  3971. $this->assertEqual($result, $expected);
  3972. $string = 'Hello, World!';
  3973. $find = 'o';
  3974. $result = Multibyte::strripos($string, $find);
  3975. $expected = 8;
  3976. $this->assertEqual($result, $expected);
  3977. $string = 'Hello, World!';
  3978. $find = 'o';
  3979. $result = Multibyte::strripos($string, $find, 5);
  3980. $expected = 8;
  3981. $this->assertEqual($result, $expected);
  3982. $string = 'čini';
  3983. $find = 'n';
  3984. $result = Multibyte::strripos($string, $find);
  3985. $expected = 2;
  3986. $this->assertEqual($result, $expected);
  3987. $string = 'čini';
  3988. $find = 'n';
  3989. $result = Multibyte::strripos($string, $find);
  3990. $expected = 2;
  3991. $this->assertEqual($result, $expected);
  3992. $string = 'moći';
  3993. $find = 'ć';
  3994. $result = Multibyte::strripos($string, $find);
  3995. $expected = 2;
  3996. $this->assertEqual($result, $expected);
  3997. $string = 'moći';
  3998. $find = 'ć';
  3999. $result = Multibyte::strripos($string, $find);
  4000. $expected = 2;
  4001. $this->assertEqual($result, $expected);
  4002. $string = 'državni';
  4003. $find = 'ž';
  4004. $result = Multibyte::strripos($string, $find);
  4005. $expected = 2;
  4006. $this->assertEqual($result, $expected);
  4007. $string = '把百度设为首页';
  4008. $find = '设';
  4009. $result = Multibyte::strripos($string, $find);
  4010. $expected = 3;
  4011. $this->assertEqual($result, $expected);
  4012. $string = '一二三周永龍';
  4013. $find = '周';
  4014. $result = Multibyte::strripos($string, $find);
  4015. $expected = 3;
  4016. $this->assertEqual($result, $expected);
  4017. $string = 'državni';
  4018. $find = 'dž';
  4019. $result = Multibyte::strripos($string, $find);
  4020. $expected = false;
  4021. $this->assertEqual($result, $expected);
  4022. }
  4023. /**
  4024. * testUsingMbStrrpos method
  4025. *
  4026. * @access public
  4027. * @return void
  4028. */
  4029. function testUsingMbStrrpos() {
  4030. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  4031. $find = 'F';
  4032. $result = mb_strrpos($string, $find);
  4033. $expected = 5;
  4034. $this->assertEqual($result, $expected);
  4035. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  4036. $find = 'F';
  4037. $result = mb_strrpos($string, $find, 6);
  4038. $expected = 17;
  4039. $this->assertEqual($result, $expected);
  4040. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4041. $find = 'Å';
  4042. $result = mb_strrpos($string, $find);
  4043. $expected = 5;
  4044. $this->assertEqual($result, $expected);
  4045. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  4046. $find = 'ÙÚ';
  4047. $result = mb_strrpos($string, $find);
  4048. $expected = 25;
  4049. $this->assertEqual($result, $expected);
  4050. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  4051. $find = 'Å';
  4052. $result = mb_strrpos($string, $find, 6);
  4053. $expected = 24;
  4054. $this->assertEqual($result, $expected);
  4055. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4056. $find = 'Ċ';
  4057. $result = mb_strrpos($string, $find);
  4058. $expected = 5;
  4059. $this->assertEqual($result, $expected);
  4060. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4061. $find = 'Ċ';
  4062. $result = mb_strrpos($string, $find, 6);
  4063. $expected = 32;
  4064. $this->assertEqual($result, $expected);
  4065. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4066. $find = 'F';
  4067. $result = mb_strrpos($string, $find);
  4068. $expected = 37;
  4069. $this->assertEqual($result, $expected);
  4070. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4071. $find = 'µ';
  4072. $result = mb_strrpos($string, $find);
  4073. $expected = 20;
  4074. $this->assertEqual($result, $expected);
  4075. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4076. $find = 'é';
  4077. $result = mb_strrpos($string, $find);
  4078. $expected = 32;
  4079. $this->assertEqual($result, $expected);
  4080. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4081. $find = 'Ņ';
  4082. $result = mb_strrpos($string, $find);
  4083. $expected = 24;
  4084. $this->assertEqual($result, $expected);
  4085. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4086. $find = 'Ƹ';
  4087. $result = mb_strrpos($string, $find);
  4088. $expected = 39;
  4089. $this->assertEqual($result, $expected);
  4090. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4091. $find = 'ƹ';
  4092. $result = mb_strrpos($string, $find);
  4093. $expected = 40;
  4094. $this->assertEqual($result, $expected);
  4095. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4096. $find = 'ʀ';
  4097. $result = mb_strrpos($string, $find);
  4098. $expected = 39;
  4099. $this->assertEqual($result, $expected);
  4100. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4101. $find = 'Ї';
  4102. $result = mb_strrpos($string, $find);
  4103. $expected = 7;
  4104. $this->assertEqual($result, $expected);
  4105. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4106. $find = 'Р';
  4107. $result = mb_strrpos($string, $find);
  4108. $expected = 4;
  4109. $this->assertEqual($result, $expected);
  4110. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4111. $find = 'р';
  4112. $result = mb_strrpos($string, $find, 5);
  4113. $expected = 36;
  4114. $this->assertEqual($result, $expected);
  4115. $string = 'فقكلمنهوىيًٌٍَُ';
  4116. $find = 'ن';
  4117. $result = mb_strrpos($string, $find);
  4118. $expected = 5;
  4119. $this->assertEqual($result, $expected);
  4120. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4121. $find = '✿';
  4122. $result = mb_strrpos($string, $find);
  4123. $expected = 15;
  4124. $this->assertEqual($result, $expected);
  4125. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4126. $find = '⺐';
  4127. $result = mb_strrpos($string, $find);
  4128. $expected = 16;
  4129. $this->assertEqual($result, $expected);
  4130. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4131. $find = '⽤';
  4132. $result = mb_strrpos($string, $find);
  4133. $expected = 31;
  4134. $this->assertEqual($result, $expected);
  4135. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4136. $find = '눻';
  4137. $result = mb_strrpos($string, $find);
  4138. $expected = 26;
  4139. $this->assertEqual($result, $expected);
  4140. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4141. $find = 'ﺞ';
  4142. $result = mb_strrpos($string, $find);
  4143. $expected = 46;
  4144. $this->assertEqual($result, $expected);
  4145. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4146. $find = 'ﻞ';
  4147. $result = mb_strrpos($string, $find);
  4148. $expected = 45;
  4149. $this->assertEqual($result, $expected);
  4150. $string = 'abcdefghijklmnopqrstuvwxyz';
  4151. $find = 'k';
  4152. $result = mb_strrpos($string, $find);
  4153. $expected = 10;
  4154. $this->assertEqual($result, $expected);
  4155. $string = 'abcdefghijklmnopqrstuvwxyz';
  4156. $find = 'k';
  4157. $result = mb_strrpos($string, $find);
  4158. $expected = 10;
  4159. $this->assertEqual($result, $expected);
  4160. $string = 'abcdefghijklmnoppqrstuvwxyz';
  4161. $find = 'pp';
  4162. $result = mb_strrpos($string, $find);
  4163. $expected = 15;
  4164. $this->assertEqual($result, $expected);
  4165. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  4166. $find = 'ア';
  4167. $result = mb_strrpos($string, $find);
  4168. $expected = 16;
  4169. $this->assertEqual($result, $expected);
  4170. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4171. $find = 'ハ';
  4172. $result = mb_strrpos($string, $find);
  4173. $expected = 17;
  4174. $this->assertEqual($result, $expected);
  4175. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4176. $find = 'ő';
  4177. $result = mb_strrpos($string, $find);
  4178. $expected = 8;
  4179. $this->assertEqual($result, $expected);
  4180. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4181. $find = 'ő';
  4182. $result = mb_strrpos($string, $find);
  4183. $expected = 8;
  4184. $this->assertEqual($result, $expected);
  4185. $string = 'Hello, World!';
  4186. $find = 'o';
  4187. $result = mb_strrpos($string, $find);
  4188. $expected = 8;
  4189. $this->assertEqual($result, $expected);
  4190. $string = 'Hello, World!';
  4191. $find = 'o';
  4192. $result = mb_strrpos($string, $find, 5);
  4193. $expected = 8;
  4194. $this->assertEqual($result, $expected);
  4195. $string = 'čini';
  4196. $find = 'n';
  4197. $result = mb_strrpos($string, $find);
  4198. $expected = 2;
  4199. $this->assertEqual($result, $expected);
  4200. $string = 'čini';
  4201. $find = 'n';
  4202. $result = mb_strrpos($string, $find);
  4203. $expected = 2;
  4204. $this->assertEqual($result, $expected);
  4205. $string = 'moći';
  4206. $find = 'ć';
  4207. $result = mb_strrpos($string, $find);
  4208. $expected = 2;
  4209. $this->assertEqual($result, $expected);
  4210. $string = 'moći';
  4211. $find = 'ć';
  4212. $result = mb_strrpos($string, $find);
  4213. $expected = 2;
  4214. $this->assertEqual($result, $expected);
  4215. $string = 'državni';
  4216. $find = 'ž';
  4217. $result = mb_strrpos($string, $find);
  4218. $expected = 2;
  4219. $this->assertEqual($result, $expected);
  4220. $string = '把百度设为首页';
  4221. $find = '设';
  4222. $result = mb_strrpos($string, $find);
  4223. $expected = 3;
  4224. $this->assertEqual($result, $expected);
  4225. $string = '一二三周永龍';
  4226. $find = '周';
  4227. $result = mb_strrpos($string, $find);
  4228. $expected = 3;
  4229. $this->assertEqual($result, $expected);
  4230. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4231. $find = 'H';
  4232. $result = mb_strrpos($string, $find);
  4233. $expected = false;
  4234. $this->assertEqual($result, $expected);
  4235. }
  4236. /**
  4237. * testMultibyteStrrpos method
  4238. *
  4239. * @access public
  4240. * @return void
  4241. */
  4242. function testMultibyteStrrpos() {
  4243. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  4244. $find = 'F';
  4245. $result = Multibyte::strrpos($string, $find);
  4246. $expected = 5;
  4247. $this->assertEqual($result, $expected);
  4248. $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
  4249. $find = 'F';
  4250. $result = Multibyte::strrpos($string, $find, 6);
  4251. $expected = 17;
  4252. $this->assertEqual($result, $expected);
  4253. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4254. $find = 'Å';
  4255. $result = Multibyte::strrpos($string, $find);
  4256. $expected = 5;
  4257. $this->assertEqual($result, $expected);
  4258. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  4259. $find = 'Å';
  4260. $result = Multibyte::strrpos($string, $find, 6);
  4261. $expected = 24;
  4262. $this->assertEqual($result, $expected);
  4263. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
  4264. $find = 'ÙÚ';
  4265. $result = Multibyte::strrpos($string, $find);
  4266. $expected = 25;
  4267. $this->assertEqual($result, $expected);
  4268. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4269. $find = 'Ċ';
  4270. $result = Multibyte::strrpos($string, $find);
  4271. $expected = 5;
  4272. $this->assertEqual($result, $expected);
  4273. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4274. $find = 'Ċ';
  4275. $result = Multibyte::strrpos($string, $find, 6);
  4276. $expected = 32;
  4277. $this->assertEqual($result, $expected);
  4278. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4279. $find = 'F';
  4280. $result = Multibyte::strrpos($string, $find);
  4281. $expected = 37;
  4282. $this->assertEqual($result, $expected);
  4283. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4284. $find = 'µ';
  4285. $result = Multibyte::strrpos($string, $find);
  4286. $expected = 20;
  4287. $this->assertEqual($result, $expected);
  4288. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4289. $find = 'é';
  4290. $result = Multibyte::strrpos($string, $find);
  4291. $expected = 32;
  4292. $this->assertEqual($result, $expected);
  4293. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4294. $find = 'Ņ';
  4295. $result = Multibyte::strrpos($string, $find);
  4296. $expected = 24;
  4297. $this->assertEqual($result, $expected);
  4298. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4299. $find = 'Ƹ';
  4300. $result = Multibyte::strrpos($string, $find);
  4301. $expected = 39;
  4302. $this->assertEqual($result, $expected);
  4303. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4304. $find = 'ƹ';
  4305. $result = Multibyte::strrpos($string, $find);
  4306. $expected = 40;
  4307. $this->assertEqual($result, $expected);
  4308. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4309. $find = 'ʀ';
  4310. $result = Multibyte::strrpos($string, $find);
  4311. $expected = 39;
  4312. $this->assertEqual($result, $expected);
  4313. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4314. $find = 'Ї';
  4315. $result = Multibyte::strrpos($string, $find);
  4316. $expected = 7;
  4317. $this->assertEqual($result, $expected);
  4318. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4319. $find = 'Р';
  4320. $result = Multibyte::strrpos($string, $find);
  4321. $expected = 4;
  4322. $this->assertEqual($result, $expected);
  4323. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4324. $find = 'р';
  4325. $result = Multibyte::strrpos($string, $find, 5);
  4326. $expected = 36;
  4327. $this->assertEqual($result, $expected);
  4328. $string = 'فقكلمنهوىيًٌٍَُ';
  4329. $find = 'ن';
  4330. $result = Multibyte::strrpos($string, $find);
  4331. $expected = 5;
  4332. $this->assertEqual($result, $expected);
  4333. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4334. $find = '✿';
  4335. $result = Multibyte::strrpos($string, $find);
  4336. $expected = 15;
  4337. $this->assertEqual($result, $expected);
  4338. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4339. $find = '⺐';
  4340. $result = Multibyte::strrpos($string, $find);
  4341. $expected = 16;
  4342. $this->assertEqual($result, $expected);
  4343. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4344. $find = '⽤';
  4345. $result = Multibyte::strrpos($string, $find);
  4346. $expected = 31;
  4347. $this->assertEqual($result, $expected);
  4348. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4349. $find = '눻';
  4350. $result = Multibyte::strrpos($string, $find);
  4351. $expected = 26;
  4352. $this->assertEqual($result, $expected);
  4353. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4354. $find = 'ﺞ';
  4355. $result = Multibyte::strrpos($string, $find);
  4356. $expected = 46;
  4357. $this->assertEqual($result, $expected);
  4358. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4359. $find = 'ﻞ';
  4360. $result = Multibyte::strrpos($string, $find);
  4361. $expected = 45;
  4362. $this->assertEqual($result, $expected);
  4363. $string = 'abcdefghijklmnopqrstuvwxyz';
  4364. $find = 'k';
  4365. $result = Multibyte::strrpos($string, $find);
  4366. $expected = 10;
  4367. $this->assertEqual($result, $expected);
  4368. $string = 'abcdefghijklmnopqrstuvwxyz';
  4369. $find = 'k';
  4370. $result = Multibyte::strrpos($string, $find);
  4371. $expected = 10;
  4372. $this->assertEqual($result, $expected);
  4373. $string = 'abcdefghijklmnoppqrstuvwxyz';
  4374. $find = 'pp';
  4375. $result = Multibyte::strrpos($string, $find);
  4376. $expected = 15;
  4377. $this->assertEqual($result, $expected);
  4378. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  4379. $find = 'ア';
  4380. $result = Multibyte::strrpos($string, $find);
  4381. $expected = 16;
  4382. $this->assertEqual($result, $expected);
  4383. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4384. $find = 'ハ';
  4385. $result = Multibyte::strrpos($string, $find);
  4386. $expected = 17;
  4387. $this->assertEqual($result, $expected);
  4388. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4389. $find = 'ő';
  4390. $result = Multibyte::strrpos($string, $find);
  4391. $expected = 8;
  4392. $this->assertEqual($result, $expected);
  4393. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4394. $find = 'ő';
  4395. $result = Multibyte::strrpos($string, $find);
  4396. $expected = 8;
  4397. $this->assertEqual($result, $expected);
  4398. $string = 'Hello, World!';
  4399. $find = 'o';
  4400. $result = Multibyte::strrpos($string, $find);
  4401. $expected = 8;
  4402. $this->assertEqual($result, $expected);
  4403. $string = 'Hello, World!';
  4404. $find = 'o';
  4405. $result = Multibyte::strrpos($string, $find, 5);
  4406. $expected = 8;
  4407. $this->assertEqual($result, $expected);
  4408. $string = 'čini';
  4409. $find = 'n';
  4410. $result = Multibyte::strrpos($string, $find);
  4411. $expected = 2;
  4412. $this->assertEqual($result, $expected);
  4413. $string = 'čini';
  4414. $find = 'n';
  4415. $result = Multibyte::strrpos($string, $find);
  4416. $expected = 2;
  4417. $this->assertEqual($result, $expected);
  4418. $string = 'moći';
  4419. $find = 'ć';
  4420. $result = Multibyte::strrpos($string, $find);
  4421. $expected = 2;
  4422. $this->assertEqual($result, $expected);
  4423. $string = 'moći';
  4424. $find = 'ć';
  4425. $result = Multibyte::strrpos($string, $find);
  4426. $expected = 2;
  4427. $this->assertEqual($result, $expected);
  4428. $string = 'državni';
  4429. $find = 'ž';
  4430. $result = Multibyte::strrpos($string, $find);
  4431. $expected = 2;
  4432. $this->assertEqual($result, $expected);
  4433. $string = '把百度设为首页';
  4434. $find = '设';
  4435. $result = Multibyte::strrpos($string, $find);
  4436. $expected = 3;
  4437. $this->assertEqual($result, $expected);
  4438. $string = '一二三周永龍';
  4439. $find = '周';
  4440. $result = Multibyte::strrpos($string, $find);
  4441. $expected = 3;
  4442. $this->assertEqual($result, $expected);
  4443. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4444. $find = 'H';
  4445. $result = Multibyte::strrpos($string, $find);
  4446. $expected = false;
  4447. $this->assertEqual($result, $expected);
  4448. }
  4449. /**
  4450. * testUsingMbStrstr method
  4451. *
  4452. * @access public
  4453. * @return void
  4454. */
  4455. function testUsingMbStrstr() {
  4456. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  4457. $find = 'F';
  4458. $result = mb_strstr($string, $find);
  4459. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  4460. $this->assertEqual($result, $expected);
  4461. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  4462. $find = 'F';
  4463. $result = mb_strstr($string, $find, true);
  4464. $expected = 'ABCDE';
  4465. $this->assertEqual($result, $expected);
  4466. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4467. $find = 'Å';
  4468. $result = mb_strstr($string, $find);
  4469. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4470. $this->assertEqual($result, $expected);
  4471. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4472. $find = 'Å';
  4473. $result = mb_strstr($string, $find, true);
  4474. $expected = 'ÀÁÂÃÄ';
  4475. $this->assertEqual($result, $expected);
  4476. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4477. $find = 'Ċ';
  4478. $result = mb_strstr($string, $find);
  4479. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4480. $this->assertEqual($result, $expected);
  4481. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4482. $find = 'Ċ';
  4483. $result = mb_strstr($string, $find, true);
  4484. $expected = 'ĀĂĄĆĈ';
  4485. $this->assertEqual($result, $expected);
  4486. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4487. $find = 'F';
  4488. $result = mb_strstr($string, $find);
  4489. $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4490. $this->assertEqual($result, $expected);
  4491. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4492. $find = 'F';
  4493. $result = mb_strstr($string, $find, true);
  4494. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
  4495. $this->assertEqual($result, $expected);
  4496. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4497. $find = 'µ';
  4498. $result = mb_strstr($string, $find);
  4499. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4500. $this->assertEqual($result, $expected);
  4501. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4502. $find = 'µ';
  4503. $result = mb_strstr($string, $find, true);
  4504. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  4505. $this->assertEqual($result, $expected);
  4506. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4507. $find = 'Þ';
  4508. $result = mb_strstr($string, $find);
  4509. $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4510. $this->assertEqual($result, $expected);
  4511. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4512. $find = 'Þ';
  4513. $result = mb_strstr($string, $find, true);
  4514. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
  4515. $this->assertEqual($result, $expected);
  4516. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4517. $find = 'Ņ';
  4518. $result = mb_strstr($string, $find);
  4519. $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4520. $this->assertEqual($result, $expected);
  4521. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4522. $find = 'Ņ';
  4523. $result = mb_strstr($string, $find, true);
  4524. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
  4525. $this->assertEqual($result, $expected);
  4526. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4527. $find = 'Ƹ';
  4528. $result = mb_strstr($string, $find);
  4529. $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4530. $this->assertEqual($result, $expected);
  4531. $find = 'Ƹ';
  4532. $result = mb_strstr($string, $find, true);
  4533. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
  4534. $this->assertEqual($result, $expected);
  4535. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4536. $find = 'ʀ';
  4537. $result = mb_strstr($string, $find);
  4538. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4539. $this->assertEqual($result, $expected);
  4540. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4541. $find = 'ʀ';
  4542. $result = mb_strstr($string, $find, true);
  4543. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  4544. $this->assertEqual($result, $expected);
  4545. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4546. $find = 'Ї';
  4547. $result = mb_strstr($string, $find);
  4548. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4549. $this->assertEqual($result, $expected);
  4550. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4551. $find = 'Ї';
  4552. $result = mb_strstr($string, $find, true);
  4553. $expected = 'ЀЁЂЃЄЅІ';
  4554. $this->assertEqual($result, $expected);
  4555. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4556. $find = 'Р';
  4557. $result = mb_strstr($string, $find);
  4558. $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4559. $this->assertEqual($result, $expected);
  4560. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4561. $find = 'Р';
  4562. $result = mb_strstr($string, $find, true);
  4563. $expected = 'МНОП';
  4564. $this->assertEqual($result, $expected);
  4565. $string = 'فقكلمنهوىيًٌٍَُ';
  4566. $find = 'ن';
  4567. $result = mb_strstr($string, $find);
  4568. $expected = 'نهوىيًٌٍَُ';
  4569. $this->assertEqual($result, $expected);
  4570. $string = 'فقكلمنهوىيًٌٍَُ';
  4571. $find = 'ن';
  4572. $result = mb_strstr($string, $find, true);
  4573. $expected = 'فقكلم';
  4574. $this->assertEqual($result, $expected);
  4575. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4576. $find = '✿';
  4577. $result = mb_strstr($string, $find);
  4578. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4579. $this->assertEqual($result, $expected);
  4580. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4581. $find = '✿';
  4582. $result = mb_strstr($string, $find, true);
  4583. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  4584. $this->assertEqual($result, $expected);
  4585. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4586. $find = '⺐';
  4587. $result = mb_strstr($string, $find);
  4588. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4589. $this->assertEqual($result, $expected);
  4590. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4591. $find = '⺐';
  4592. $result = mb_strstr($string, $find, true);
  4593. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  4594. $this->assertEqual($result, $expected);
  4595. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4596. $find = '⽤';
  4597. $result = mb_strstr($string, $find);
  4598. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4599. $this->assertEqual($result, $expected);
  4600. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4601. $find = '⽤';
  4602. $result = mb_strstr($string, $find, true);
  4603. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  4604. $this->assertEqual($result, $expected);
  4605. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4606. $find = '눻';
  4607. $result = mb_strstr($string, $find);
  4608. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4609. $this->assertEqual($result, $expected);
  4610. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4611. $find = '눻';
  4612. $result = mb_strstr($string, $find, true);
  4613. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  4614. $this->assertEqual($result, $expected);
  4615. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4616. $find = 'ﺞ';
  4617. $result = mb_strstr($string, $find);
  4618. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4619. $this->assertEqual($result, $expected);
  4620. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4621. $find = 'ﺞ';
  4622. $result = mb_strstr($string, $find, true);
  4623. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  4624. $this->assertEqual($result, $expected);
  4625. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4626. $find = 'ﻞ';
  4627. $result = mb_strstr($string, $find);
  4628. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4629. $this->assertEqual($result, $expected);
  4630. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4631. $find = 'ﻞ';
  4632. $result = mb_strstr($string, $find, true);
  4633. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  4634. $this->assertEqual($result, $expected);
  4635. $string = 'abcdefghijklmnopqrstuvwxyz';
  4636. $find = 'k';
  4637. $result = mb_strstr($string, $find);
  4638. $expected = 'klmnopqrstuvwxyz';
  4639. $this->assertEqual($result, $expected);
  4640. $string = 'abcdefghijklmnopqrstuvwxyz';
  4641. $find = 'k';
  4642. $result = mb_strstr($string, $find, true);
  4643. $expected = 'abcdefghij';
  4644. $this->assertEqual($result, $expected);
  4645. $string = 'abcdefghijklmnopqrstuvwxyz';
  4646. $find = 'K';
  4647. $result = mb_strstr($string, $find);
  4648. $expected = false;
  4649. $this->assertEqual($result, $expected);
  4650. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  4651. $find = 'ア';
  4652. $result = mb_strstr($string, $find);
  4653. $expected = 'アイウエオカキク';
  4654. $this->assertEqual($result, $expected);
  4655. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  4656. $find = 'ア';
  4657. $result = mb_strstr($string, $find, true);
  4658. $expected = '。「」、・ヲァィゥェォャュョッー';
  4659. $this->assertEqual($result, $expected);
  4660. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4661. $find = 'ハ';
  4662. $result = mb_strstr($string, $find);
  4663. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4664. $this->assertEqual($result, $expected);
  4665. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4666. $find = 'ハ';
  4667. $result = mb_strstr($string, $find, true);
  4668. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  4669. $this->assertEqual($result, $expected);
  4670. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4671. $find = 'ő';
  4672. $result = mb_strstr($string, $find);
  4673. $expected = 'őřļď!';
  4674. $this->assertEqual($result, $expected);
  4675. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4676. $find = 'ő';
  4677. $result = mb_strstr($string, $find, true);
  4678. $expected = 'Ĥēĺļŏ, Ŵ';
  4679. $this->assertEqual($result, $expected);
  4680. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  4681. $find = 'ĺļ';
  4682. $result = mb_strstr($string, $find, true);
  4683. $expected = 'Ĥē';
  4684. $this->assertEqual($result, $expected);
  4685. $string = 'Hello, World!';
  4686. $find = 'o';
  4687. $result = mb_strstr($string, $find);
  4688. $expected = 'o, World!';
  4689. $this->assertEqual($result, $expected);
  4690. $string = 'Hello, World!';
  4691. $find = 'o';
  4692. $result = mb_strstr($string, $find, true);
  4693. $expected = 'Hell';
  4694. $this->assertEqual($result, $expected);
  4695. $string = 'Hello, World!';
  4696. $find = 'Wo';
  4697. $result = mb_strstr($string, $find);
  4698. $expected = 'World!';
  4699. $this->assertEqual($result, $expected);
  4700. $string = 'Hello, World!';
  4701. $find = 'Wo';
  4702. $result = mb_strstr($string, $find, true);
  4703. $expected = 'Hello, ';
  4704. $this->assertEqual($result, $expected);
  4705. $string = 'Hello, World!';
  4706. $find = 'll';
  4707. $result = mb_strstr($string, $find);
  4708. $expected = 'llo, World!';
  4709. $this->assertEqual($result, $expected);
  4710. $string = 'Hello, World!';
  4711. $find = 'll';
  4712. $result = mb_strstr($string, $find, true);
  4713. $expected = 'He';
  4714. $this->assertEqual($result, $expected);
  4715. $string = 'Hello, World!';
  4716. $find = 'rld';
  4717. $result = mb_strstr($string, $find);
  4718. $expected = 'rld!';
  4719. $this->assertEqual($result, $expected);
  4720. $string = 'Hello, World!';
  4721. $find = 'rld';
  4722. $result = mb_strstr($string, $find, true);
  4723. $expected = 'Hello, Wo';
  4724. $this->assertEqual($result, $expected);
  4725. $string = 'čini';
  4726. $find = 'n';
  4727. $result = mb_strstr($string, $find);
  4728. $expected = 'ni';
  4729. $this->assertEqual($result, $expected);
  4730. $string = 'čini';
  4731. $find = 'n';
  4732. $result = mb_strstr($string, $find, true);
  4733. $expected = 'či';
  4734. $this->assertEqual($result, $expected);
  4735. $string = 'moći';
  4736. $find = 'ć';
  4737. $result = mb_strstr($string, $find);
  4738. $expected = 'ći';
  4739. $this->assertEqual($result, $expected);
  4740. $string = 'moći';
  4741. $find = 'ć';
  4742. $result = mb_strstr($string, $find, true);
  4743. $expected = 'mo';
  4744. $this->assertEqual($result, $expected);
  4745. $string = 'državni';
  4746. $find = 'ž';
  4747. $result = mb_strstr($string, $find);
  4748. $expected = 'žavni';
  4749. $this->assertEqual($result, $expected);
  4750. $string = 'državni';
  4751. $find = 'ž';
  4752. $result = mb_strstr($string, $find, true);
  4753. $expected = 'dr';
  4754. $this->assertEqual($result, $expected);
  4755. $string = '把百度设为首页';
  4756. $find = '设';
  4757. $result = mb_strstr($string, $find);
  4758. $expected = '设为首页';
  4759. $this->assertEqual($result, $expected);
  4760. $string = '把百度设为首页';
  4761. $find = '设';
  4762. $result = mb_strstr($string, $find, true);
  4763. $expected = '把百度';
  4764. $this->assertEqual($result, $expected);
  4765. $string = '一二三周永龍';
  4766. $find = '周';
  4767. $result = mb_strstr($string, $find);
  4768. $expected = '周永龍';
  4769. $this->assertEqual($result, $expected);
  4770. $string = '一二三周永龍';
  4771. $find = '周';
  4772. $result = mb_strstr($string, $find, true);
  4773. $expected = '一二三';
  4774. $this->assertEqual($result, $expected);
  4775. $string = '一二三周永龍';
  4776. $find = '二周';
  4777. $result = mb_strstr($string, $find);
  4778. $expected = false;
  4779. $this->assertEqual($result, $expected);
  4780. }
  4781. /**
  4782. * testMultibyteStrstr method
  4783. *
  4784. * @access public
  4785. * @return void
  4786. */
  4787. function testMultibyteStrstr() {
  4788. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  4789. $find = 'F';
  4790. $result = Multibyte::strstr($string, $find);
  4791. $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
  4792. $this->assertEqual($result, $expected);
  4793. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  4794. $find = 'F';
  4795. $result = Multibyte::strstr($string, $find, true);
  4796. $expected = 'ABCDE';
  4797. $this->assertEqual($result, $expected);
  4798. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4799. $find = 'Å';
  4800. $result = Multibyte::strstr($string, $find);
  4801. $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4802. $this->assertEqual($result, $expected);
  4803. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  4804. $find = 'Å';
  4805. $result = Multibyte::strstr($string, $find, true);
  4806. $expected = 'ÀÁÂÃÄ';
  4807. $this->assertEqual($result, $expected);
  4808. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4809. $find = 'Ċ';
  4810. $result = Multibyte::strstr($string, $find);
  4811. $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4812. $this->assertEqual($result, $expected);
  4813. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  4814. $find = 'Ċ';
  4815. $result = Multibyte::strstr($string, $find, true);
  4816. $expected = 'ĀĂĄĆĈ';
  4817. $this->assertEqual($result, $expected);
  4818. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4819. $find = 'F';
  4820. $result = Multibyte::strstr($string, $find);
  4821. $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4822. $this->assertEqual($result, $expected);
  4823. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  4824. $find = 'F';
  4825. $result = Multibyte::strstr($string, $find, true);
  4826. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
  4827. $this->assertEqual($result, $expected);
  4828. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4829. $find = 'µ';
  4830. $result = Multibyte::strstr($string, $find);
  4831. $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4832. $this->assertEqual($result, $expected);
  4833. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  4834. $find = 'µ';
  4835. $result = Multibyte::strstr($string, $find, true);
  4836. $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
  4837. $this->assertEqual($result, $expected);
  4838. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4839. $find = 'Þ';
  4840. $result = Multibyte::strstr($string, $find);
  4841. $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4842. $this->assertEqual($result, $expected);
  4843. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  4844. $find = 'Þ';
  4845. $result = Multibyte::strstr($string, $find, true);
  4846. $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
  4847. $this->assertEqual($result, $expected);
  4848. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4849. $find = 'Ņ';
  4850. $result = Multibyte::strstr($string, $find);
  4851. $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4852. $this->assertEqual($result, $expected);
  4853. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  4854. $find = 'Ņ';
  4855. $result = Multibyte::strstr($string, $find, true);
  4856. $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
  4857. $this->assertEqual($result, $expected);
  4858. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4859. $find = 'Ƹ';
  4860. $result = Multibyte::strstr($string, $find);
  4861. $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  4862. $this->assertEqual($result, $expected);
  4863. $find = 'Ƹ';
  4864. $result = Multibyte::strstr($string, $find, true);
  4865. $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
  4866. $this->assertEqual($result, $expected);
  4867. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4868. $find = 'ʀ';
  4869. $result = Multibyte::strstr($string, $find);
  4870. $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4871. $this->assertEqual($result, $expected);
  4872. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  4873. $find = 'ʀ';
  4874. $result = Multibyte::strstr($string, $find, true);
  4875. $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
  4876. $this->assertEqual($result, $expected);
  4877. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4878. $find = 'Ї';
  4879. $result = Multibyte::strstr($string, $find);
  4880. $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4881. $this->assertEqual($result, $expected);
  4882. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  4883. $find = 'Ї';
  4884. $result = Multibyte::strstr($string, $find, true);
  4885. $expected = 'ЀЁЂЃЄЅІ';
  4886. $this->assertEqual($result, $expected);
  4887. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4888. $find = 'Р';
  4889. $result = Multibyte::strstr($string, $find);
  4890. $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4891. $this->assertEqual($result, $expected);
  4892. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  4893. $find = 'Р';
  4894. $result = Multibyte::strstr($string, $find, true);
  4895. $expected = 'МНОП';
  4896. $this->assertEqual($result, $expected);
  4897. $string = 'فقكلمنهوىيًٌٍَُ';
  4898. $find = 'ن';
  4899. $result = Multibyte::strstr($string, $find);
  4900. $expected = 'نهوىيًٌٍَُ';
  4901. $this->assertEqual($result, $expected);
  4902. $string = 'فقكلمنهوىيًٌٍَُ';
  4903. $find = 'ن';
  4904. $result = Multibyte::strstr($string, $find, true);
  4905. $expected = 'فقكلم';
  4906. $this->assertEqual($result, $expected);
  4907. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4908. $find = '✿';
  4909. $result = Multibyte::strstr($string, $find);
  4910. $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4911. $this->assertEqual($result, $expected);
  4912. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  4913. $find = '✿';
  4914. $result = Multibyte::strstr($string, $find, true);
  4915. $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
  4916. $this->assertEqual($result, $expected);
  4917. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4918. $find = '⺐';
  4919. $result = Multibyte::strstr($string, $find);
  4920. $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4921. $this->assertEqual($result, $expected);
  4922. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  4923. $find = '⺐';
  4924. $result = Multibyte::strstr($string, $find, true);
  4925. $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
  4926. $this->assertEqual($result, $expected);
  4927. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4928. $find = '⽤';
  4929. $result = Multibyte::strstr($string, $find);
  4930. $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4931. $this->assertEqual($result, $expected);
  4932. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  4933. $find = '⽤';
  4934. $result = Multibyte::strstr($string, $find, true);
  4935. $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
  4936. $this->assertEqual($result, $expected);
  4937. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4938. $find = '눻';
  4939. $result = Multibyte::strstr($string, $find);
  4940. $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4941. $this->assertEqual($result, $expected);
  4942. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  4943. $find = '눻';
  4944. $result = Multibyte::strstr($string, $find, true);
  4945. $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
  4946. $this->assertEqual($result, $expected);
  4947. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4948. $find = 'ﺞ';
  4949. $result = Multibyte::strstr($string, $find);
  4950. $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4951. $this->assertEqual($result, $expected);
  4952. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  4953. $find = 'ﺞ';
  4954. $result = Multibyte::strstr($string, $find, true);
  4955. $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
  4956. $this->assertEqual($result, $expected);
  4957. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4958. $find = 'ﻞ';
  4959. $result = Multibyte::strstr($string, $find);
  4960. $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4961. $this->assertEqual($result, $expected);
  4962. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  4963. $find = 'ﻞ';
  4964. $result = Multibyte::strstr($string, $find, true);
  4965. $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
  4966. $this->assertEqual($result, $expected);
  4967. $string = 'abcdefghijklmnopqrstuvwxyz';
  4968. $find = 'k';
  4969. $result = Multibyte::strstr($string, $find);
  4970. $expected = 'klmnopqrstuvwxyz';
  4971. $this->assertEqual($result, $expected);
  4972. $string = 'abcdefghijklmnopqrstuvwxyz';
  4973. $find = 'k';
  4974. $result = Multibyte::strstr($string, $find, true);
  4975. $expected = 'abcdefghij';
  4976. $this->assertEqual($result, $expected);
  4977. $string = 'abcdefghijklmnopqrstuvwxyz';
  4978. $find = 'K';
  4979. $result = Multibyte::strstr($string, $find);
  4980. $expected = false;
  4981. $this->assertEqual($result, $expected);
  4982. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  4983. $find = 'ア';
  4984. $result = Multibyte::strstr($string, $find);
  4985. $expected = 'アイウエオカキク';
  4986. $this->assertEqual($result, $expected);
  4987. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  4988. $find = 'ア';
  4989. $result = Multibyte::strstr($string, $find, true);
  4990. $expected = '。「」、・ヲァィゥェォャュョッー';
  4991. $this->assertEqual($result, $expected);
  4992. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4993. $find = 'ハ';
  4994. $result = Multibyte::strstr($string, $find);
  4995. $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4996. $this->assertEqual($result, $expected);
  4997. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  4998. $find = 'ハ';
  4999. $result = Multibyte::strstr($string, $find, true);
  5000. $expected = 'ケコサシスセソタチツテトナニヌネノ';
  5001. $this->assertEqual($result, $expected);
  5002. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  5003. $find = 'ő';
  5004. $result = Multibyte::strstr($string, $find);
  5005. $expected = 'őřļď!';
  5006. $this->assertEqual($result, $expected);
  5007. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  5008. $find = 'ő';
  5009. $result = Multibyte::strstr($string, $find, true);
  5010. $expected = 'Ĥēĺļŏ, Ŵ';
  5011. $this->assertEqual($result, $expected);
  5012. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  5013. $find = 'ĺļ';
  5014. $result = Multibyte::strstr($string, $find, true);
  5015. $expected = 'Ĥē';
  5016. $this->assertEqual($result, $expected);
  5017. $string = 'Hello, World!';
  5018. $find = 'o';
  5019. $result = Multibyte::strstr($string, $find);
  5020. $expected = 'o, World!';
  5021. $this->assertEqual($result, $expected);
  5022. $string = 'Hello, World!';
  5023. $find = 'o';
  5024. $result = Multibyte::strstr($string, $find, true);
  5025. $expected = 'Hell';
  5026. $this->assertEqual($result, $expected);
  5027. $string = 'Hello, World!';
  5028. $find = 'Wo';
  5029. $result = Multibyte::strstr($string, $find);
  5030. $expected = 'World!';
  5031. $this->assertEqual($result, $expected);
  5032. $string = 'Hello, World!';
  5033. $find = 'Wo';
  5034. $result = Multibyte::strstr($string, $find, true);
  5035. $expected = 'Hello, ';
  5036. $this->assertEqual($result, $expected);
  5037. $string = 'Hello, World!';
  5038. $find = 'll';
  5039. $result = Multibyte::strstr($string, $find);
  5040. $expected = 'llo, World!';
  5041. $this->assertEqual($result, $expected);
  5042. $string = 'Hello, World!';
  5043. $find = 'll';
  5044. $result = Multibyte::strstr($string, $find, true);
  5045. $expected = 'He';
  5046. $this->assertEqual($result, $expected);
  5047. $string = 'Hello, World!';
  5048. $find = 'rld';
  5049. $result = Multibyte::strstr($string, $find);
  5050. $expected = 'rld!';
  5051. $this->assertEqual($result, $expected);
  5052. $string = 'Hello, World!';
  5053. $find = 'rld';
  5054. $result = Multibyte::strstr($string, $find, true);
  5055. $expected = 'Hello, Wo';
  5056. $this->assertEqual($result, $expected);
  5057. $string = 'čini';
  5058. $find = 'n';
  5059. $result = Multibyte::strstr($string, $find);
  5060. $expected = 'ni';
  5061. $this->assertEqual($result, $expected);
  5062. $string = 'čini';
  5063. $find = 'n';
  5064. $result = Multibyte::strstr($string, $find, true);
  5065. $expected = 'či';
  5066. $this->assertEqual($result, $expected);
  5067. $string = 'moći';
  5068. $find = 'ć';
  5069. $result = Multibyte::strstr($string, $find);
  5070. $expected = 'ći';
  5071. $this->assertEqual($result, $expected);
  5072. $string = 'moći';
  5073. $find = 'ć';
  5074. $result = Multibyte::strstr($string, $find, true);
  5075. $expected = 'mo';
  5076. $this->assertEqual($result, $expected);
  5077. $string = 'državni';
  5078. $find = 'ž';
  5079. $result = Multibyte::strstr($string, $find);
  5080. $expected = 'žavni';
  5081. $this->assertEqual($result, $expected);
  5082. $string = 'državni';
  5083. $find = 'ž';
  5084. $result = Multibyte::strstr($string, $find, true);
  5085. $expected = 'dr';
  5086. $this->assertEqual($result, $expected);
  5087. $string = '把百度设为首页';
  5088. $find = '设';
  5089. $result = Multibyte::strstr($string, $find);
  5090. $expected = '设为首页';
  5091. $this->assertEqual($result, $expected);
  5092. $string = '把百度设为首页';
  5093. $find = '设';
  5094. $result = Multibyte::strstr($string, $find, true);
  5095. $expected = '把百度';
  5096. $this->assertEqual($result, $expected);
  5097. $string = '一二三周永龍';
  5098. $find = '周';
  5099. $result = Multibyte::strstr($string, $find);
  5100. $expected = '周永龍';
  5101. $this->assertEqual($result, $expected);
  5102. $string = '一二三周永龍';
  5103. $find = '周';
  5104. $result = Multibyte::strstr($string, $find, true);
  5105. $expected = '一二三';
  5106. $this->assertEqual($result, $expected);
  5107. $string = '一二三周永龍';
  5108. $find = '二周';
  5109. $result = Multibyte::strstr($string, $find);
  5110. $expected = false;
  5111. $this->assertEqual($result, $expected);
  5112. }
  5113. /**
  5114. * testUsingMbStrtolower method
  5115. *
  5116. * @access public
  5117. * @return void
  5118. */
  5119. function testUsingMbStrtolower() {
  5120. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
  5121. $result = mb_strtolower($string);
  5122. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  5123. $this->assertEqual($result, $expected);
  5124. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  5125. $result = mb_strtolower($string);
  5126. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  5127. $this->assertEqual($result, $expected);
  5128. $string = 'À';
  5129. $result = mb_strtolower($string);
  5130. $expected = 'à';
  5131. $this->assertEqual($result, $expected);
  5132. $string = 'Á';
  5133. $result = mb_strtolower($string);
  5134. $expected = 'á';
  5135. $this->assertEqual($result, $expected);
  5136. $string = 'Â';
  5137. $result = mb_strtolower($string);
  5138. $expected = 'â';
  5139. $this->assertEqual($result, $expected);
  5140. $string = 'Ã';
  5141. $result = mb_strtolower($string);
  5142. $expected = 'ã';
  5143. $this->assertEqual($result, $expected);
  5144. $string = 'Ä';
  5145. $result = mb_strtolower($string);
  5146. $expected = 'ä';
  5147. $this->assertEqual($result, $expected);
  5148. $string = 'Å';
  5149. $result = mb_strtolower($string);
  5150. $expected = 'å';
  5151. $this->assertEqual($result, $expected);
  5152. $string = 'Æ';
  5153. $result = mb_strtolower($string);
  5154. $expected = 'æ';
  5155. $this->assertEqual($result, $expected);
  5156. $string = 'Ç';
  5157. $result = mb_strtolower($string);
  5158. $expected = 'ç';
  5159. $this->assertEqual($result, $expected);
  5160. $string = 'È';
  5161. $result = mb_strtolower($string);
  5162. $expected = 'è';
  5163. $this->assertEqual($result, $expected);
  5164. $string = 'É';
  5165. $result = mb_strtolower($string);
  5166. $expected = 'é';
  5167. $this->assertEqual($result, $expected);
  5168. $string = 'Ê';
  5169. $result = mb_strtolower($string);
  5170. $expected = 'ê';
  5171. $this->assertEqual($result, $expected);
  5172. $string = 'Ë';
  5173. $result = mb_strtolower($string);
  5174. $expected = 'ë';
  5175. $this->assertEqual($result, $expected);
  5176. $string = 'Ì';
  5177. $result = mb_strtolower($string);
  5178. $expected = 'ì';
  5179. $this->assertEqual($result, $expected);
  5180. $string = 'Í';
  5181. $result = mb_strtolower($string);
  5182. $expected = 'í';
  5183. $this->assertEqual($result, $expected);
  5184. $string = 'Î';
  5185. $result = mb_strtolower($string);
  5186. $expected = 'î';
  5187. $this->assertEqual($result, $expected);
  5188. $string = 'Ï';
  5189. $result = mb_strtolower($string);
  5190. $expected = 'ï';
  5191. $this->assertEqual($result, $expected);
  5192. $string = 'Ð';
  5193. $result = mb_strtolower($string);
  5194. $expected = 'ð';
  5195. $this->assertEqual($result, $expected);
  5196. $string = 'Ñ';
  5197. $result = mb_strtolower($string);
  5198. $expected = 'ñ';
  5199. $this->assertEqual($result, $expected);
  5200. $string = 'Ò';
  5201. $result = mb_strtolower($string);
  5202. $expected = 'ò';
  5203. $this->assertEqual($result, $expected);
  5204. $string = 'Ó';
  5205. $result = mb_strtolower($string);
  5206. $expected = 'ó';
  5207. $this->assertEqual($result, $expected);
  5208. $string = 'Ô';
  5209. $result = mb_strtolower($string);
  5210. $expected = 'ô';
  5211. $this->assertEqual($result, $expected);
  5212. $string = 'Õ';
  5213. $result = mb_strtolower($string);
  5214. $expected = 'õ';
  5215. $this->assertEqual($result, $expected);
  5216. $string = 'Ö';
  5217. $result = mb_strtolower($string);
  5218. $expected = 'ö';
  5219. $this->assertEqual($result, $expected);
  5220. $string = 'Ø';
  5221. $result = mb_strtolower($string);
  5222. $expected = 'ø';
  5223. $this->assertEqual($result, $expected);
  5224. $string = 'Ù';
  5225. $result = mb_strtolower($string);
  5226. $expected = 'ù';
  5227. $this->assertEqual($result, $expected);
  5228. $string = 'Ú';
  5229. $result = mb_strtolower($string);
  5230. $expected = 'ú';
  5231. $this->assertEqual($result, $expected);
  5232. $string = 'Û';
  5233. $result = mb_strtolower($string);
  5234. $expected = 'û';
  5235. $this->assertEqual($result, $expected);
  5236. $string = 'Ü';
  5237. $result = mb_strtolower($string);
  5238. $expected = 'ü';
  5239. $this->assertEqual($result, $expected);
  5240. $string = 'Ý';
  5241. $result = mb_strtolower($string);
  5242. $expected = 'ý';
  5243. $this->assertEqual($result, $expected);
  5244. $string = 'Þ';
  5245. $result = mb_strtolower($string);
  5246. $expected = 'þ';
  5247. $this->assertEqual($result, $expected);
  5248. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  5249. $result = mb_strtolower($string);
  5250. $expected = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
  5251. $this->assertEqual($result, $expected);
  5252. $string = 'Ā';
  5253. $result = mb_strtolower($string);
  5254. $expected = 'ā';
  5255. $this->assertEqual($result, $expected);
  5256. $string = 'Ă';
  5257. $result = mb_strtolower($string);
  5258. $expected = 'ă';
  5259. $this->assertEqual($result, $expected);
  5260. $string = 'Ą';
  5261. $result = mb_strtolower($string);
  5262. $expected = 'ą';
  5263. $this->assertEqual($result, $expected);
  5264. $string = 'Ć';
  5265. $result = mb_strtolower($string);
  5266. $expected = 'ć';
  5267. $this->assertEqual($result, $expected);
  5268. $string = 'Ĉ';
  5269. $result = mb_strtolower($string);
  5270. $expected = 'ĉ';
  5271. $this->assertEqual($result, $expected);
  5272. $string = 'Ċ';
  5273. $result = mb_strtolower($string);
  5274. $expected = 'ċ';
  5275. $this->assertEqual($result, $expected);
  5276. $string = 'Č';
  5277. $result = mb_strtolower($string);
  5278. $expected = 'č';
  5279. $this->assertEqual($result, $expected);
  5280. $string = 'Ď';
  5281. $result = mb_strtolower($string);
  5282. $expected = 'ď';
  5283. $this->assertEqual($result, $expected);
  5284. $string = 'Đ';
  5285. $result = mb_strtolower($string);
  5286. $expected = 'đ';
  5287. $this->assertEqual($result, $expected);
  5288. $string = 'Ē';
  5289. $result = mb_strtolower($string);
  5290. $expected = 'ē';
  5291. $this->assertEqual($result, $expected);
  5292. $string = 'Ĕ';
  5293. $result = mb_strtolower($string);
  5294. $expected = 'ĕ';
  5295. $this->assertEqual($result, $expected);
  5296. $string = 'Ė';
  5297. $result = mb_strtolower($string);
  5298. $expected = 'ė';
  5299. $this->assertEqual($result, $expected);
  5300. $string = 'Ę';
  5301. $result = mb_strtolower($string);
  5302. $expected = 'ę';
  5303. $this->assertEqual($result, $expected);
  5304. $string = 'Ě';
  5305. $result = mb_strtolower($string);
  5306. $expected = 'ě';
  5307. $this->assertEqual($result, $expected);
  5308. $string = 'Ĝ';
  5309. $result = mb_strtolower($string);
  5310. $expected = 'ĝ';
  5311. $this->assertEqual($result, $expected);
  5312. $string = 'Ğ';
  5313. $result = mb_strtolower($string);
  5314. $expected = 'ğ';
  5315. $this->assertEqual($result, $expected);
  5316. $string = 'Ġ';
  5317. $result = mb_strtolower($string);
  5318. $expected = 'ġ';
  5319. $this->assertEqual($result, $expected);
  5320. $string = 'Ģ';
  5321. $result = mb_strtolower($string);
  5322. $expected = 'ģ';
  5323. $this->assertEqual($result, $expected);
  5324. $string = 'Ĥ';
  5325. $result = mb_strtolower($string);
  5326. $expected = 'ĥ';
  5327. $this->assertEqual($result, $expected);
  5328. $string = 'Ħ';
  5329. $result = mb_strtolower($string);
  5330. $expected = 'ħ';
  5331. $this->assertEqual($result, $expected);
  5332. $string = 'Ĩ';
  5333. $result = mb_strtolower($string);
  5334. $expected = 'ĩ';
  5335. $this->assertEqual($result, $expected);
  5336. $string = 'Ī';
  5337. $result = mb_strtolower($string);
  5338. $expected = 'ī';
  5339. $this->assertEqual($result, $expected);
  5340. $string = 'Ĭ';
  5341. $result = mb_strtolower($string);
  5342. $expected = 'ĭ';
  5343. $this->assertEqual($result, $expected);
  5344. $string = 'Į';
  5345. $result = mb_strtolower($string);
  5346. $expected = 'į';
  5347. $this->assertEqual($result, $expected);
  5348. $string = 'IJ';
  5349. $result = mb_strtolower($string);
  5350. $expected = 'ij';
  5351. $this->assertEqual($result, $expected);
  5352. $string = 'Ĵ';
  5353. $result = mb_strtolower($string);
  5354. $expected = 'ĵ';
  5355. $this->assertEqual($result, $expected);
  5356. $string = 'Ķ';
  5357. $result = mb_strtolower($string);
  5358. $expected = 'ķ';
  5359. $this->assertEqual($result, $expected);
  5360. $string = 'Ĺ';
  5361. $result = mb_strtolower($string);
  5362. $expected = 'ĺ';
  5363. $this->assertEqual($result, $expected);
  5364. $string = 'Ļ';
  5365. $result = mb_strtolower($string);
  5366. $expected = 'ļ';
  5367. $this->assertEqual($result, $expected);
  5368. $string = 'Ľ';
  5369. $result = mb_strtolower($string);
  5370. $expected = 'ľ';
  5371. $this->assertEqual($result, $expected);
  5372. $string = 'Ŀ';
  5373. $result = mb_strtolower($string);
  5374. $expected = 'ŀ';
  5375. $this->assertEqual($result, $expected);
  5376. $string = 'Ł';
  5377. $result = mb_strtolower($string);
  5378. $expected = 'ł';
  5379. $this->assertEqual($result, $expected);
  5380. $string = 'Ń';
  5381. $result = mb_strtolower($string);
  5382. $expected = 'ń';
  5383. $this->assertEqual($result, $expected);
  5384. $string = 'Ņ';
  5385. $result = mb_strtolower($string);
  5386. $expected = 'ņ';
  5387. $this->assertEqual($result, $expected);
  5388. $string = 'Ň';
  5389. $result = mb_strtolower($string);
  5390. $expected = 'ň';
  5391. $this->assertEqual($result, $expected);
  5392. $string = 'Ŋ';
  5393. $result = mb_strtolower($string);
  5394. $expected = 'ŋ';
  5395. $this->assertEqual($result, $expected);
  5396. $string = 'Ō';
  5397. $result = mb_strtolower($string);
  5398. $expected = 'ō';
  5399. $this->assertEqual($result, $expected);
  5400. $string = 'Ŏ';
  5401. $result = mb_strtolower($string);
  5402. $expected = 'ŏ';
  5403. $this->assertEqual($result, $expected);
  5404. $string = 'Ő';
  5405. $result = mb_strtolower($string);
  5406. $expected = 'ő';
  5407. $this->assertEqual($result, $expected);
  5408. $string = 'Œ';
  5409. $result = mb_strtolower($string);
  5410. $expected = 'œ';
  5411. $this->assertEqual($result, $expected);
  5412. $string = 'Ŕ';
  5413. $result = mb_strtolower($string);
  5414. $expected = 'ŕ';
  5415. $this->assertEqual($result, $expected);
  5416. $string = 'Ŗ';
  5417. $result = mb_strtolower($string);
  5418. $expected = 'ŗ';
  5419. $this->assertEqual($result, $expected);
  5420. $string = 'Ř';
  5421. $result = mb_strtolower($string);
  5422. $expected = 'ř';
  5423. $this->assertEqual($result, $expected);
  5424. $string = 'Ś';
  5425. $result = mb_strtolower($string);
  5426. $expected = 'ś';
  5427. $this->assertEqual($result, $expected);
  5428. $string = 'Ŝ';
  5429. $result = mb_strtolower($string);
  5430. $expected = 'ŝ';
  5431. $this->assertEqual($result, $expected);
  5432. $string = 'Ş';
  5433. $result = mb_strtolower($string);
  5434. $expected = 'ş';
  5435. $this->assertEqual($result, $expected);
  5436. $string = 'Š';
  5437. $result = mb_strtolower($string);
  5438. $expected = 'š';
  5439. $this->assertEqual($result, $expected);
  5440. $string = 'Ţ';
  5441. $result = mb_strtolower($string);
  5442. $expected = 'ţ';
  5443. $this->assertEqual($result, $expected);
  5444. $string = 'Ť';
  5445. $result = mb_strtolower($string);
  5446. $expected = 'ť';
  5447. $this->assertEqual($result, $expected);
  5448. $string = 'Ŧ';
  5449. $result = mb_strtolower($string);
  5450. $expected = 'ŧ';
  5451. $this->assertEqual($result, $expected);
  5452. $string = 'Ũ';
  5453. $result = mb_strtolower($string);
  5454. $expected = 'ũ';
  5455. $this->assertEqual($result, $expected);
  5456. $string = 'Ū';
  5457. $result = mb_strtolower($string);
  5458. $expected = 'ū';
  5459. $this->assertEqual($result, $expected);
  5460. $string = 'Ŭ';
  5461. $result = mb_strtolower($string);
  5462. $expected = 'ŭ';
  5463. $this->assertEqual($result, $expected);
  5464. $string = 'Ů';
  5465. $result = mb_strtolower($string);
  5466. $expected = 'ů';
  5467. $this->assertEqual($result, $expected);
  5468. $string = 'Ű';
  5469. $result = mb_strtolower($string);
  5470. $expected = 'ű';
  5471. $this->assertEqual($result, $expected);
  5472. $string = 'Ų';
  5473. $result = mb_strtolower($string);
  5474. $expected = 'ų';
  5475. $this->assertEqual($result, $expected);
  5476. $string = 'Ŵ';
  5477. $result = mb_strtolower($string);
  5478. $expected = 'ŵ';
  5479. $this->assertEqual($result, $expected);
  5480. $string = 'Ŷ';
  5481. $result = mb_strtolower($string);
  5482. $expected = 'ŷ';
  5483. $this->assertEqual($result, $expected);
  5484. $string = 'Ź';
  5485. $result = mb_strtolower($string);
  5486. $expected = 'ź';
  5487. $this->assertEqual($result, $expected);
  5488. $string = 'Ż';
  5489. $result = mb_strtolower($string);
  5490. $expected = 'ż';
  5491. $this->assertEqual($result, $expected);
  5492. $string = 'Ž';
  5493. $result = mb_strtolower($string);
  5494. $expected = 'ž';
  5495. $this->assertEqual($result, $expected);
  5496. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  5497. $result = mb_strtolower($string);
  5498. $expected = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
  5499. $this->assertEqual($result, $expected);
  5500. $string = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
  5501. $result = mb_strtolower($string);
  5502. $expected = 'ĥēĺļŏ, ŵőřļď!';
  5503. $this->assertEqual($result, $expected);
  5504. $string = 'ĥēĺļŏ, ŵőřļď!';
  5505. $result = mb_strtolower($string);
  5506. $expected = 'ĥēĺļŏ, ŵőřļď!';
  5507. $this->assertEqual($result, $expected);
  5508. $string = 'ἈΙ';
  5509. $result = mb_strtolower($string);
  5510. $expected = 'ἀι';
  5511. $this->assertEqual($result, $expected);
  5512. $string = 'ԀԂԄԆԈԊԌԎԐԒ';
  5513. $result = mb_strtolower($string);
  5514. $expected = 'ԁԃԅԇԉԋԍԏԐԒ';
  5515. $this->assertEqual($result, $expected);
  5516. $string = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
  5517. $result = mb_strtolower($string);
  5518. $expected = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
  5519. $this->assertEqual($result, $expected);
  5520. $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  5521. $result = mb_strtolower($string);
  5522. $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  5523. $this->assertEqual($result, $expected);
  5524. $string = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
  5525. $result = mb_strtolower($string);
  5526. $expected = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
  5527. $this->assertEqual($result, $expected);
  5528. $string = 'ΩKÅ';
  5529. $result = mb_strtolower($string);
  5530. $expected = 'ωkå';
  5531. $this->assertEqual($result, $expected);
  5532. $string = 'ΩKÅ';
  5533. $result = mb_strtolower($string);
  5534. $expected = 'ωkå';
  5535. $this->assertEqual($result, $expected);
  5536. /*
  5537. mb_strtolower does not work for these strings.
  5538. $string = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
  5539. $result = mb_strtolower($string);
  5540. $expected = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
  5541. $this->assertEqual($result, $expected);
  5542. $string = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
  5543. $result = mb_strtolower($string);
  5544. $expected = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
  5545. $this->assertEqual($result, $expected);
  5546. $string = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
  5547. $result = mb_strtolower($string);
  5548. $expected = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
  5549. $this->assertEqual($result, $expected);
  5550. $string = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
  5551. $result = mb_strtolower($string);
  5552. $expected = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
  5553. $this->assertEqual($result, $expected);
  5554. */
  5555. $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  5556. $result = mb_strtolower($string);
  5557. $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  5558. $this->assertEqual($result, $expected);
  5559. }
  5560. /**
  5561. * testMultibyteStrtolower method
  5562. *
  5563. * @access public
  5564. * @return void
  5565. */
  5566. function testMultibyteStrtolower() {
  5567. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
  5568. $result = Multibyte::strtolower($string);
  5569. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  5570. $this->assertEqual($result, $expected);
  5571. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  5572. $result = Multibyte::strtolower($string);
  5573. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  5574. $this->assertEqual($result, $expected);
  5575. $string = 'À';
  5576. $result = Multibyte::strtolower($string);
  5577. $expected = 'à';
  5578. $this->assertEqual($result, $expected);
  5579. $string = 'Á';
  5580. $result = Multibyte::strtolower($string);
  5581. $expected = 'á';
  5582. $this->assertEqual($result, $expected);
  5583. $string = 'Â';
  5584. $result = Multibyte::strtolower($string);
  5585. $expected = 'â';
  5586. $this->assertEqual($result, $expected);
  5587. $string = 'Ã';
  5588. $result = Multibyte::strtolower($string);
  5589. $expected = 'ã';
  5590. $this->assertEqual($result, $expected);
  5591. $string = 'Ä';
  5592. $result = Multibyte::strtolower($string);
  5593. $expected = 'ä';
  5594. $this->assertEqual($result, $expected);
  5595. $string = 'Å';
  5596. $result = Multibyte::strtolower($string);
  5597. $expected = 'å';
  5598. $this->assertEqual($result, $expected);
  5599. $string = 'Æ';
  5600. $result = Multibyte::strtolower($string);
  5601. $expected = 'æ';
  5602. $this->assertEqual($result, $expected);
  5603. $string = 'Ç';
  5604. $result = Multibyte::strtolower($string);
  5605. $expected = 'ç';
  5606. $this->assertEqual($result, $expected);
  5607. $string = 'È';
  5608. $result = Multibyte::strtolower($string);
  5609. $expected = 'è';
  5610. $this->assertEqual($result, $expected);
  5611. $string = 'É';
  5612. $result = Multibyte::strtolower($string);
  5613. $expected = 'é';
  5614. $this->assertEqual($result, $expected);
  5615. $string = 'Ê';
  5616. $result = Multibyte::strtolower($string);
  5617. $expected = 'ê';
  5618. $this->assertEqual($result, $expected);
  5619. $string = 'Ë';
  5620. $result = Multibyte::strtolower($string);
  5621. $expected = 'ë';
  5622. $this->assertEqual($result, $expected);
  5623. $string = 'Ì';
  5624. $result = Multibyte::strtolower($string);
  5625. $expected = 'ì';
  5626. $this->assertEqual($result, $expected);
  5627. $string = 'Í';
  5628. $result = Multibyte::strtolower($string);
  5629. $expected = 'í';
  5630. $this->assertEqual($result, $expected);
  5631. $string = 'Î';
  5632. $result = Multibyte::strtolower($string);
  5633. $expected = 'î';
  5634. $this->assertEqual($result, $expected);
  5635. $string = 'Ï';
  5636. $result = Multibyte::strtolower($string);
  5637. $expected = 'ï';
  5638. $this->assertEqual($result, $expected);
  5639. $string = 'Ð';
  5640. $result = Multibyte::strtolower($string);
  5641. $expected = 'ð';
  5642. $this->assertEqual($result, $expected);
  5643. $string = 'Ñ';
  5644. $result = Multibyte::strtolower($string);
  5645. $expected = 'ñ';
  5646. $this->assertEqual($result, $expected);
  5647. $string = 'Ò';
  5648. $result = Multibyte::strtolower($string);
  5649. $expected = 'ò';
  5650. $this->assertEqual($result, $expected);
  5651. $string = 'Ó';
  5652. $result = Multibyte::strtolower($string);
  5653. $expected = 'ó';
  5654. $this->assertEqual($result, $expected);
  5655. $string = 'Ô';
  5656. $result = Multibyte::strtolower($string);
  5657. $expected = 'ô';
  5658. $this->assertEqual($result, $expected);
  5659. $string = 'Õ';
  5660. $result = Multibyte::strtolower($string);
  5661. $expected = 'õ';
  5662. $this->assertEqual($result, $expected);
  5663. $string = 'Ö';
  5664. $result = Multibyte::strtolower($string);
  5665. $expected = 'ö';
  5666. $this->assertEqual($result, $expected);
  5667. $string = 'Ø';
  5668. $result = Multibyte::strtolower($string);
  5669. $expected = 'ø';
  5670. $this->assertEqual($result, $expected);
  5671. $string = 'Ù';
  5672. $result = Multibyte::strtolower($string);
  5673. $expected = 'ù';
  5674. $this->assertEqual($result, $expected);
  5675. $string = 'Ú';
  5676. $result = Multibyte::strtolower($string);
  5677. $expected = 'ú';
  5678. $this->assertEqual($result, $expected);
  5679. $string = 'Û';
  5680. $result = Multibyte::strtolower($string);
  5681. $expected = 'û';
  5682. $this->assertEqual($result, $expected);
  5683. $string = 'Ü';
  5684. $result = Multibyte::strtolower($string);
  5685. $expected = 'ü';
  5686. $this->assertEqual($result, $expected);
  5687. $string = 'Ý';
  5688. $result = Multibyte::strtolower($string);
  5689. $expected = 'ý';
  5690. $this->assertEqual($result, $expected);
  5691. $string = 'Þ';
  5692. $result = Multibyte::strtolower($string);
  5693. $expected = 'þ';
  5694. $this->assertEqual($result, $expected);
  5695. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  5696. $result = Multibyte::strtolower($string);
  5697. $expected = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
  5698. $this->assertEqual($result, $expected);
  5699. $string = 'Ā';
  5700. $result = Multibyte::strtolower($string);
  5701. $expected = 'ā';
  5702. $this->assertEqual($result, $expected);
  5703. $string = 'Ă';
  5704. $result = Multibyte::strtolower($string);
  5705. $expected = 'ă';
  5706. $this->assertEqual($result, $expected);
  5707. $string = 'Ą';
  5708. $result = Multibyte::strtolower($string);
  5709. $expected = 'ą';
  5710. $this->assertEqual($result, $expected);
  5711. $string = 'Ć';
  5712. $result = Multibyte::strtolower($string);
  5713. $expected = 'ć';
  5714. $this->assertEqual($result, $expected);
  5715. $string = 'Ĉ';
  5716. $result = Multibyte::strtolower($string);
  5717. $expected = 'ĉ';
  5718. $this->assertEqual($result, $expected);
  5719. $string = 'Ċ';
  5720. $result = Multibyte::strtolower($string);
  5721. $expected = 'ċ';
  5722. $this->assertEqual($result, $expected);
  5723. $string = 'Č';
  5724. $result = Multibyte::strtolower($string);
  5725. $expected = 'č';
  5726. $this->assertEqual($result, $expected);
  5727. $string = 'Ď';
  5728. $result = Multibyte::strtolower($string);
  5729. $expected = 'ď';
  5730. $this->assertEqual($result, $expected);
  5731. $string = 'Đ';
  5732. $result = Multibyte::strtolower($string);
  5733. $expected = 'đ';
  5734. $this->assertEqual($result, $expected);
  5735. $string = 'Ē';
  5736. $result = Multibyte::strtolower($string);
  5737. $expected = 'ē';
  5738. $this->assertEqual($result, $expected);
  5739. $string = 'Ĕ';
  5740. $result = Multibyte::strtolower($string);
  5741. $expected = 'ĕ';
  5742. $this->assertEqual($result, $expected);
  5743. $string = 'Ė';
  5744. $result = Multibyte::strtolower($string);
  5745. $expected = 'ė';
  5746. $this->assertEqual($result, $expected);
  5747. $string = 'Ę';
  5748. $result = Multibyte::strtolower($string);
  5749. $expected = 'ę';
  5750. $this->assertEqual($result, $expected);
  5751. $string = 'Ě';
  5752. $result = Multibyte::strtolower($string);
  5753. $expected = 'ě';
  5754. $this->assertEqual($result, $expected);
  5755. $string = 'Ĝ';
  5756. $result = Multibyte::strtolower($string);
  5757. $expected = 'ĝ';
  5758. $this->assertEqual($result, $expected);
  5759. $string = 'Ğ';
  5760. $result = Multibyte::strtolower($string);
  5761. $expected = 'ğ';
  5762. $this->assertEqual($result, $expected);
  5763. $string = 'Ġ';
  5764. $result = Multibyte::strtolower($string);
  5765. $expected = 'ġ';
  5766. $this->assertEqual($result, $expected);
  5767. $string = 'Ģ';
  5768. $result = Multibyte::strtolower($string);
  5769. $expected = 'ģ';
  5770. $this->assertEqual($result, $expected);
  5771. $string = 'Ĥ';
  5772. $result = Multibyte::strtolower($string);
  5773. $expected = 'ĥ';
  5774. $this->assertEqual($result, $expected);
  5775. $string = 'Ħ';
  5776. $result = Multibyte::strtolower($string);
  5777. $expected = 'ħ';
  5778. $this->assertEqual($result, $expected);
  5779. $string = 'Ĩ';
  5780. $result = Multibyte::strtolower($string);
  5781. $expected = 'ĩ';
  5782. $this->assertEqual($result, $expected);
  5783. $string = 'Ī';
  5784. $result = Multibyte::strtolower($string);
  5785. $expected = 'ī';
  5786. $this->assertEqual($result, $expected);
  5787. $string = 'Ĭ';
  5788. $result = Multibyte::strtolower($string);
  5789. $expected = 'ĭ';
  5790. $this->assertEqual($result, $expected);
  5791. $string = 'Į';
  5792. $result = Multibyte::strtolower($string);
  5793. $expected = 'į';
  5794. $this->assertEqual($result, $expected);
  5795. $string = 'IJ';
  5796. $result = Multibyte::strtolower($string);
  5797. $expected = 'ij';
  5798. $this->assertEqual($result, $expected);
  5799. $string = 'Ĵ';
  5800. $result = Multibyte::strtolower($string);
  5801. $expected = 'ĵ';
  5802. $this->assertEqual($result, $expected);
  5803. $string = 'Ķ';
  5804. $result = Multibyte::strtolower($string);
  5805. $expected = 'ķ';
  5806. $this->assertEqual($result, $expected);
  5807. $string = 'Ĺ';
  5808. $result = Multibyte::strtolower($string);
  5809. $expected = 'ĺ';
  5810. $this->assertEqual($result, $expected);
  5811. $string = 'Ļ';
  5812. $result = Multibyte::strtolower($string);
  5813. $expected = 'ļ';
  5814. $this->assertEqual($result, $expected);
  5815. $string = 'Ľ';
  5816. $result = Multibyte::strtolower($string);
  5817. $expected = 'ľ';
  5818. $this->assertEqual($result, $expected);
  5819. $string = 'Ŀ';
  5820. $result = Multibyte::strtolower($string);
  5821. $expected = 'ŀ';
  5822. $this->assertEqual($result, $expected);
  5823. $string = 'Ł';
  5824. $result = Multibyte::strtolower($string);
  5825. $expected = 'ł';
  5826. $this->assertEqual($result, $expected);
  5827. $string = 'Ń';
  5828. $result = Multibyte::strtolower($string);
  5829. $expected = 'ń';
  5830. $this->assertEqual($result, $expected);
  5831. $string = 'Ņ';
  5832. $result = Multibyte::strtolower($string);
  5833. $expected = 'ņ';
  5834. $this->assertEqual($result, $expected);
  5835. $string = 'Ň';
  5836. $result = Multibyte::strtolower($string);
  5837. $expected = 'ň';
  5838. $this->assertEqual($result, $expected);
  5839. $string = 'Ŋ';
  5840. $result = Multibyte::strtolower($string);
  5841. $expected = 'ŋ';
  5842. $this->assertEqual($result, $expected);
  5843. $string = 'Ō';
  5844. $result = Multibyte::strtolower($string);
  5845. $expected = 'ō';
  5846. $this->assertEqual($result, $expected);
  5847. $string = 'Ŏ';
  5848. $result = Multibyte::strtolower($string);
  5849. $expected = 'ŏ';
  5850. $this->assertEqual($result, $expected);
  5851. $string = 'Ő';
  5852. $result = Multibyte::strtolower($string);
  5853. $expected = 'ő';
  5854. $this->assertEqual($result, $expected);
  5855. $string = 'Œ';
  5856. $result = Multibyte::strtolower($string);
  5857. $expected = 'œ';
  5858. $this->assertEqual($result, $expected);
  5859. $string = 'Ŕ';
  5860. $result = Multibyte::strtolower($string);
  5861. $expected = 'ŕ';
  5862. $this->assertEqual($result, $expected);
  5863. $string = 'Ŗ';
  5864. $result = Multibyte::strtolower($string);
  5865. $expected = 'ŗ';
  5866. $this->assertEqual($result, $expected);
  5867. $string = 'Ř';
  5868. $result = Multibyte::strtolower($string);
  5869. $expected = 'ř';
  5870. $this->assertEqual($result, $expected);
  5871. $string = 'Ś';
  5872. $result = Multibyte::strtolower($string);
  5873. $expected = 'ś';
  5874. $this->assertEqual($result, $expected);
  5875. $string = 'Ŝ';
  5876. $result = Multibyte::strtolower($string);
  5877. $expected = 'ŝ';
  5878. $this->assertEqual($result, $expected);
  5879. $string = 'Ş';
  5880. $result = Multibyte::strtolower($string);
  5881. $expected = 'ş';
  5882. $this->assertEqual($result, $expected);
  5883. $string = 'Š';
  5884. $result = Multibyte::strtolower($string);
  5885. $expected = 'š';
  5886. $this->assertEqual($result, $expected);
  5887. $string = 'Ţ';
  5888. $result = Multibyte::strtolower($string);
  5889. $expected = 'ţ';
  5890. $this->assertEqual($result, $expected);
  5891. $string = 'Ť';
  5892. $result = Multibyte::strtolower($string);
  5893. $expected = 'ť';
  5894. $this->assertEqual($result, $expected);
  5895. $string = 'Ŧ';
  5896. $result = Multibyte::strtolower($string);
  5897. $expected = 'ŧ';
  5898. $this->assertEqual($result, $expected);
  5899. $string = 'Ũ';
  5900. $result = Multibyte::strtolower($string);
  5901. $expected = 'ũ';
  5902. $this->assertEqual($result, $expected);
  5903. $string = 'Ū';
  5904. $result = Multibyte::strtolower($string);
  5905. $expected = 'ū';
  5906. $this->assertEqual($result, $expected);
  5907. $string = 'Ŭ';
  5908. $result = Multibyte::strtolower($string);
  5909. $expected = 'ŭ';
  5910. $this->assertEqual($result, $expected);
  5911. $string = 'Ů';
  5912. $result = Multibyte::strtolower($string);
  5913. $expected = 'ů';
  5914. $this->assertEqual($result, $expected);
  5915. $string = 'Ű';
  5916. $result = Multibyte::strtolower($string);
  5917. $expected = 'ű';
  5918. $this->assertEqual($result, $expected);
  5919. $string = 'Ų';
  5920. $result = Multibyte::strtolower($string);
  5921. $expected = 'ų';
  5922. $this->assertEqual($result, $expected);
  5923. $string = 'Ŵ';
  5924. $result = Multibyte::strtolower($string);
  5925. $expected = 'ŵ';
  5926. $this->assertEqual($result, $expected);
  5927. $string = 'Ŷ';
  5928. $result = Multibyte::strtolower($string);
  5929. $expected = 'ŷ';
  5930. $this->assertEqual($result, $expected);
  5931. $string = 'Ź';
  5932. $result = Multibyte::strtolower($string);
  5933. $expected = 'ź';
  5934. $this->assertEqual($result, $expected);
  5935. $string = 'Ż';
  5936. $result = Multibyte::strtolower($string);
  5937. $expected = 'ż';
  5938. $this->assertEqual($result, $expected);
  5939. $string = 'Ž';
  5940. $result = Multibyte::strtolower($string);
  5941. $expected = 'ž';
  5942. $this->assertEqual($result, $expected);
  5943. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  5944. $result = Multibyte::strtolower($string);
  5945. $expected = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
  5946. $this->assertEqual($result, $expected);
  5947. $string = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
  5948. $result = Multibyte::strtolower($string);
  5949. $expected = 'ĥēĺļŏ, ŵőřļď!';
  5950. $this->assertEqual($result, $expected);
  5951. $string = 'ĥēĺļŏ, ŵőřļď!';
  5952. $result = Multibyte::strtolower($string);
  5953. $expected = 'ĥēĺļŏ, ŵőřļď!';
  5954. $this->assertEqual($result, $expected);
  5955. $string = 'ἈΙ';
  5956. $result = Multibyte::strtolower($string);
  5957. $expected = 'ἀι';
  5958. $this->assertEqual($result, $expected);
  5959. $string = 'ԀԂԄԆԈԊԌԎԐԒ';
  5960. $result = Multibyte::strtolower($string);
  5961. $expected = 'ԁԃԅԇԉԋԍԏԐԒ';
  5962. $this->assertEqual($result, $expected);
  5963. $string = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
  5964. $result = Multibyte::strtolower($string);
  5965. $expected = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
  5966. $this->assertEqual($result, $expected);
  5967. $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  5968. $result = Multibyte::strtolower($string);
  5969. $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  5970. $this->assertEqual($result, $expected);
  5971. $string = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
  5972. $result = Multibyte::strtolower($string);
  5973. $expected = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
  5974. $this->assertEqual($result, $expected);
  5975. $string = 'ΩKÅℲ';
  5976. $result = Multibyte::strtolower($string);
  5977. $expected = 'ωkåⅎ';
  5978. $this->assertEqual($result, $expected);
  5979. $string = 'ΩKÅ';
  5980. $result = Multibyte::strtolower($string);
  5981. $expected = 'ωkå';
  5982. $this->assertEqual($result, $expected);
  5983. $string = 'ΩKÅ';
  5984. $result = Multibyte::strtolower($string);
  5985. $expected = 'ωkå';
  5986. $this->assertEqual($result, $expected);
  5987. $string = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
  5988. $result = Multibyte::strtolower($string);
  5989. $expected = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
  5990. $this->assertEqual($result, $expected);
  5991. $string = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
  5992. $result = Multibyte::strtolower($string);
  5993. $expected = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
  5994. $this->assertEqual($result, $expected);
  5995. $string = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
  5996. $result = Multibyte::strtolower($string);
  5997. $expected = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
  5998. $this->assertEqual($result, $expected);
  5999. $string = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
  6000. $result = Multibyte::strtolower($string);
  6001. $expected = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
  6002. $this->assertEqual($result, $expected);
  6003. $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  6004. $result = Multibyte::strtolower($string);
  6005. $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  6006. $this->assertEqual($result, $expected);
  6007. }
  6008. /**
  6009. * testUsingMbStrtoupper method
  6010. *
  6011. * @access public
  6012. * @return void
  6013. */
  6014. function testUsingMbStrtoupper() {
  6015. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  6016. $result = mb_strtoupper($string);
  6017. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
  6018. $this->assertEqual($result, $expected);
  6019. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  6020. $result = mb_strtoupper($string);
  6021. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  6022. $this->assertEqual($result, $expected);
  6023. $string = 'à';
  6024. $result = mb_strtoupper($string);
  6025. $expected = 'À';
  6026. $this->assertEqual($result, $expected);
  6027. $string = 'á';
  6028. $result = mb_strtoupper($string);
  6029. $expected = 'Á';
  6030. $this->assertEqual($result, $expected);
  6031. $string = 'â';
  6032. $result = mb_strtoupper($string);
  6033. $expected = 'Â';
  6034. $this->assertEqual($result, $expected);
  6035. $string = 'ã';
  6036. $result = mb_strtoupper($string);
  6037. $expected = 'Ã';
  6038. $this->assertEqual($result, $expected);
  6039. $string = 'ä';
  6040. $result = mb_strtoupper($string);
  6041. $expected = 'Ä';
  6042. $this->assertEqual($result, $expected);
  6043. $string = 'å';
  6044. $result = mb_strtoupper($string);
  6045. $expected = 'Å';
  6046. $this->assertEqual($result, $expected);
  6047. $string = 'æ';
  6048. $result = mb_strtoupper($string);
  6049. $expected = 'Æ';
  6050. $this->assertEqual($result, $expected);
  6051. $string = 'ç';
  6052. $result = mb_strtoupper($string);
  6053. $expected = 'Ç';
  6054. $this->assertEqual($result, $expected);
  6055. $string = 'è';
  6056. $result = mb_strtoupper($string);
  6057. $expected = 'È';
  6058. $this->assertEqual($result, $expected);
  6059. $string = 'é';
  6060. $result = mb_strtoupper($string);
  6061. $expected = 'É';
  6062. $this->assertEqual($result, $expected);
  6063. $string = 'ê';
  6064. $result = mb_strtoupper($string);
  6065. $expected = 'Ê';
  6066. $this->assertEqual($result, $expected);
  6067. $string = 'ë';
  6068. $result = mb_strtoupper($string);
  6069. $expected = 'Ë';
  6070. $this->assertEqual($result, $expected);
  6071. $string = 'ì';
  6072. $result = mb_strtoupper($string);
  6073. $expected = 'Ì';
  6074. $this->assertEqual($result, $expected);
  6075. $string = 'í';
  6076. $result = mb_strtoupper($string);
  6077. $expected = 'Í';
  6078. $this->assertEqual($result, $expected);
  6079. $string = 'î';
  6080. $result = mb_strtoupper($string);
  6081. $expected = 'Î';
  6082. $this->assertEqual($result, $expected);
  6083. $string = 'ï';
  6084. $result = mb_strtoupper($string);
  6085. $expected = 'Ï';
  6086. $this->assertEqual($result, $expected);
  6087. $string = 'ð';
  6088. $result = mb_strtoupper($string);
  6089. $expected = 'Ð';
  6090. $this->assertEqual($result, $expected);
  6091. $string = 'ñ';
  6092. $result = mb_strtoupper($string);
  6093. $expected = 'Ñ';
  6094. $this->assertEqual($result, $expected);
  6095. $string = 'ò';
  6096. $result = mb_strtoupper($string);
  6097. $expected = 'Ò';
  6098. $this->assertEqual($result, $expected);
  6099. $string = 'ó';
  6100. $result = mb_strtoupper($string);
  6101. $expected = 'Ó';
  6102. $this->assertEqual($result, $expected);
  6103. $string = 'ô';
  6104. $result = mb_strtoupper($string);
  6105. $expected = 'Ô';
  6106. $this->assertEqual($result, $expected);
  6107. $string = 'õ';
  6108. $result = mb_strtoupper($string);
  6109. $expected = 'Õ';
  6110. $this->assertEqual($result, $expected);
  6111. $string = 'ö';
  6112. $result = mb_strtoupper($string);
  6113. $expected = 'Ö';
  6114. $this->assertEqual($result, $expected);
  6115. $string = 'ø';
  6116. $result = mb_strtoupper($string);
  6117. $expected = 'Ø';
  6118. $this->assertEqual($result, $expected);
  6119. $string = 'ù';
  6120. $result = mb_strtoupper($string);
  6121. $expected = 'Ù';
  6122. $this->assertEqual($result, $expected);
  6123. $string = 'ú';
  6124. $result = mb_strtoupper($string);
  6125. $expected = 'Ú';
  6126. $this->assertEqual($result, $expected);
  6127. $string = 'û';
  6128. $result = mb_strtoupper($string);
  6129. $expected = 'Û';
  6130. $this->assertEqual($result, $expected);
  6131. $string = 'ü';
  6132. $result = mb_strtoupper($string);
  6133. $expected = 'Ü';
  6134. $this->assertEqual($result, $expected);
  6135. $string = 'ý';
  6136. $result = mb_strtoupper($string);
  6137. $expected = 'Ý';
  6138. $this->assertEqual($result, $expected);
  6139. $string = 'þ';
  6140. $result = mb_strtoupper($string);
  6141. $expected = 'Þ';
  6142. $this->assertEqual($result, $expected);
  6143. $string = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
  6144. $result = mb_strtoupper($string);
  6145. $expected = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  6146. $this->assertEqual($result, $expected);
  6147. $string = 'ā';
  6148. $result = mb_strtoupper($string);
  6149. $expected = 'Ā';
  6150. $this->assertEqual($result, $expected);
  6151. $string = 'ă';
  6152. $result = mb_strtoupper($string);
  6153. $expected = 'Ă';
  6154. $this->assertEqual($result, $expected);
  6155. $string = 'ą';
  6156. $result = mb_strtoupper($string);
  6157. $expected = 'Ą';
  6158. $this->assertEqual($result, $expected);
  6159. $string = 'ć';
  6160. $result = mb_strtoupper($string);
  6161. $expected = 'Ć';
  6162. $this->assertEqual($result, $expected);
  6163. $string = 'ĉ';
  6164. $result = mb_strtoupper($string);
  6165. $expected = 'Ĉ';
  6166. $this->assertEqual($result, $expected);
  6167. $string = 'ċ';
  6168. $result = mb_strtoupper($string);
  6169. $expected = 'Ċ';
  6170. $this->assertEqual($result, $expected);
  6171. $string = 'č';
  6172. $result = mb_strtoupper($string);
  6173. $expected = 'Č';
  6174. $this->assertEqual($result, $expected);
  6175. $string = 'ď';
  6176. $result = mb_strtoupper($string);
  6177. $expected = 'Ď';
  6178. $this->assertEqual($result, $expected);
  6179. $string = 'đ';
  6180. $result = mb_strtoupper($string);
  6181. $expected = 'Đ';
  6182. $this->assertEqual($result, $expected);
  6183. $string = 'ē';
  6184. $result = mb_strtoupper($string);
  6185. $expected = 'Ē';
  6186. $this->assertEqual($result, $expected);
  6187. $string = 'ĕ';
  6188. $result = mb_strtoupper($string);
  6189. $expected = 'Ĕ';
  6190. $this->assertEqual($result, $expected);
  6191. $string = 'ė';
  6192. $result = mb_strtoupper($string);
  6193. $expected = 'Ė';
  6194. $this->assertEqual($result, $expected);
  6195. $string = 'ę';
  6196. $result = mb_strtoupper($string);
  6197. $expected = 'Ę';
  6198. $this->assertEqual($result, $expected);
  6199. $string = 'ě';
  6200. $result = mb_strtoupper($string);
  6201. $expected = 'Ě';
  6202. $this->assertEqual($result, $expected);
  6203. $string = 'ĝ';
  6204. $result = mb_strtoupper($string);
  6205. $expected = 'Ĝ';
  6206. $this->assertEqual($result, $expected);
  6207. $string = 'ğ';
  6208. $result = mb_strtoupper($string);
  6209. $expected = 'Ğ';
  6210. $this->assertEqual($result, $expected);
  6211. $string = 'ġ';
  6212. $result = mb_strtoupper($string);
  6213. $expected = 'Ġ';
  6214. $this->assertEqual($result, $expected);
  6215. $string = 'ģ';
  6216. $result = mb_strtoupper($string);
  6217. $expected = 'Ģ';
  6218. $this->assertEqual($result, $expected);
  6219. $string = 'ĥ';
  6220. $result = mb_strtoupper($string);
  6221. $expected = 'Ĥ';
  6222. $this->assertEqual($result, $expected);
  6223. $string = 'ħ';
  6224. $result = mb_strtoupper($string);
  6225. $expected = 'Ħ';
  6226. $this->assertEqual($result, $expected);
  6227. $string = 'ĩ';
  6228. $result = mb_strtoupper($string);
  6229. $expected = 'Ĩ';
  6230. $this->assertEqual($result, $expected);
  6231. $string = 'ī';
  6232. $result = mb_strtoupper($string);
  6233. $expected = 'Ī';
  6234. $this->assertEqual($result, $expected);
  6235. $string = 'ĭ';
  6236. $result = mb_strtoupper($string);
  6237. $expected = 'Ĭ';
  6238. $this->assertEqual($result, $expected);
  6239. $string = 'į';
  6240. $result = mb_strtoupper($string);
  6241. $expected = 'Į';
  6242. $this->assertEqual($result, $expected);
  6243. $string = 'ij';
  6244. $result = mb_strtoupper($string);
  6245. $expected = 'IJ';
  6246. $this->assertEqual($result, $expected);
  6247. $string = 'ĵ';
  6248. $result = mb_strtoupper($string);
  6249. $expected = 'Ĵ';
  6250. $this->assertEqual($result, $expected);
  6251. $string = 'ķ';
  6252. $result = mb_strtoupper($string);
  6253. $expected = 'Ķ';
  6254. $this->assertEqual($result, $expected);
  6255. $string = 'ĺ';
  6256. $result = mb_strtoupper($string);
  6257. $expected = 'Ĺ';
  6258. $this->assertEqual($result, $expected);
  6259. $string = 'ļ';
  6260. $result = mb_strtoupper($string);
  6261. $expected = 'Ļ';
  6262. $this->assertEqual($result, $expected);
  6263. $string = 'ľ';
  6264. $result = mb_strtoupper($string);
  6265. $expected = 'Ľ';
  6266. $this->assertEqual($result, $expected);
  6267. $string = 'ŀ';
  6268. $result = mb_strtoupper($string);
  6269. $expected = 'Ŀ';
  6270. $this->assertEqual($result, $expected);
  6271. $string = 'ł';
  6272. $result = mb_strtoupper($string);
  6273. $expected = 'Ł';
  6274. $this->assertEqual($result, $expected);
  6275. $string = 'ń';
  6276. $result = mb_strtoupper($string);
  6277. $expected = 'Ń';
  6278. $this->assertEqual($result, $expected);
  6279. $string = 'ņ';
  6280. $result = mb_strtoupper($string);
  6281. $expected = 'Ņ';
  6282. $this->assertEqual($result, $expected);
  6283. $string = 'ň';
  6284. $result = mb_strtoupper($string);
  6285. $expected = 'Ň';
  6286. $this->assertEqual($result, $expected);
  6287. $string = 'ŋ';
  6288. $result = mb_strtoupper($string);
  6289. $expected = 'Ŋ';
  6290. $this->assertEqual($result, $expected);
  6291. $string = 'ō';
  6292. $result = mb_strtoupper($string);
  6293. $expected = 'Ō';
  6294. $this->assertEqual($result, $expected);
  6295. $string = 'ŏ';
  6296. $result = mb_strtoupper($string);
  6297. $expected = 'Ŏ';
  6298. $this->assertEqual($result, $expected);
  6299. $string = 'ő';
  6300. $result = mb_strtoupper($string);
  6301. $expected = 'Ő';
  6302. $this->assertEqual($result, $expected);
  6303. $string = 'œ';
  6304. $result = mb_strtoupper($string);
  6305. $expected = 'Œ';
  6306. $this->assertEqual($result, $expected);
  6307. $string = 'ŕ';
  6308. $result = mb_strtoupper($string);
  6309. $expected = 'Ŕ';
  6310. $this->assertEqual($result, $expected);
  6311. $string = 'ŗ';
  6312. $result = mb_strtoupper($string);
  6313. $expected = 'Ŗ';
  6314. $this->assertEqual($result, $expected);
  6315. $string = 'ř';
  6316. $result = mb_strtoupper($string);
  6317. $expected = 'Ř';
  6318. $this->assertEqual($result, $expected);
  6319. $string = 'ś';
  6320. $result = mb_strtoupper($string);
  6321. $expected = 'Ś';
  6322. $this->assertEqual($result, $expected);
  6323. $string = 'ŝ';
  6324. $result = mb_strtoupper($string);
  6325. $expected = 'Ŝ';
  6326. $this->assertEqual($result, $expected);
  6327. $string = 'ş';
  6328. $result = mb_strtoupper($string);
  6329. $expected = 'Ş';
  6330. $this->assertEqual($result, $expected);
  6331. $string = 'š';
  6332. $result = mb_strtoupper($string);
  6333. $expected = 'Š';
  6334. $this->assertEqual($result, $expected);
  6335. $string = 'ţ';
  6336. $result = mb_strtoupper($string);
  6337. $expected = 'Ţ';
  6338. $this->assertEqual($result, $expected);
  6339. $string = 'ť';
  6340. $result = mb_strtoupper($string);
  6341. $expected = 'Ť';
  6342. $this->assertEqual($result, $expected);
  6343. $string = 'ŧ';
  6344. $result = mb_strtoupper($string);
  6345. $expected = 'Ŧ';
  6346. $this->assertEqual($result, $expected);
  6347. $string = 'ũ';
  6348. $result = mb_strtoupper($string);
  6349. $expected = 'Ũ';
  6350. $this->assertEqual($result, $expected);
  6351. $string = 'ū';
  6352. $result = mb_strtoupper($string);
  6353. $expected = 'Ū';
  6354. $this->assertEqual($result, $expected);
  6355. $string = 'ŭ';
  6356. $result = mb_strtoupper($string);
  6357. $expected = 'Ŭ';
  6358. $this->assertEqual($result, $expected);
  6359. $string = 'ů';
  6360. $result = mb_strtoupper($string);
  6361. $expected = 'Ů';
  6362. $this->assertEqual($result, $expected);
  6363. $string = 'ű';
  6364. $result = mb_strtoupper($string);
  6365. $expected = 'Ű';
  6366. $this->assertEqual($result, $expected);
  6367. $string = 'ų';
  6368. $result = mb_strtoupper($string);
  6369. $expected = 'Ų';
  6370. $this->assertEqual($result, $expected);
  6371. $string = 'ŵ';
  6372. $result = mb_strtoupper($string);
  6373. $expected = 'Ŵ';
  6374. $this->assertEqual($result, $expected);
  6375. $string = 'ŷ';
  6376. $result = mb_strtoupper($string);
  6377. $expected = 'Ŷ';
  6378. $this->assertEqual($result, $expected);
  6379. $string = 'ź';
  6380. $result = mb_strtoupper($string);
  6381. $expected = 'Ź';
  6382. $this->assertEqual($result, $expected);
  6383. $string = 'ż';
  6384. $result = mb_strtoupper($string);
  6385. $expected = 'Ż';
  6386. $this->assertEqual($result, $expected);
  6387. $string = 'ž';
  6388. $result = mb_strtoupper($string);
  6389. $expected = 'Ž';
  6390. $this->assertEqual($result, $expected);
  6391. $string = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
  6392. $result = mb_strtoupper($string);
  6393. $expected = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  6394. $this->assertEqual($result, $expected);
  6395. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  6396. $result = mb_strtoupper($string);
  6397. $expected = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
  6398. $this->assertEqual($result, $expected);
  6399. $string = 'ἀι';
  6400. $result = mb_strtoupper($string);
  6401. $expected = 'ἈΙ';
  6402. $this->assertEqual($result, $expected);
  6403. $string = 'ԁԃԅԇԉԋԍԏԐԒ';
  6404. $result = mb_strtoupper($string);
  6405. $expected = 'ԀԂԄԆԈԊԌԎԐԒ';
  6406. $this->assertEqual($result, $expected);
  6407. $string = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
  6408. $result = mb_strtoupper($string);
  6409. $expected = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
  6410. $this->assertEqual($result, $expected);
  6411. $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  6412. $result = mb_strtoupper($string);
  6413. $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  6414. $this->assertEqual($result, $expected);
  6415. $string = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
  6416. $result = mb_strtoupper($string);
  6417. $expected = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
  6418. $this->assertEqual($result, $expected);
  6419. $string = 'ωkå';
  6420. $result = mb_strtoupper($string);
  6421. $expected = 'ΩKÅ';
  6422. $this->assertEqual($result, $expected);
  6423. /*
  6424. mb_strtoupper does not work for these strings.
  6425. $string = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
  6426. $result = mb_strtoupper($string);
  6427. $expected = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
  6428. $this->assertEqual($result, $expected);
  6429. $string = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
  6430. $result = mb_strtoupper($string);
  6431. $expected = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
  6432. $this->assertEqual($result, $expected);
  6433. $string = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
  6434. $result = mb_strtoupper($string);
  6435. $expected = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
  6436. $this->assertEqual($result, $expected);
  6437. $string = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
  6438. $result = mb_strtoupper($string);
  6439. $expected = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
  6440. $this->assertEqual($result, $expected);
  6441. */
  6442. $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  6443. $result = mb_strtoupper($string);
  6444. $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  6445. $this->assertEqual($result, $expected);
  6446. }
  6447. /**
  6448. * testMultibyteStrtoupper method
  6449. *
  6450. * @access public
  6451. * @return void
  6452. */
  6453. function testMultibyteStrtoupper() {
  6454. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  6455. $result = Multibyte::strtoupper($string);
  6456. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
  6457. $this->assertEqual($result, $expected);
  6458. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  6459. $result = Multibyte::strtoupper($string);
  6460. $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
  6461. $this->assertEqual($result, $expected);
  6462. $string = 'à';
  6463. $result = Multibyte::strtoupper($string);
  6464. $expected = 'À';
  6465. $this->assertEqual($result, $expected);
  6466. $string = 'á';
  6467. $result = Multibyte::strtoupper($string);
  6468. $expected = 'Á';
  6469. $this->assertEqual($result, $expected);
  6470. $string = 'â';
  6471. $result = Multibyte::strtoupper($string);
  6472. $expected = 'Â';
  6473. $this->assertEqual($result, $expected);
  6474. $string = 'ã';
  6475. $result = Multibyte::strtoupper($string);
  6476. $expected = 'Ã';
  6477. $this->assertEqual($result, $expected);
  6478. $string = 'ä';
  6479. $result = Multibyte::strtoupper($string);
  6480. $expected = 'Ä';
  6481. $this->assertEqual($result, $expected);
  6482. $string = 'å';
  6483. $result = Multibyte::strtoupper($string);
  6484. $expected = 'Å';
  6485. $this->assertEqual($result, $expected);
  6486. $string = 'æ';
  6487. $result = Multibyte::strtoupper($string);
  6488. $expected = 'Æ';
  6489. $this->assertEqual($result, $expected);
  6490. $string = 'ç';
  6491. $result = Multibyte::strtoupper($string);
  6492. $expected = 'Ç';
  6493. $this->assertEqual($result, $expected);
  6494. $string = 'è';
  6495. $result = Multibyte::strtoupper($string);
  6496. $expected = 'È';
  6497. $this->assertEqual($result, $expected);
  6498. $string = 'é';
  6499. $result = Multibyte::strtoupper($string);
  6500. $expected = 'É';
  6501. $this->assertEqual($result, $expected);
  6502. $string = 'ê';
  6503. $result = Multibyte::strtoupper($string);
  6504. $expected = 'Ê';
  6505. $this->assertEqual($result, $expected);
  6506. $string = 'ë';
  6507. $result = Multibyte::strtoupper($string);
  6508. $expected = 'Ë';
  6509. $this->assertEqual($result, $expected);
  6510. $string = 'ì';
  6511. $result = Multibyte::strtoupper($string);
  6512. $expected = 'Ì';
  6513. $this->assertEqual($result, $expected);
  6514. $string = 'í';
  6515. $result = Multibyte::strtoupper($string);
  6516. $expected = 'Í';
  6517. $this->assertEqual($result, $expected);
  6518. $string = 'î';
  6519. $result = Multibyte::strtoupper($string);
  6520. $expected = 'Î';
  6521. $this->assertEqual($result, $expected);
  6522. $string = 'ï';
  6523. $result = Multibyte::strtoupper($string);
  6524. $expected = 'Ï';
  6525. $this->assertEqual($result, $expected);
  6526. $string = 'ð';
  6527. $result = Multibyte::strtoupper($string);
  6528. $expected = 'Ð';
  6529. $this->assertEqual($result, $expected);
  6530. $string = 'ñ';
  6531. $result = Multibyte::strtoupper($string);
  6532. $expected = 'Ñ';
  6533. $this->assertEqual($result, $expected);
  6534. $string = 'ò';
  6535. $result = Multibyte::strtoupper($string);
  6536. $expected = 'Ò';
  6537. $this->assertEqual($result, $expected);
  6538. $string = 'ó';
  6539. $result = Multibyte::strtoupper($string);
  6540. $expected = 'Ó';
  6541. $this->assertEqual($result, $expected);
  6542. $string = 'ô';
  6543. $result = Multibyte::strtoupper($string);
  6544. $expected = 'Ô';
  6545. $this->assertEqual($result, $expected);
  6546. $string = 'õ';
  6547. $result = Multibyte::strtoupper($string);
  6548. $expected = 'Õ';
  6549. $this->assertEqual($result, $expected);
  6550. $string = 'ö';
  6551. $result = Multibyte::strtoupper($string);
  6552. $expected = 'Ö';
  6553. $this->assertEqual($result, $expected);
  6554. $string = 'ø';
  6555. $result = Multibyte::strtoupper($string);
  6556. $expected = 'Ø';
  6557. $this->assertEqual($result, $expected);
  6558. $string = 'ù';
  6559. $result = Multibyte::strtoupper($string);
  6560. $expected = 'Ù';
  6561. $this->assertEqual($result, $expected);
  6562. $string = 'ú';
  6563. $result = Multibyte::strtoupper($string);
  6564. $expected = 'Ú';
  6565. $this->assertEqual($result, $expected);
  6566. $string = 'û';
  6567. $result = Multibyte::strtoupper($string);
  6568. $expected = 'Û';
  6569. $this->assertEqual($result, $expected);
  6570. $string = 'ü';
  6571. $result = Multibyte::strtoupper($string);
  6572. $expected = 'Ü';
  6573. $this->assertEqual($result, $expected);
  6574. $string = 'ý';
  6575. $result = Multibyte::strtoupper($string);
  6576. $expected = 'Ý';
  6577. $this->assertEqual($result, $expected);
  6578. $string = 'þ';
  6579. $result = Multibyte::strtoupper($string);
  6580. $expected = 'Þ';
  6581. $this->assertEqual($result, $expected);
  6582. $string = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
  6583. $result = Multibyte::strtoupper($string);
  6584. $expected = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  6585. $this->assertEqual($result, $expected);
  6586. $string = 'ā';
  6587. $result = Multibyte::strtoupper($string);
  6588. $expected = 'Ā';
  6589. $this->assertEqual($result, $expected);
  6590. $string = 'ă';
  6591. $result = Multibyte::strtoupper($string);
  6592. $expected = 'Ă';
  6593. $this->assertEqual($result, $expected);
  6594. $string = 'ą';
  6595. $result = Multibyte::strtoupper($string);
  6596. $expected = 'Ą';
  6597. $this->assertEqual($result, $expected);
  6598. $string = 'ć';
  6599. $result = Multibyte::strtoupper($string);
  6600. $expected = 'Ć';
  6601. $this->assertEqual($result, $expected);
  6602. $string = 'ĉ';
  6603. $result = Multibyte::strtoupper($string);
  6604. $expected = 'Ĉ';
  6605. $this->assertEqual($result, $expected);
  6606. $string = 'ċ';
  6607. $result = Multibyte::strtoupper($string);
  6608. $expected = 'Ċ';
  6609. $this->assertEqual($result, $expected);
  6610. $string = 'č';
  6611. $result = Multibyte::strtoupper($string);
  6612. $expected = 'Č';
  6613. $this->assertEqual($result, $expected);
  6614. $string = 'ď';
  6615. $result = Multibyte::strtoupper($string);
  6616. $expected = 'Ď';
  6617. $this->assertEqual($result, $expected);
  6618. $string = 'đ';
  6619. $result = Multibyte::strtoupper($string);
  6620. $expected = 'Đ';
  6621. $this->assertEqual($result, $expected);
  6622. $string = 'ē';
  6623. $result = Multibyte::strtoupper($string);
  6624. $expected = 'Ē';
  6625. $this->assertEqual($result, $expected);
  6626. $string = 'ĕ';
  6627. $result = Multibyte::strtoupper($string);
  6628. $expected = 'Ĕ';
  6629. $this->assertEqual($result, $expected);
  6630. $string = 'ė';
  6631. $result = Multibyte::strtoupper($string);
  6632. $expected = 'Ė';
  6633. $this->assertEqual($result, $expected);
  6634. $string = 'ę';
  6635. $result = Multibyte::strtoupper($string);
  6636. $expected = 'Ę';
  6637. $this->assertEqual($result, $expected);
  6638. $string = 'ě';
  6639. $result = Multibyte::strtoupper($string);
  6640. $expected = 'Ě';
  6641. $this->assertEqual($result, $expected);
  6642. $string = 'ĝ';
  6643. $result = Multibyte::strtoupper($string);
  6644. $expected = 'Ĝ';
  6645. $this->assertEqual($result, $expected);
  6646. $string = 'ğ';
  6647. $result = Multibyte::strtoupper($string);
  6648. $expected = 'Ğ';
  6649. $this->assertEqual($result, $expected);
  6650. $string = 'ġ';
  6651. $result = Multibyte::strtoupper($string);
  6652. $expected = 'Ġ';
  6653. $this->assertEqual($result, $expected);
  6654. $string = 'ģ';
  6655. $result = Multibyte::strtoupper($string);
  6656. $expected = 'Ģ';
  6657. $this->assertEqual($result, $expected);
  6658. $string = 'ĥ';
  6659. $result = Multibyte::strtoupper($string);
  6660. $expected = 'Ĥ';
  6661. $this->assertEqual($result, $expected);
  6662. $string = 'ħ';
  6663. $result = Multibyte::strtoupper($string);
  6664. $expected = 'Ħ';
  6665. $this->assertEqual($result, $expected);
  6666. $string = 'ĩ';
  6667. $result = Multibyte::strtoupper($string);
  6668. $expected = 'Ĩ';
  6669. $this->assertEqual($result, $expected);
  6670. $string = 'ī';
  6671. $result = Multibyte::strtoupper($string);
  6672. $expected = 'Ī';
  6673. $this->assertEqual($result, $expected);
  6674. $string = 'ĭ';
  6675. $result = Multibyte::strtoupper($string);
  6676. $expected = 'Ĭ';
  6677. $this->assertEqual($result, $expected);
  6678. $string = 'į';
  6679. $result = Multibyte::strtoupper($string);
  6680. $expected = 'Į';
  6681. $this->assertEqual($result, $expected);
  6682. $string = 'ij';
  6683. $result = Multibyte::strtoupper($string);
  6684. $expected = 'IJ';
  6685. $this->assertEqual($result, $expected);
  6686. $string = 'ĵ';
  6687. $result = Multibyte::strtoupper($string);
  6688. $expected = 'Ĵ';
  6689. $this->assertEqual($result, $expected);
  6690. $string = 'ķ';
  6691. $result = Multibyte::strtoupper($string);
  6692. $expected = 'Ķ';
  6693. $this->assertEqual($result, $expected);
  6694. $string = 'ĺ';
  6695. $result = Multibyte::strtoupper($string);
  6696. $expected = 'Ĺ';
  6697. $this->assertEqual($result, $expected);
  6698. $string = 'ļ';
  6699. $result = Multibyte::strtoupper($string);
  6700. $expected = 'Ļ';
  6701. $this->assertEqual($result, $expected);
  6702. $string = 'ľ';
  6703. $result = Multibyte::strtoupper($string);
  6704. $expected = 'Ľ';
  6705. $this->assertEqual($result, $expected);
  6706. $string = 'ŀ';
  6707. $result = Multibyte::strtoupper($string);
  6708. $expected = 'Ŀ';
  6709. $this->assertEqual($result, $expected);
  6710. $string = 'ł';
  6711. $result = Multibyte::strtoupper($string);
  6712. $expected = 'Ł';
  6713. $this->assertEqual($result, $expected);
  6714. $string = 'ń';
  6715. $result = Multibyte::strtoupper($string);
  6716. $expected = 'Ń';
  6717. $this->assertEqual($result, $expected);
  6718. $string = 'ņ';
  6719. $result = Multibyte::strtoupper($string);
  6720. $expected = 'Ņ';
  6721. $this->assertEqual($result, $expected);
  6722. $string = 'ň';
  6723. $result = Multibyte::strtoupper($string);
  6724. $expected = 'Ň';
  6725. $this->assertEqual($result, $expected);
  6726. $string = 'ŋ';
  6727. $result = Multibyte::strtoupper($string);
  6728. $expected = 'Ŋ';
  6729. $this->assertEqual($result, $expected);
  6730. $string = 'ō';
  6731. $result = Multibyte::strtoupper($string);
  6732. $expected = 'Ō';
  6733. $this->assertEqual($result, $expected);
  6734. $string = 'ŏ';
  6735. $result = Multibyte::strtoupper($string);
  6736. $expected = 'Ŏ';
  6737. $this->assertEqual($result, $expected);
  6738. $string = 'ő';
  6739. $result = Multibyte::strtoupper($string);
  6740. $expected = 'Ő';
  6741. $this->assertEqual($result, $expected);
  6742. $string = 'œ';
  6743. $result = Multibyte::strtoupper($string);
  6744. $expected = 'Œ';
  6745. $this->assertEqual($result, $expected);
  6746. $string = 'ŕ';
  6747. $result = Multibyte::strtoupper($string);
  6748. $expected = 'Ŕ';
  6749. $this->assertEqual($result, $expected);
  6750. $string = 'ŗ';
  6751. $result = Multibyte::strtoupper($string);
  6752. $expected = 'Ŗ';
  6753. $this->assertEqual($result, $expected);
  6754. $string = 'ř';
  6755. $result = Multibyte::strtoupper($string);
  6756. $expected = 'Ř';
  6757. $this->assertEqual($result, $expected);
  6758. $string = 'ś';
  6759. $result = Multibyte::strtoupper($string);
  6760. $expected = 'Ś';
  6761. $this->assertEqual($result, $expected);
  6762. $string = 'ŝ';
  6763. $result = Multibyte::strtoupper($string);
  6764. $expected = 'Ŝ';
  6765. $this->assertEqual($result, $expected);
  6766. $string = 'ş';
  6767. $result = Multibyte::strtoupper($string);
  6768. $expected = 'Ş';
  6769. $this->assertEqual($result, $expected);
  6770. $string = 'š';
  6771. $result = Multibyte::strtoupper($string);
  6772. $expected = 'Š';
  6773. $this->assertEqual($result, $expected);
  6774. $string = 'ţ';
  6775. $result = Multibyte::strtoupper($string);
  6776. $expected = 'Ţ';
  6777. $this->assertEqual($result, $expected);
  6778. $string = 'ť';
  6779. $result = Multibyte::strtoupper($string);
  6780. $expected = 'Ť';
  6781. $this->assertEqual($result, $expected);
  6782. $string = 'ŧ';
  6783. $result = Multibyte::strtoupper($string);
  6784. $expected = 'Ŧ';
  6785. $this->assertEqual($result, $expected);
  6786. $string = 'ũ';
  6787. $result = Multibyte::strtoupper($string);
  6788. $expected = 'Ũ';
  6789. $this->assertEqual($result, $expected);
  6790. $string = 'ū';
  6791. $result = Multibyte::strtoupper($string);
  6792. $expected = 'Ū';
  6793. $this->assertEqual($result, $expected);
  6794. $string = 'ŭ';
  6795. $result = Multibyte::strtoupper($string);
  6796. $expected = 'Ŭ';
  6797. $this->assertEqual($result, $expected);
  6798. $string = 'ů';
  6799. $result = Multibyte::strtoupper($string);
  6800. $expected = 'Ů';
  6801. $this->assertEqual($result, $expected);
  6802. $string = 'ű';
  6803. $result = Multibyte::strtoupper($string);
  6804. $expected = 'Ű';
  6805. $this->assertEqual($result, $expected);
  6806. $string = 'ų';
  6807. $result = Multibyte::strtoupper($string);
  6808. $expected = 'Ų';
  6809. $this->assertEqual($result, $expected);
  6810. $string = 'ŵ';
  6811. $result = Multibyte::strtoupper($string);
  6812. $expected = 'Ŵ';
  6813. $this->assertEqual($result, $expected);
  6814. $string = 'ŷ';
  6815. $result = Multibyte::strtoupper($string);
  6816. $expected = 'Ŷ';
  6817. $this->assertEqual($result, $expected);
  6818. $string = 'ź';
  6819. $result = Multibyte::strtoupper($string);
  6820. $expected = 'Ź';
  6821. $this->assertEqual($result, $expected);
  6822. $string = 'ż';
  6823. $result = Multibyte::strtoupper($string);
  6824. $expected = 'Ż';
  6825. $this->assertEqual($result, $expected);
  6826. $string = 'ž';
  6827. $result = Multibyte::strtoupper($string);
  6828. $expected = 'Ž';
  6829. $this->assertEqual($result, $expected);
  6830. $string = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
  6831. $result = Multibyte::strtoupper($string);
  6832. $expected = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  6833. $this->assertEqual($result, $expected);
  6834. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  6835. $result = Multibyte::strtoupper($string);
  6836. $expected = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
  6837. $this->assertEqual($result, $expected);
  6838. $string = 'ἀι';
  6839. $result = mb_strtoupper($string);
  6840. $expected = 'ἈΙ';
  6841. $this->assertEqual($result, $expected);
  6842. $string = 'ἀι';
  6843. $result = Multibyte::strtoupper($string);
  6844. $expected = 'ἈΙ';
  6845. $this->assertEqual($result, $expected);
  6846. $string = 'ԁԃԅԇԉԋԍԏԐԒ';
  6847. $result = Multibyte::strtoupper($string);
  6848. $expected = 'ԀԂԄԆԈԊԌԎԐԒ';
  6849. $this->assertEqual($result, $expected);
  6850. $string = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
  6851. $result = Multibyte::strtoupper($string);
  6852. $expected = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
  6853. $this->assertEqual($result, $expected);
  6854. $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  6855. $result = Multibyte::strtoupper($string);
  6856. $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
  6857. $this->assertEqual($result, $expected);
  6858. $string = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
  6859. $result = Multibyte::strtoupper($string);
  6860. $expected = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
  6861. $this->assertEqual($result, $expected);
  6862. $string = 'ωkåⅎ';
  6863. $result = Multibyte::strtoupper($string);
  6864. $expected = 'ΩKÅℲ';
  6865. $this->assertEqual($result, $expected);
  6866. $string = 'ωkå';
  6867. $result = Multibyte::strtoupper($string);
  6868. $expected = 'ΩKÅ';
  6869. $this->assertEqual($result, $expected);
  6870. $string = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
  6871. $result = Multibyte::strtoupper($string);
  6872. $expected = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
  6873. $this->assertEqual($result, $expected);
  6874. $string = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
  6875. $result = Multibyte::strtoupper($string);
  6876. $expected = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
  6877. $this->assertEqual($result, $expected);
  6878. $string = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
  6879. $result = Multibyte::strtoupper($string);
  6880. $expected = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
  6881. $this->assertEqual($result, $expected);
  6882. $string = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
  6883. $result = Multibyte::strtoupper($string);
  6884. $expected = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
  6885. $this->assertEqual($result, $expected);
  6886. $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  6887. $result = Multibyte::strtoupper($string);
  6888. $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
  6889. $this->assertEqual($result, $expected);
  6890. }
  6891. /**
  6892. * testUsingMbSubstrCount method
  6893. *
  6894. * @access public
  6895. * @return void
  6896. */
  6897. function testUsingMbSubstrCount() {
  6898. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  6899. $find = 'F';
  6900. $result = mb_substr_count($string, $find);
  6901. $expected = 1;
  6902. $this->assertEqual($result, $expected);
  6903. $string = 'ABCDEFGHIJKLMNOPQFRSFTUVWXYZ0F12345F6789';
  6904. $find = 'F';
  6905. $result = mb_substr_count($string, $find);
  6906. $expected = 5;
  6907. $this->assertEqual($result, $expected);
  6908. $string = 'ÀÁÂÃÄÅÆÇÈÉÅÊËÌÍÎÏÐÑÒÓÔÅÕÖØÅÙÚÛÅÜÝÞ';
  6909. $find = 'Å';
  6910. $result = mb_substr_count($string, $find);
  6911. $expected = 5;
  6912. $this->assertEqual($result, $expected);
  6913. $string = 'ÀÁÙÚÂÃÄÅÆÇÈÙÚÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞÙÚ';
  6914. $find = 'ÙÚ';
  6915. $result = mb_substr_count($string, $find);
  6916. $expected = 4;
  6917. $this->assertEqual($result, $expected);
  6918. $string = 'ÀÁÂÃÄÅÆÇÈÉÊÅËÌÍÎÏÐÑÒÓÔÕÅÖØÅÙÚÅÛÜÅÝÞÅ';
  6919. $find = 'Å';
  6920. $result = mb_substr_count($string, $find);
  6921. $expected = 7;
  6922. $this->assertEqual($result, $expected);
  6923. $string = 'ĊĀĂĄĆĈĊČĎĐĒĔĖĊĘĚĜĞĠĢĤĦĨĪĬĮĊIJĴĶĹĻĽĿŁŃŅŇŊŌĊŎŐŒŔŖŘŚŜŞŠŢĊŤŦŨŪŬŮŰĊŲŴŶŹŻŽ';
  6924. $find = 'Ċ';
  6925. $result = mb_substr_count($string, $find);
  6926. $expected = 7;
  6927. $this->assertEqual($result, $expected);
  6928. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĊĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅĊŇŊŌŎŐŒŔŖĊŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  6929. $find = 'Ċ';
  6930. $result = mb_substr_count($string, $find);
  6931. $expected = 5;
  6932. $this->assertEqual($result, $expected);
  6933. $string = '!"#$%&\'()*+,-./012F34567F89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiFjklmnopqFrstuvwFxyz{|}~';
  6934. $find = 'F';
  6935. $result = mb_substr_count($string, $find);
  6936. $expected = 6;
  6937. $this->assertEqual($result, $expected);
  6938. $string = '¡¢£¤¥µ¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁµÂõÄÅÆǵÈ';
  6939. $find = 'µ';
  6940. $result = mb_substr_count($string, $find);
  6941. $expected = 5;
  6942. $this->assertEqual($result, $expected);
  6943. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôÕÖõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉÕÖĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝÕÖĞğĠġĢģĤĥĦÕÖħĨĩĪīĬ';
  6944. $find = 'ÕÖ';
  6945. $result = mb_substr_count($string, $find);
  6946. $expected = 5;
  6947. $this->assertEqual($result, $expected);
  6948. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōĵĶķĸĹŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšĵĶķĸĹŢţŤťŦŧŨũŪūŬŭŮůŰűŲųĵĶķĸĹŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  6949. $find = 'ĵĶķĸĹ';
  6950. $result = mb_substr_count($string, $find);
  6951. $expected = 4;
  6952. $this->assertEqual($result, $expected);
  6953. $string = 'ƑƒƓƔƕƖƸƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJƸNjnjǍǎǏǐǑǒǓƸǔǕǖǗǘǙǚƸǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  6954. $find = 'Ƹ';
  6955. $result = mb_substr_count($string, $find);
  6956. $expected = 5;
  6957. $this->assertEqual($result, $expected);
  6958. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƹƠơƢƣƤƥƦƧƨƩƹƪƫƬƭƮƯưƱƲƳƴƹƵƶƷƸƹƺƻƼƽƾƿǀǁǂƹǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  6959. $find = 'ƹ';
  6960. $result = mb_substr_count($string, $find);
  6961. $expected = 5;
  6962. $this->assertEqual($result, $expected);
  6963. $string = 'əɚɛɜɝɞʀɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʀʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʀʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʀʻʼ';
  6964. $find = 'ʀ';
  6965. $result = mb_substr_count($string, $find);
  6966. $expected = 5;
  6967. $this->assertEqual($result, $expected);
  6968. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЇЎЏАБВГДЕЖЗИЙКЛ';
  6969. $find = 'Ї';
  6970. $result = mb_substr_count($string, $find);
  6971. $expected = 2;
  6972. $this->assertEqual($result, $expected);
  6973. $string = 'МНОПРСРТУФХЦЧШЩЪЫЬРЭЮЯабРвгдежзийклРмнопрстуфхцчшщъыь';
  6974. $find = 'Р';
  6975. $result = mb_substr_count($string, $find);
  6976. $expected = 5;
  6977. $this->assertEqual($result, $expected);
  6978. $string = 'МНОПРСрТУФХЦЧШЩЪЫрЬЭЮЯабвгдежзийклмнопррстуфхцчшщъыь';
  6979. $find = 'р';
  6980. $result = mb_substr_count($string, $find);
  6981. $expected = 4;
  6982. $this->assertEqual($result, $expected);
  6983. $string = 'فنقكلنمنهونىينًٌٍَُ';
  6984. $find = 'ن';
  6985. $result = mb_substr_count($string, $find);
  6986. $expected = 5;
  6987. $this->assertEqual($result, $expected);
  6988. $string = '✰✱✲✳✿✴✵✶✷✸✿✹✺✻✼✽✾✿❀❁❂❃❄❅❆✿❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  6989. $find = '✿';
  6990. $result = mb_substr_count($string, $find);
  6991. $expected = 4;
  6992. $this->assertEqual($result, $expected);
  6993. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺐⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺐⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⺐⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  6994. $find = '⺐';
  6995. $result = mb_substr_count($string, $find);
  6996. $expected = 4;
  6997. $this->assertEqual($result, $expected);
  6998. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽤⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽤⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  6999. $find = '⽤';
  7000. $result = mb_substr_count($string, $find);
  7001. $expected = 3;
  7002. $this->assertEqual($result, $expected);
  7003. $string = '눡눢눣눤눥눦눺눻눼눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕눺눻눼뉖뉗뉘뉙뉚뉛뉜뉝눺눻눼뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  7004. $find = '눺눻눼';
  7005. $result = mb_substr_count($string, $find);
  7006. $expected = 4;
  7007. $this->assertEqual($result, $expected);
  7008. $string = 'ﺞﺟﺠﺡﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺞﺟﺠﺡﺆﺇﺞﺟﺠﺡﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  7009. $find = 'ﺞﺟﺠﺡ';
  7010. $result = mb_substr_count($string, $find);
  7011. $expected = 4;
  7012. $this->assertEqual($result, $expected);
  7013. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﻞﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻞﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻞﻸﻹﻺﻞﻻﻼ';
  7014. $find = 'ﻞ';
  7015. $result = mb_substr_count($string, $find);
  7016. $expected = 5;
  7017. $this->assertEqual($result, $expected);
  7018. $string = 'abcdkefghijklmnopqrstuvwxkyz';
  7019. $find = 'k';
  7020. $result = mb_substr_count($string, $find);
  7021. $expected = 3;
  7022. $this->assertEqual($result, $expected);
  7023. $string = 'abklmcdefghijklmnopqrstuvklmwxyz';
  7024. $find = 'klm';
  7025. $result = mb_substr_count($string, $find);
  7026. $expected = 3;
  7027. $this->assertEqual($result, $expected);
  7028. $string = 'abcdppefghijklmnoppqrstuvwxyz';
  7029. $find = 'ppe';
  7030. $result = mb_substr_count($string, $find);
  7031. $expected = 1;
  7032. $this->assertEqual($result, $expected);
  7033. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  7034. $find = 'ア';
  7035. $result = mb_substr_count($string, $find);
  7036. $expected = 1;
  7037. $this->assertEqual($result, $expected);
  7038. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  7039. $find = 'ハ';
  7040. $result = mb_substr_count($string, $find);
  7041. $expected = 1;
  7042. $this->assertEqual($result, $expected);
  7043. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7044. $find = 'ő';
  7045. $result = mb_substr_count($string, $find);
  7046. $expected = 1;
  7047. $this->assertEqual($result, $expected);
  7048. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7049. $find = 'ĺļ';
  7050. $result = mb_substr_count($string, $find);
  7051. $expected = 1;
  7052. $this->assertEqual($result, $expected);
  7053. $string = 'Hello, World!';
  7054. $find = 'o';
  7055. $result = mb_substr_count($string, $find);
  7056. $expected = 2;
  7057. $this->assertEqual($result, $expected);
  7058. $string = 'Hello, World!';
  7059. $find = 'rl';
  7060. $result = mb_substr_count($string, $find);
  7061. $expected = 1;
  7062. $this->assertEqual($result, $expected);
  7063. $string = 'čini';
  7064. $find = 'n';
  7065. $result = mb_substr_count($string, $find);
  7066. $expected = 1;
  7067. $this->assertEqual($result, $expected);
  7068. $string = 'ničiničiini';
  7069. $find = 'n';
  7070. $result = mb_substr_count($string, $find);
  7071. $expected = 3;
  7072. $this->assertEqual($result, $expected);
  7073. $string = 'moći';
  7074. $find = 'ć';
  7075. $result = mb_substr_count($string, $find);
  7076. $expected = 1;
  7077. $this->assertEqual($result, $expected);
  7078. $string = 'moćimoćimoćmćioći';
  7079. $find = 'ći';
  7080. $result = mb_substr_count($string, $find);
  7081. $expected = 4;
  7082. $this->assertEqual($result, $expected);
  7083. $string = 'državni';
  7084. $find = 'ž';
  7085. $result = mb_substr_count($string, $find);
  7086. $expected = 1;
  7087. $this->assertEqual($result, $expected);
  7088. $string = '把百度设为首页';
  7089. $find = '设';
  7090. $result = mb_substr_count($string, $find);
  7091. $expected = 1;
  7092. $this->assertEqual($result, $expected);
  7093. $string = '一二三周永龍';
  7094. $find = '周';
  7095. $result = mb_substr_count($string, $find);
  7096. $expected = 1;
  7097. $this->assertEqual($result, $expected);
  7098. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7099. $find = 'H';
  7100. $result = mb_substr_count($string, $find);
  7101. $expected = false;
  7102. $this->assertEqual($result, $expected);
  7103. }
  7104. /**
  7105. * testMultibyteSubstrCount method
  7106. *
  7107. * @access public
  7108. * @return void
  7109. */
  7110. function testMultibyteSubstrCount() {
  7111. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  7112. $find = 'F';
  7113. $result = Multibyte::substrCount($string, $find);
  7114. $expected = 1;
  7115. $this->assertEqual($result, $expected);
  7116. $string = 'ABCDEFGHIJKLMNOPQFRSFTUVWXYZ0F12345F6789';
  7117. $find = 'F';
  7118. $result = Multibyte::substrCount($string, $find);
  7119. $expected = 5;
  7120. $this->assertEqual($result, $expected);
  7121. $string = 'ÀÁÂÃÄÅÆÇÈÉÅÊËÌÍÎÏÐÑÒÓÔÅÕÖØÅÙÚÛÅÜÝÞ';
  7122. $find = 'Å';
  7123. $result = Multibyte::substrCount($string, $find);
  7124. $expected = 5;
  7125. $this->assertEqual($result, $expected);
  7126. $string = 'ÀÁÙÚÂÃÄÅÆÇÈÙÚÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞÙÚ';
  7127. $find = 'ÙÚ';
  7128. $result = Multibyte::substrCount($string, $find);
  7129. $expected = 4;
  7130. $this->assertEqual($result, $expected);
  7131. $string = 'ÀÁÂÃÄÅÆÇÈÉÊÅËÌÍÎÏÐÑÒÓÔÕÅÖØÅÙÚÅÛÜÅÝÞÅ';
  7132. $find = 'Å';
  7133. $result = Multibyte::substrCount($string, $find);
  7134. $expected = 7;
  7135. $this->assertEqual($result, $expected);
  7136. $string = 'ĊĀĂĄĆĈĊČĎĐĒĔĖĊĘĚĜĞĠĢĤĦĨĪĬĮĊIJĴĶĹĻĽĿŁŃŅŇŊŌĊŎŐŒŔŖŘŚŜŞŠŢĊŤŦŨŪŬŮŰĊŲŴŶŹŻŽ';
  7137. $find = 'Ċ';
  7138. $result = Multibyte::substrCount($string, $find);
  7139. $expected = 7;
  7140. $this->assertEqual($result, $expected);
  7141. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĊĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅĊŇŊŌŎŐŒŔŖĊŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  7142. $find = 'Ċ';
  7143. $result = Multibyte::substrCount($string, $find);
  7144. $expected = 5;
  7145. $this->assertEqual($result, $expected);
  7146. $string = '!"#$%&\'()*+,-./012F34567F89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiFjklmnopqFrstuvwFxyz{|}~';
  7147. $find = 'F';
  7148. $result = Multibyte::substrCount($string, $find);
  7149. $expected = 6;
  7150. $this->assertEqual($result, $expected);
  7151. $string = '¡¢£¤¥µ¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁµÂõÄÅÆǵÈ';
  7152. $find = 'µ';
  7153. $result = Multibyte::substrCount($string, $find);
  7154. $expected = 5;
  7155. $this->assertEqual($result, $expected);
  7156. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôÕÖõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉÕÖĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝÕÖĞğĠġĢģĤĥĦÕÖħĨĩĪīĬ';
  7157. $find = 'ÕÖ';
  7158. $result = Multibyte::substrCount($string, $find);
  7159. $expected = 5;
  7160. $this->assertEqual($result, $expected);
  7161. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōĵĶķĸĹŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšĵĶķĸĹŢţŤťŦŧŨũŪūŬŭŮůŰűŲųĵĶķĸĹŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  7162. $find = 'ĵĶķĸĹ';
  7163. $result = Multibyte::substrCount($string, $find);
  7164. $expected = 4;
  7165. $this->assertEqual($result, $expected);
  7166. $string = 'ƑƒƓƔƕƖƸƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJƸNjnjǍǎǏǐǑǒǓƸǔǕǖǗǘǙǚƸǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  7167. $find = 'Ƹ';
  7168. $result = Multibyte::substrCount($string, $find);
  7169. $expected = 5;
  7170. $this->assertEqual($result, $expected);
  7171. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƹƠơƢƣƤƥƦƧƨƩƹƪƫƬƭƮƯưƱƲƳƴƹƵƶƷƸƹƺƻƼƽƾƿǀǁǂƹǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  7172. $find = 'ƹ';
  7173. $result = Multibyte::substrCount($string, $find);
  7174. $expected = 5;
  7175. $this->assertEqual($result, $expected);
  7176. $string = 'əɚɛɜɝɞʀɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʀʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʀʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʀʻʼ';
  7177. $find = 'ʀ';
  7178. $result = Multibyte::substrCount($string, $find);
  7179. $expected = 5;
  7180. $this->assertEqual($result, $expected);
  7181. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЇЎЏАБВГДЕЖЗИЙКЛ';
  7182. $find = 'Ї';
  7183. $result = Multibyte::substrCount($string, $find);
  7184. $expected = 2;
  7185. $this->assertEqual($result, $expected);
  7186. $string = 'МНОПРСРТУФХЦЧШЩЪЫЬРЭЮЯабРвгдежзийклРмнопрстуфхцчшщъыь';
  7187. $find = 'Р';
  7188. $result = Multibyte::substrCount($string, $find);
  7189. $expected = 5;
  7190. $this->assertEqual($result, $expected);
  7191. $string = 'МНОПРСрТУФХЦЧШЩЪЫрЬЭЮЯабвгдежзийклмнопррстуфхцчшщъыь';
  7192. $find = 'р';
  7193. $result = Multibyte::substrCount($string, $find);
  7194. $expected = 4;
  7195. $this->assertEqual($result, $expected);
  7196. $string = 'فنقكلنمنهونىينًٌٍَُ';
  7197. $find = 'ن';
  7198. $result = Multibyte::substrCount($string, $find);
  7199. $expected = 5;
  7200. $this->assertEqual($result, $expected);
  7201. $string = '✰✱✲✳✿✴✵✶✷✸✿✹✺✻✼✽✾✿❀❁❂❃❄❅❆✿❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  7202. $find = '✿';
  7203. $result = Multibyte::substrCount($string, $find);
  7204. $expected = 4;
  7205. $this->assertEqual($result, $expected);
  7206. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺐⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺐⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⺐⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  7207. $find = '⺐';
  7208. $result = Multibyte::substrCount($string, $find);
  7209. $expected = 4;
  7210. $this->assertEqual($result, $expected);
  7211. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽤⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽤⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  7212. $find = '⽤';
  7213. $result = Multibyte::substrCount($string, $find);
  7214. $expected = 3;
  7215. $this->assertEqual($result, $expected);
  7216. $string = '눡눢눣눤눥눦눺눻눼눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕눺눻눼뉖뉗뉘뉙뉚뉛뉜뉝눺눻눼뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  7217. $find = '눺눻눼';
  7218. $result = Multibyte::substrCount($string, $find);
  7219. $expected = 4;
  7220. $this->assertEqual($result, $expected);
  7221. $string = 'ﺞﺟﺠﺡﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺞﺟﺠﺡﺆﺇﺞﺟﺠﺡﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  7222. $find = 'ﺞﺟﺠﺡ';
  7223. $result = Multibyte::substrCount($string, $find);
  7224. $expected = 4;
  7225. $this->assertEqual($result, $expected);
  7226. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﻞﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻞﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻞﻸﻹﻺﻞﻻﻼ';
  7227. $find = 'ﻞ';
  7228. $result = Multibyte::substrCount($string, $find);
  7229. $expected = 5;
  7230. $this->assertEqual($result, $expected);
  7231. $string = 'abcdkefghijklmnopqrstuvwxkyz';
  7232. $find = 'k';
  7233. $result = Multibyte::substrCount($string, $find);
  7234. $expected = 3;
  7235. $this->assertEqual($result, $expected);
  7236. $string = 'abklmcdefghijklmnopqrstuvklmwxyz';
  7237. $find = 'klm';
  7238. $result = Multibyte::substrCount($string, $find);
  7239. $expected = 3;
  7240. $this->assertEqual($result, $expected);
  7241. $string = 'abcdppefghijklmnoppqrstuvwxyz';
  7242. $find = 'ppe';
  7243. $result = Multibyte::substrCount($string, $find);
  7244. $expected = 1;
  7245. $this->assertEqual($result, $expected);
  7246. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  7247. $find = 'ア';
  7248. $result = Multibyte::substrCount($string, $find);
  7249. $expected = 1;
  7250. $this->assertEqual($result, $expected);
  7251. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  7252. $find = 'ハ';
  7253. $result = Multibyte::substrCount($string, $find);
  7254. $expected = 1;
  7255. $this->assertEqual($result, $expected);
  7256. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7257. $find = 'ő';
  7258. $result = Multibyte::substrCount($string, $find);
  7259. $expected = 1;
  7260. $this->assertEqual($result, $expected);
  7261. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7262. $find = 'ĺļ';
  7263. $result = Multibyte::substrCount($string, $find);
  7264. $expected = 1;
  7265. $this->assertEqual($result, $expected);
  7266. $string = 'Hello, World!';
  7267. $find = 'o';
  7268. $result = Multibyte::substrCount($string, $find);
  7269. $expected = 2;
  7270. $this->assertEqual($result, $expected);
  7271. $string = 'Hello, World!';
  7272. $find = 'rl';
  7273. $result = Multibyte::substrCount($string, $find);
  7274. $expected = 1;
  7275. $this->assertEqual($result, $expected);
  7276. $string = 'čini';
  7277. $find = 'n';
  7278. $result = Multibyte::substrCount($string, $find);
  7279. $expected = 1;
  7280. $this->assertEqual($result, $expected);
  7281. $string = 'ničiničiini';
  7282. $find = 'n';
  7283. $result = Multibyte::substrCount($string, $find);
  7284. $expected = 3;
  7285. $this->assertEqual($result, $expected);
  7286. $string = 'moći';
  7287. $find = 'ć';
  7288. $result = Multibyte::substrCount($string, $find);
  7289. $expected = 1;
  7290. $this->assertEqual($result, $expected);
  7291. $string = 'moćimoćimoćmćioći';
  7292. $find = 'ći';
  7293. $result = Multibyte::substrCount($string, $find);
  7294. $expected = 4;
  7295. $this->assertEqual($result, $expected);
  7296. $string = 'državni';
  7297. $find = 'ž';
  7298. $result = Multibyte::substrCount($string, $find);
  7299. $expected = 1;
  7300. $this->assertEqual($result, $expected);
  7301. $string = '把百度设为首页';
  7302. $find = '设';
  7303. $result = Multibyte::substrCount($string, $find);
  7304. $expected = 1;
  7305. $this->assertEqual($result, $expected);
  7306. $string = '一二三周永龍';
  7307. $find = '周';
  7308. $result = Multibyte::substrCount($string, $find);
  7309. $expected = 1;
  7310. $this->assertEqual($result, $expected);
  7311. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7312. $find = 'H';
  7313. $result = Multibyte::substrCount($string, $find);
  7314. $expected = false;
  7315. $this->assertEqual($result, $expected);
  7316. }
  7317. /**
  7318. * testUsingMbSubstr method
  7319. *
  7320. * @access public
  7321. * @return void
  7322. */
  7323. function testUsingMbSubstr() {
  7324. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  7325. $result = mb_substr($string, 4, 7);
  7326. $expected = 'EFGHIJK';
  7327. $this->assertEqual($result, $expected);
  7328. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  7329. $result = mb_substr($string, 4, 7);
  7330. $expected = 'ÄÅÆÇÈÉÊ';
  7331. $this->assertEqual($result, $expected);
  7332. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  7333. $find = 'Ċ';
  7334. $result = mb_substr($string, 4, 7);
  7335. $expected = 'ĈĊČĎĐĒĔ';
  7336. $this->assertEqual($result, $expected);
  7337. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  7338. $result = mb_substr($string, 4, 7);
  7339. $expected = '%&\'()*+';
  7340. $this->assertEqual($result, $expected);
  7341. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  7342. $result = mb_substr($string, 4);
  7343. $expected = '¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  7344. $this->assertEqual($result, $expected);
  7345. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  7346. $result = mb_substr($string, 4, 7);
  7347. $expected = 'ÍÎÏÐÑÒÓ';
  7348. $this->assertEqual($result, $expected);
  7349. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  7350. $result = mb_substr($string, 4, 7);
  7351. $expected = 'ıIJijĴĵĶķ';
  7352. $this->assertEqual($result, $expected);
  7353. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  7354. $result = mb_substr($string, 25);
  7355. $expected = 'ƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  7356. $this->assertEqual($result, $expected);
  7357. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  7358. $result = mb_substr($string, 3);
  7359. $expected = 'ɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  7360. $this->assertEqual($result, $expected);
  7361. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  7362. $result = mb_substr($string, 3);
  7363. $expected = 'ЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  7364. $this->assertEqual($result, $expected);
  7365. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  7366. $result = mb_substr($string, 3, 16);
  7367. $expected = 'ПРСТУФХЦЧШЩЪЫЬЭЮ';
  7368. $this->assertEqual($result, $expected);
  7369. $string = 'فقكلمنهوىيًٌٍَُ';
  7370. $result = mb_substr($string, 3, 6);
  7371. $expected = 'لمنهوى';
  7372. $this->assertEqual($result, $expected);
  7373. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  7374. $result = mb_substr($string, 6, 14);
  7375. $expected = '✶✷✸✹✺✻✼✽✾✿❀❁❂❃';
  7376. $this->assertEqual($result, $expected);
  7377. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  7378. $result = mb_substr($string, 8, 13);
  7379. $expected = '⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔';
  7380. $this->assertEqual($result, $expected);
  7381. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  7382. $result = mb_substr($string, 12, 24);
  7383. $expected = '⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨';
  7384. $this->assertEqual($result, $expected);
  7385. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  7386. $result = mb_substr($string, 12, 24);
  7387. $expected = '눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄';
  7388. $this->assertEqual($result, $expected);
  7389. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  7390. $result = mb_substr($string, 12);
  7391. $expected = 'ﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  7392. $this->assertEqual($result, $expected);
  7393. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  7394. $result = mb_substr($string, 24, 12);
  7395. $expected = 'ﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔ';
  7396. $this->assertEqual($result, $expected);
  7397. $string = 'abcdefghijklmnopqrstuvwxyz';
  7398. $result = mb_substr($string, 11, 2);
  7399. $expected = 'lm';
  7400. $this->assertEqual($result, $expected);
  7401. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  7402. $result = mb_substr($string, 7, 11);
  7403. $expected = 'ィゥェォャュョッーアイ';
  7404. $this->assertEqual($result, $expected);
  7405. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  7406. $result = mb_substr($string, 13, 13);
  7407. $expected = 'ニヌネノハヒフヘホマミムメ';
  7408. $this->assertEqual($result, $expected);
  7409. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7410. $result = mb_substr($string, 3, 4);
  7411. $expected = 'ļŏ, ';
  7412. $this->assertEqual($result, $expected);
  7413. $string = 'Hello, World!';
  7414. $result = mb_substr($string, 3, 4);
  7415. $expected = 'lo, ';
  7416. $this->assertEqual($result, $expected);
  7417. $string = 'čini';
  7418. $result = mb_substr($string, 3);
  7419. $expected = 'i';
  7420. $this->assertEqual($result, $expected);
  7421. $string = 'moći';
  7422. $result = mb_substr($string, 1);
  7423. $expected = 'oći';
  7424. $this->assertEqual($result, $expected);
  7425. $string = 'državni';
  7426. $result = mb_substr($string, 0, 2);
  7427. $expected = 'dr';
  7428. $this->assertEqual($result, $expected);
  7429. $string = '把百度设为首页';
  7430. $result = mb_substr($string, 3, 3);
  7431. $expected = '设为首';
  7432. $this->assertEqual($result, $expected);
  7433. $string = '一二三周永龍';
  7434. $result = mb_substr($string, 0, 1);
  7435. $expected = '一';
  7436. $this->assertEqual($result, $expected);
  7437. $string = '一二三周永龍';
  7438. $result = mb_substr($string, 6);
  7439. $expected = false;
  7440. $this->assertEqual($result, $expected);
  7441. $string = '一二三周永龍';
  7442. $result = mb_substr($string, 0);
  7443. $expected = '一二三周永龍';
  7444. $this->assertEqual($result, $expected);
  7445. }
  7446. /**
  7447. * testMultibyteSubstr method
  7448. *
  7449. * @access public
  7450. * @return void
  7451. */
  7452. function testMultibyteSubstr() {
  7453. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  7454. $result = Multibyte::substr($string, 4, 7);
  7455. $expected = 'EFGHIJK';
  7456. $this->assertEqual($result, $expected);
  7457. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  7458. $result = Multibyte::substr($string, 4, 7);
  7459. $expected = 'ÄÅÆÇÈÉÊ';
  7460. $this->assertEqual($result, $expected);
  7461. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  7462. $find = 'Ċ';
  7463. $result = Multibyte::substr($string, 4, 7);
  7464. $expected = 'ĈĊČĎĐĒĔ';
  7465. $this->assertEqual($result, $expected);
  7466. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  7467. $result = Multibyte::substr($string, 4, 7);
  7468. $expected = '%&\'()*+';
  7469. $this->assertEqual($result, $expected);
  7470. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  7471. $result = Multibyte::substr($string, 4);
  7472. $expected = '¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  7473. $this->assertEqual($result, $expected);
  7474. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  7475. $result = Multibyte::substr($string, 4, 7);
  7476. $expected = 'ÍÎÏÐÑÒÓ';
  7477. $this->assertEqual($result, $expected);
  7478. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  7479. $result = Multibyte::substr($string, 4, 7);
  7480. $expected = 'ıIJijĴĵĶķ';
  7481. $this->assertEqual($result, $expected);
  7482. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  7483. $result = Multibyte::substr($string, 25);
  7484. $expected = 'ƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  7485. $this->assertEqual($result, $expected);
  7486. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  7487. $result = Multibyte::substr($string, 3);
  7488. $expected = 'ɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  7489. $this->assertEqual($result, $expected);
  7490. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  7491. $result = Multibyte::substr($string, 3);
  7492. $expected = 'ЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  7493. $this->assertEqual($result, $expected);
  7494. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  7495. $result = Multibyte::substr($string, 3, 16);
  7496. $expected = 'ПРСТУФХЦЧШЩЪЫЬЭЮ';
  7497. $this->assertEqual($result, $expected);
  7498. $string = 'فقكلمنهوىيًٌٍَُ';
  7499. $result = Multibyte::substr($string, 3, 6);
  7500. $expected = 'لمنهوى';
  7501. $this->assertEqual($result, $expected);
  7502. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  7503. $result = Multibyte::substr($string, 6, 14);
  7504. $expected = '✶✷✸✹✺✻✼✽✾✿❀❁❂❃';
  7505. $this->assertEqual($result, $expected);
  7506. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  7507. $result = Multibyte::substr($string, 8, 13);
  7508. $expected = '⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔';
  7509. $this->assertEqual($result, $expected);
  7510. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  7511. $result = Multibyte::substr($string, 12, 24);
  7512. $expected = '⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨';
  7513. $this->assertEqual($result, $expected);
  7514. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  7515. $result = Multibyte::substr($string, 12, 24);
  7516. $expected = '눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄';
  7517. $this->assertEqual($result, $expected);
  7518. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  7519. $result = Multibyte::substr($string, 12);
  7520. $expected = 'ﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  7521. $this->assertEqual($result, $expected);
  7522. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  7523. $result = Multibyte::substr($string, 24, 12);
  7524. $expected = 'ﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔ';
  7525. $this->assertEqual($result, $expected);
  7526. $string = 'abcdefghijklmnopqrstuvwxyz';
  7527. $result = Multibyte::substr($string, 11, 2);
  7528. $expected = 'lm';
  7529. $this->assertEqual($result, $expected);
  7530. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  7531. $result = Multibyte::substr($string, 7, 11);
  7532. $expected = 'ィゥェォャュョッーアイ';
  7533. $this->assertEqual($result, $expected);
  7534. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  7535. $result = Multibyte::substr($string, 13, 13);
  7536. $expected = 'ニヌネノハヒフヘホマミムメ';
  7537. $this->assertEqual($result, $expected);
  7538. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7539. $result = Multibyte::substr($string, 3, 4);
  7540. $expected = 'ļŏ, ';
  7541. $this->assertEqual($result, $expected);
  7542. $string = 'Hello, World!';
  7543. $result = Multibyte::substr($string, 3, 4);
  7544. $expected = 'lo, ';
  7545. $this->assertEqual($result, $expected);
  7546. $string = 'čini';
  7547. $result = Multibyte::substr($string, 3);
  7548. $expected = 'i';
  7549. $this->assertEqual($result, $expected);
  7550. $string = 'moći';
  7551. $result = Multibyte::substr($string, 1);
  7552. $expected = 'oći';
  7553. $this->assertEqual($result, $expected);
  7554. $string = 'državni';
  7555. $result = Multibyte::substr($string, 0, 2);
  7556. $expected = 'dr';
  7557. $this->assertEqual($result, $expected);
  7558. $string = '把百度设为首页';
  7559. $result = Multibyte::substr($string, 3, 3);
  7560. $expected = '设为首';
  7561. $this->assertEqual($result, $expected);
  7562. $string = '一二三周永龍';
  7563. $result = Multibyte::substr($string, 0, 1);
  7564. $expected = '一';
  7565. $this->assertEqual($result, $expected);
  7566. $string = '一二三周永龍';
  7567. $result = Multibyte::substr($string, 6);
  7568. $expected = false;
  7569. $this->assertEqual($result, $expected);
  7570. $string = '一二三周永龍';
  7571. $result = Multibyte::substr($string, 0);
  7572. $expected = '一二三周永龍';
  7573. $this->assertEqual($result, $expected);
  7574. }
  7575. /**
  7576. * testMultibyteSubstr method
  7577. *
  7578. * @access public
  7579. * @return void
  7580. */
  7581. function testMultibyteMimeEncode() {
  7582. $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
  7583. $result = Multibyte::mimeEncode($string);
  7584. $this->assertEqual($result, $string);
  7585. $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
  7586. $result = Multibyte::mimeEncode($string);
  7587. $expected = '=?UTF-8?B?w4DDgcOCw4PDhMOFw4bDh8OIw4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5U=?=' . "\r\n" .
  7588. ' =?UTF-8?B?w5bDmMOZw5rDm8Ocw53Dng==?=';
  7589. $this->assertEqual($result, $expected);
  7590. $result = Multibyte::mimeEncode($string, null, "\n");
  7591. $expected = '=?UTF-8?B?w4DDgcOCw4PDhMOFw4bDh8OIw4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5U=?=' . "\n" .
  7592. ' =?UTF-8?B?w5bDmMOZw5rDm8Ocw53Dng==?=';
  7593. $this->assertEqual($result, $expected);
  7594. $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
  7595. $result = Multibyte::mimeEncode($string);
  7596. $expected = '=?UTF-8?B?xIDEgsSExIbEiMSKxIzEjsSQxJLElMSWxJjEmsScxJ7EoMSixKTEpsSoxKo=?=' . "\r\n" .
  7597. ' =?UTF-8?B?xKzErsSyxLTEtsS5xLvEvcS/xYHFg8WFxYfFisWMxY7FkMWSxZTFlsWYxZo=?=' . "\r\n" .
  7598. ' =?UTF-8?B?xZzFnsWgxaLFpMWmxajFqsWsxa7FsMWyxbTFtsW5xbvFvQ==?=';
  7599. $this->assertEqual($result, $expected);
  7600. $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
  7601. $result = Multibyte::mimeEncode($string);
  7602. $expected = '=?UTF-8?B?ISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xN?=' . "\r\n" .
  7603. ' =?UTF-8?B?Tk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6?=' . "\r\n" .
  7604. ' =?UTF-8?B?e3x9fg==?=';
  7605. $this->assertEqual($result, $expected);
  7606. $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
  7607. $result = Multibyte::mimeEncode($string);
  7608. $expected = '=?UTF-8?B?wqHCosKjwqTCpcKmwqfCqMKpwqrCq8Kswq3CrsKvwrDCscKywrPCtMK1wrY=?=' . "\r\n" .
  7609. ' =?UTF-8?B?wrfCuMK5wrrCu8K8wr3CvsK/w4DDgcOCw4PDhMOFw4bDh8OI?=';
  7610. $this->assertEqual($result, $expected);
  7611. $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
  7612. $result = Multibyte::mimeEncode($string);
  7613. $expected = '=?UTF-8?B?w4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5XDlsOXw5jDmcOaw5vDnMOdw54=?=' . "\r\n" .
  7614. ' =?UTF-8?B?w5/DoMOhw6LDo8Okw6XDpsOnw6jDqcOqw6vDrMOtw67Dr8Oww7HDssOzw7Q=?=' . "\r\n" .
  7615. ' =?UTF-8?B?w7XDtsO3w7jDucO6w7vDvMO9w77Dv8SAxIHEgsSDxITEhcSGxIfEiMSJxIo=?=' . "\r\n" .
  7616. ' =?UTF-8?B?xIvEjMSNxI7Ej8SQxJHEksSTxJTElcSWxJfEmMSZxJrEm8ScxJ3EnsSfxKA=?=' . "\r\n" .
  7617. ' =?UTF-8?B?xKHEosSjxKTEpcSmxKfEqMSpxKrEq8Ss?=';
  7618. $this->assertEqual($result, $expected);
  7619. $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
  7620. $result = Multibyte::mimeEncode($string);
  7621. $expected = '=?UTF-8?B?xK3ErsSvxLDEscSyxLPEtMS1xLbEt8S4xLnEusS7xLzEvcS+xL/FgMWBxYI=?=' . "\r\n" .
  7622. ' =?UTF-8?B?xYPFhMWFxYbFh8WIxYnFisWLxYzFjcWOxY/FkMWRxZLFk8WUxZXFlsWXxZg=?=' . "\r\n" .
  7623. ' =?UTF-8?B?xZnFmsWbxZzFncWexZ/FoMWhxaLFo8WkxaXFpsWnxajFqcWqxavFrMWtxa4=?=' . "\r\n" .
  7624. ' =?UTF-8?B?xa/FsMWxxbLFs8W0xbXFtsW3xbjFucW6xbvFvMW9xb7Fv8aAxoHGgsaDxoQ=?=' . "\r\n" .
  7625. ' =?UTF-8?B?xoXGhsaHxojGicaKxovGjMaNxo7Gj8aQ?=';
  7626. $this->assertEqual($result, $expected);
  7627. $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
  7628. $result = Multibyte::mimeEncode($string);
  7629. $expected = '=?UTF-8?B?xpHGksaTxpTGlcaWxpfGmMaZxprGm8acxp3GnsafxqDGocaixqPGpMalxqY=?=' . "\r\n" .
  7630. ' =?UTF-8?B?xqfGqMapxqrGq8asxq3GrsavxrDGscayxrPGtMa1xrbGt8a4xrnGusa7xrw=?=' . "\r\n" .
  7631. ' =?UTF-8?B?xr3Gvsa/x4DHgceCx4PHhMeFx4bHh8eIx4nHiseLx4zHjceOx4/HkMeRx5I=?=' . "\r\n" .
  7632. ' =?UTF-8?B?x5PHlMeVx5bHl8eYx5nHmsebx5zHnceex5/HoMehx6LHo8ekx6XHpsenx6g=?=' . "\r\n" .
  7633. ' =?UTF-8?B?x6nHqserx6zHrceux6/HsMexx7LHs8e0?=';
  7634. $this->assertEqual($result, $expected);
  7635. $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
  7636. $result = Multibyte::mimeEncode($string);
  7637. $expected = '=?UTF-8?B?yZnJmsmbyZzJncmeyZ/JoMmhyaLJo8mkyaXJpsmnyajJqcmqyavJrMmtya4=?=' . "\r\n" .
  7638. ' =?UTF-8?B?ya/JsMmxybLJs8m0ybXJtsm3ybjJucm6ybvJvMm9yb7Jv8qAyoHKgsqDyoQ=?=' . "\r\n" .
  7639. ' =?UTF-8?B?yoXKhsqHyojKicqKyovKjMqNyo7Kj8qQypHKksqTypTKlcqWypfKmMqZypo=?=' . "\r\n" .
  7640. ' =?UTF-8?B?ypvKnMqdyp7Kn8qgyqHKosqjyqTKpcqmyqfKqMqpyqrKq8qsyq3KrsqvyrA=?=' . "\r\n" .
  7641. ' =?UTF-8?B?yrHKssqzyrTKtcq2yrfKuMq5yrrKu8q8?=';
  7642. $this->assertEqual($result, $expected);
  7643. $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
  7644. $result = Multibyte::mimeEncode($string);
  7645. $expected = '=?UTF-8?B?0IDQgdCC0IPQhNCF0IbQh9CI0InQitCL0IzQjdCO0I/QkNCR0JLQk9CU0JU=?=' . "\r\n" .
  7646. ' =?UTF-8?B?0JbQl9CY0JnQmtCb?=';
  7647. $this->assertEqual($result, $expected);
  7648. $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
  7649. $result = Multibyte::mimeEncode($string);
  7650. $expected = '=?UTF-8?B?0JzQndCe0J/QoNCh0KLQo9Ck0KXQptCn0KjQqdCq0KvQrNCt0K7Qr9Cw0LE=?=' . "\r\n" .
  7651. ' =?UTF-8?B?0LLQs9C00LXQttC30LjQudC60LvQvNC90L7Qv9GA0YHRgtGD0YTRhdGG0Yc=?=' . "\r\n" .
  7652. ' =?UTF-8?B?0YjRidGK0YvRjA==?=';
  7653. $this->assertEqual($result, $expected);
  7654. $string = 'فقكلمنهوىيًٌٍَُ';
  7655. $result = Multibyte::mimeEncode($string);
  7656. $expected = '=?UTF-8?B?2YHZgtmD2YTZhdmG2YfZiNmJ2YrZi9mM2Y3ZjtmP?=';
  7657. $this->assertEqual($result, $expected);
  7658. $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
  7659. $result = Multibyte::mimeEncode($string);
  7660. $expected = '=?UTF-8?B?4pyw4pyx4pyy4pyz4py04py14py24py34py44py54py64py74py84py94py+?=' . "\r\n" .
  7661. ' =?UTF-8?B?4py/4p2A4p2B4p2C4p2D4p2E4p2F4p2G4p2H4p2I4p2J4p2K4p2L4p2M4p2N?=' . "\r\n" .
  7662. ' =?UTF-8?B?4p2O4p2P4p2Q4p2R4p2S4p2T4p2U4p2V4p2W4p2X4p2Y4p2Z4p2a4p2b4p2c?=' . "\r\n" .
  7663. ' =?UTF-8?B?4p2d4p2e?=';
  7664. $this->assertEqual($result, $expected);
  7665. $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
  7666. $result = Multibyte::mimeEncode($string);
  7667. $expected = '=?UTF-8?B?4rqA4rqB4rqC4rqD4rqE4rqF4rqG4rqH4rqI4rqJ4rqK4rqL4rqM4rqN4rqO?=' . "\r\n" .
  7668. ' =?UTF-8?B?4rqP4rqQ4rqR4rqS4rqT4rqU4rqV4rqW4rqX4rqY4rqZ4rqb4rqc4rqd4rqe?=' . "\r\n" .
  7669. ' =?UTF-8?B?4rqf4rqg4rqh4rqi4rqj4rqk4rql4rqm4rqn4rqo4rqp4rqq4rqr4rqs4rqt?=' . "\r\n" .
  7670. ' =?UTF-8?B?4rqu4rqv4rqw4rqx4rqy4rqz4rq04rq14rq24rq34rq44rq54rq64rq74rq8?=' . "\r\n" .
  7671. ' =?UTF-8?B?4rq94rq+4rq/4ruA4ruB4ruC4ruD4ruE4ruF4ruG4ruH4ruI4ruJ4ruK4ruL?=' . "\r\n" .
  7672. ' =?UTF-8?B?4ruM4ruN4ruO4ruP4ruQ4ruR4ruS4ruT4ruU4ruV4ruW4ruX4ruY4ruZ4rua?=' . "\r\n" .
  7673. ' =?UTF-8?B?4rub4ruc4rud4rue4ruf4rug?=';
  7674. $this->assertEqual($result, $expected);
  7675. $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
  7676. $result = Multibyte::mimeEncode($string);
  7677. $expected = '=?UTF-8?B?4r2F4r2G4r2H4r2I4r2J4r2K4r2L4r2M4r2N4r2O4r2P4r2Q4r2R4r2S4r2T?=' . "\r\n" .
  7678. ' =?UTF-8?B?4r2U4r2V4r2W4r2X4r2Y4r2Z4r2a4r2b4r2c4r2d4r2e4r2f4r2g4r2h4r2i?=' . "\r\n" .
  7679. ' =?UTF-8?B?4r2j4r2k4r2l4r2m4r2n4r2o4r2p4r2q4r2r4r2s4r2t4r2u4r2v4r2w4r2x?=' . "\r\n" .
  7680. ' =?UTF-8?B?4r2y4r2z4r204r214r224r234r244r254r264r274r284r294r2+4r2/?=';
  7681. $this->assertEqual($result, $expected);
  7682. $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
  7683. $result = Multibyte::mimeEncode($string);
  7684. $expected = '=?UTF-8?B?64ih64ii64ij64ik64il64im64in64io64ip64iq64ir64is64it64iu64iv?=' . "\r\n" .
  7685. ' =?UTF-8?B?64iw64ix64iy64iz64i064i164i264i364i464i564i664i764i864i964i+?=' . "\r\n" .
  7686. ' =?UTF-8?B?64i/64mA64mB64mC64mD64mE64mF64mG64mH64mI64mJ64mK64mL64mM64mN?=' . "\r\n" .
  7687. ' =?UTF-8?B?64mO64mP64mQ64mR64mS64mT64mU64mV64mW64mX64mY64mZ64ma64mb64mc?=' . "\r\n" .
  7688. ' =?UTF-8?B?64md64me64mf64mg64mh64mi64mj64mk64ml64mm64mn64mo64mp64mq64mr?=' . "\r\n" .
  7689. ' =?UTF-8?B?64ms64mt64mu64mv64mw64mx64my64mz64m064m164m264m364m464m564m6?=' . "\r\n" .
  7690. ' =?UTF-8?B?64m764m864m964m+64m/64qA64qB64qC64qD64qE?=';
  7691. $this->assertEqual($result, $expected);
  7692. $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
  7693. $result = Multibyte::mimeEncode($string);
  7694. $expected = '=?UTF-8?B?77mw77mx77my77mz77m077m177m277m377m477m577m677m777m877m977m+?=' . "\r\n" .
  7695. ' =?UTF-8?B?77m/77qA77qB77qC77qD77qE77qF77qG77qH77qI77qJ77qK77qL77qM77qN?=' . "\r\n" .
  7696. ' =?UTF-8?B?77qO77qP77qQ77qR77qS77qT77qU77qV77qW77qX77qY77qZ77qa77qb77qc?=' . "\r\n" .
  7697. ' =?UTF-8?B?77qd77qe77qf77qg77qh77qi77qj77qk77ql77qm77qn77qo77qp77qq77qr?=' . "\r\n" .
  7698. ' =?UTF-8?B?77qs77qt77qu77qv77qw?=';
  7699. $this->assertEqual($result, $expected);
  7700. $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
  7701. $result = Multibyte::mimeEncode($string);
  7702. $expected = '=?UTF-8?B?77qx77qy77qz77q077q177q277q377q477q577q677q777q877q977q+77q/?=' . "\r\n" .
  7703. ' =?UTF-8?B?77uA77uB77uC77uD77uE77uF77uG77uH77uI77uJ77uK77uL77uM77uN77uO?=' . "\r\n" .
  7704. ' =?UTF-8?B?77uP77uQ77uR77uS77uT77uU77uV77uW77uX77uY77uZ77ua77ub77uc77ud?=' . "\r\n" .
  7705. ' =?UTF-8?B?77ue77uf77ug77uh77ui77uj77uk77ul77um77un77uo77up77uq77ur77us?=' . "\r\n" .
  7706. ' =?UTF-8?B?77ut77uu77uv77uw77ux77uy77uz77u077u177u277u377u477u577u677u7?=' . "\r\n" .
  7707. ' =?UTF-8?B?77u8?=';
  7708. $this->assertEqual($result, $expected);
  7709. $string = 'abcdefghijklmnopqrstuvwxyz';
  7710. $result = Multibyte::mimeEncode($string);
  7711. $expected = '=?UTF-8?B?772B772C772D772E772F772G772H772I772J772K772L772M772N772O772P?=' . "\r\n" .
  7712. ' =?UTF-8?B?772Q772R772S772T772U772V772W772X772Y772Z772a?=';
  7713. $this->assertEqual($result, $expected);
  7714. $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
  7715. $result = Multibyte::mimeEncode($string);
  7716. $expected = '=?UTF-8?B?772h772i772j772k772l772m772n772o772p772q772r772s772t772u772v?=' . "\r\n" .
  7717. ' =?UTF-8?B?772w772x772y772z77207721772277237724?=';
  7718. $this->assertEqual($result, $expected);
  7719. $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
  7720. $result = Multibyte::mimeEncode($string);
  7721. $expected = '=?UTF-8?B?77257726772777287729772+772/776A776B776C776D776E776F776G776H?=' . "\r\n" .
  7722. ' =?UTF-8?B?776I776J776K776L776M776N776O776P776Q776R776S776T776U776V776W?=' . "\r\n" .
  7723. ' =?UTF-8?B?776X776Y776Z776a776b776c776d776e?=';
  7724. $this->assertEqual($result, $expected);
  7725. $string = 'Ĥēĺļŏ, Ŵőřļď!';
  7726. $result = Multibyte::mimeEncode($string);
  7727. $expected = '=?UTF-8?B?xKTEk8S6xLzFjywgxbTFkcWZxLzEjyE=?=';
  7728. $this->assertEqual($result, $expected);
  7729. $string = 'Hello, World!';
  7730. $result = Multibyte::mimeEncode($string);
  7731. $this->assertEqual($result, $string);
  7732. $string = 'čini';
  7733. $result = Multibyte::mimeEncode($string);
  7734. $expected = '=?UTF-8?B?xI1pbmk=?=';
  7735. $this->assertEqual($result, $expected);
  7736. $string = 'moći';
  7737. $result = Multibyte::mimeEncode($string);
  7738. $expected = '=?UTF-8?B?bW/Eh2k=?=';
  7739. $this->assertEqual($result, $expected);
  7740. $string = 'državni';
  7741. $result = Multibyte::mimeEncode($string);
  7742. $expected = '=?UTF-8?B?ZHLFvmF2bmk=?=';
  7743. $this->assertEqual($result, $expected);
  7744. $string = '把百度设为首页';
  7745. $result = Multibyte::mimeEncode($string);
  7746. $expected = '=?UTF-8?B?5oqK55m+5bqm6K6+5Li66aaW6aG1?=';
  7747. $this->assertEqual($result, $expected);
  7748. $string = '一二三周永龍';
  7749. $result = Multibyte::mimeEncode($string);
  7750. $expected = '=?UTF-8?B?5LiA5LqM5LiJ5ZGo5rC46b6N?=';
  7751. $this->assertEqual($result, $expected);
  7752. }
  7753. }
  7754. ?>