統計
| ブランチ: | リビジョン:

pictcode / lib / Cake / Test / Case / I18n / MultibyteTest.php @ 0b1b8047

履歴 | 表示 | アノテート | ダウンロード (380.605 KB)

1 635eef61 spyder1211
<?php
2
/**
3
 * MultibyteTest file
4
 *
5
 * CakePHP(tm) Tests <http://book.cakephp.org/2.0/en/development/testing.html>
6
 * Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
7
 *
8
 * Licensed under The MIT License
9
 * For full copyright and license information, please see the LICENSE.txt
10
 * Redistributions of files must retain the above copyright notice
11
 *
12
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
13
 * @link          http://book.cakephp.org/2.0/en/development/testing.html CakePHP(tm) Tests
14
 * @package       Cake.Test.Case.I18n
15
 * @since         CakePHP(tm) v 1.2.0.6833
16
 * @license       http://www.opensource.org/licenses/mit-license.php MIT License
17
 */
18
19
App::uses('Multibyte', 'I18n');
20
21
/**
22
 * MultibyteTest class
23
 *
24
 * @package       Cake.Test.Case.I18n
25
 */
26
class MultibyteTest extends CakeTestCase {
27
28
/**
29
 * testUtf8 method
30
 *
31
 * @return void
32
 */
33
        public function testUtf8() {
34
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
35
                $result = Multibyte::utf8($string);
36
                $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,
37
                                                                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,
38
                                                                83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
39
                                                                106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126);
40
                $this->assertEquals($expected, $result);
41
42
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
43
                $result = Multibyte::utf8($string);
44
                $expected = array(161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
45
                                                                182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200);
46
                $this->assertEquals($expected, $result);
47
48
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
49
                $result = Multibyte::utf8($string);
50
                $expected = array(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
51
                                                                222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
52
                                                                243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
53
                                                                264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
54
                                                                285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300);
55
                $this->assertEquals($expected, $result);
56
57
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
58
                $result = Multibyte::utf8($string);
59
                $expected = array(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
60
                                                                322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
61
                                                                343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
62
                                                                364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
63
                                                                385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400);
64
                $this->assertEquals($expected, $result);
65
66
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
67
                $result = Multibyte::utf8($string);
68
                $expected = array(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
69
                                                                422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
70
                                                                443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
71
                                                                464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
72
                                                                485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500);
73
                $this->assertEquals($expected, $result);
74
75
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
76
                $result = Multibyte::utf8($string);
77
                $expected = array(601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
78
                                                                622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
79
                                                                643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
80
                                                                664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
81
                                                                685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700);
82
                $this->assertEquals($expected, $result);
83
84
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
85
                $result = Multibyte::utf8($string);
86
                $expected = array(1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
87
                                                                1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051);
88
                $this->assertEquals($expected, $result);
89
90
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
91
                $result = Multibyte::utf8($string);
92
                $expected = array(1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
93
                                                                1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
94
                                                                1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100);
95
                $this->assertEquals($expected, $result);
96
97
                $string = 'չպջռսվտ';
98
                $result = Multibyte::utf8($string);
99
                $expected = array(1401, 1402, 1403, 1404, 1405, 1406, 1407);
100
                $this->assertEquals($expected, $result);
101
102
                $string = 'فقكلمنهوىيًٌٍَُ';
103
                $result = Multibyte::utf8($string);
104
                $expected = array(1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615);
105
                $this->assertEquals($expected, $result);
106
107
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
108
                $result = Multibyte::utf8($string);
109
                $expected = array(10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044,
110
                                                                10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057,
111
                                                                10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070,
112
                                                                10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078);
113
                $this->assertEquals($expected, $result);
114
115
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
116
                $result = Multibyte::utf8($string);
117
                $expected = array(11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919,
118
                                                                11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11931, 11932, 11933, 11934, 11935, 11936,
119
                                                                11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952,
120
                                                                11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968,
121
                                                                11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984,
122
                                                                11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000);
123
                $this->assertEquals($expected, $result);
124
125
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
126
                $result = Multibyte::utf8($string);
127
                $expected = array(12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116,
128
                                                                12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132,
129
                                                                12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148,
130
                                                                12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159);
131
                $this->assertEquals($expected, $result);
132
133
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
134
                $result = Multibyte::utf8($string);
135
                $expected = array(45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616,
136
                                                                45617, 45618, 45619, 45620, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632,
137
                                                                45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648,
138
                                                                45649, 45650, 45651, 45652, 45653, 45654, 45655, 45656, 45657, 45658, 45659, 45660, 45661, 45662, 45663, 45664,
139
                                                                45665, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 45678, 45679, 45680,
140
                                                                45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 45694, 45695, 45696,
141
                                                                45697, 45698, 45699, 45700);
142
                $this->assertEquals($expected, $result);
143
144
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
145
                $result = Multibyte::utf8($string);
146
                $expected = array(65136, 65137, 65138, 65139, 65140, 65141, 65142, 65143, 65144, 65145, 65146, 65147, 65148, 65149, 65150, 65151,
147
                                                                65152, 65153, 65154, 65155, 65156, 65157, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 65166, 65167,
148
                                                                65168, 65169, 65170, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 65183,
149
                                                                65184, 65185, 65186, 65187, 65188, 65189, 65190, 65191, 65192, 65193, 65194, 65195, 65196, 65197, 65198, 65199,
150
                                                                65200);
151
                $this->assertEquals($expected, $result);
152
153
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
154
                $result = Multibyte::utf8($string);
155
                $expected = array(65201, 65202, 65203, 65204, 65205, 65206, 65207, 65208, 65209, 65210, 65211, 65212, 65213, 65214, 65215, 65216,
156
                                                                65217, 65218, 65219, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 65229, 65230, 65231, 65232,
157
                                                                65233, 65234, 65235, 65236, 65237, 65238, 65239, 65240, 65241, 65242, 65243, 65244, 65245, 65246, 65247, 65248,
158
                                                                65249, 65250, 65251, 65252, 65253, 65254, 65255, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 65264,
159
                                                                65265, 65266, 65267, 65268, 65269, 65270, 65271, 65272, 65273, 65274, 65275, 65276);
160
                $this->assertEquals($expected, $result);
161
162
                $string = 'abcdefghijklmnopqrstuvwxyz';
163
                $result = Multibyte::utf8($string);
164
                $expected = array(65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360,
165
                                                                65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370);
166
                $this->assertEquals($expected, $result);
167
168
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
169
                $result = Multibyte::utf8($string);
170
                $expected = array(65377, 65378, 65379, 65380, 65381, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392,
171
                                                                65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400);
172
                $this->assertEquals($expected, $result);
173
174
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
175
                $result = Multibyte::utf8($string);
176
                $expected = array(65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416,
177
                                                                65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432,
178
                                                                65433, 65434, 65435, 65436, 65437, 65438);
179
                $this->assertEquals($expected, $result);
180
181
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
182
                $result = Multibyte::utf8($string);
183
                $expected = array(292, 275, 314, 316, 335, 44, 32, 372, 337, 345, 316, 271, 33);
184
                $this->assertEquals($expected, $result);
185
186
                $string = 'Hello, World!';
187
                $result = Multibyte::utf8($string);
188
                $expected = array(72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33);
189
                $this->assertEquals($expected, $result);
190
191
                $string = '¨';
192
                $result = Multibyte::utf8($string);
193
                $expected = array(168);
194
                $this->assertEquals($expected, $result);
195
196
                $string = '¿';
197
                $result = Multibyte::utf8($string);
198
                $expected = array(191);
199
                $this->assertEquals($expected, $result);
200
201
                $string = 'čini';
202
                $result = Multibyte::utf8($string);
203
                $expected = array(269, 105, 110, 105);
204
                $this->assertEquals($expected, $result);
205
206
                $string = 'moći';
207
                $result = Multibyte::utf8($string);
208
                $expected = array(109, 111, 263, 105);
209
                $this->assertEquals($expected, $result);
210
211
                $string = 'državni';
212
                $result = Multibyte::utf8($string);
213
                $expected = array(100, 114, 382, 97, 118, 110, 105);
214
                $this->assertEquals($expected, $result);
215
216
                $string = '把百度设为首页';
217
                $result = Multibyte::utf8($string);
218
                $expected = array(25226, 30334, 24230, 35774, 20026, 39318, 39029);
219
                $this->assertEquals($expected, $result);
220
221
                $string = '一二三周永龍';
222
                $result = Multibyte::utf8($string);
223
                $expected = array(19968, 20108, 19977, 21608, 27704, 40845);
224
                $this->assertEquals($expected, $result);
225
226
                $string = 'ԀԂԄԆԈԊԌԎԐԒ';
227
                $result = Multibyte::utf8($string);
228
                $expected = array(1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298);
229
                $this->assertEquals($expected, $result);
230
231
                $string = 'ԁԃԅԇԉԋԍԏԐԒ';
232
                $result = Multibyte::utf8($string);
233
                $expected = array(1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1296, 1298);
234
                $this->assertEquals($expected, $result);
235
236
                $string = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
237
                $result = Multibyte::utf8($string);
238
                $expected = array(1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346,
239
                                                                1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364,
240
                                                                1365, 1366, 1415);
241
                $this->assertEquals($expected, $result);
242
243
                $string = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
244
                $result = Multibyte::utf8($string);
245
                $expected = array(1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
246
                                                                1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
247
                                                                1413, 1414, 1415);
248
                $this->assertEquals($expected, $result);
249
250
                $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
251
                $result = Multibyte::utf8($string);
252
                $expected = array(4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273,
253
                                                                4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291,
254
                                                                4292, 4293);
255
                $this->assertEquals($expected, $result);
256
257
                $string = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
258
                $result = Multibyte::utf8($string);
259
                $expected = array(7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714,
260
                                                                7716, 7718, 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750,
261
                                                                7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, 7786,
262
                                                                7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822,
263
                                                                7824, 7826, 7828, 7830, 7831, 7832, 7833, 7834, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856,
264
                                                                7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892,
265
                                                                7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, 7928);
266
                $this->assertEquals($expected, $result);
267
268
                $string = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
269
                $result = Multibyte::utf8($string);
270
                $expected = array(7681, 7683, 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715,
271
                                                                        7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751,
272
                                                                        7753, 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, 7781, 7783, 7785, 7787,
273
                                                                        7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823,
274
                                                                        7825, 7827, 7829, 7830, 7831, 7832, 7833, 7834, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859,
275
                                                                        7861, 7863, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889, 7891, 7893, 7895,
276
                                                                        7897, 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, 7915, 7917, 7919, 7921, 7923, 7925, 7927, 7929);
277
                $this->assertEquals($expected, $result);
278
279
                $string = 'ΩKÅℲ';
280
                $result = Multibyte::utf8($string);
281
                $expected = array(8486, 8490, 8491, 8498);
282
                $this->assertEquals($expected, $result);
283
284
                $string = 'ωkåⅎ';
285
                $result = Multibyte::utf8($string);
286
                $expected = array(969, 107, 229, 8526);
287
                $this->assertEquals($expected, $result);
288
289
                $string = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
290
                $result = Multibyte::utf8($string);
291
                $expected = array(8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8579);
292
                $this->assertEquals($expected, $result);
293
294
                $string = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
295
                $result = Multibyte::utf8($string);
296
                $expected = array(8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8580);
297
                $this->assertEquals($expected, $result);
298
299
                $string = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
300
                $result = Multibyte::utf8($string);
301
                $expected = array(9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414,
302
                                                                9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423);
303
                $this->assertEquals($expected, $result);
304
305
                $string = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
306
                $result = Multibyte::utf8($string);
307
                $expected = array(9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441,
308
                                                                9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449);
309
                $this->assertEquals($expected, $result);
310
311
                $string = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
312
                $result = Multibyte::utf8($string);
313
                $expected = array(11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278,
314
                                                                11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293,
315
                                                                11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308,
316
                                                                11309, 11310);
317
                $this->assertEquals($expected, $result);
318
319
                $string = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
320
                $result = Multibyte::utf8($string);
321
                $expected = array(11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327,
322
                                                                11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343,
323
                                                                11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358);
324
                $this->assertEquals($expected, $result);
325
326
                $string = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
327
                $result = Multibyte::utf8($string);
328
                $expected = array(11392, 11394, 11396, 11398, 11400, 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 11420,
329
                                                                        11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448, 11450,
330
                                                                        11452, 11454, 11456, 11458, 11460, 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480,
331
                                                                        11482, 11484, 11486, 11488, 11490);
332
                $this->assertEquals($expected, $result);
333
334
                $string = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
335
                $result = Multibyte::utf8($string);
336
                $expected = array(11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417, 11419, 11421, 11423,
337
                                                                11425, 11427, 11429, 11431, 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451, 11453, 11455,
338
                                                                11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487,
339
                                                                11489, 11491);
340
                $this->assertEquals($expected, $result);
341
342
                $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
343
                $result = Multibyte::utf8($string);
344
                $expected = array(64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279);
345
                $this->assertEquals($expected, $result);
346
        }
347
348
/**
349
 * testAscii method
350
 *
351
 * @return void
352
 */
353
        public function testAscii() {
354
                $input = 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,
355
                                                        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,
356
                                                        83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
357
                                                        106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126);
358
                $result = Multibyte::ascii($input);
359
360
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
361
                $this->assertEquals($expected, $result);
362
363
                $input = array(161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
364
                                                                182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200);
365
                $result = Multibyte::ascii($input);
366
367
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
368
                $this->assertEquals($expected, $result);
369
370
                $input = array(201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
371
                                                                222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
372
                                                                243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
373
                                                                264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
374
                                                                285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300);
375
                $result = Multibyte::ascii($input);
376
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
377
                $this->assertEquals($expected, $result);
378
379
                $input = array(301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
380
                                                                322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
381
                                                                343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363,
382
                                                                364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
383
                                                                385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400);
384
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
385
                $result = Multibyte::ascii($input);
386
                $this->assertEquals($expected, $result);
387
388
                $input = array(401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
389
                                                                422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
390
                                                                443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
391
                                                                464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
392
                                                                485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500);
393
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
394
                $result = Multibyte::ascii($input);
395
                $this->assertEquals($expected, $result);
396
397
                $input = array(601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621,
398
                                                                622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
399
                                                                643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663,
400
                                                                664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684,
401
                                                                685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700);
402
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
403
                $result = Multibyte::ascii($input);
404
                $this->assertEquals($expected, $result);
405
406
                $input = array(1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041,
407
                                                                1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051);
408
                $expected = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
409
                $result = Multibyte::ascii($input);
410
                $this->assertEquals($expected, $result);
411
412
                $input = array(1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069,
413
                                                                1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
414
                                                                1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100);
415
                $expected = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
416
                $result = Multibyte::ascii($input);
417
                $this->assertEquals($expected, $result);
418
419
                $input = array(1401, 1402, 1403, 1404, 1405, 1406, 1407);
420
                $expected = 'չպջռսվտ';
421
                $result = Multibyte::ascii($input);
422
                $this->assertEquals($expected, $result);
423
424
                $input = array(1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1611, 1612, 1613, 1614, 1615);
425
                $expected = 'فقكلمنهوىيًٌٍَُ';
426
                $result = Multibyte::ascii($input);
427
                $this->assertEquals($expected, $result);
428
429
                $input = array(10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044,
430
                                                                10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057,
431
                                                                10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070,
432
                                                                10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078);
433
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
434
                $result = Multibyte::ascii($input);
435
                $this->assertEquals($expected, $result);
436
437
                $input = array(11904, 11905, 11906, 11907, 11908, 11909, 11910, 11911, 11912, 11913, 11914, 11915, 11916, 11917, 11918, 11919,
438
                                                                11920, 11921, 11922, 11923, 11924, 11925, 11926, 11927, 11928, 11929, 11931, 11932, 11933, 11934, 11935, 11936,
439
                                                                11937, 11938, 11939, 11940, 11941, 11942, 11943, 11944, 11945, 11946, 11947, 11948, 11949, 11950, 11951, 11952,
440
                                                                11953, 11954, 11955, 11956, 11957, 11958, 11959, 11960, 11961, 11962, 11963, 11964, 11965, 11966, 11967, 11968,
441
                                                                11969, 11970, 11971, 11972, 11973, 11974, 11975, 11976, 11977, 11978, 11979, 11980, 11981, 11982, 11983, 11984,
442
                                                                11985, 11986, 11987, 11988, 11989, 11990, 11991, 11992, 11993, 11994, 11995, 11996, 11997, 11998, 11999, 12000);
443
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
444
                $result = Multibyte::ascii($input);
445
                $this->assertEquals($expected, $result);
446
447
                $input = array(12101, 12102, 12103, 12104, 12105, 12106, 12107, 12108, 12109, 12110, 12111, 12112, 12113, 12114, 12115, 12116,
448
                                                                12117, 12118, 12119, 12120, 12121, 12122, 12123, 12124, 12125, 12126, 12127, 12128, 12129, 12130, 12131, 12132,
449
                                                                12133, 12134, 12135, 12136, 12137, 12138, 12139, 12140, 12141, 12142, 12143, 12144, 12145, 12146, 12147, 12148,
450
                                                                12149, 12150, 12151, 12152, 12153, 12154, 12155, 12156, 12157, 12158, 12159);
451
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
452
                $result = Multibyte::ascii($input);
453
                $this->assertEquals($expected, $result);
454
455
                $input = array(45601, 45602, 45603, 45604, 45605, 45606, 45607, 45608, 45609, 45610, 45611, 45612, 45613, 45614, 45615, 45616,
456
                                                                45617, 45618, 45619, 45620, 45621, 45622, 45623, 45624, 45625, 45626, 45627, 45628, 45629, 45630, 45631, 45632,
457
                                                                45633, 45634, 45635, 45636, 45637, 45638, 45639, 45640, 45641, 45642, 45643, 45644, 45645, 45646, 45647, 45648,
458
                                                                45649, 45650, 45651, 45652, 45653, 45654, 45655, 45656, 45657, 45658, 45659, 45660, 45661, 45662, 45663, 45664,
459
                                                                45665, 45666, 45667, 45668, 45669, 45670, 45671, 45672, 45673, 45674, 45675, 45676, 45677, 45678, 45679, 45680,
460
                                                                45681, 45682, 45683, 45684, 45685, 45686, 45687, 45688, 45689, 45690, 45691, 45692, 45693, 45694, 45695, 45696,
461
                                                                45697, 45698, 45699, 45700);
462
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
463
                $result = Multibyte::ascii($input);
464
                $this->assertEquals($expected, $result);
465
466
                $input = array(65136, 65137, 65138, 65139, 65140, 65141, 65142, 65143, 65144, 65145, 65146, 65147, 65148, 65149, 65150, 65151,
467
                                                                65152, 65153, 65154, 65155, 65156, 65157, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 65166, 65167,
468
                                                                65168, 65169, 65170, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 65183,
469
                                                                65184, 65185, 65186, 65187, 65188, 65189, 65190, 65191, 65192, 65193, 65194, 65195, 65196, 65197, 65198, 65199,
470
                                                                65200);
471
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
472
                $result = Multibyte::ascii($input);
473
                $this->assertEquals($expected, $result);
474
475
                $input = array(65201, 65202, 65203, 65204, 65205, 65206, 65207, 65208, 65209, 65210, 65211, 65212, 65213, 65214, 65215, 65216,
476
                                                                65217, 65218, 65219, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 65229, 65230, 65231, 65232,
477
                                                                65233, 65234, 65235, 65236, 65237, 65238, 65239, 65240, 65241, 65242, 65243, 65244, 65245, 65246, 65247, 65248,
478
                                                                65249, 65250, 65251, 65252, 65253, 65254, 65255, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 65264,
479
                                                                65265, 65266, 65267, 65268, 65269, 65270, 65271, 65272, 65273, 65274, 65275, 65276);
480
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
481
                $result = Multibyte::ascii($input);
482
                $this->assertEquals($expected, $result);
483
484
                $input = array(65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360,
485
                                                                65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370);
486
                $expected = 'abcdefghijklmnopqrstuvwxyz';
487
                $result = Multibyte::ascii($input);
488
                $this->assertEquals($expected, $result);
489
490
                $input = array(65377, 65378, 65379, 65380, 65381, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392,
491
                                                                65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400);
492
                $expected = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
493
                $result = Multibyte::ascii($input);
494
                $this->assertEquals($expected, $result);
495
496
                $input = array(65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416,
497
                                                                65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432,
498
                                                                65433, 65434, 65435, 65436, 65437, 65438);
499
                $expected = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
500
                $result = Multibyte::ascii($input);
501
                $this->assertEquals($expected, $result);
502
503
                $input = array(292, 275, 314, 316, 335, 44, 32, 372, 337, 345, 316, 271, 33);
504
                $expected = 'Ĥēĺļŏ, Ŵőřļď!';
505
                $result = Multibyte::ascii($input);
506
                $this->assertEquals($expected, $result);
507
508
                $input = array(72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100, 33);
509
                $expected = 'Hello, World!';
510
                $result = Multibyte::ascii($input);
511
                $this->assertEquals($expected, $result);
512
513
                $input = array(168);
514
                $expected = '¨';
515
                $result = Multibyte::ascii($input);
516
                $this->assertEquals($expected, $result);
517
518
                $input = array(191);
519
                $expected = '¿';
520
                $result = Multibyte::ascii($input);
521
                $this->assertEquals($expected, $result);
522
523
                $input = array(269, 105, 110, 105);
524
                $expected = 'čini';
525
                $result = Multibyte::ascii($input);
526
                $this->assertEquals($expected, $result);
527
528
                $input = array(109, 111, 263, 105);
529
                $expected = 'moći';
530
                $result = Multibyte::ascii($input);
531
                $this->assertEquals($expected, $result);
532
533
                $input = array(100, 114, 382, 97, 118, 110, 105);
534
                $expected = 'državni';
535
                $result = Multibyte::ascii($input);
536
                $this->assertEquals($expected, $result);
537
538
                $input = array(25226, 30334, 24230, 35774, 20026, 39318, 39029);
539
                $expected = '把百度设为首页';
540
                $result = Multibyte::ascii($input);
541
                $this->assertEquals($expected, $result);
542
543
                $input = array(19968, 20108, 19977, 21608, 27704, 40845);
544
                $expected = '一二三周永龍';
545
                $result = Multibyte::ascii($input);
546
                $this->assertEquals($expected, $result);
547
548
                $input = array(1280, 1282, 1284, 1286, 1288, 1290, 1292, 1294, 1296, 1298);
549
                $expected = 'ԀԂԄԆԈԊԌԎԐԒ';
550
                $result = Multibyte::ascii($input);
551
                $this->assertEquals($expected, $result);
552
553
                $input = array(1281, 1283, 1285, 1287, 1289, 1291, 1293, 1295, 1296, 1298);
554
                $expected = 'ԁԃԅԇԉԋԍԏԐԒ';
555
                $result = Multibyte::ascii($input);
556
                $this->assertEquals($expected, $result);
557
558
                $input = array(1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347,
559
                                                        1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365,
560
                                                        1366, 1415);
561
                $result = Multibyte::ascii($input);
562
                $expected = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
563
                $this->assertEquals($expected, $result);
564
565
                $input = array(1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394,
566
                                                                1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412,
567
                                                                1413, 1414, 1415);
568
                $result = Multibyte::ascii($input);
569
                $expected = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
570
                $this->assertEquals($expected, $result);
571
572
                $input = array(4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274,
573
                                                        4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293);
574
                $result = Multibyte::ascii($input);
575
                $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
576
                $this->assertEquals($expected, $result);
577
578
                $input = array(7680, 7682, 7684, 7686, 7688, 7690, 7692, 7694, 7696, 7698, 7700, 7702, 7704, 7706, 7708, 7710, 7712, 7714,
579
                                                                7716, 7718, 7720, 7722, 7724, 7726, 7728, 7730, 7732, 7734, 7736, 7738, 7740, 7742, 7744, 7746, 7748, 7750,
580
                                                                7752, 7754, 7756, 7758, 7760, 7762, 7764, 7766, 7768, 7770, 7772, 7774, 7776, 7778, 7780, 7782, 7784, 7786,
581
                                                                7788, 7790, 7792, 7794, 7796, 7798, 7800, 7802, 7804, 7806, 7808, 7810, 7812, 7814, 7816, 7818, 7820, 7822,
582
                                                                7824, 7826, 7828, 7830, 7831, 7832, 7833, 7834, 7840, 7842, 7844, 7846, 7848, 7850, 7852, 7854, 7856,
583
                                                                7858, 7860, 7862, 7864, 7866, 7868, 7870, 7872, 7874, 7876, 7878, 7880, 7882, 7884, 7886, 7888, 7890, 7892,
584
                                                                7894, 7896, 7898, 7900, 7902, 7904, 7906, 7908, 7910, 7912, 7914, 7916, 7918, 7920, 7922, 7924, 7926, 7928);
585
                $result = Multibyte::ascii($input);
586
                $expected = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
587
                $this->assertEquals($expected, $result);
588
589
                $input = array(7681, 7683, 7685, 7687, 7689, 7691, 7693, 7695, 7697, 7699, 7701, 7703, 7705, 7707, 7709, 7711, 7713, 7715,
590
                                                        7717, 7719, 7721, 7723, 7725, 7727, 7729, 7731, 7733, 7735, 7737, 7739, 7741, 7743, 7745, 7747, 7749, 7751,
591
                                                        7753, 7755, 7757, 7759, 7761, 7763, 7765, 7767, 7769, 7771, 7773, 7775, 7777, 7779, 7781, 7783, 7785, 7787,
592
                                                        7789, 7791, 7793, 7795, 7797, 7799, 7801, 7803, 7805, 7807, 7809, 7811, 7813, 7815, 7817, 7819, 7821, 7823,
593
                                                        7825, 7827, 7829, 7830, 7831, 7832, 7833, 7834, 7841, 7843, 7845, 7847, 7849, 7851, 7853, 7855, 7857, 7859,
594
                                                        7861, 7863, 7865, 7867, 7869, 7871, 7873, 7875, 7877, 7879, 7881, 7883, 7885, 7887, 7889, 7891, 7893, 7895,
595
                                                        7897, 7899, 7901, 7903, 7905, 7907, 7909, 7911, 7913, 7915, 7917, 7919, 7921, 7923, 7925, 7927, 7929);
596
                $result = Multibyte::ascii($input);
597
                $expected = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
598
                $this->assertEquals($expected, $result);
599
600
                $input = array(8486, 8490, 8491, 8498);
601
                $result = Multibyte::ascii($input);
602
                $expected = 'ΩKÅℲ';
603
                $this->assertEquals($expected, $result);
604
605
                $input = array(969, 107, 229, 8526);
606
                $result = Multibyte::ascii($input);
607
                $expected = 'ωkåⅎ';
608
                $this->assertEquals($expected, $result);
609
610
                $input = array(8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8579);
611
                $result = Multibyte::ascii($input);
612
                $expected = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
613
                $this->assertEquals($expected, $result);
614
615
                $input = array(8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8580);
616
                $result = Multibyte::ascii($input);
617
                $expected = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
618
                $this->assertEquals($expected, $result);
619
620
                $input = array(9398, 9399, 9400, 9401, 9402, 9403, 9404, 9405, 9406, 9407, 9408, 9409, 9410, 9411, 9412, 9413, 9414,
621
                                                        9415, 9416, 9417, 9418, 9419, 9420, 9421, 9422, 9423);
622
                $result = Multibyte::ascii($input);
623
                $expected = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
624
                $this->assertEquals($expected, $result);
625
626
                $input = array(9424, 9425, 9426, 9427, 9428, 9429, 9430, 9431, 9432, 9433, 9434, 9435, 9436, 9437, 9438, 9439, 9440, 9441,
627
                                                        9442, 9443, 9444, 9445, 9446, 9447, 9448, 9449);
628
                $result = Multibyte::ascii($input);
629
                $expected = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
630
                $this->assertEquals($expected, $result);
631
632
                $input = array(11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279,
633
                                                        11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295,
634
                                                        11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310);
635
                $result = Multibyte::ascii($input);
636
                $expected = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
637
                $this->assertEquals($expected, $result);
638
639
                $input = array(11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327,
640
                                                        11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343,
641
                                                        11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358);
642
                $result = Multibyte::ascii($input);
643
                $expected = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
644
                $this->assertEquals($expected, $result);
645
646
                $input = array(11392, 11394, 11396, 11398, 11400, 11402, 11404, 11406, 11408, 11410, 11412, 11414, 11416, 11418, 11420,
647
                                                                        11422, 11424, 11426, 11428, 11430, 11432, 11434, 11436, 11438, 11440, 11442, 11444, 11446, 11448, 11450,
648
                                                                        11452, 11454, 11456, 11458, 11460, 11462, 11464, 11466, 11468, 11470, 11472, 11474, 11476, 11478, 11480,
649
                                                                        11482, 11484, 11486, 11488, 11490);
650
                $result = Multibyte::ascii($input);
651
                $expected = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
652
                $this->assertEquals($expected, $result);
653
654
                $input = array(11393, 11395, 11397, 11399, 11401, 11403, 11405, 11407, 11409, 11411, 11413, 11415, 11417, 11419, 11421, 11423,
655
                                                        11425, 11427, 11429, 11431, 11433, 11435, 11437, 11439, 11441, 11443, 11445, 11447, 11449, 11451, 11453, 11455,
656
                                                        11457, 11459, 11461, 11463, 11465, 11467, 11469, 11471, 11473, 11475, 11477, 11479, 11481, 11483, 11485, 11487,
657
                                                        11489, 11491);
658
                $result = Multibyte::ascii($input);
659
                $expected = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
660
                $this->assertEquals($expected, $result);
661
662
                $input = array(64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279);
663
                $result = Multibyte::ascii($input);
664
                $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
665
                $this->assertEquals($expected, $result);
666
        }
667
668
/**
669
 * testUsingMbStripos method
670
 *
671
 * @return void
672
 */
673
        public function testUsingMbStripos() {
674
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
675
                $find = 'f';
676
                $result = mb_stripos($string, $find);
677
                $expected = 5;
678
                $this->assertEquals($expected, $result);
679
680
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
681
                $find = 'f';
682
                $result = mb_stripos($string, $find, 6);
683
                $expected = 17;
684
                $this->assertEquals($expected, $result);
685
686
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
687
                $find = 'å';
688
                $result = mb_stripos($string, $find);
689
                $expected = 5;
690
                $this->assertEquals($expected, $result);
691
692
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
693
                $find = 'å';
694
                $result = mb_stripos($string, $find, 6);
695
                $expected = 24;
696
                $this->assertEquals($expected, $result);
697
698
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
699
                $find = 'ċ';
700
                $result = mb_stripos($string, $find);
701
                $expected = 5;
702
                $this->assertEquals($expected, $result);
703
704
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
705
                $find = 'ċ';
706
                $result = mb_stripos($string, $find, 6);
707
                $expected = 32;
708
                $this->assertEquals($expected, $result);
709
710
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
711
                $find = 'f';
712
                $result = mb_stripos($string, $find);
713
                $expected = 37;
714
                $this->assertEquals($expected, $result);
715
716
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
717
                $find = 'Μ';
718
                $result = mb_stripos($string, $find);
719
                $expected = 20;
720
                $this->assertEquals($expected, $result);
721
722
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
723
                $find = 'É';
724
                $result = mb_stripos($string, $find, 6);
725
                $expected = 32;
726
                $this->assertEquals($expected, $result);
727
728
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
729
                $find = 'Ņ';
730
                $result = mb_stripos($string, $find);
731
                $expected = 24;
732
                $this->assertEquals($expected, $result);
733
734
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
735
                $find = 'Ƹ';
736
                $result = mb_stripos($string, $find);
737
                $expected = 39;
738
                $this->assertEquals($expected, $result);
739
740
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
741
                $find = 'Ƹ';
742
                $result = mb_stripos($string, $find, 40);
743
                $expected = 40;
744
                $this->assertEquals($expected, $result);
745
746
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
747
                $find = 'Ʀ';
748
                $result = mb_stripos($string, $find);
749
                $expected = 39;
750
                $this->assertEquals($expected, $result);
751
752
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
753
                $find = 'ї';
754
                $result = mb_stripos($string, $find);
755
                $expected = 7;
756
                $this->assertEquals($expected, $result);
757
758
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
759
                $find = 'Р';
760
                $result = mb_stripos($string, $find);
761
                $expected = 4;
762
                $this->assertEquals($expected, $result);
763
764
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
765
                $find = 'Р';
766
                $result = mb_stripos($string, $find, 5);
767
                $expected = 36;
768
                $this->assertEquals($expected, $result);
769
770
                $string = 'فقكلمنهوىيًٌٍَُ';
771
                $find = 'ن';
772
                $result = mb_stripos($string, $find);
773
                $expected = 5;
774
                $this->assertEquals($expected, $result);
775
776
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
777
                $find = '';
778
                $result = mb_stripos($string, $find);
779
                $expected = 15;
780
                $this->assertEquals($expected, $result);
781
782
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
783
                $find = '';
784
                $result = mb_stripos($string, $find);
785
                $expected = 16;
786
                $this->assertEquals($expected, $result);
787
788
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
789
                $find = '';
790
                $result = mb_stripos($string, $find);
791
                $expected = 31;
792
                $this->assertEquals($expected, $result);
793
794
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
795
                $find = '';
796
                $result = mb_stripos($string, $find);
797
                $expected = 26;
798
                $this->assertEquals($expected, $result);
799
800
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
801
                $find = '';
802
                $result = mb_stripos($string, $find);
803
                $expected = 46;
804
                $this->assertEquals($expected, $result);
805
806
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
807
                $find = '';
808
                $result = mb_stripos($string, $find);
809
                $expected = 45;
810
                $this->assertEquals($expected, $result);
811
812
                $string = 'abcdefghijklmnopqrstuvwxyz';
813
                $find = '';
814
                $result = mb_stripos($string, $find);
815
                $expected = 10;
816
                $this->assertEquals($expected, $result);
817
818
                $string = 'abcdefghijklmnopqrstuvwxyz';
819
                $find = '';
820
                $result = mb_stripos($string, $find);
821
                $expected = 10;
822
                $this->assertEquals($expected, $result);
823
824
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
825
                $find = '';
826
                $result = mb_stripos($string, $find);
827
                $expected = 16;
828
                $this->assertEquals($expected, $result);
829
830
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
831
                $find = '';
832
                $result = mb_stripos($string, $find);
833
                $expected = 17;
834
                $this->assertEquals($expected, $result);
835
836
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
837
                $find = 'ő';
838
                $result = mb_stripos($string, $find);
839
                $expected = 8;
840
                $this->assertEquals($expected, $result);
841
842
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
843
                $find = 'Ő';
844
                $result = mb_stripos($string, $find);
845
                $expected = 8;
846
                $this->assertEquals($expected, $result);
847
848
                $string = 'Hello, World!';
849
                $find = 'O';
850
                $result = mb_stripos($string, $find);
851
                $expected = 4;
852
                $this->assertEquals($expected, $result);
853
854
                $string = 'Hello, World!';
855
                $find = 'o';
856
                $result = mb_stripos($string, $find);
857
                $expected = 4;
858
                $this->assertEquals($expected, $result);
859
860
                $string = 'čini';
861
                $find = 'n';
862
                $result = mb_stripos($string, $find);
863
                $expected = 2;
864
                $this->assertEquals($expected, $result);
865
866
                $string = 'čini';
867
                $find = 'N';
868
                $result = mb_stripos($string, $find);
869
                $expected = 2;
870
                $this->assertEquals($expected, $result);
871
872
                $string = 'moći';
873
                $find = 'ć';
874
                $result = mb_stripos($string, $find);
875
                $expected = 2;
876
                $this->assertEquals($expected, $result);
877
878
                $string = 'moći';
879
                $find = 'Ć';
880
                $result = mb_stripos($string, $find);
881
                $expected = 2;
882
                $this->assertEquals($expected, $result);
883
884
                $string = 'državni';
885
                $find = 'ž';
886
                $result = mb_stripos($string, $find);
887
                $expected = 2;
888
                $this->assertEquals($expected, $result);
889
890
                $string = 'državni';
891
                $find = 'Ž';
892
                $result = mb_stripos($string, $find);
893
                $expected = 2;
894
                $this->assertEquals($expected, $result);
895
896
                $string = '把百度设为首页';
897
                $find = '';
898
                $result = mb_stripos($string, $find);
899
                $expected = 3;
900
                $this->assertEquals($expected, $result);
901
902
                $string = '一二三周永龍';
903
                $find = '';
904
                $result = mb_stripos($string, $find);
905
                $expected = 3;
906
                $this->assertEquals($expected, $result);
907
908
                $string = 'državni';
909
                $find = '';
910
                $result = mb_stripos($string, $find);
911
                $expected = false;
912
                $this->assertEquals($expected, $result);
913
        }
914
915
/**
916
 * testMultibyteStripos method
917
 *
918
 * @return void
919
 */
920
        public function testMultibyteStripos() {
921
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
922
                $find = 'f';
923
                $result = Multibyte::stripos($string, $find);
924
                $expected = 5;
925
                $this->assertEquals($expected, $result);
926
927
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
928
                $find = 'f';
929
                $result = Multibyte::stripos($string, $find, 6);
930
                $expected = 17;
931
                $this->assertEquals($expected, $result);
932
933
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
934
                $find = 'å';
935
                $result = Multibyte::stripos($string, $find);
936
                $expected = 5;
937
                $this->assertEquals($expected, $result);
938
939
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
940
                $find = 'å';
941
                $result = Multibyte::stripos($string, $find, 6);
942
                $expected = 24;
943
                $this->assertEquals($expected, $result);
944
945
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
946
                $find = 'ċ';
947
                $result = Multibyte::stripos($string, $find);
948
                $expected = 5;
949
                $this->assertEquals($expected, $result);
950
951
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
952
                $find = 'ċ';
953
                $result = Multibyte::stripos($string, $find, 6);
954
                $expected = 32;
955
                $this->assertEquals($expected, $result);
956
957
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
958
                $find = 'f';
959
                $result = Multibyte::stripos($string, $find);
960
                $expected = 37;
961
                $this->assertEquals($expected, $result);
962
963
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
964
                $find = 'Μ';
965
                $result = Multibyte::stripos($string, $find);
966
                $expected = 20;
967
                $this->assertEquals($expected, $result);
968
969
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
970
                $find = 'É';
971
                $result = Multibyte::stripos($string, $find, 6);
972
                $expected = 32;
973
                $this->assertEquals($expected, $result);
974
975
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
976
                $find = 'Ņ';
977
                $result = Multibyte::stripos($string, $find);
978
                $expected = 24;
979
                $this->assertEquals($expected, $result);
980
981
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
982
                $find = 'Ƹ';
983
                $result = Multibyte::stripos($string, $find);
984
                $expected = 39;
985
                $this->assertEquals($expected, $result);
986
987
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
988
                $find = 'Ƹ';
989
                $result = Multibyte::stripos($string, $find, 40);
990
                $expected = 40;
991
                $this->assertEquals($expected, $result);
992
993
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
994
                $find = 'Ʀ';
995
                $result = Multibyte::stripos($string, $find);
996
                $expected = 39;
997
                $this->assertEquals($expected, $result);
998
999
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1000
                $find = 'ї';
1001
                $result = Multibyte::stripos($string, $find);
1002
                $expected = 7;
1003
                $this->assertEquals($expected, $result);
1004
1005
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1006
                $find = 'Р';
1007
                $result = Multibyte::stripos($string, $find);
1008
                $expected = 4;
1009
                $this->assertEquals($expected, $result);
1010
1011
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1012
                $find = 'Р';
1013
                $result = Multibyte::stripos($string, $find, 5);
1014
                $expected = 36;
1015
                $this->assertEquals($expected, $result);
1016
1017
                $string = 'فقكلمنهوىيًٌٍَُ';
1018
                $find = 'ن';
1019
                $result = Multibyte::stripos($string, $find);
1020
                $expected = 5;
1021
                $this->assertEquals($expected, $result);
1022
1023
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
1024
                $find = '';
1025
                $result = Multibyte::stripos($string, $find);
1026
                $expected = 15;
1027
                $this->assertEquals($expected, $result);
1028
1029
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
1030
                $find = '';
1031
                $result = Multibyte::stripos($string, $find);
1032
                $expected = 16;
1033
                $this->assertEquals($expected, $result);
1034
1035
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
1036
                $find = '';
1037
                $result = Multibyte::stripos($string, $find);
1038
                $expected = 31;
1039
                $this->assertEquals($expected, $result);
1040
1041
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
1042
                $find = '';
1043
                $result = Multibyte::stripos($string, $find);
1044
                $expected = 26;
1045
                $this->assertEquals($expected, $result);
1046
1047
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
1048
                $find = '';
1049
                $result = Multibyte::stripos($string, $find);
1050
                $expected = 46;
1051
                $this->assertEquals($expected, $result);
1052
1053
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
1054
                $find = '';
1055
                $result = Multibyte::stripos($string, $find);
1056
                $expected = 45;
1057
                $this->assertEquals($expected, $result);
1058
1059
                $string = 'abcdefghijklmnopqrstuvwxyz';
1060
                $find = '';
1061
                $result = Multibyte::stripos($string, $find);
1062
                $expected = 10;
1063
                $this->assertEquals($expected, $result);
1064
1065
                $string = 'abcdefghijklmnopqrstuvwxyz';
1066
                $find = '';
1067
                $result = Multibyte::stripos($string, $find);
1068
                $expected = 10;
1069
                $this->assertEquals($expected, $result);
1070
1071
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
1072
                $find = '';
1073
                $result = Multibyte::stripos($string, $find);
1074
                $expected = 16;
1075
                $this->assertEquals($expected, $result);
1076
1077
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
1078
                $find = '';
1079
                $result = Multibyte::stripos($string, $find);
1080
                $expected = 17;
1081
                $this->assertEquals($expected, $result);
1082
1083
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1084
                $find = 'ő';
1085
                $result = Multibyte::stripos($string, $find);
1086
                $expected = 8;
1087
                $this->assertEquals($expected, $result);
1088
1089
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1090
                $find = 'Ő';
1091
                $result = Multibyte::stripos($string, $find);
1092
                $expected = 8;
1093
                $this->assertEquals($expected, $result);
1094
1095
                $string = 'Hello, World!';
1096
                $find = 'O';
1097
                $result = Multibyte::stripos($string, $find);
1098
                $expected = 4;
1099
                $this->assertEquals($expected, $result);
1100
1101
                $string = 'Hello, World!';
1102
                $find = 'o';
1103
                $result = Multibyte::stripos($string, $find);
1104
                $expected = 4;
1105
                $this->assertEquals($expected, $result);
1106
1107
                $string = 'čini';
1108
                $find = 'n';
1109
                $result = Multibyte::stripos($string, $find);
1110
                $expected = 2;
1111
                $this->assertEquals($expected, $result);
1112
1113
                $string = 'čini';
1114
                $find = 'N';
1115
                $result = Multibyte::stripos($string, $find);
1116
                $expected = 2;
1117
                $this->assertEquals($expected, $result);
1118
1119
                $string = 'moći';
1120
                $find = 'ć';
1121
                $result = Multibyte::stripos($string, $find);
1122
                $expected = 2;
1123
                $this->assertEquals($expected, $result);
1124
1125
                $string = 'moći';
1126
                $find = 'Ć';
1127
                $result = Multibyte::stripos($string, $find);
1128
                $expected = 2;
1129
                $this->assertEquals($expected, $result);
1130
1131
                $string = 'državni';
1132
                $find = 'ž';
1133
                $result = Multibyte::stripos($string, $find);
1134
                $expected = 2;
1135
                $this->assertEquals($expected, $result);
1136
1137
                $string = 'državni';
1138
                $find = 'Ž';
1139
                $result = Multibyte::stripos($string, $find);
1140
                $expected = 2;
1141
                $this->assertEquals($expected, $result);
1142
1143
                $string = '把百度设为首页';
1144
                $find = '';
1145
                $result = Multibyte::stripos($string, $find);
1146
                $expected = 3;
1147
                $this->assertEquals($expected, $result);
1148
1149
                $string = '一二三周永龍';
1150
                $find = '';
1151
                $result = Multibyte::stripos($string, $find);
1152
                $expected = 3;
1153
                $this->assertEquals($expected, $result);
1154
1155
                $string = 'državni';
1156
                $find = '';
1157
                $result = Multibyte::stripos($string, $find);
1158
                $expected = false;
1159
                $this->assertEquals($expected, $result);
1160
        }
1161
1162
/**
1163
 * testUsingMbStristr method
1164
 *
1165
 * @return void
1166
 */
1167
        public function testUsingMbStristr() {
1168
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
1169
                $find = 'f';
1170
                $result = mb_stristr($string, $find);
1171
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
1172
                $this->assertEquals($expected, $result);
1173
1174
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
1175
                $find = 'f';
1176
                $result = mb_stristr($string, $find, true);
1177
                $expected = 'ABCDE';
1178
                $this->assertEquals($expected, $result);
1179
1180
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
1181
                $find = 'å';
1182
                $result = mb_stristr($string, $find);
1183
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
1184
                $this->assertEquals($expected, $result);
1185
1186
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
1187
                $find = 'å';
1188
                $result = mb_stristr($string, $find, true);
1189
                $expected = 'ÀÁÂÃÄ';
1190
                $this->assertEquals($expected, $result);
1191
1192
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
1193
                $find = 'ċ';
1194
                $result = mb_stristr($string, $find);
1195
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
1196
                $this->assertEquals($expected, $result);
1197
1198
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
1199
                $find = 'ċ';
1200
                $result = mb_stristr($string, $find, true);
1201
                $expected = 'ĀĂĄĆĈ';
1202
                $this->assertEquals($expected, $result);
1203
1204
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
1205
                $find = 'f';
1206
                $result = mb_stristr($string, $find);
1207
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
1208
                $this->assertEquals($expected, $result);
1209
1210
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
1211
                $find = 'f';
1212
                $result = mb_stristr($string, $find, true);
1213
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
1214
                $this->assertEquals($expected, $result);
1215
1216
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
1217
                $find = 'Μ';
1218
                $result = mb_stristr($string, $find);
1219
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
1220
                $this->assertEquals($expected, $result);
1221
1222
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
1223
                $find = 'Μ';
1224
                $result = mb_stristr($string, $find, true);
1225
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
1226
                $this->assertEquals($expected, $result);
1227
1228
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
1229
                $find = 'þ';
1230
                $result = mb_stristr($string, $find);
1231
                $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
1232
                $this->assertEquals($expected, $result);
1233
1234
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
1235
                $find = 'þ';
1236
                $result = mb_stristr($string, $find, true);
1237
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
1238
                $this->assertEquals($expected, $result);
1239
1240
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
1241
                $find = 'Ņ';
1242
                $result = mb_stristr($string, $find);
1243
                $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
1244
                $this->assertEquals($expected, $result);
1245
1246
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
1247
                $find = 'Ņ';
1248
                $result = mb_stristr($string, $find, true);
1249
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
1250
                $this->assertEquals($expected, $result);
1251
1252
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
1253
                $find = 'Ƹ';
1254
                $result = mb_stristr($string, $find);
1255
                $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
1256
                $this->assertEquals($expected, $result);
1257
1258
                $find = 'Ƹ';
1259
                $result = mb_stristr($string, $find, true);
1260
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
1261
                $this->assertEquals($expected, $result);
1262
1263
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
1264
                $find = 'Ʀ';
1265
                $result = mb_stristr($string, $find);
1266
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
1267
                $this->assertEquals($expected, $result);
1268
1269
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
1270
                $find = 'Ʀ';
1271
                $result = mb_stristr($string, $find, true);
1272
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
1273
                $this->assertEquals($expected, $result);
1274
1275
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1276
                $find = 'ї';
1277
                $result = mb_stristr($string, $find);
1278
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1279
                $this->assertEquals($expected, $result);
1280
1281
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1282
                $find = 'ї';
1283
                $result = mb_stristr($string, $find, true);
1284
                $expected = 'ЀЁЂЃЄЅІ';
1285
                $this->assertEquals($expected, $result);
1286
1287
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1288
                $find = 'Р';
1289
                $result = mb_stristr($string, $find);
1290
                $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1291
                $this->assertEquals($expected, $result);
1292
1293
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1294
                $find = 'Р';
1295
                $result = mb_stristr($string, $find, true);
1296
                $expected = 'МНОП';
1297
                $this->assertEquals($expected, $result);
1298
1299
                $string = 'فقكلمنهوىيًٌٍَُ';
1300
                $find = 'ن';
1301
                $result = mb_stristr($string, $find);
1302
                $expected = 'نهوىيًٌٍَُ';
1303
                $this->assertEquals($expected, $result);
1304
1305
                $string = 'فقكلمنهوىيًٌٍَُ';
1306
                $find = 'ن';
1307
                $result = mb_stristr($string, $find, true);
1308
                $expected = 'فقكلم';
1309
                $this->assertEquals($expected, $result);
1310
1311
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
1312
                $find = '';
1313
                $result = mb_stristr($string, $find);
1314
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
1315
                $this->assertEquals($expected, $result);
1316
1317
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
1318
                $find = '';
1319
                $result = mb_stristr($string, $find, true);
1320
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
1321
                $this->assertEquals($expected, $result);
1322
1323
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
1324
                $find = '';
1325
                $result = mb_stristr($string, $find);
1326
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
1327
                $this->assertEquals($expected, $result);
1328
1329
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
1330
                $find = '';
1331
                $result = mb_stristr($string, $find, true);
1332
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
1333
                $this->assertEquals($expected, $result);
1334
1335
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
1336
                $find = '';
1337
                $result = mb_stristr($string, $find);
1338
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
1339
                $this->assertEquals($expected, $result);
1340
1341
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
1342
                $find = '';
1343
                $result = mb_stristr($string, $find, true);
1344
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
1345
                $this->assertEquals($expected, $result);
1346
1347
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
1348
                $find = '';
1349
                $result = mb_stristr($string, $find);
1350
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
1351
                $this->assertEquals($expected, $result);
1352
1353
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
1354
                $find = '';
1355
                $result = mb_stristr($string, $find, true);
1356
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
1357
                $this->assertEquals($expected, $result);
1358
1359
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
1360
                $find = '';
1361
                $result = mb_stristr($string, $find);
1362
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
1363
                $this->assertEquals($expected, $result);
1364
1365
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
1366
                $find = '';
1367
                $result = mb_stristr($string, $find, true);
1368
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
1369
                $this->assertEquals($expected, $result);
1370
1371
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
1372
                $find = '';
1373
                $result = mb_stristr($string, $find);
1374
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
1375
                $this->assertEquals($expected, $result);
1376
1377
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
1378
                $find = '';
1379
                $result = mb_stristr($string, $find, true);
1380
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
1381
                $this->assertEquals($expected, $result);
1382
1383
                $string = 'abcdefghijklmnopqrstuvwxyz';
1384
                $find = '';
1385
                $result = mb_stristr($string, $find);
1386
                $expected = 'klmnopqrstuvwxyz';
1387
                $this->assertEquals($expected, $result);
1388
1389
                $string = 'abcdefghijklmnopqrstuvwxyz';
1390
                $find = '';
1391
                $result = mb_stristr($string, $find, true);
1392
                $expected = 'abcdefghij';
1393
                $this->assertEquals($expected, $result);
1394
1395
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
1396
                $find = '';
1397
                $result = mb_stristr($string, $find);
1398
                $expected = 'アイウエオカキク';
1399
                $this->assertEquals($expected, $result);
1400
1401
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
1402
                $find = '';
1403
                $result = mb_stristr($string, $find, true);
1404
                $expected = '。「」、・ヲァィゥェォャュョッー';
1405
                $this->assertEquals($expected, $result);
1406
1407
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
1408
                $find = '';
1409
                $result = mb_stristr($string, $find);
1410
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
1411
                $this->assertEquals($expected, $result);
1412
1413
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
1414
                $find = '';
1415
                $result = mb_stristr($string, $find, true);
1416
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
1417
                $this->assertEquals($expected, $result);
1418
1419
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1420
                $find = 'Ő';
1421
                $result = mb_stristr($string, $find);
1422
                $expected = 'őřļď!';
1423
                $this->assertEquals($expected, $result);
1424
1425
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1426
                $find = 'Ő';
1427
                $result = mb_stristr($string, $find, true);
1428
                $expected = 'Ĥēĺļŏ, Ŵ';
1429
                $this->assertEquals($expected, $result);
1430
1431
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1432
                $find = 'ĺļ';
1433
                $result = mb_stristr($string, $find, true);
1434
                $expected = 'Ĥē';
1435
                $this->assertEquals($expected, $result);
1436
1437
                $string = 'Hello, World!';
1438
                $find = 'O';
1439
                $result = mb_stristr($string, $find);
1440
                $expected = 'o, World!';
1441
                $this->assertEquals($expected, $result);
1442
1443
                $string = 'Hello, World!';
1444
                $find = 'O';
1445
                $result = mb_stristr($string, $find, true);
1446
                $expected = 'Hell';
1447
                $this->assertEquals($expected, $result);
1448
1449
                $string = 'Hello, World!';
1450
                $find = 'Wo';
1451
                $result = mb_stristr($string, $find);
1452
                $expected = 'World!';
1453
                $this->assertEquals($expected, $result);
1454
1455
                $string = 'Hello, World!';
1456
                $find = 'Wo';
1457
                $result = mb_stristr($string, $find, true);
1458
                $expected = 'Hello, ';
1459
                $this->assertEquals($expected, $result);
1460
1461
                $string = 'Hello, World!';
1462
                $find = 'll';
1463
                $result = mb_stristr($string, $find);
1464
                $expected = 'llo, World!';
1465
                $this->assertEquals($expected, $result);
1466
1467
                $string = 'Hello, World!';
1468
                $find = 'll';
1469
                $result = mb_stristr($string, $find, true);
1470
                $expected = 'He';
1471
                $this->assertEquals($expected, $result);
1472
1473
                $string = 'Hello, World!';
1474
                $find = 'rld';
1475
                $result = mb_stristr($string, $find);
1476
                $expected = 'rld!';
1477
                $this->assertEquals($expected, $result);
1478
1479
                $string = 'Hello, World!';
1480
                $find = 'rld';
1481
                $result = mb_stristr($string, $find, true);
1482
                $expected = 'Hello, Wo';
1483
                $this->assertEquals($expected, $result);
1484
1485
                $string = 'čini';
1486
                $find = 'N';
1487
                $result = mb_stristr($string, $find);
1488
                $expected = 'ni';
1489
                $this->assertEquals($expected, $result);
1490
1491
                $string = 'čini';
1492
                $find = 'N';
1493
                $result = mb_stristr($string, $find, true);
1494
                $expected = 'či';
1495
                $this->assertEquals($expected, $result);
1496
1497
                $string = 'moći';
1498
                $find = 'Ć';
1499
                $result = mb_stristr($string, $find);
1500
                $expected = 'ći';
1501
                $this->assertEquals($expected, $result);
1502
1503
                $string = 'moći';
1504
                $find = 'Ć';
1505
                $result = mb_stristr($string, $find, true);
1506
                $expected = 'mo';
1507
                $this->assertEquals($expected, $result);
1508
1509
                $string = 'državni';
1510
                $find = 'Ž';
1511
                $result = mb_stristr($string, $find);
1512
                $expected = 'žavni';
1513
                $this->assertEquals($expected, $result);
1514
1515
                $string = 'državni';
1516
                $find = 'Ž';
1517
                $result = mb_stristr($string, $find, true);
1518
                $expected = 'dr';
1519
                $this->assertEquals($expected, $result);
1520
1521
                $string = '把百度设为首页';
1522
                $find = '';
1523
                $result = mb_stristr($string, $find);
1524
                $expected = '设为首页';
1525
                $this->assertEquals($expected, $result);
1526
1527
                $string = '把百度设为首页';
1528
                $find = '';
1529
                $result = mb_stristr($string, $find, true);
1530
                $expected = '把百度';
1531
                $this->assertEquals($expected, $result);
1532
1533
                $string = '一二三周永龍';
1534
                $find = '';
1535
                $result = mb_stristr($string, $find);
1536
                $expected = '周永龍';
1537
                $this->assertEquals($expected, $result);
1538
1539
                $string = '一二三周永龍';
1540
                $find = '';
1541
                $result = mb_stristr($string, $find, true);
1542
                $expected = '一二三';
1543
                $this->assertEquals($expected, $result);
1544
1545
                $string = '一二三周永龍';
1546
                $find = '二周';
1547
                $result = mb_stristr($string, $find);
1548
                $expected = false;
1549
                $this->assertEquals($expected, $result);
1550
        }
1551
1552
/**
1553
 * testMultibyteStristr method
1554
 *
1555
 * @return void
1556
 */
1557
        public function testMultibyteStristr() {
1558
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
1559
                $find = 'f';
1560
                $result = Multibyte::stristr($string, $find);
1561
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
1562
                $this->assertEquals($expected, $result);
1563
1564
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
1565
                $find = 'f';
1566
                $result = Multibyte::stristr($string, $find, true);
1567
                $expected = 'ABCDE';
1568
                $this->assertEquals($expected, $result);
1569
1570
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
1571
                $find = 'å';
1572
                $result = Multibyte::stristr($string, $find);
1573
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
1574
                $this->assertEquals($expected, $result);
1575
1576
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
1577
                $find = 'å';
1578
                $result = Multibyte::stristr($string, $find, true);
1579
                $expected = 'ÀÁÂÃÄ';
1580
                $this->assertEquals($expected, $result);
1581
1582
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
1583
                $find = 'ċ';
1584
                $result = Multibyte::stristr($string, $find);
1585
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
1586
                $this->assertEquals($expected, $result);
1587
1588
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
1589
                $find = 'ċ';
1590
                $result = Multibyte::stristr($string, $find, true);
1591
                $expected = 'ĀĂĄĆĈ';
1592
                $this->assertEquals($expected, $result);
1593
1594
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
1595
                $find = 'f';
1596
                $result = Multibyte::stristr($string, $find);
1597
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
1598
                $this->assertEquals($expected, $result);
1599
1600
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
1601
                $find = 'f';
1602
                $result = Multibyte::stristr($string, $find, true);
1603
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
1604
                $this->assertEquals($expected, $result);
1605
1606
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
1607
                $find = 'Μ';
1608
                $result = Multibyte::stristr($string, $find);
1609
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
1610
                $this->assertEquals($expected, $result);
1611
1612
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
1613
                $find = 'Μ';
1614
                $result = Multibyte::stristr($string, $find, true);
1615
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
1616
                $this->assertEquals($expected, $result);
1617
1618
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
1619
                $find = 'þ';
1620
                $result = Multibyte::stristr($string, $find);
1621
                $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
1622
                $this->assertEquals($expected, $result);
1623
1624
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
1625
                $find = 'þ';
1626
                $result = Multibyte::stristr($string, $find, true);
1627
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
1628
                $this->assertEquals($expected, $result);
1629
1630
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
1631
                $find = 'Ņ';
1632
                $result = Multibyte::stristr($string, $find);
1633
                $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
1634
                $this->assertEquals($expected, $result);
1635
1636
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
1637
                $find = 'Ņ';
1638
                $result = Multibyte::stristr($string, $find, true);
1639
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
1640
                $this->assertEquals($expected, $result);
1641
1642
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
1643
                $find = 'Ƹ';
1644
                $result = Multibyte::stristr($string, $find);
1645
                $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
1646
                $this->assertEquals($expected, $result);
1647
1648
                $find = 'Ƹ';
1649
                $result = Multibyte::stristr($string, $find, true);
1650
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
1651
                $this->assertEquals($expected, $result);
1652
1653
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
1654
                $find = 'Ʀ';
1655
                $result = Multibyte::stristr($string, $find);
1656
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
1657
                $this->assertEquals($expected, $result);
1658
1659
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
1660
                $find = 'Ʀ';
1661
                $result = Multibyte::stristr($string, $find, true);
1662
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
1663
                $this->assertEquals($expected, $result);
1664
1665
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1666
                $find = 'ї';
1667
                $result = Multibyte::stristr($string, $find);
1668
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1669
                $this->assertEquals($expected, $result);
1670
1671
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1672
                $find = 'ї';
1673
                $result = Multibyte::stristr($string, $find, true);
1674
                $expected = 'ЀЁЂЃЄЅІ';
1675
                $this->assertEquals($expected, $result);
1676
1677
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1678
                $find = 'Р';
1679
                $result = Multibyte::stristr($string, $find);
1680
                $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1681
                $this->assertEquals($expected, $result);
1682
1683
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1684
                $find = 'Р';
1685
                $result = Multibyte::stristr($string, $find, true);
1686
                $expected = 'МНОП';
1687
                $this->assertEquals($expected, $result);
1688
1689
                $string = 'فقكلمنهوىيًٌٍَُ';
1690
                $find = 'ن';
1691
                $result = Multibyte::stristr($string, $find);
1692
                $expected = 'نهوىيًٌٍَُ';
1693
                $this->assertEquals($expected, $result);
1694
1695
                $string = 'فقكلمنهوىيًٌٍَُ';
1696
                $find = 'ن';
1697
                $result = Multibyte::stristr($string, $find, true);
1698
                $expected = 'فقكلم';
1699
                $this->assertEquals($expected, $result);
1700
1701
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
1702
                $find = '';
1703
                $result = Multibyte::stristr($string, $find);
1704
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
1705
                $this->assertEquals($expected, $result);
1706
1707
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
1708
                $find = '';
1709
                $result = Multibyte::stristr($string, $find, true);
1710
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
1711
                $this->assertEquals($expected, $result);
1712
1713
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
1714
                $find = '';
1715
                $result = Multibyte::stristr($string, $find);
1716
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
1717
                $this->assertEquals($expected, $result);
1718
1719
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
1720
                $find = '';
1721
                $result = Multibyte::stristr($string, $find, true);
1722
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
1723
                $this->assertEquals($expected, $result);
1724
1725
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
1726
                $find = '';
1727
                $result = Multibyte::stristr($string, $find);
1728
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
1729
                $this->assertEquals($expected, $result);
1730
1731
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
1732
                $find = '';
1733
                $result = Multibyte::stristr($string, $find, true);
1734
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
1735
                $this->assertEquals($expected, $result);
1736
1737
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
1738
                $find = '';
1739
                $result = Multibyte::stristr($string, $find);
1740
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
1741
                $this->assertEquals($expected, $result);
1742
1743
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
1744
                $find = '';
1745
                $result = Multibyte::stristr($string, $find, true);
1746
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
1747
                $this->assertEquals($expected, $result);
1748
1749
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
1750
                $find = '';
1751
                $result = Multibyte::stristr($string, $find);
1752
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
1753
                $this->assertEquals($expected, $result);
1754
1755
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
1756
                $find = '';
1757
                $result = Multibyte::stristr($string, $find, true);
1758
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
1759
                $this->assertEquals($expected, $result);
1760
1761
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
1762
                $find = '';
1763
                $result = Multibyte::stristr($string, $find);
1764
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
1765
                $this->assertEquals($expected, $result);
1766
1767
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
1768
                $find = '';
1769
                $result = Multibyte::stristr($string, $find, true);
1770
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
1771
                $this->assertEquals($expected, $result);
1772
1773
                $string = 'abcdefghijklmnopqrstuvwxyz';
1774
                $find = '';
1775
                $result = Multibyte::stristr($string, $find);
1776
                $expected = 'klmnopqrstuvwxyz';
1777
                $this->assertEquals($expected, $result);
1778
1779
                $string = 'abcdefghijklmnopqrstuvwxyz';
1780
                $find = '';
1781
                $result = Multibyte::stristr($string, $find, true);
1782
                $expected = 'abcdefghij';
1783
                $this->assertEquals($expected, $result);
1784
1785
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
1786
                $find = '';
1787
                $result = Multibyte::stristr($string, $find);
1788
                $expected = 'アイウエオカキク';
1789
                $this->assertEquals($expected, $result);
1790
1791
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
1792
                $find = '';
1793
                $result = Multibyte::stristr($string, $find, true);
1794
                $expected = '。「」、・ヲァィゥェォャュョッー';
1795
                $this->assertEquals($expected, $result);
1796
1797
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
1798
                $find = '';
1799
                $result = Multibyte::stristr($string, $find);
1800
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
1801
                $this->assertEquals($expected, $result);
1802
1803
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
1804
                $find = '';
1805
                $result = Multibyte::stristr($string, $find, true);
1806
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
1807
                $this->assertEquals($expected, $result);
1808
1809
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1810
                $find = 'Ő';
1811
                $result = Multibyte::stristr($string, $find);
1812
                $expected = 'őřļď!';
1813
                $this->assertEquals($expected, $result);
1814
1815
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1816
                $find = 'Ő';
1817
                $result = Multibyte::stristr($string, $find, true);
1818
                $expected = 'Ĥēĺļŏ, Ŵ';
1819
                $this->assertEquals($expected, $result);
1820
1821
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
1822
                $find = 'ĺļ';
1823
                $result = Multibyte::stristr($string, $find, true);
1824
                $expected = 'Ĥē';
1825
                $this->assertEquals($expected, $result);
1826
1827
                $string = 'Hello, World!';
1828
                $find = 'O';
1829
                $result = Multibyte::stristr($string, $find);
1830
                $expected = 'o, World!';
1831
                $this->assertEquals($expected, $result);
1832
1833
                $string = 'Hello, World!';
1834
                $find = 'O';
1835
                $result = Multibyte::stristr($string, $find, true);
1836
                $expected = 'Hell';
1837
                $this->assertEquals($expected, $result);
1838
1839
                $string = 'Hello, World!';
1840
                $find = 'Wo';
1841
                $result = Multibyte::stristr($string, $find);
1842
                $expected = 'World!';
1843
                $this->assertEquals($expected, $result);
1844
1845
                $string = 'Hello, World!';
1846
                $find = 'Wo';
1847
                $result = Multibyte::stristr($string, $find, true);
1848
                $expected = 'Hello, ';
1849
                $this->assertEquals($expected, $result);
1850
1851
                $string = 'Hello, World!';
1852
                $find = 'll';
1853
                $result = Multibyte::stristr($string, $find);
1854
                $expected = 'llo, World!';
1855
                $this->assertEquals($expected, $result);
1856
1857
                $string = 'Hello, World!';
1858
                $find = 'll';
1859
                $result = Multibyte::stristr($string, $find, true);
1860
                $expected = 'He';
1861
                $this->assertEquals($expected, $result);
1862
1863
                $string = 'Hello, World!';
1864
                $find = 'rld';
1865
                $result = Multibyte::stristr($string, $find);
1866
                $expected = 'rld!';
1867
                $this->assertEquals($expected, $result);
1868
1869
                $string = 'Hello, World!';
1870
                $find = 'rld';
1871
                $result = Multibyte::stristr($string, $find, true);
1872
                $expected = 'Hello, Wo';
1873
                $this->assertEquals($expected, $result);
1874
1875
                $string = 'čini';
1876
                $find = 'N';
1877
                $result = Multibyte::stristr($string, $find);
1878
                $expected = 'ni';
1879
                $this->assertEquals($expected, $result);
1880
1881
                $string = 'čini';
1882
                $find = 'N';
1883
                $result = Multibyte::stristr($string, $find, true);
1884
                $expected = 'či';
1885
                $this->assertEquals($expected, $result);
1886
1887
                $string = 'moći';
1888
                $find = 'Ć';
1889
                $result = Multibyte::stristr($string, $find);
1890
                $expected = 'ći';
1891
                $this->assertEquals($expected, $result);
1892
1893
                $string = 'moći';
1894
                $find = 'Ć';
1895
                $result = Multibyte::stristr($string, $find, true);
1896
                $expected = 'mo';
1897
                $this->assertEquals($expected, $result);
1898
1899
                $string = 'državni';
1900
                $find = 'Ž';
1901
                $result = Multibyte::stristr($string, $find);
1902
                $expected = 'žavni';
1903
                $this->assertEquals($expected, $result);
1904
1905
                $string = 'državni';
1906
                $find = 'Ž';
1907
                $result = Multibyte::stristr($string, $find, true);
1908
                $expected = 'dr';
1909
                $this->assertEquals($expected, $result);
1910
1911
                $string = '把百度设为首页';
1912
                $find = '';
1913
                $result = Multibyte::stristr($string, $find);
1914
                $expected = '设为首页';
1915
                $this->assertEquals($expected, $result);
1916
1917
                $string = '把百度设为首页';
1918
                $find = '';
1919
                $result = Multibyte::stristr($string, $find, true);
1920
                $expected = '把百度';
1921
                $this->assertEquals($expected, $result);
1922
1923
                $string = '一二三周永龍';
1924
                $find = '';
1925
                $result = Multibyte::stristr($string, $find);
1926
                $expected = '周永龍';
1927
                $this->assertEquals($expected, $result);
1928
1929
                $string = '一二三周永龍';
1930
                $find = '';
1931
                $result = Multibyte::stristr($string, $find, true);
1932
                $expected = '一二三';
1933
                $this->assertEquals($expected, $result);
1934
1935
                $string = '一二三周永龍';
1936
                $find = '二周';
1937
                $result = Multibyte::stristr($string, $find);
1938
                $expected = false;
1939
                $this->assertEquals($expected, $result);
1940
        }
1941
1942
/**
1943
 * testUsingMbStrlen method
1944
 *
1945
 * @return void
1946
 */
1947
        public function testUsingMbStrlen() {
1948
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
1949
                $result = mb_strlen($string);
1950
                $expected = 36;
1951
                $this->assertEquals($expected, $result);
1952
1953
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
1954
                $result = mb_strlen($string);
1955
                $expected = 30;
1956
                $this->assertEquals($expected, $result);
1957
1958
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
1959
                $result = mb_strlen($string);
1960
                $expected = 61;
1961
                $this->assertEquals($expected, $result);
1962
1963
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
1964
                $result = mb_strlen($string);
1965
                $expected = 94;
1966
                $this->assertEquals($expected, $result);
1967
1968
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
1969
                $result = mb_strlen($string);
1970
                $expected = 40;
1971
                $this->assertEquals($expected, $result);
1972
1973
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
1974
                $result = mb_strlen($string);
1975
                $expected = 100;
1976
                $this->assertEquals($expected, $result);
1977
1978
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
1979
                $result = mb_strlen($string);
1980
                $expected = 100;
1981
                $this->assertEquals($expected, $result);
1982
1983
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
1984
                $result = mb_strlen($string);
1985
                $expected = 100;
1986
                $this->assertEquals($expected, $result);
1987
1988
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
1989
                $result = mb_strlen($string);
1990
                $expected = 100;
1991
                $this->assertEquals($expected, $result);
1992
1993
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
1994
                $result = mb_strlen($string);
1995
                $expected = 28;
1996
                $this->assertEquals($expected, $result);
1997
1998
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
1999
                $result = mb_strlen($string);
2000
                $expected = 49;
2001
                $this->assertEquals($expected, $result);
2002
2003
                $string = 'فقكلمنهوىيًٌٍَُ';
2004
                $result = mb_strlen($string);
2005
                $expected = 15;
2006
                $this->assertEquals($expected, $result);
2007
2008
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
2009
                $result = mb_strlen($string);
2010
                $expected = 47;
2011
                $this->assertEquals($expected, $result);
2012
2013
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
2014
                $result = mb_strlen($string);
2015
                $expected = 96;
2016
                $this->assertEquals($expected, $result);
2017
2018
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
2019
                $result = mb_strlen($string);
2020
                $expected = 59;
2021
                $this->assertEquals($expected, $result);
2022
2023
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
2024
                $result = mb_strlen($string);
2025
                $expected = 100;
2026
                $this->assertEquals($expected, $result);
2027
2028
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
2029
                $result = mb_strlen($string);
2030
                $expected = 65;
2031
                $this->assertEquals($expected, $result);
2032
2033
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
2034
                $result = mb_strlen($string);
2035
                $expected = 76;
2036
                $this->assertEquals($expected, $result);
2037
2038
                $string = 'abcdefghijklmnopqrstuvwxyz';
2039
                $result = mb_strlen($string);
2040
                $expected = 26;
2041
                $this->assertEquals($expected, $result);
2042
2043
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
2044
                $result = mb_strlen($string);
2045
                $expected = 24;
2046
                $this->assertEquals($expected, $result);
2047
2048
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
2049
                $result = mb_strlen($string);
2050
                $expected = 38;
2051
                $this->assertEquals($expected, $result);
2052
2053
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2054
                $result = mb_strlen($string);
2055
                $expected = 13;
2056
                $this->assertEquals($expected, $result);
2057
2058
                $string = 'Hello, World!';
2059
                $result = mb_strlen($string);
2060
                $expected = 13;
2061
                $this->assertEquals($expected, $result);
2062
2063
                $string = 'čini';
2064
                $result = mb_strlen($string);
2065
                $expected = 4;
2066
                $this->assertEquals($expected, $result);
2067
2068
                $string = 'moći';
2069
                $result = mb_strlen($string);
2070
                $expected = 4;
2071
                $this->assertEquals($expected, $result);
2072
2073
                $string = 'državni';
2074
                $result = mb_strlen($string);
2075
                $expected = 7;
2076
                $this->assertEquals($expected, $result);
2077
2078
                $string = '把百度设为首页';
2079
                $result = mb_strlen($string);
2080
                $expected = 7;
2081
                $this->assertEquals($expected, $result);
2082
2083
                $string = '一二三周永龍';
2084
                $result = mb_strlen($string);
2085
                $expected = 6;
2086
                $this->assertEquals($expected, $result);
2087
        }
2088
2089
/**
2090
 * testMultibyteStrlen method
2091
 *
2092
 * @return void
2093
 */
2094
        public function testMultibyteStrlen() {
2095
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
2096
                $result = Multibyte::strlen($string);
2097
                $expected = 36;
2098
                $this->assertEquals($expected, $result);
2099
2100
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
2101
                $result = Multibyte::strlen($string);
2102
                $expected = 30;
2103
                $this->assertEquals($expected, $result);
2104
2105
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2106
                $result = Multibyte::strlen($string);
2107
                $expected = 61;
2108
                $this->assertEquals($expected, $result);
2109
2110
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
2111
                $result = Multibyte::strlen($string);
2112
                $expected = 94;
2113
                $this->assertEquals($expected, $result);
2114
2115
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
2116
                $result = Multibyte::strlen($string);
2117
                $expected = 40;
2118
                $this->assertEquals($expected, $result);
2119
2120
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
2121
                $result = Multibyte::strlen($string);
2122
                $expected = 100;
2123
                $this->assertEquals($expected, $result);
2124
2125
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
2126
                $result = Multibyte::strlen($string);
2127
                $expected = 100;
2128
                $this->assertEquals($expected, $result);
2129
2130
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
2131
                $result = Multibyte::strlen($string);
2132
                $expected = 100;
2133
                $this->assertEquals($expected, $result);
2134
2135
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
2136
                $result = Multibyte::strlen($string);
2137
                $expected = 100;
2138
                $this->assertEquals($expected, $result);
2139
2140
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
2141
                $result = Multibyte::strlen($string);
2142
                $expected = 28;
2143
                $this->assertEquals($expected, $result);
2144
2145
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2146
                $result = Multibyte::strlen($string);
2147
                $expected = 49;
2148
                $this->assertEquals($expected, $result);
2149
2150
                $string = 'فقكلمنهوىيًٌٍَُ';
2151
                $result = Multibyte::strlen($string);
2152
                $expected = 15;
2153
                $this->assertEquals($expected, $result);
2154
2155
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
2156
                $result = Multibyte::strlen($string);
2157
                $expected = 47;
2158
                $this->assertEquals($expected, $result);
2159
2160
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
2161
                $result = Multibyte::strlen($string);
2162
                $expected = 96;
2163
                $this->assertEquals($expected, $result);
2164
2165
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
2166
                $result = Multibyte::strlen($string);
2167
                $expected = 59;
2168
                $this->assertEquals($expected, $result);
2169
2170
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
2171
                $result = Multibyte::strlen($string);
2172
                $expected = 100;
2173
                $this->assertEquals($expected, $result);
2174
2175
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
2176
                $result = Multibyte::strlen($string);
2177
                $expected = 65;
2178
                $this->assertEquals($expected, $result);
2179
2180
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
2181
                $result = Multibyte::strlen($string);
2182
                $expected = 76;
2183
                $this->assertEquals($expected, $result);
2184
2185
                $string = 'abcdefghijklmnopqrstuvwxyz';
2186
                $result = Multibyte::strlen($string);
2187
                $expected = 26;
2188
                $this->assertEquals($expected, $result);
2189
2190
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
2191
                $result = Multibyte::strlen($string);
2192
                $expected = 24;
2193
                $this->assertEquals($expected, $result);
2194
2195
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
2196
                $result = Multibyte::strlen($string);
2197
                $expected = 38;
2198
                $this->assertEquals($expected, $result);
2199
2200
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2201
                $result = Multibyte::strlen($string);
2202
                $expected = 13;
2203
                $this->assertEquals($expected, $result);
2204
2205
                $string = 'Hello, World!';
2206
                $result = Multibyte::strlen($string);
2207
                $expected = 13;
2208
                $this->assertEquals($expected, $result);
2209
2210
                $string = 'čini';
2211
                $result = Multibyte::strlen($string);
2212
                $expected = 4;
2213
                $this->assertEquals($expected, $result);
2214
2215
                $string = 'moći';
2216
                $result = Multibyte::strlen($string);
2217
                $expected = 4;
2218
                $this->assertEquals($expected, $result);
2219
2220
                $string = 'državni';
2221
                $result = Multibyte::strlen($string);
2222
                $expected = 7;
2223
                $this->assertEquals($expected, $result);
2224
2225
                $string = '把百度设为首页';
2226
                $result = Multibyte::strlen($string);
2227
                $expected = 7;
2228
                $this->assertEquals($expected, $result);
2229
2230
                $string = '一二三周永龍';
2231
                $result = Multibyte::strlen($string);
2232
                $expected = 6;
2233
                $this->assertEquals($expected, $result);
2234
        }
2235
2236
/**
2237
 * testUsingMbStrpos method
2238
 *
2239
 * @return void
2240
 */
2241
        public function testUsingMbStrpos() {
2242
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
2243
                $find = 'F';
2244
                $result = mb_strpos($string, $find);
2245
                $expected = 5;
2246
                $this->assertEquals($expected, $result);
2247
2248
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
2249
                $find = 'F';
2250
                $result = mb_strpos($string, $find, 6);
2251
                $expected = 17;
2252
                $this->assertEquals($expected, $result);
2253
2254
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
2255
                $find = 'Å';
2256
                $result = mb_strpos($string, $find);
2257
                $expected = 5;
2258
                $this->assertEquals($expected, $result);
2259
2260
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
2261
                $find = 'Å';
2262
                $result = mb_strpos($string, $find, 6);
2263
                $expected = 24;
2264
                $this->assertEquals($expected, $result);
2265
2266
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2267
                $find = 'Ċ';
2268
                $result = mb_strpos($string, $find);
2269
                $expected = 5;
2270
                $this->assertEquals($expected, $result);
2271
2272
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2273
                $find = 'Ċ';
2274
                $result = mb_strpos($string, $find, 6);
2275
                $expected = 32;
2276
                $this->assertEquals($expected, $result);
2277
2278
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
2279
                $find = 'F';
2280
                $result = mb_strpos($string, $find);
2281
                $expected = 37;
2282
                $this->assertEquals($expected, $result);
2283
2284
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
2285
                $find = 'µ';
2286
                $result = mb_strpos($string, $find);
2287
                $expected = 20;
2288
                $this->assertEquals($expected, $result);
2289
2290
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
2291
                $find = 'é';
2292
                $result = mb_strpos($string, $find);
2293
                $expected = 32;
2294
                $this->assertEquals($expected, $result);
2295
2296
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
2297
                $find = 'Ņ';
2298
                $result = mb_strpos($string, $find);
2299
                $expected = 24;
2300
                $this->assertEquals($expected, $result);
2301
2302
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
2303
                $find = 'Ƹ';
2304
                $result = mb_strpos($string, $find);
2305
                $expected = 39;
2306
                $this->assertEquals($expected, $result);
2307
2308
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
2309
                $find = 'ƹ';
2310
                $result = mb_strpos($string, $find);
2311
                $expected = 40;
2312
                $this->assertEquals($expected, $result);
2313
2314
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
2315
                $find = 'ʀ';
2316
                $result = mb_strpos($string, $find);
2317
                $expected = 39;
2318
                $this->assertEquals($expected, $result);
2319
2320
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
2321
                $find = 'Ї';
2322
                $result = mb_strpos($string, $find);
2323
                $expected = 7;
2324
                $this->assertEquals($expected, $result);
2325
2326
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2327
                $find = 'Р';
2328
                $result = mb_strpos($string, $find);
2329
                $expected = 4;
2330
                $this->assertEquals($expected, $result);
2331
2332
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2333
                $find = 'р';
2334
                $result = mb_strpos($string, $find, 5);
2335
                $expected = 36;
2336
                $this->assertEquals($expected, $result);
2337
2338
                $string = 'فقكلمنهوىيًٌٍَُ';
2339
                $find = 'ن';
2340
                $result = mb_strpos($string, $find);
2341
                $expected = 5;
2342
                $this->assertEquals($expected, $result);
2343
2344
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
2345
                $find = '';
2346
                $result = mb_strpos($string, $find);
2347
                $expected = 15;
2348
                $this->assertEquals($expected, $result);
2349
2350
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
2351
                $find = '';
2352
                $result = mb_strpos($string, $find);
2353
                $expected = 16;
2354
                $this->assertEquals($expected, $result);
2355
2356
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
2357
                $find = '';
2358
                $result = mb_strpos($string, $find);
2359
                $expected = 31;
2360
                $this->assertEquals($expected, $result);
2361
2362
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
2363
                $find = '';
2364
                $result = mb_strpos($string, $find);
2365
                $expected = 26;
2366
                $this->assertEquals($expected, $result);
2367
2368
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
2369
                $find = '';
2370
                $result = mb_strpos($string, $find);
2371
                $expected = 46;
2372
                $this->assertEquals($expected, $result);
2373
2374
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
2375
                $find = '';
2376
                $result = mb_strpos($string, $find);
2377
                $expected = 45;
2378
                $this->assertEquals($expected, $result);
2379
2380
                $string = 'abcdefghijklmnopqrstuvwxyz';
2381
                $find = '';
2382
                $result = mb_strpos($string, $find);
2383
                $expected = 10;
2384
                $this->assertEquals($expected, $result);
2385
2386
                $string = 'abcdefghijklmnopqrstuvwxyz';
2387
                $find = '';
2388
                $result = mb_strpos($string, $find);
2389
                $expected = 10;
2390
                $this->assertEquals($expected, $result);
2391
2392
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
2393
                $find = '';
2394
                $result = mb_strpos($string, $find);
2395
                $expected = 16;
2396
                $this->assertEquals($expected, $result);
2397
2398
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
2399
                $find = '';
2400
                $result = mb_strpos($string, $find);
2401
                $expected = 17;
2402
                $this->assertEquals($expected, $result);
2403
2404
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2405
                $find = 'ő';
2406
                $result = mb_strpos($string, $find);
2407
                $expected = 8;
2408
                $this->assertEquals($expected, $result);
2409
2410
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2411
                $find = 'ő';
2412
                $result = mb_strpos($string, $find);
2413
                $expected = 8;
2414
                $this->assertEquals($expected, $result);
2415
2416
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2417
                $find = 'őř';
2418
                $result = mb_strpos($string, $find);
2419
                $expected = 8;
2420
                $this->assertEquals($expected, $result);
2421
2422
                $string = 'Hello, World!';
2423
                $find = 'o';
2424
                $result = mb_strpos($string, $find);
2425
                $expected = 4;
2426
                $this->assertEquals($expected, $result);
2427
2428
                $string = 'Hello, World!';
2429
                $find = 'o';
2430
                $result = mb_strpos($string, $find, 5);
2431
                $expected = 8;
2432
                $this->assertEquals($expected, $result);
2433
2434
                $string = 'čini';
2435
                $find = 'n';
2436
                $result = mb_strpos($string, $find);
2437
                $expected = 2;
2438
                $this->assertEquals($expected, $result);
2439
2440
                $string = 'čini';
2441
                $find = 'n';
2442
                $result = mb_strpos($string, $find);
2443
                $expected = 2;
2444
                $this->assertEquals($expected, $result);
2445
2446
                $string = 'moći';
2447
                $find = 'ć';
2448
                $result = mb_strpos($string, $find);
2449
                $expected = 2;
2450
                $this->assertEquals($expected, $result);
2451
2452
                $string = 'moći';
2453
                $find = 'ć';
2454
                $result = mb_strpos($string, $find);
2455
                $expected = 2;
2456
                $this->assertEquals($expected, $result);
2457
2458
                $string = 'državni';
2459
                $find = 'ž';
2460
                $result = mb_strpos($string, $find);
2461
                $expected = 2;
2462
                $this->assertEquals($expected, $result);
2463
2464
                $string = '把百度设为首页';
2465
                $find = '';
2466
                $result = mb_strpos($string, $find);
2467
                $expected = 3;
2468
                $this->assertEquals($expected, $result);
2469
2470
                $string = '一二三周永龍';
2471
                $find = '';
2472
                $result = mb_strpos($string, $find);
2473
                $expected = 3;
2474
                $this->assertEquals($expected, $result);
2475
2476
                $string = '一二三周永龍';
2477
                $find = '一周';
2478
                $result = mb_strpos($string, $find);
2479
                $expected = false;
2480
                $this->assertEquals($expected, $result);
2481
        }
2482
2483
/**
2484
 * testMultibyteStrpos method
2485
 *
2486
 * @return void
2487
 */
2488
        public function testMultibyteStrpos() {
2489
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
2490
                $find = 'F';
2491
                $result = Multibyte::strpos($string, $find);
2492
                $expected = 5;
2493
                $this->assertEquals($expected, $result);
2494
2495
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
2496
                $find = 'F';
2497
                $result = Multibyte::strpos($string, $find, 6);
2498
                $expected = 17;
2499
                $this->assertEquals($expected, $result);
2500
2501
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
2502
                $find = 'Å';
2503
                $result = Multibyte::strpos($string, $find);
2504
                $expected = 5;
2505
                $this->assertEquals($expected, $result);
2506
2507
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
2508
                $find = 'Å';
2509
                $result = Multibyte::strpos($string, $find, 6);
2510
                $expected = 24;
2511
                $this->assertEquals($expected, $result);
2512
2513
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2514
                $find = 'Ċ';
2515
                $result = Multibyte::strpos($string, $find);
2516
                $expected = 5;
2517
                $this->assertEquals($expected, $result);
2518
2519
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2520
                $find = 'Ċ';
2521
                $result = Multibyte::strpos($string, $find, 6);
2522
                $expected = 32;
2523
                $this->assertEquals($expected, $result);
2524
2525
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
2526
                $find = 'F';
2527
                $result = Multibyte::strpos($string, $find);
2528
                $expected = 37;
2529
                $this->assertEquals($expected, $result);
2530
2531
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
2532
                $find = 'µ';
2533
                $result = Multibyte::strpos($string, $find);
2534
                $expected = 20;
2535
                $this->assertEquals($expected, $result);
2536
2537
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
2538
                $find = 'é';
2539
                $result = Multibyte::strpos($string, $find);
2540
                $expected = 32;
2541
                $this->assertEquals($expected, $result);
2542
2543
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
2544
                $find = 'Ņ';
2545
                $result = Multibyte::strpos($string, $find);
2546
                $expected = 24;
2547
                $this->assertEquals($expected, $result);
2548
2549
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
2550
                $find = 'Ƹ';
2551
                $result = Multibyte::strpos($string, $find);
2552
                $expected = 39;
2553
                $this->assertEquals($expected, $result);
2554
2555
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
2556
                $find = 'ƹ';
2557
                $result = Multibyte::strpos($string, $find);
2558
                $expected = 40;
2559
                $this->assertEquals($expected, $result);
2560
2561
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
2562
                $find = 'ʀ';
2563
                $result = Multibyte::strpos($string, $find);
2564
                $expected = 39;
2565
                $this->assertEquals($expected, $result);
2566
2567
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
2568
                $find = 'Ї';
2569
                $result = Multibyte::strpos($string, $find);
2570
                $expected = 7;
2571
                $this->assertEquals($expected, $result);
2572
2573
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2574
                $find = 'Р';
2575
                $result = Multibyte::strpos($string, $find);
2576
                $expected = 4;
2577
                $this->assertEquals($expected, $result);
2578
2579
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2580
                $find = 'р';
2581
                $result = Multibyte::strpos($string, $find, 5);
2582
                $expected = 36;
2583
                $this->assertEquals($expected, $result);
2584
2585
                $string = 'فقكلمنهوىيًٌٍَُ';
2586
                $find = 'ن';
2587
                $result = Multibyte::strpos($string, $find);
2588
                $expected = 5;
2589
                $this->assertEquals($expected, $result);
2590
2591
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
2592
                $find = '';
2593
                $result = Multibyte::strpos($string, $find);
2594
                $expected = 15;
2595
                $this->assertEquals($expected, $result);
2596
2597
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
2598
                $find = '';
2599
                $result = Multibyte::strpos($string, $find);
2600
                $expected = 16;
2601
                $this->assertEquals($expected, $result);
2602
2603
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
2604
                $find = '';
2605
                $result = Multibyte::strpos($string, $find);
2606
                $expected = 31;
2607
                $this->assertEquals($expected, $result);
2608
2609
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
2610
                $find = '';
2611
                $result = Multibyte::strpos($string, $find);
2612
                $expected = 26;
2613
                $this->assertEquals($expected, $result);
2614
2615
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
2616
                $find = '';
2617
                $result = Multibyte::strpos($string, $find);
2618
                $expected = 46;
2619
                $this->assertEquals($expected, $result);
2620
2621
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
2622
                $find = '';
2623
                $result = Multibyte::strpos($string, $find);
2624
                $expected = 45;
2625
                $this->assertEquals($expected, $result);
2626
2627
                $string = 'abcdefghijklmnopqrstuvwxyz';
2628
                $find = '';
2629
                $result = Multibyte::strpos($string, $find);
2630
                $expected = 10;
2631
                $this->assertEquals($expected, $result);
2632
2633
                $string = 'abcdefghijklmnopqrstuvwxyz';
2634
                $find = '';
2635
                $result = Multibyte::strpos($string, $find);
2636
                $expected = 10;
2637
                $this->assertEquals($expected, $result);
2638
2639
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
2640
                $find = '';
2641
                $result = Multibyte::strpos($string, $find);
2642
                $expected = 16;
2643
                $this->assertEquals($expected, $result);
2644
2645
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
2646
                $find = '';
2647
                $result = Multibyte::strpos($string, $find);
2648
                $expected = 17;
2649
                $this->assertEquals($expected, $result);
2650
2651
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2652
                $find = 'ő';
2653
                $result = Multibyte::strpos($string, $find);
2654
                $expected = 8;
2655
                $this->assertEquals($expected, $result);
2656
2657
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2658
                $find = 'ő';
2659
                $result = Multibyte::strpos($string, $find);
2660
                $expected = 8;
2661
                $this->assertEquals($expected, $result);
2662
2663
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2664
                $find = 'őř';
2665
                $result = Multibyte::strpos($string, $find);
2666
                $expected = 8;
2667
                $this->assertEquals($expected, $result);
2668
2669
                $string = 'Hello, World!';
2670
                $find = 'o';
2671
                $result = Multibyte::strpos($string, $find);
2672
                $expected = 4;
2673
                $this->assertEquals($expected, $result);
2674
2675
                $string = 'Hello, World!';
2676
                $find = 'o';
2677
                $result = Multibyte::strpos($string, $find, 5);
2678
                $expected = 8;
2679
                $this->assertEquals($expected, $result);
2680
2681
                $string = 'čini';
2682
                $find = 'n';
2683
                $result = Multibyte::strpos($string, $find);
2684
                $expected = 2;
2685
                $this->assertEquals($expected, $result);
2686
2687
                $string = 'čini';
2688
                $find = 'n';
2689
                $result = Multibyte::strpos($string, $find);
2690
                $expected = 2;
2691
                $this->assertEquals($expected, $result);
2692
2693
                $string = 'moći';
2694
                $find = 'ć';
2695
                $result = Multibyte::strpos($string, $find);
2696
                $expected = 2;
2697
                $this->assertEquals($expected, $result);
2698
2699
                $string = 'moći';
2700
                $find = 'ć';
2701
                $result = Multibyte::strpos($string, $find);
2702
                $expected = 2;
2703
                $this->assertEquals($expected, $result);
2704
2705
                $string = 'državni';
2706
                $find = 'ž';
2707
                $result = Multibyte::strpos($string, $find);
2708
                $expected = 2;
2709
                $this->assertEquals($expected, $result);
2710
2711
                $string = '把百度设为首页';
2712
                $find = '';
2713
                $result = Multibyte::strpos($string, $find);
2714
                $expected = 3;
2715
                $this->assertEquals($expected, $result);
2716
2717
                $string = '一二三周永龍';
2718
                $find = '';
2719
                $result = Multibyte::strpos($string, $find);
2720
                $expected = 3;
2721
                $this->assertEquals($expected, $result);
2722
2723
                $string = '一二三周永龍';
2724
                $find = '一周';
2725
                $result = Multibyte::strpos($string, $find);
2726
                $expected = false;
2727
                $this->assertEquals($expected, $result);
2728
        }
2729
2730
/**
2731
 * testUsingMbStrrchr method
2732
 *
2733
 * @return void
2734
 */
2735
        public function testUsingMbStrrchr() {
2736
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
2737
                $find = 'F';
2738
                $result = mb_strrchr($string, $find);
2739
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
2740
                $this->assertEquals($expected, $result);
2741
2742
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
2743
                $find = 'F';
2744
                $result = mb_strrchr($string, $find, true);
2745
                $expected = 'ABCDE';
2746
                $this->assertEquals($expected, $result);
2747
2748
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
2749
                $find = 'Å';
2750
                $result = mb_strrchr($string, $find);
2751
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
2752
                $this->assertEquals($expected, $result);
2753
2754
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
2755
                $find = 'Å';
2756
                $result = mb_strrchr($string, $find, true);
2757
                $expected = 'ÀÁÂÃÄ';
2758
                $this->assertEquals($expected, $result);
2759
2760
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2761
                $find = 'Ċ';
2762
                $result = mb_strrchr($string, $find);
2763
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2764
                $this->assertEquals($expected, $result);
2765
2766
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
2767
                $find = 'Ċ';
2768
                $result = mb_strrchr($string, $find, true);
2769
                $expected = 'ĀĂĄĆĈ';
2770
                $this->assertEquals($expected, $result);
2771
2772
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
2773
                $find = 'F';
2774
                $result = mb_strrchr($string, $find);
2775
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
2776
                $this->assertEquals($expected, $result);
2777
2778
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
2779
                $find = 'F';
2780
                $result = mb_strrchr($string, $find, true);
2781
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
2782
                $this->assertEquals($expected, $result);
2783
2784
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
2785
                $find = 'µ';
2786
                $result = mb_strrchr($string, $find);
2787
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
2788
                $this->assertEquals($expected, $result);
2789
2790
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
2791
                $find = 'µ';
2792
                $result = mb_strrchr($string, $find, true);
2793
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
2794
                $this->assertEquals($expected, $result);
2795
2796
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
2797
                $find = 'Þ';
2798
                $result = mb_strrchr($string, $find);
2799
                $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
2800
                $this->assertEquals($expected, $result);
2801
2802
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
2803
                $find = 'Þ';
2804
                $result = mb_strrchr($string, $find, true);
2805
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
2806
                $this->assertEquals($expected, $result);
2807
2808
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
2809
                $find = 'Ņ';
2810
                $result = mb_strrchr($string, $find);
2811
                $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
2812
                $this->assertEquals($expected, $result);
2813
2814
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
2815
                $find = 'Ņ';
2816
                $result = mb_strrchr($string, $find, true);
2817
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
2818
                $this->assertEquals($expected, $result);
2819
2820
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
2821
                $find = 'Ƹ';
2822
                $result = mb_strrchr($string, $find);
2823
                $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
2824
                $this->assertEquals($expected, $result);
2825
2826
                $find = 'Ƹ';
2827
                $result = mb_strrchr($string, $find, true);
2828
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
2829
                $this->assertEquals($expected, $result);
2830
2831
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
2832
                $find = 'ʀ';
2833
                $result = mb_strrchr($string, $find);
2834
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
2835
                $this->assertEquals($expected, $result);
2836
2837
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
2838
                $find = 'ʀ';
2839
                $result = mb_strrchr($string, $find, true);
2840
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
2841
                $this->assertEquals($expected, $result);
2842
2843
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
2844
                $find = 'Ї';
2845
                $result = mb_strrchr($string, $find);
2846
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
2847
                $this->assertEquals($expected, $result);
2848
2849
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
2850
                $find = 'Ї';
2851
                $result = mb_strrchr($string, $find, true);
2852
                $expected = 'ЀЁЂЃЄЅІ';
2853
                $this->assertEquals($expected, $result);
2854
2855
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2856
                $find = 'Р';
2857
                $result = mb_strrchr($string, $find);
2858
                $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2859
                $this->assertEquals($expected, $result);
2860
2861
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
2862
                $find = 'Р';
2863
                $result = mb_strrchr($string, $find, true);
2864
                $expected = 'МНОП';
2865
                $this->assertEquals($expected, $result);
2866
2867
                $string = 'فقكلمنهوىيًٌٍَُ';
2868
                $find = 'ن';
2869
                $result = mb_strrchr($string, $find);
2870
                $expected = 'نهوىيًٌٍَُ';
2871
                $this->assertEquals($expected, $result);
2872
2873
                $string = 'فقكلمنهوىيًٌٍَُ';
2874
                $find = 'ن';
2875
                $result = mb_strrchr($string, $find, true);
2876
                $expected = 'فقكلم';
2877
                $this->assertEquals($expected, $result);
2878
2879
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
2880
                $find = '';
2881
                $result = mb_strrchr($string, $find);
2882
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
2883
                $this->assertEquals($expected, $result);
2884
2885
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
2886
                $find = '';
2887
                $result = mb_strrchr($string, $find, true);
2888
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
2889
                $this->assertEquals($expected, $result);
2890
2891
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
2892
                $find = '';
2893
                $result = mb_strrchr($string, $find);
2894
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
2895
                $this->assertEquals($expected, $result);
2896
2897
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
2898
                $find = '';
2899
                $result = mb_strrchr($string, $find, true);
2900
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
2901
                $this->assertEquals($expected, $result);
2902
2903
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
2904
                $find = '';
2905
                $result = mb_strrchr($string, $find);
2906
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
2907
                $this->assertEquals($expected, $result);
2908
2909
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
2910
                $find = '';
2911
                $result = mb_strrchr($string, $find, true);
2912
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
2913
                $this->assertEquals($expected, $result);
2914
2915
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
2916
                $find = '';
2917
                $result = mb_strrchr($string, $find);
2918
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
2919
                $this->assertEquals($expected, $result);
2920
2921
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
2922
                $find = '';
2923
                $result = mb_strrchr($string, $find, true);
2924
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
2925
                $this->assertEquals($expected, $result);
2926
2927
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
2928
                $find = '';
2929
                $result = mb_strrchr($string, $find);
2930
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
2931
                $this->assertEquals($expected, $result);
2932
2933
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
2934
                $find = '';
2935
                $result = mb_strrchr($string, $find, true);
2936
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
2937
                $this->assertEquals($expected, $result);
2938
2939
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
2940
                $find = '';
2941
                $result = mb_strrchr($string, $find);
2942
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
2943
                $this->assertEquals($expected, $result);
2944
2945
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
2946
                $find = '';
2947
                $result = mb_strrchr($string, $find, true);
2948
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
2949
                $this->assertEquals($expected, $result);
2950
2951
                $string = 'abcdefghijklmnopqrstuvwxyz';
2952
                $find = '';
2953
                $result = mb_strrchr($string, $find);
2954
                $expected = 'klmnopqrstuvwxyz';
2955
                $this->assertEquals($expected, $result);
2956
2957
                $string = 'abcdefghijklmnopqrstuvwxyz';
2958
                $find = '';
2959
                $result = mb_strrchr($string, $find, true);
2960
                $expected = 'abcdefghij';
2961
                $this->assertEquals($expected, $result);
2962
2963
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
2964
                $find = '';
2965
                $result = mb_strrchr($string, $find);
2966
                $expected = 'アイウエオカキク';
2967
                $this->assertEquals($expected, $result);
2968
2969
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
2970
                $find = '';
2971
                $result = mb_strrchr($string, $find, true);
2972
                $expected = '。「」、・ヲァィゥェォャュョッー';
2973
                $this->assertEquals($expected, $result);
2974
2975
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
2976
                $find = '';
2977
                $result = mb_strrchr($string, $find);
2978
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
2979
                $this->assertEquals($expected, $result);
2980
2981
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
2982
                $find = '';
2983
                $result = mb_strrchr($string, $find, true);
2984
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
2985
                $this->assertEquals($expected, $result);
2986
2987
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2988
                $find = 'ő';
2989
                $result = mb_strrchr($string, $find);
2990
                $expected = 'őřļď!';
2991
                $this->assertEquals($expected, $result);
2992
2993
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
2994
                $find = 'ő';
2995
                $result = mb_strrchr($string, $find, true);
2996
                $expected = 'Ĥēĺļŏ, Ŵ';
2997
                $this->assertEquals($expected, $result);
2998
2999
                $string = 'Hello, World!';
3000
                $find = 'o';
3001
                $result = mb_strrchr($string, $find);
3002
                $expected = 'orld!';
3003
                $this->assertEquals($expected, $result);
3004
3005
                $string = 'Hello, World!';
3006
                $find = 'o';
3007
                $result = mb_strrchr($string, $find, true);
3008
                $expected = 'Hello, W';
3009
                $this->assertEquals($expected, $result);
3010
3011
                $string = 'Hello, World!';
3012
                $find = 'Wo';
3013
                $result = mb_strrchr($string, $find);
3014
                $expected = 'World!';
3015
                $this->assertEquals($expected, $result);
3016
3017
                $string = 'Hello, World!';
3018
                $find = 'Wo';
3019
                $result = mb_strrchr($string, $find, true);
3020
                $expected = 'Hello, ';
3021
                $this->assertEquals($expected, $result);
3022
3023
                $string = 'Hello, World!';
3024
                $find = 'll';
3025
                $result = mb_strrchr($string, $find);
3026
                $expected = 'llo, World!';
3027
                $this->assertEquals($expected, $result);
3028
3029
                $string = 'Hello, World!';
3030
                $find = 'll';
3031
                $result = mb_strrchr($string, $find, true);
3032
                $expected = 'He';
3033
                $this->assertEquals($expected, $result);
3034
3035
                $string = 'Hello, World!';
3036
                $find = 'rld';
3037
                $result = mb_strrchr($string, $find);
3038
                $expected = 'rld!';
3039
                $this->assertEquals($expected, $result);
3040
3041
                $string = 'Hello, World!';
3042
                $find = 'rld';
3043
                $result = mb_strrchr($string, $find, true);
3044
                $expected = 'Hello, Wo';
3045
                $this->assertEquals($expected, $result);
3046
3047
                $string = 'čini';
3048
                $find = 'n';
3049
                $result = mb_strrchr($string, $find);
3050
                $expected = 'ni';
3051
                $this->assertEquals($expected, $result);
3052
3053
                $string = 'čini';
3054
                $find = 'n';
3055
                $result = mb_strrchr($string, $find, true);
3056
                $expected = 'či';
3057
                $this->assertEquals($expected, $result);
3058
3059
                $string = 'moći';
3060
                $find = 'ć';
3061
                $result = mb_strrchr($string, $find);
3062
                $expected = 'ći';
3063
                $this->assertEquals($expected, $result);
3064
3065
                $string = 'moći';
3066
                $find = 'ć';
3067
                $result = mb_strrchr($string, $find, true);
3068
                $expected = 'mo';
3069
                $this->assertEquals($expected, $result);
3070
3071
                $string = 'državni';
3072
                $find = 'ž';
3073
                $result = mb_strrchr($string, $find);
3074
                $expected = 'žavni';
3075
                $this->assertEquals($expected, $result);
3076
3077
                $string = 'državni';
3078
                $find = 'ž';
3079
                $result = mb_strrchr($string, $find, true);
3080
                $expected = 'dr';
3081
                $this->assertEquals($expected, $result);
3082
3083
                $string = '把百度设为首页';
3084
                $find = '';
3085
                $result = mb_strrchr($string, $find);
3086
                $expected = '设为首页';
3087
                $this->assertEquals($expected, $result);
3088
3089
                $string = '把百度设为首页';
3090
                $find = '';
3091
                $result = mb_strrchr($string, $find, true);
3092
                $expected = '把百度';
3093
                $this->assertEquals($expected, $result);
3094
3095
                $string = '一二三周永龍';
3096
                $find = '';
3097
                $result = mb_strrchr($string, $find);
3098
                $expected = '周永龍';
3099
                $this->assertEquals($expected, $result);
3100
3101
                $string = '一二三周永龍';
3102
                $find = '';
3103
                $result = mb_strrchr($string, $find, true);
3104
                $expected = '一二三';
3105
                $this->assertEquals($expected, $result);
3106
3107
                $string = '一二三周永龍';
3108
                $find = '周龍';
3109
                $result = mb_strrchr($string, $find, true);
3110
                $expected = false;
3111
                $this->assertEquals($expected, $result);
3112
        }
3113
3114
/**
3115
 * testMultibyteStrrchr method
3116
 *
3117
 * @return void
3118
 */
3119
        public function testMultibyteStrrchr() {
3120
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3121
                $find = 'F';
3122
                $result = Multibyte::strrchr($string, $find);
3123
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
3124
                $this->assertEquals($expected, $result);
3125
3126
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3127
                $find = 'F';
3128
                $result = Multibyte::strrchr($string, $find, true);
3129
                $expected = 'ABCDE';
3130
                $this->assertEquals($expected, $result);
3131
3132
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3133
                $find = 'Å';
3134
                $result = Multibyte::strrchr($string, $find);
3135
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3136
                $this->assertEquals($expected, $result);
3137
3138
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3139
                $find = 'Å';
3140
                $result = Multibyte::strrchr($string, $find, true);
3141
                $expected = 'ÀÁÂÃÄ';
3142
                $this->assertEquals($expected, $result);
3143
3144
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3145
                $find = 'Ċ';
3146
                $result = Multibyte::strrchr($string, $find);
3147
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3148
                $this->assertEquals($expected, $result);
3149
3150
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3151
                $find = 'Ċ';
3152
                $result = Multibyte::strrchr($string, $find, true);
3153
                $expected = 'ĀĂĄĆĈ';
3154
                $this->assertEquals($expected, $result);
3155
3156
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
3157
                $find = 'F';
3158
                $result = Multibyte::strrchr($string, $find);
3159
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
3160
                $this->assertEquals($expected, $result);
3161
3162
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
3163
                $find = 'F';
3164
                $result = Multibyte::strrchr($string, $find, true);
3165
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
3166
                $this->assertEquals($expected, $result);
3167
3168
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3169
                $find = 'µ';
3170
                $result = Multibyte::strrchr($string, $find);
3171
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3172
                $this->assertEquals($expected, $result);
3173
3174
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3175
                $find = 'µ';
3176
                $result = Multibyte::strrchr($string, $find, true);
3177
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
3178
                $this->assertEquals($expected, $result);
3179
3180
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3181
                $find = 'Þ';
3182
                $result = Multibyte::strrchr($string, $find);
3183
                $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3184
                $this->assertEquals($expected, $result);
3185
3186
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3187
                $find = 'Þ';
3188
                $result = Multibyte::strrchr($string, $find, true);
3189
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
3190
                $this->assertEquals($expected, $result);
3191
3192
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3193
                $find = 'Ņ';
3194
                $result = Multibyte::strrchr($string, $find);
3195
                $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3196
                $this->assertEquals($expected, $result);
3197
3198
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3199
                $find = 'Ņ';
3200
                $result = Multibyte::strrchr($string, $find, true);
3201
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
3202
                $this->assertEquals($expected, $result);
3203
3204
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
3205
                $find = 'Ƹ';
3206
                $result = Multibyte::strrchr($string, $find);
3207
                $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
3208
                $this->assertEquals($expected, $result);
3209
3210
                $find = 'Ƹ';
3211
                $result = Multibyte::strrchr($string, $find, true);
3212
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
3213
                $this->assertEquals($expected, $result);
3214
3215
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3216
                $find = 'ʀ';
3217
                $result = Multibyte::strrchr($string, $find);
3218
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3219
                $this->assertEquals($expected, $result);
3220
3221
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3222
                $find = 'ʀ';
3223
                $result = Multibyte::strrchr($string, $find, true);
3224
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
3225
                $this->assertEquals($expected, $result);
3226
3227
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3228
                $find = 'Ї';
3229
                $result = Multibyte::strrchr($string, $find);
3230
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3231
                $this->assertEquals($expected, $result);
3232
3233
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3234
                $find = 'Ї';
3235
                $result = Multibyte::strrchr($string, $find, true);
3236
                $expected = 'ЀЁЂЃЄЅІ';
3237
                $this->assertEquals($expected, $result);
3238
3239
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
3240
                $find = 'Р';
3241
                $result = Multibyte::strrchr($string, $find);
3242
                $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
3243
                $this->assertEquals($expected, $result);
3244
3245
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
3246
                $find = 'Р';
3247
                $result = Multibyte::strrchr($string, $find, true);
3248
                $expected = 'МНОП';
3249
                $this->assertEquals($expected, $result);
3250
3251
                $string = 'فقكلمنهوىيًٌٍَُ';
3252
                $find = 'ن';
3253
                $result = Multibyte::strrchr($string, $find);
3254
                $expected = 'نهوىيًٌٍَُ';
3255
                $this->assertEquals($expected, $result);
3256
3257
                $string = 'فقكلمنهوىيًٌٍَُ';
3258
                $find = 'ن';
3259
                $result = Multibyte::strrchr($string, $find, true);
3260
                $expected = 'فقكلم';
3261
                $this->assertEquals($expected, $result);
3262
3263
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
3264
                $find = '';
3265
                $result = Multibyte::strrchr($string, $find);
3266
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
3267
                $this->assertEquals($expected, $result);
3268
3269
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
3270
                $find = '';
3271
                $result = Multibyte::strrchr($string, $find, true);
3272
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
3273
                $this->assertEquals($expected, $result);
3274
3275
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
3276
                $find = '';
3277
                $result = Multibyte::strrchr($string, $find);
3278
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
3279
                $this->assertEquals($expected, $result);
3280
3281
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
3282
                $find = '';
3283
                $result = Multibyte::strrchr($string, $find, true);
3284
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
3285
                $this->assertEquals($expected, $result);
3286
3287
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
3288
                $find = '';
3289
                $result = Multibyte::strrchr($string, $find);
3290
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
3291
                $this->assertEquals($expected, $result);
3292
3293
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
3294
                $find = '';
3295
                $result = Multibyte::strrchr($string, $find, true);
3296
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
3297
                $this->assertEquals($expected, $result);
3298
3299
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
3300
                $find = '';
3301
                $result = Multibyte::strrchr($string, $find);
3302
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
3303
                $this->assertEquals($expected, $result);
3304
3305
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
3306
                $find = '';
3307
                $result = Multibyte::strrchr($string, $find, true);
3308
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
3309
                $this->assertEquals($expected, $result);
3310
3311
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
3312
                $find = '';
3313
                $result = Multibyte::strrchr($string, $find);
3314
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
3315
                $this->assertEquals($expected, $result);
3316
3317
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
3318
                $find = '';
3319
                $result = Multibyte::strrchr($string, $find, true);
3320
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
3321
                $this->assertEquals($expected, $result);
3322
3323
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
3324
                $find = '';
3325
                $result = Multibyte::strrchr($string, $find);
3326
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
3327
                $this->assertEquals($expected, $result);
3328
3329
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
3330
                $find = '';
3331
                $result = Multibyte::strrchr($string, $find, true);
3332
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
3333
                $this->assertEquals($expected, $result);
3334
3335
                $string = 'abcdefghijklmnopqrstuvwxyz';
3336
                $find = '';
3337
                $result = Multibyte::strrchr($string, $find);
3338
                $expected = 'klmnopqrstuvwxyz';
3339
                $this->assertEquals($expected, $result);
3340
3341
                $string = 'abcdefghijklmnopqrstuvwxyz';
3342
                $find = '';
3343
                $result = Multibyte::strrchr($string, $find, true);
3344
                $expected = 'abcdefghij';
3345
                $this->assertEquals($expected, $result);
3346
3347
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
3348
                $find = '';
3349
                $result = Multibyte::strrchr($string, $find);
3350
                $expected = 'アイウエオカキク';
3351
                $this->assertEquals($expected, $result);
3352
3353
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
3354
                $find = '';
3355
                $result = Multibyte::strrchr($string, $find, true);
3356
                $expected = '。「」、・ヲァィゥェォャュョッー';
3357
                $this->assertEquals($expected, $result);
3358
3359
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
3360
                $find = '';
3361
                $result = Multibyte::strrchr($string, $find);
3362
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
3363
                $this->assertEquals($expected, $result);
3364
3365
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
3366
                $find = '';
3367
                $result = Multibyte::strrchr($string, $find, true);
3368
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
3369
                $this->assertEquals($expected, $result);
3370
3371
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
3372
                $find = 'ő';
3373
                $result = Multibyte::strrchr($string, $find);
3374
                $expected = 'őřļď!';
3375
                $this->assertEquals($expected, $result);
3376
3377
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
3378
                $find = 'ő';
3379
                $result = Multibyte::strrchr($string, $find, true);
3380
                $expected = 'Ĥēĺļŏ, Ŵ';
3381
                $this->assertEquals($expected, $result);
3382
3383
                $string = 'Hello, World!';
3384
                $find = 'o';
3385
                $result = Multibyte::strrchr($string, $find);
3386
                $expected = 'orld!';
3387
                $this->assertEquals($expected, $result);
3388
3389
                $string = 'Hello, World!';
3390
                $find = 'o';
3391
                $result = Multibyte::strrchr($string, $find, true);
3392
                $expected = 'Hello, W';
3393
                $this->assertEquals($expected, $result);
3394
3395
                $string = 'Hello, World!';
3396
                $find = 'Wo';
3397
                $result = Multibyte::strrchr($string, $find);
3398
                $expected = 'World!';
3399
                $this->assertEquals($expected, $result);
3400
3401
                $string = 'Hello, World!';
3402
                $find = 'Wo';
3403
                $result = Multibyte::strrchr($string, $find, true);
3404
                $expected = 'Hello, ';
3405
                $this->assertEquals($expected, $result);
3406
3407
                $string = 'Hello, World!';
3408
                $find = 'll';
3409
                $result = Multibyte::strrchr($string, $find);
3410
                $expected = 'llo, World!';
3411
                $this->assertEquals($expected, $result);
3412
3413
                $string = 'Hello, World!';
3414
                $find = 'll';
3415
                $result = Multibyte::strrchr($string, $find, true);
3416
                $expected = 'He';
3417
                $this->assertEquals($expected, $result);
3418
3419
                $string = 'Hello, World!';
3420
                $find = 'rld';
3421
                $result = Multibyte::strrchr($string, $find);
3422
                $expected = 'rld!';
3423
                $this->assertEquals($expected, $result);
3424
3425
                $string = 'Hello, World!';
3426
                $find = 'rld';
3427
                $result = Multibyte::strrchr($string, $find, true);
3428
                $expected = 'Hello, Wo';
3429
                $this->assertEquals($expected, $result);
3430
3431
                $string = 'čini';
3432
                $find = 'n';
3433
                $result = Multibyte::strrchr($string, $find);
3434
                $expected = 'ni';
3435
                $this->assertEquals($expected, $result);
3436
3437
                $string = 'čini';
3438
                $find = 'n';
3439
                $result = Multibyte::strrchr($string, $find, true);
3440
                $expected = 'či';
3441
                $this->assertEquals($expected, $result);
3442
3443
                $string = 'moći';
3444
                $find = 'ć';
3445
                $result = Multibyte::strrchr($string, $find);
3446
                $expected = 'ći';
3447
                $this->assertEquals($expected, $result);
3448
3449
                $string = 'moći';
3450
                $find = 'ć';
3451
                $result = Multibyte::strrchr($string, $find, true);
3452
                $expected = 'mo';
3453
                $this->assertEquals($expected, $result);
3454
3455
                $string = 'državni';
3456
                $find = 'ž';
3457
                $result = Multibyte::strrchr($string, $find);
3458
                $expected = 'žavni';
3459
                $this->assertEquals($expected, $result);
3460
3461
                $string = 'državni';
3462
                $find = 'ž';
3463
                $result = Multibyte::strrchr($string, $find, true);
3464
                $expected = 'dr';
3465
                $this->assertEquals($expected, $result);
3466
3467
                $string = '把百度设为首页';
3468
                $find = '';
3469
                $result = Multibyte::strrchr($string, $find);
3470
                $expected = '设为首页';
3471
                $this->assertEquals($expected, $result);
3472
3473
                $string = '把百度设为首页';
3474
                $find = '';
3475
                $result = Multibyte::strrchr($string, $find, true);
3476
                $expected = '把百度';
3477
                $this->assertEquals($expected, $result);
3478
3479
                $string = '一二三周永龍';
3480
                $find = '';
3481
                $result = Multibyte::strrchr($string, $find);
3482
                $expected = '周永龍';
3483
                $this->assertEquals($expected, $result);
3484
3485
                $string = '一二三周永龍';
3486
                $find = '';
3487
                $result = Multibyte::strrchr($string, $find, true);
3488
                $expected = '一二三';
3489
                $this->assertEquals($expected, $result);
3490
3491
                $string = '一二三周永龍';
3492
                $find = '周龍';
3493
                $result = Multibyte::strrchr($string, $find, true);
3494
                $expected = false;
3495
                $this->assertEquals($expected, $result);
3496
        }
3497
3498
/**
3499
 * testUsingMbStrrichr method
3500
 *
3501
 * @return void
3502
 */
3503
        public function testUsingMbStrrichr() {
3504
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3505
                $find = 'F';
3506
                $result = mb_strrichr($string, $find);
3507
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
3508
                $this->assertEquals($expected, $result);
3509
3510
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3511
                $find = 'F';
3512
                $result = mb_strrichr($string, $find, true);
3513
                $expected = 'ABCDE';
3514
                $this->assertEquals($expected, $result);
3515
3516
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3517
                $find = 'Å';
3518
                $result = mb_strrichr($string, $find);
3519
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3520
                $this->assertEquals($expected, $result);
3521
3522
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3523
                $find = 'Å';
3524
                $result = mb_strrichr($string, $find, true);
3525
                $expected = 'ÀÁÂÃÄ';
3526
                $this->assertEquals($expected, $result);
3527
3528
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3529
                $find = 'Ċ';
3530
                $result = mb_strrichr($string, $find);
3531
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3532
                $this->assertEquals($expected, $result);
3533
3534
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3535
                $find = 'Ċ';
3536
                $result = mb_strrichr($string, $find, true);
3537
                $expected = 'ĀĂĄĆĈ';
3538
                $this->assertEquals($expected, $result);
3539
3540
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
3541
                $find = 'F';
3542
                $result = mb_strrichr($string, $find);
3543
                $expected = 'fghijklmnopqrstuvwxyz{|}~';
3544
                $this->assertEquals($expected, $result);
3545
3546
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
3547
                $find = 'F';
3548
                $result = mb_strrichr($string, $find, true);
3549
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde';
3550
                $this->assertEquals($expected, $result);
3551
3552
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3553
                $find = 'µ';
3554
                $result = mb_strrichr($string, $find);
3555
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3556
                $this->assertEquals($expected, $result);
3557
3558
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3559
                $find = 'µ';
3560
                $result = mb_strrichr($string, $find, true);
3561
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
3562
                $this->assertEquals($expected, $result);
3563
3564
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3565
                $find = 'Þ';
3566
                $result = mb_strrichr($string, $find);
3567
                $expected = 'þÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3568
                $this->assertEquals($expected, $result);
3569
3570
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3571
                $find = 'Þ';
3572
                $result = mb_strrichr($string, $find, true);
3573
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüý';
3574
                $this->assertEquals($expected, $result);
3575
3576
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3577
                $find = 'Ņ';
3578
                $result = mb_strrichr($string, $find);
3579
                $expected = 'ņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3580
                $this->assertEquals($expected, $result);
3581
3582
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3583
                $find = 'Ņ';
3584
                $result = mb_strrichr($string, $find, true);
3585
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅ';
3586
                $this->assertEquals($expected, $result);
3587
3588
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
3589
                $find = 'Ƹ';
3590
                $result = mb_strrichr($string, $find);
3591
                $expected = 'ƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
3592
                $this->assertEquals($expected, $result);
3593
3594
                $find = 'Ƹ';
3595
                $result = mb_strrichr($string, $find, true);
3596
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸ';
3597
                $this->assertEquals($expected, $result);
3598
3599
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3600
                $find = 'ʀ';
3601
                $result = mb_strrichr($string, $find);
3602
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3603
                $this->assertEquals($expected, $result);
3604
3605
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3606
                $find = 'ʀ';
3607
                $result = mb_strrichr($string, $find, true);
3608
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
3609
                $this->assertEquals($expected, $result);
3610
3611
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3612
                $find = 'Ї';
3613
                $result = mb_strrichr($string, $find);
3614
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3615
                $this->assertEquals($expected, $result);
3616
3617
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3618
                $find = 'Ї';
3619
                $result = mb_strrichr($string, $find, true);
3620
                $expected = 'ЀЁЂЃЄЅІ';
3621
                $this->assertEquals($expected, $result);
3622
3623
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
3624
                $find = 'Р';
3625
                $result = mb_strrichr($string, $find);
3626
                $expected = 'рстуфхцчшщъыь';
3627
                $this->assertEquals($expected, $result);
3628
3629
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп';
3630
                $find = 'Р';
3631
                $result = mb_strrichr($string, $find, true);
3632
                $expected = 'МНОП';
3633
                $this->assertEquals($expected, $result);
3634
3635
                $string = 'فقكلمنهوىيًٌٍَُ';
3636
                $find = 'ن';
3637
                $result = mb_strrichr($string, $find);
3638
                $expected = 'نهوىيًٌٍَُ';
3639
                $this->assertEquals($expected, $result);
3640
3641
                $string = 'فقكلمنهوىيًٌٍَُ';
3642
                $find = 'ن';
3643
                $result = mb_strrichr($string, $find, true);
3644
                $expected = 'فقكلم';
3645
                $this->assertEquals($expected, $result);
3646
3647
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
3648
                $find = '';
3649
                $result = mb_strrichr($string, $find);
3650
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
3651
                $this->assertEquals($expected, $result);
3652
3653
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
3654
                $find = '';
3655
                $result = mb_strrichr($string, $find, true);
3656
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
3657
                $this->assertEquals($expected, $result);
3658
3659
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
3660
                $find = '';
3661
                $result = mb_strrichr($string, $find);
3662
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
3663
                $this->assertEquals($expected, $result);
3664
3665
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
3666
                $find = '';
3667
                $result = mb_strrichr($string, $find, true);
3668
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
3669
                $this->assertEquals($expected, $result);
3670
3671
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
3672
                $find = '';
3673
                $result = mb_strrichr($string, $find);
3674
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
3675
                $this->assertEquals($expected, $result);
3676
3677
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
3678
                $find = '';
3679
                $result = mb_strrichr($string, $find, true);
3680
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
3681
                $this->assertEquals($expected, $result);
3682
3683
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
3684
                $find = '';
3685
                $result = mb_strrichr($string, $find);
3686
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
3687
                $this->assertEquals($expected, $result);
3688
3689
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
3690
                $find = '';
3691
                $result = mb_strrichr($string, $find, true);
3692
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
3693
                $this->assertEquals($expected, $result);
3694
3695
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
3696
                $find = '';
3697
                $result = mb_strrichr($string, $find);
3698
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
3699
                $this->assertEquals($expected, $result);
3700
3701
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
3702
                $find = '';
3703
                $result = mb_strrichr($string, $find, true);
3704
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
3705
                $this->assertEquals($expected, $result);
3706
3707
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
3708
                $find = '';
3709
                $result = mb_strrichr($string, $find);
3710
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
3711
                $this->assertEquals($expected, $result);
3712
3713
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
3714
                $find = '';
3715
                $result = mb_strrichr($string, $find, true);
3716
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
3717
                $this->assertEquals($expected, $result);
3718
3719
                $string = 'abcdefghijklmnopqrstuvwxyz';
3720
                $find = '';
3721
                $result = mb_strrichr($string, $find);
3722
                $expected = 'klmnopqrstuvwxyz';
3723
                $this->assertEquals($expected, $result);
3724
3725
                $string = 'abcdefghijklmnopqrstuvwxyz';
3726
                $find = '';
3727
                $result = mb_strrichr($string, $find, true);
3728
                $expected = 'abcdefghij';
3729
                $this->assertEquals($expected, $result);
3730
3731
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
3732
                $find = '';
3733
                $result = mb_strrichr($string, $find);
3734
                $expected = 'アイウエオカキク';
3735
                $this->assertEquals($expected, $result);
3736
3737
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
3738
                $find = '';
3739
                $result = mb_strrichr($string, $find, true);
3740
                $expected = '。「」、・ヲァィゥェォャュョッー';
3741
                $this->assertEquals($expected, $result);
3742
3743
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
3744
                $find = '';
3745
                $result = mb_strrichr($string, $find);
3746
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
3747
                $this->assertEquals($expected, $result);
3748
3749
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
3750
                $find = '';
3751
                $result = mb_strrichr($string, $find, true);
3752
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
3753
                $this->assertEquals($expected, $result);
3754
3755
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
3756
                $find = 'ő';
3757
                $result = mb_strrichr($string, $find);
3758
                $expected = 'őřļď!';
3759
                $this->assertEquals($expected, $result);
3760
3761
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
3762
                $find = 'ő';
3763
                $result = mb_strrichr($string, $find, true);
3764
                $expected = 'Ĥēĺļŏ, Ŵ';
3765
                $this->assertEquals($expected, $result);
3766
3767
                $string = 'Hello, World!';
3768
                $find = 'o';
3769
                $result = mb_strrichr($string, $find);
3770
                $expected = 'orld!';
3771
                $this->assertEquals($expected, $result);
3772
3773
                $string = 'Hello, World!';
3774
                $find = 'o';
3775
                $result = mb_strrichr($string, $find, true);
3776
                $expected = 'Hello, W';
3777
                $this->assertEquals($expected, $result);
3778
3779
                $string = 'Hello, World!';
3780
                $find = 'Wo';
3781
                $result = mb_strrichr($string, $find);
3782
                $expected = 'World!';
3783
                $this->assertEquals($expected, $result);
3784
3785
                $string = 'Hello, World!';
3786
                $find = 'Wo';
3787
                $result = mb_strrichr($string, $find, true);
3788
                $expected = 'Hello, ';
3789
                $this->assertEquals($expected, $result);
3790
3791
                $string = 'Hello, World!';
3792
                $find = 'll';
3793
                $result = mb_strrichr($string, $find);
3794
                $expected = 'llo, World!';
3795
                $this->assertEquals($expected, $result);
3796
3797
                $string = 'Hello, World!';
3798
                $find = 'll';
3799
                $result = mb_strrichr($string, $find, true);
3800
                $expected = 'He';
3801
                $this->assertEquals($expected, $result);
3802
3803
                $string = 'Hello, World!';
3804
                $find = 'rld';
3805
                $result = mb_strrichr($string, $find);
3806
                $expected = 'rld!';
3807
                $this->assertEquals($expected, $result);
3808
3809
                $string = 'Hello, World!';
3810
                $find = 'rld';
3811
                $result = mb_strrichr($string, $find, true);
3812
                $expected = 'Hello, Wo';
3813
                $this->assertEquals($expected, $result);
3814
3815
                $string = 'čini';
3816
                $find = 'n';
3817
                $result = mb_strrichr($string, $find);
3818
                $expected = 'ni';
3819
                $this->assertEquals($expected, $result);
3820
3821
                $string = 'čini';
3822
                $find = 'n';
3823
                $result = mb_strrichr($string, $find, true);
3824
                $expected = 'či';
3825
                $this->assertEquals($expected, $result);
3826
3827
                $string = 'moći';
3828
                $find = 'ć';
3829
                $result = mb_strrichr($string, $find);
3830
                $expected = 'ći';
3831
                $this->assertEquals($expected, $result);
3832
3833
                $string = 'moći';
3834
                $find = 'ć';
3835
                $result = mb_strrichr($string, $find, true);
3836
                $expected = 'mo';
3837
                $this->assertEquals($expected, $result);
3838
3839
                $string = 'državni';
3840
                $find = 'ž';
3841
                $result = mb_strrichr($string, $find);
3842
                $expected = 'žavni';
3843
                $this->assertEquals($expected, $result);
3844
3845
                $string = 'državni';
3846
                $find = 'ž';
3847
                $result = mb_strrichr($string, $find, true);
3848
                $expected = 'dr';
3849
                $this->assertEquals($expected, $result);
3850
3851
                $string = '把百度设为首页';
3852
                $find = '';
3853
                $result = mb_strrichr($string, $find);
3854
                $expected = '设为首页';
3855
                $this->assertEquals($expected, $result);
3856
3857
                $string = '把百度设为首页';
3858
                $find = '';
3859
                $result = mb_strrichr($string, $find, true);
3860
                $expected = '把百度';
3861
                $this->assertEquals($expected, $result);
3862
3863
                $string = '一二三周永龍';
3864
                $find = '';
3865
                $result = mb_strrichr($string, $find);
3866
                $expected = '周永龍';
3867
                $this->assertEquals($expected, $result);
3868
3869
                $string = '一二三周永龍';
3870
                $find = '';
3871
                $result = mb_strrichr($string, $find, true);
3872
                $expected = '一二三';
3873
                $this->assertEquals($expected, $result);
3874
3875
                $string = '把百度设为首页';
3876
                $find = '百设';
3877
                $result = mb_strrichr($string, $find, true);
3878
                $expected = false;
3879
                $this->assertEquals($expected, $result);
3880
        }
3881
3882
/**
3883
 * testMultibyteStrrichr method
3884
 *
3885
 * @return void
3886
 */
3887
        public function testMultibyteStrrichr() {
3888
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3889
                $find = 'F';
3890
                $result = Multibyte::strrichr($string, $find);
3891
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
3892
                $this->assertEquals($expected, $result);
3893
3894
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
3895
                $find = 'F';
3896
                $result = Multibyte::strrichr($string, $find, true);
3897
                $expected = 'ABCDE';
3898
                $this->assertEquals($expected, $result);
3899
3900
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3901
                $find = 'Å';
3902
                $result = Multibyte::strrichr($string, $find);
3903
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3904
                $this->assertEquals($expected, $result);
3905
3906
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
3907
                $find = 'Å';
3908
                $result = Multibyte::strrichr($string, $find, true);
3909
                $expected = 'ÀÁÂÃÄ';
3910
                $this->assertEquals($expected, $result);
3911
3912
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3913
                $find = 'Ċ';
3914
                $result = Multibyte::strrichr($string, $find);
3915
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3916
                $this->assertEquals($expected, $result);
3917
3918
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
3919
                $find = 'Ċ';
3920
                $result = Multibyte::strrichr($string, $find, true);
3921
                $expected = 'ĀĂĄĆĈ';
3922
                $this->assertEquals($expected, $result);
3923
3924
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
3925
                $find = 'F';
3926
                $result = Multibyte::strrichr($string, $find);
3927
                $expected = 'fghijklmnopqrstuvwxyz{|}~';
3928
                $this->assertEquals($expected, $result);
3929
3930
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
3931
                $find = 'F';
3932
                $result = Multibyte::strrichr($string, $find, true);
3933
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcde';
3934
                $this->assertEquals($expected, $result);
3935
3936
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3937
                $find = 'µ';
3938
                $result = Multibyte::strrichr($string, $find);
3939
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3940
                $this->assertEquals($expected, $result);
3941
3942
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
3943
                $find = 'µ';
3944
                $result = Multibyte::strrichr($string, $find, true);
3945
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
3946
                $this->assertEquals($expected, $result);
3947
3948
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3949
                $find = 'Þ';
3950
                $result = Multibyte::strrichr($string, $find);
3951
                $expected = 'þÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3952
                $this->assertEquals($expected, $result);
3953
3954
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
3955
                $find = 'Þ';
3956
                $result = Multibyte::strrichr($string, $find, true);
3957
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüý';
3958
                $this->assertEquals($expected, $result);
3959
3960
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3961
                $find = 'Ņ';
3962
                $result = Multibyte::strrichr($string, $find);
3963
                $expected = 'ņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3964
                $this->assertEquals($expected, $result);
3965
3966
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
3967
                $find = 'Ņ';
3968
                $result = Multibyte::strrichr($string, $find, true);
3969
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅ';
3970
                $this->assertEquals($expected, $result);
3971
3972
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
3973
                $find = 'Ƹ';
3974
                $result = Multibyte::strrichr($string, $find);
3975
                $expected = 'ƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
3976
                $this->assertEquals($expected, $result);
3977
3978
                $find = 'Ƹ';
3979
                $result = Multibyte::strrichr($string, $find, true);
3980
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸ';
3981
                $this->assertEquals($expected, $result);
3982
3983
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3984
                $find = 'ʀ';
3985
                $result = Multibyte::strrichr($string, $find);
3986
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3987
                $this->assertEquals($expected, $result);
3988
3989
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
3990
                $find = 'ʀ';
3991
                $result = Multibyte::strrichr($string, $find, true);
3992
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
3993
                $this->assertEquals($expected, $result);
3994
3995
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3996
                $find = 'Ї';
3997
                $result = Multibyte::strrichr($string, $find);
3998
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
3999
                $this->assertEquals($expected, $result);
4000
4001
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
4002
                $find = 'Ї';
4003
                $result = Multibyte::strrichr($string, $find, true);
4004
                $expected = 'ЀЁЂЃЄЅІ';
4005
                $this->assertEquals($expected, $result);
4006
4007
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
4008
                $find = 'Р';
4009
                $result = Multibyte::strrichr($string, $find);
4010
                $expected = 'рстуфхцчшщъыь';
4011
                $this->assertEquals($expected, $result);
4012
4013
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп';
4014
                $find = 'Р';
4015
                $result = Multibyte::strrichr($string, $find, true);
4016
                $expected = 'МНОП';
4017
                $this->assertEquals($expected, $result);
4018
4019
                $string = 'فقكلمنهوىيًٌٍَُ';
4020
                $find = 'ن';
4021
                $result = Multibyte::strrichr($string, $find);
4022
                $expected = 'نهوىيًٌٍَُ';
4023
                $this->assertEquals($expected, $result);
4024
4025
                $string = 'فقكلمنهوىيًٌٍَُ';
4026
                $find = 'ن';
4027
                $result = Multibyte::strrichr($string, $find, true);
4028
                $expected = 'فقكلم';
4029
                $this->assertEquals($expected, $result);
4030
4031
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
4032
                $find = '';
4033
                $result = Multibyte::strrichr($string, $find);
4034
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
4035
                $this->assertEquals($expected, $result);
4036
4037
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
4038
                $find = '';
4039
                $result = Multibyte::strrichr($string, $find, true);
4040
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
4041
                $this->assertEquals($expected, $result);
4042
4043
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
4044
                $find = '';
4045
                $result = Multibyte::strrichr($string, $find);
4046
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
4047
                $this->assertEquals($expected, $result);
4048
4049
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
4050
                $find = '';
4051
                $result = Multibyte::strrichr($string, $find, true);
4052
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
4053
                $this->assertEquals($expected, $result);
4054
4055
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
4056
                $find = '';
4057
                $result = Multibyte::strrichr($string, $find);
4058
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
4059
                $this->assertEquals($expected, $result);
4060
4061
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
4062
                $find = '';
4063
                $result = Multibyte::strrichr($string, $find, true);
4064
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
4065
                $this->assertEquals($expected, $result);
4066
4067
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
4068
                $find = '';
4069
                $result = Multibyte::strrichr($string, $find);
4070
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
4071
                $this->assertEquals($expected, $result);
4072
4073
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
4074
                $find = '';
4075
                $result = Multibyte::strrichr($string, $find, true);
4076
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
4077
                $this->assertEquals($expected, $result);
4078
4079
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
4080
                $find = '';
4081
                $result = Multibyte::strrichr($string, $find);
4082
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
4083
                $this->assertEquals($expected, $result);
4084
4085
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
4086
                $find = '';
4087
                $result = Multibyte::strrichr($string, $find, true);
4088
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
4089
                $this->assertEquals($expected, $result);
4090
4091
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
4092
                $find = '';
4093
                $result = Multibyte::strrichr($string, $find);
4094
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
4095
                $this->assertEquals($expected, $result);
4096
4097
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
4098
                $find = '';
4099
                $result = Multibyte::strrichr($string, $find, true);
4100
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
4101
                $this->assertEquals($expected, $result);
4102
4103
                $string = 'abcdefghijklmnopqrstuvwxyz';
4104
                $find = '';
4105
                $result = Multibyte::strrichr($string, $find);
4106
                $expected = 'klmnopqrstuvwxyz';
4107
                $this->assertEquals($expected, $result);
4108
4109
                $string = 'abcdefghijklmnopqrstuvwxyz';
4110
                $find = '';
4111
                $result = Multibyte::strrichr($string, $find, true);
4112
                $expected = 'abcdefghij';
4113
                $this->assertEquals($expected, $result);
4114
4115
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
4116
                $find = '';
4117
                $result = Multibyte::strrichr($string, $find);
4118
                $expected = 'アイウエオカキク';
4119
                $this->assertEquals($expected, $result);
4120
4121
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
4122
                $find = '';
4123
                $result = Multibyte::strrichr($string, $find, true);
4124
                $expected = '。「」、・ヲァィゥェォャュョッー';
4125
                $this->assertEquals($expected, $result);
4126
4127
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
4128
                $find = '';
4129
                $result = Multibyte::strrichr($string, $find);
4130
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
4131
                $this->assertEquals($expected, $result);
4132
4133
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
4134
                $find = '';
4135
                $result = Multibyte::strrichr($string, $find, true);
4136
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
4137
                $this->assertEquals($expected, $result);
4138
4139
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4140
                $find = 'ő';
4141
                $result = Multibyte::strrichr($string, $find);
4142
                $expected = 'őřļď!';
4143
                $this->assertEquals($expected, $result);
4144
4145
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4146
                $find = 'ő';
4147
                $result = Multibyte::strrichr($string, $find, true);
4148
                $expected = 'Ĥēĺļŏ, Ŵ';
4149
                $this->assertEquals($expected, $result);
4150
4151
                $string = 'Hello, World!';
4152
                $find = 'o';
4153
                $result = Multibyte::strrichr($string, $find);
4154
                $expected = 'orld!';
4155
                $this->assertEquals($expected, $result);
4156
4157
                $string = 'Hello, World!';
4158
                $find = 'o';
4159
                $result = Multibyte::strrichr($string, $find, true);
4160
                $expected = 'Hello, W';
4161
                $this->assertEquals($expected, $result);
4162
4163
                $string = 'Hello, World!';
4164
                $find = 'Wo';
4165
                $result = Multibyte::strrichr($string, $find);
4166
                $expected = 'World!';
4167
                $this->assertEquals($expected, $result);
4168
4169
                $string = 'Hello, World!';
4170
                $find = 'Wo';
4171
                $result = Multibyte::strrichr($string, $find, true);
4172
                $expected = 'Hello, ';
4173
                $this->assertEquals($expected, $result);
4174
4175
                $string = 'Hello, World!';
4176
                $find = 'll';
4177
                $result = Multibyte::strrichr($string, $find);
4178
                $expected = 'llo, World!';
4179
                $this->assertEquals($expected, $result);
4180
4181
                $string = 'Hello, World!';
4182
                $find = 'll';
4183
                $result = Multibyte::strrichr($string, $find, true);
4184
                $expected = 'He';
4185
                $this->assertEquals($expected, $result);
4186
4187
                $string = 'Hello, World!';
4188
                $find = 'rld';
4189
                $result = Multibyte::strrichr($string, $find);
4190
                $expected = 'rld!';
4191
                $this->assertEquals($expected, $result);
4192
4193
                $string = 'Hello, World!';
4194
                $find = 'rld';
4195
                $result = Multibyte::strrichr($string, $find, true);
4196
                $expected = 'Hello, Wo';
4197
                $this->assertEquals($expected, $result);
4198
4199
                $string = 'čini';
4200
                $find = 'n';
4201
                $result = Multibyte::strrichr($string, $find);
4202
                $expected = 'ni';
4203
                $this->assertEquals($expected, $result);
4204
4205
                $string = 'čini';
4206
                $find = 'n';
4207
                $result = Multibyte::strrichr($string, $find, true);
4208
                $expected = 'či';
4209
                $this->assertEquals($expected, $result);
4210
4211
                $string = 'moći';
4212
                $find = 'ć';
4213
                $result = Multibyte::strrichr($string, $find);
4214
                $expected = 'ći';
4215
                $this->assertEquals($expected, $result);
4216
4217
                $string = 'moći';
4218
                $find = 'ć';
4219
                $result = Multibyte::strrichr($string, $find, true);
4220
                $expected = 'mo';
4221
                $this->assertEquals($expected, $result);
4222
4223
                $string = 'državni';
4224
                $find = 'ž';
4225
                $result = Multibyte::strrichr($string, $find);
4226
                $expected = 'žavni';
4227
                $this->assertEquals($expected, $result);
4228
4229
                $string = 'državni';
4230
                $find = 'ž';
4231
                $result = Multibyte::strrichr($string, $find, true);
4232
                $expected = 'dr';
4233
                $this->assertEquals($expected, $result);
4234
4235
                $string = '把百度设为首页';
4236
                $find = '';
4237
                $result = Multibyte::strrichr($string, $find);
4238
                $expected = '设为首页';
4239
                $this->assertEquals($expected, $result);
4240
4241
                $string = '把百度设为首页';
4242
                $find = '';
4243
                $result = Multibyte::strrichr($string, $find, true);
4244
                $expected = '把百度';
4245
                $this->assertEquals($expected, $result);
4246
4247
                $string = '一二三周永龍';
4248
                $find = '';
4249
                $result = Multibyte::strrichr($string, $find);
4250
                $expected = '周永龍';
4251
                $this->assertEquals($expected, $result);
4252
4253
                $string = '一二三周永龍';
4254
                $find = '';
4255
                $result = Multibyte::strrichr($string, $find, true);
4256
                $expected = '一二三';
4257
                $this->assertEquals($expected, $result);
4258
4259
                $string = '把百度设为首页';
4260
                $find = '百设';
4261
                $result = Multibyte::strrichr($string, $find, true);
4262
                $expected = false;
4263
                $this->assertEquals($expected, $result);
4264
        }
4265
4266
/**
4267
 * testUsingMbStrripos method
4268
 *
4269
 * @return void
4270
 */
4271
        public function testUsingMbStrripos() {
4272
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
4273
                $find = 'F';
4274
                $result = mb_strripos($string, $find);
4275
                $expected = 5;
4276
                $this->assertEquals($expected, $result);
4277
4278
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
4279
                $find = 'F';
4280
                $result = mb_strripos($string, $find, 6);
4281
                $expected = 17;
4282
                $this->assertEquals($expected, $result);
4283
4284
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
4285
                $find = 'Å';
4286
                $result = mb_strripos($string, $find);
4287
                $expected = 5;
4288
                $this->assertEquals($expected, $result);
4289
4290
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
4291
                $find = 'Å';
4292
                $result = mb_strripos($string, $find, 6);
4293
                $expected = 24;
4294
                $this->assertEquals($expected, $result);
4295
4296
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
4297
                $find = 'ÓÔ';
4298
                $result = mb_strripos($string, $find);
4299
                $expected = 19;
4300
                $this->assertEquals($expected, $result);
4301
4302
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
4303
                $find = 'Ċ';
4304
                $result = mb_strripos($string, $find);
4305
                $expected = 5;
4306
                $this->assertEquals($expected, $result);
4307
4308
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
4309
                $find = 'Ċ';
4310
                $result = mb_strripos($string, $find, 6);
4311
                $expected = 32;
4312
                $this->assertEquals($expected, $result);
4313
4314
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
4315
                $find = 'F';
4316
                $result = mb_strripos($string, $find);
4317
                $expected = 69;
4318
                $this->assertEquals($expected, $result);
4319
4320
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
4321
                $find = 'µ';
4322
                $result = mb_strripos($string, $find);
4323
                $expected = 20;
4324
                $this->assertEquals($expected, $result);
4325
4326
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
4327
                $find = 'é';
4328
                $result = mb_strripos($string, $find);
4329
                $expected = 32;
4330
                $this->assertEquals($expected, $result);
4331
4332
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
4333
                $find = 'Ņ';
4334
                $result = mb_strripos($string, $find);
4335
                $expected = 25;
4336
                $this->assertEquals($expected, $result);
4337
4338
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
4339
                $find = 'Ƹ';
4340
                $result = mb_strripos($string, $find);
4341
                $expected = 40;
4342
                $this->assertEquals($expected, $result);
4343
4344
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
4345
                $find = 'ƹ';
4346
                $result = mb_strripos($string, $find);
4347
                $expected = 40;
4348
                $this->assertEquals($expected, $result);
4349
4350
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
4351
                $find = 'ʀ';
4352
                $result = mb_strripos($string, $find);
4353
                $expected = 39;
4354
                $this->assertEquals($expected, $result);
4355
4356
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
4357
                $find = 'Ї';
4358
                $result = mb_strripos($string, $find);
4359
                $expected = 7;
4360
                $this->assertEquals($expected, $result);
4361
4362
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
4363
                $find = 'Р';
4364
                $result = mb_strripos($string, $find);
4365
                $expected = 36;
4366
                $this->assertEquals($expected, $result);
4367
4368
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
4369
                $find = 'р';
4370
                $result = mb_strripos($string, $find, 5);
4371
                $expected = 36;
4372
                $this->assertEquals($expected, $result);
4373
4374
                $string = 'فقكلمنهوىيًٌٍَُ';
4375
                $find = 'ن';
4376
                $result = mb_strripos($string, $find);
4377
                $expected = 5;
4378
                $this->assertEquals($expected, $result);
4379
4380
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
4381
                $find = '';
4382
                $result = mb_strripos($string, $find);
4383
                $expected = 15;
4384
                $this->assertEquals($expected, $result);
4385
4386
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
4387
                $find = '';
4388
                $result = mb_strripos($string, $find);
4389
                $expected = 16;
4390
                $this->assertEquals($expected, $result);
4391
4392
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
4393
                $find = '';
4394
                $result = mb_strripos($string, $find);
4395
                $expected = 31;
4396
                $this->assertEquals($expected, $result);
4397
4398
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
4399
                $find = '';
4400
                $result = mb_strripos($string, $find);
4401
                $expected = 26;
4402
                $this->assertEquals($expected, $result);
4403
4404
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
4405
                $find = '';
4406
                $result = mb_strripos($string, $find);
4407
                $expected = 46;
4408
                $this->assertEquals($expected, $result);
4409
4410
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
4411
                $find = '';
4412
                $result = mb_strripos($string, $find);
4413
                $expected = 45;
4414
                $this->assertEquals($expected, $result);
4415
4416
                $string = 'abcdefghijklmnopqrstuvwxyz';
4417
                $find = '';
4418
                $result = mb_strripos($string, $find);
4419
                $expected = 10;
4420
                $this->assertEquals($expected, $result);
4421
4422
                $string = 'abcdefghijklmnopqrstuvwxyz';
4423
                $find = '';
4424
                $result = mb_strripos($string, $find);
4425
                $expected = 10;
4426
                $this->assertEquals($expected, $result);
4427
4428
                $string = 'abcdefghijklmnoppqrstuvwxyz';
4429
                $find = 'pp';
4430
                $result = mb_strripos($string, $find);
4431
                $expected = 15;
4432
                $this->assertEquals($expected, $result);
4433
4434
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
4435
                $find = '';
4436
                $result = mb_strripos($string, $find);
4437
                $expected = 16;
4438
                $this->assertEquals($expected, $result);
4439
4440
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
4441
                $find = '';
4442
                $result = mb_strripos($string, $find);
4443
                $expected = 17;
4444
                $this->assertEquals($expected, $result);
4445
4446
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4447
                $find = 'ő';
4448
                $result = mb_strripos($string, $find);
4449
                $expected = 8;
4450
                $this->assertEquals($expected, $result);
4451
4452
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4453
                $find = 'ő';
4454
                $result = mb_strripos($string, $find);
4455
                $expected = 8;
4456
                $this->assertEquals($expected, $result);
4457
4458
                $string = 'Hello, World!';
4459
                $find = 'o';
4460
                $result = mb_strripos($string, $find);
4461
                $expected = 8;
4462
                $this->assertEquals($expected, $result);
4463
4464
                $string = 'Hello, World!';
4465
                $find = 'o';
4466
                $result = mb_strripos($string, $find, 5);
4467
                $expected = 8;
4468
                $this->assertEquals($expected, $result);
4469
4470
                $string = 'čini';
4471
                $find = 'n';
4472
                $result = mb_strripos($string, $find);
4473
                $expected = 2;
4474
                $this->assertEquals($expected, $result);
4475
4476
                $string = 'čini';
4477
                $find = 'n';
4478
                $result = mb_strripos($string, $find);
4479
                $expected = 2;
4480
                $this->assertEquals($expected, $result);
4481
4482
                $string = 'moći';
4483
                $find = 'ć';
4484
                $result = mb_strripos($string, $find);
4485
                $expected = 2;
4486
                $this->assertEquals($expected, $result);
4487
4488
                $string = 'moći';
4489
                $find = 'ć';
4490
                $result = mb_strripos($string, $find);
4491
                $expected = 2;
4492
                $this->assertEquals($expected, $result);
4493
4494
                $string = 'državni';
4495
                $find = 'ž';
4496
                $result = mb_strripos($string, $find);
4497
                $expected = 2;
4498
                $this->assertEquals($expected, $result);
4499
4500
                $string = '把百度设为首页';
4501
                $find = '';
4502
                $result = mb_strripos($string, $find);
4503
                $expected = 3;
4504
                $this->assertEquals($expected, $result);
4505
4506
                $string = '一二三周永龍';
4507
                $find = '';
4508
                $result = mb_strripos($string, $find);
4509
                $expected = 3;
4510
                $this->assertEquals($expected, $result);
4511
4512
                $string = 'državni';
4513
                $find = '';
4514
                $result = mb_strripos($string, $find);
4515
                $this->assertFalse($result);
4516
        }
4517
4518
/**
4519
 * testMultibyteStrripos method
4520
 *
4521
 * @return void
4522
 */
4523
        public function testMultibyteStrripos() {
4524
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
4525
                $find = 'F';
4526
                $result = Multibyte::strripos($string, $find);
4527
                $expected = 5;
4528
                $this->assertEquals($expected, $result);
4529
4530
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
4531
                $find = 'F';
4532
                $result = Multibyte::strripos($string, $find, 6);
4533
                $expected = 17;
4534
                $this->assertEquals($expected, $result);
4535
4536
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
4537
                $find = 'Å';
4538
                $result = Multibyte::strripos($string, $find);
4539
                $expected = 5;
4540
                $this->assertEquals($expected, $result);
4541
4542
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
4543
                $find = 'Å';
4544
                $result = Multibyte::strripos($string, $find, 6);
4545
                $expected = 24;
4546
                $this->assertEquals($expected, $result);
4547
4548
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
4549
                $find = 'ÓÔ';
4550
                $result = Multibyte::strripos($string, $find);
4551
                $expected = 19;
4552
                $this->assertEquals($expected, $result);
4553
4554
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
4555
                $find = 'Ċ';
4556
                $result = Multibyte::strripos($string, $find);
4557
                $expected = 5;
4558
                $this->assertEquals($expected, $result);
4559
4560
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
4561
                $find = 'Ċ';
4562
                $result = Multibyte::strripos($string, $find, 6);
4563
                $expected = 32;
4564
                $this->assertEquals($expected, $result);
4565
4566
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
4567
                $find = 'F';
4568
                $result = Multibyte::strripos($string, $find);
4569
                $expected = 69;
4570
                $this->assertEquals($expected, $result);
4571
4572
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
4573
                $find = 'µ';
4574
                $result = Multibyte::strripos($string, $find);
4575
                $expected = 20;
4576
                $this->assertEquals($expected, $result);
4577
4578
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
4579
                $find = 'é';
4580
                $result = Multibyte::strripos($string, $find);
4581
                $expected = 32;
4582
                $this->assertEquals($expected, $result);
4583
4584
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
4585
                $find = 'Ņ';
4586
                $result = Multibyte::strripos($string, $find);
4587
                $expected = 25;
4588
                $this->assertEquals($expected, $result);
4589
4590
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
4591
                $find = 'Ƹ';
4592
                $result = Multibyte::strripos($string, $find);
4593
                $expected = 40;
4594
                $this->assertEquals($expected, $result);
4595
4596
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
4597
                $find = 'ƹ';
4598
                $result = Multibyte::strripos($string, $find);
4599
                $expected = 40;
4600
                $this->assertEquals($expected, $result);
4601
4602
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
4603
                $find = 'ʀ';
4604
                $result = Multibyte::strripos($string, $find);
4605
                $expected = 39;
4606
                $this->assertEquals($expected, $result);
4607
4608
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
4609
                $find = 'Ї';
4610
                $result = Multibyte::strripos($string, $find);
4611
                $expected = 7;
4612
                $this->assertEquals($expected, $result);
4613
4614
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
4615
                $find = 'Р';
4616
                $result = Multibyte::strripos($string, $find);
4617
                $expected = 36;
4618
                $this->assertEquals($expected, $result);
4619
4620
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
4621
                $find = 'р';
4622
                $result = Multibyte::strripos($string, $find, 5);
4623
                $expected = 36;
4624
                $this->assertEquals($expected, $result);
4625
4626
                $string = 'فقكلمنهوىيًٌٍَُ';
4627
                $find = 'ن';
4628
                $result = Multibyte::strripos($string, $find);
4629
                $expected = 5;
4630
                $this->assertEquals($expected, $result);
4631
4632
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
4633
                $find = '';
4634
                $result = Multibyte::strripos($string, $find);
4635
                $expected = 15;
4636
                $this->assertEquals($expected, $result);
4637
4638
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
4639
                $find = '';
4640
                $result = Multibyte::strripos($string, $find);
4641
                $expected = 16;
4642
                $this->assertEquals($expected, $result);
4643
4644
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
4645
                $find = '';
4646
                $result = Multibyte::strripos($string, $find);
4647
                $expected = 31;
4648
                $this->assertEquals($expected, $result);
4649
4650
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
4651
                $find = '';
4652
                $result = Multibyte::strripos($string, $find);
4653
                $expected = 26;
4654
                $this->assertEquals($expected, $result);
4655
4656
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
4657
                $find = '';
4658
                $result = Multibyte::strripos($string, $find);
4659
                $expected = 46;
4660
                $this->assertEquals($expected, $result);
4661
4662
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
4663
                $find = '';
4664
                $result = Multibyte::strripos($string, $find);
4665
                $expected = 45;
4666
                $this->assertEquals($expected, $result);
4667
4668
                $string = 'abcdefghijklmnopqrstuvwxyz';
4669
                $find = '';
4670
                $result = Multibyte::strripos($string, $find);
4671
                $expected = 10;
4672
                $this->assertEquals($expected, $result);
4673
4674
                $string = 'abcdefghijklmnopqrstuvwxyz';
4675
                $find = '';
4676
                $result = Multibyte::strripos($string, $find);
4677
                $expected = 10;
4678
                $this->assertEquals($expected, $result);
4679
4680
                $string = 'abcdefghijklmnoppqrstuvwxyz';
4681
                $find = 'pp';
4682
                $result = Multibyte::strripos($string, $find);
4683
                $expected = 15;
4684
                $this->assertEquals($expected, $result);
4685
4686
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
4687
                $find = '';
4688
                $result = Multibyte::strripos($string, $find);
4689
                $expected = 16;
4690
                $this->assertEquals($expected, $result);
4691
4692
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
4693
                $find = '';
4694
                $result = Multibyte::strripos($string, $find);
4695
                $expected = 17;
4696
                $this->assertEquals($expected, $result);
4697
4698
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4699
                $find = 'ő';
4700
                $result = Multibyte::strripos($string, $find);
4701
                $expected = 8;
4702
                $this->assertEquals($expected, $result);
4703
4704
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4705
                $find = 'ő';
4706
                $result = Multibyte::strripos($string, $find);
4707
                $expected = 8;
4708
                $this->assertEquals($expected, $result);
4709
4710
                $string = 'Hello, World!';
4711
                $find = 'o';
4712
                $result = Multibyte::strripos($string, $find);
4713
                $expected = 8;
4714
                $this->assertEquals($expected, $result);
4715
4716
                $string = 'Hello, World!';
4717
                $find = 'o';
4718
                $result = Multibyte::strripos($string, $find, 5);
4719
                $expected = 8;
4720
                $this->assertEquals($expected, $result);
4721
4722
                $string = 'čini';
4723
                $find = 'n';
4724
                $result = Multibyte::strripos($string, $find);
4725
                $expected = 2;
4726
                $this->assertEquals($expected, $result);
4727
4728
                $string = 'čini';
4729
                $find = 'n';
4730
                $result = Multibyte::strripos($string, $find);
4731
                $expected = 2;
4732
                $this->assertEquals($expected, $result);
4733
4734
                $string = 'moći';
4735
                $find = 'ć';
4736
                $result = Multibyte::strripos($string, $find);
4737
                $expected = 2;
4738
                $this->assertEquals($expected, $result);
4739
4740
                $string = 'moći';
4741
                $find = 'ć';
4742
                $result = Multibyte::strripos($string, $find);
4743
                $expected = 2;
4744
                $this->assertEquals($expected, $result);
4745
4746
                $string = 'državni';
4747
                $find = 'ž';
4748
                $result = Multibyte::strripos($string, $find);
4749
                $expected = 2;
4750
                $this->assertEquals($expected, $result);
4751
4752
                $string = '把百度设为首页';
4753
                $find = '';
4754
                $result = Multibyte::strripos($string, $find);
4755
                $expected = 3;
4756
                $this->assertEquals($expected, $result);
4757
4758
                $string = '一二三周永龍';
4759
                $find = '';
4760
                $result = Multibyte::strripos($string, $find);
4761
                $expected = 3;
4762
                $this->assertEquals($expected, $result);
4763
4764
                $string = 'državni';
4765
                $find = '';
4766
                $result = Multibyte::strripos($string, $find);
4767
                $expected = 0;
4768
                $this->assertEquals($expected, $result);
4769
        }
4770
4771
/**
4772
 * testUsingMbStrrpos method
4773
 *
4774
 * @return void
4775
 */
4776
        public function testUsingMbStrrpos() {
4777
                $this->skipIf(extension_loaded('mbstring') && version_compare(PHP_VERSION, '5.2.0', '<'), 'PHP version does not support $offset parameter in mb_strrpos().');
4778
4779
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
4780
                $find = 'F';
4781
                $result = mb_strrpos($string, $find);
4782
                $expected = 5;
4783
                $this->assertEquals($expected, $result);
4784
4785
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
4786
                $find = 'F';
4787
                $result = mb_strrpos($string, $find, 6);
4788
                $expected = 17;
4789
                $this->assertEquals($expected, $result);
4790
4791
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
4792
                $find = 'Å';
4793
                $result = mb_strrpos($string, $find);
4794
                $expected = 5;
4795
                $this->assertEquals($expected, $result);
4796
4797
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
4798
                $find = 'ÙÚ';
4799
                $result = mb_strrpos($string, $find);
4800
                $expected = 25;
4801
                $this->assertEquals($expected, $result);
4802
4803
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
4804
                $find = 'Å';
4805
                $result = mb_strrpos($string, $find, 6);
4806
                $expected = 24;
4807
                $this->assertEquals($expected, $result);
4808
4809
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
4810
                $find = 'Ċ';
4811
                $result = mb_strrpos($string, $find);
4812
                $expected = 5;
4813
                $this->assertEquals($expected, $result);
4814
4815
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
4816
                $find = 'Ċ';
4817
                $result = mb_strrpos($string, $find, 6);
4818
                $expected = 32;
4819
                $this->assertEquals($expected, $result);
4820
4821
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
4822
                $find = 'F';
4823
                $result = mb_strrpos($string, $find);
4824
                $expected = 37;
4825
                $this->assertEquals($expected, $result);
4826
4827
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
4828
                $find = 'µ';
4829
                $result = mb_strrpos($string, $find);
4830
                $expected = 20;
4831
                $this->assertEquals($expected, $result);
4832
4833
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
4834
                $find = 'é';
4835
                $result = mb_strrpos($string, $find);
4836
                $expected = 32;
4837
                $this->assertEquals($expected, $result);
4838
4839
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
4840
                $find = 'Ņ';
4841
                $result = mb_strrpos($string, $find);
4842
                $expected = 24;
4843
                $this->assertEquals($expected, $result);
4844
4845
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
4846
                $find = 'Ƹ';
4847
                $result = mb_strrpos($string, $find);
4848
                $expected = 39;
4849
                $this->assertEquals($expected, $result);
4850
4851
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
4852
                $find = 'ƹ';
4853
                $result = mb_strrpos($string, $find);
4854
                $expected = 40;
4855
                $this->assertEquals($expected, $result);
4856
4857
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
4858
                $find = 'ʀ';
4859
                $result = mb_strrpos($string, $find);
4860
                $expected = 39;
4861
                $this->assertEquals($expected, $result);
4862
4863
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
4864
                $find = 'Ї';
4865
                $result = mb_strrpos($string, $find);
4866
                $expected = 7;
4867
                $this->assertEquals($expected, $result);
4868
4869
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
4870
                $find = 'Р';
4871
                $result = mb_strrpos($string, $find);
4872
                $expected = 4;
4873
                $this->assertEquals($expected, $result);
4874
4875
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
4876
                $find = 'р';
4877
                $result = mb_strrpos($string, $find, 5);
4878
                $expected = 36;
4879
                $this->assertEquals($expected, $result);
4880
4881
                $string = 'فقكلمنهوىيًٌٍَُ';
4882
                $find = 'ن';
4883
                $result = mb_strrpos($string, $find);
4884
                $expected = 5;
4885
                $this->assertEquals($expected, $result);
4886
4887
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
4888
                $find = '';
4889
                $result = mb_strrpos($string, $find);
4890
                $expected = 15;
4891
                $this->assertEquals($expected, $result);
4892
4893
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
4894
                $find = '';
4895
                $result = mb_strrpos($string, $find);
4896
                $expected = 16;
4897
                $this->assertEquals($expected, $result);
4898
4899
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
4900
                $find = '';
4901
                $result = mb_strrpos($string, $find);
4902
                $expected = 31;
4903
                $this->assertEquals($expected, $result);
4904
4905
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
4906
                $find = '';
4907
                $result = mb_strrpos($string, $find);
4908
                $expected = 26;
4909
                $this->assertEquals($expected, $result);
4910
4911
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
4912
                $find = '';
4913
                $result = mb_strrpos($string, $find);
4914
                $expected = 46;
4915
                $this->assertEquals($expected, $result);
4916
4917
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
4918
                $find = '';
4919
                $result = mb_strrpos($string, $find);
4920
                $expected = 45;
4921
                $this->assertEquals($expected, $result);
4922
4923
                $string = 'abcdefghijklmnopqrstuvwxyz';
4924
                $find = '';
4925
                $result = mb_strrpos($string, $find);
4926
                $expected = 10;
4927
                $this->assertEquals($expected, $result);
4928
4929
                $string = 'abcdefghijklmnopqrstuvwxyz';
4930
                $find = '';
4931
                $result = mb_strrpos($string, $find);
4932
                $expected = 10;
4933
                $this->assertEquals($expected, $result);
4934
4935
                $string = 'abcdefghijklmnoppqrstuvwxyz';
4936
                $find = 'pp';
4937
                $result = mb_strrpos($string, $find);
4938
                $expected = 15;
4939
                $this->assertEquals($expected, $result);
4940
4941
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
4942
                $find = '';
4943
                $result = mb_strrpos($string, $find);
4944
                $expected = 16;
4945
                $this->assertEquals($expected, $result);
4946
4947
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
4948
                $find = '';
4949
                $result = mb_strrpos($string, $find);
4950
                $expected = 17;
4951
                $this->assertEquals($expected, $result);
4952
4953
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4954
                $find = 'ő';
4955
                $result = mb_strrpos($string, $find);
4956
                $expected = 8;
4957
                $this->assertEquals($expected, $result);
4958
4959
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
4960
                $find = 'ő';
4961
                $result = mb_strrpos($string, $find);
4962
                $expected = 8;
4963
                $this->assertEquals($expected, $result);
4964
4965
                $string = 'Hello, World!';
4966
                $find = 'o';
4967
                $result = mb_strrpos($string, $find);
4968
                $expected = 8;
4969
                $this->assertEquals($expected, $result);
4970
4971
                $string = 'Hello, World!';
4972
                $find = 'o';
4973
                $result = mb_strrpos($string, $find, 5);
4974
                $expected = 8;
4975
                $this->assertEquals($expected, $result);
4976
4977
                $string = 'čini';
4978
                $find = 'n';
4979
                $result = mb_strrpos($string, $find);
4980
                $expected = 2;
4981
                $this->assertEquals($expected, $result);
4982
4983
                $string = 'čini';
4984
                $find = 'n';
4985
                $result = mb_strrpos($string, $find);
4986
                $expected = 2;
4987
                $this->assertEquals($expected, $result);
4988
4989
                $string = 'moći';
4990
                $find = 'ć';
4991
                $result = mb_strrpos($string, $find);
4992
                $expected = 2;
4993
                $this->assertEquals($expected, $result);
4994
4995
                $string = 'moći';
4996
                $find = 'ć';
4997
                $result = mb_strrpos($string, $find);
4998
                $expected = 2;
4999
                $this->assertEquals($expected, $result);
5000
5001
                $string = 'državni';
5002
                $find = 'ž';
5003
                $result = mb_strrpos($string, $find);
5004
                $expected = 2;
5005
                $this->assertEquals($expected, $result);
5006
5007
                $string = '把百度设为首页';
5008
                $find = '';
5009
                $result = mb_strrpos($string, $find);
5010
                $expected = 3;
5011
                $this->assertEquals($expected, $result);
5012
5013
                $string = '一二三周永龍';
5014
                $find = '';
5015
                $result = mb_strrpos($string, $find);
5016
                $expected = 3;
5017
                $this->assertEquals($expected, $result);
5018
5019
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5020
                $find = 'H';
5021
                $result = mb_strrpos($string, $find);
5022
                $expected = false;
5023
                $this->assertEquals($expected, $result);
5024
        }
5025
5026
/**
5027
 * testMultibyteStrrpos method
5028
 *
5029
 * @return void
5030
 */
5031
        public function testMultibyteStrrpos() {
5032
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
5033
                $find = 'F';
5034
                $result = Multibyte::strrpos($string, $find);
5035
                $expected = 5;
5036
                $this->assertEquals($expected, $result);
5037
5038
                $string = 'ABCDEFGHIJKLMNOPQFRSTUVWXYZ0123456789';
5039
                $find = 'F';
5040
                $result = Multibyte::strrpos($string, $find, 6);
5041
                $expected = 17;
5042
                $this->assertEquals($expected, $result);
5043
5044
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
5045
                $find = 'Å';
5046
                $result = Multibyte::strrpos($string, $find);
5047
                $expected = 5;
5048
                $this->assertEquals($expected, $result);
5049
5050
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
5051
                $find = 'Å';
5052
                $result = Multibyte::strrpos($string, $find, 6);
5053
                $expected = 24;
5054
                $this->assertEquals($expected, $result);
5055
5056
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞ';
5057
                $find = 'ÙÚ';
5058
                $result = Multibyte::strrpos($string, $find);
5059
                $expected = 25;
5060
                $this->assertEquals($expected, $result);
5061
5062
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5063
                $find = 'Ċ';
5064
                $result = Multibyte::strrpos($string, $find);
5065
                $expected = 5;
5066
                $this->assertEquals($expected, $result);
5067
5068
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5069
                $find = 'Ċ';
5070
                $result = Multibyte::strrpos($string, $find, 6);
5071
                $expected = 32;
5072
                $this->assertEquals($expected, $result);
5073
5074
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
5075
                $find = 'F';
5076
                $result = Multibyte::strrpos($string, $find);
5077
                $expected = 37;
5078
                $this->assertEquals($expected, $result);
5079
5080
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
5081
                $find = 'µ';
5082
                $result = Multibyte::strrpos($string, $find);
5083
                $expected = 20;
5084
                $this->assertEquals($expected, $result);
5085
5086
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
5087
                $find = 'é';
5088
                $result = Multibyte::strrpos($string, $find);
5089
                $expected = 32;
5090
                $this->assertEquals($expected, $result);
5091
5092
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
5093
                $find = 'Ņ';
5094
                $result = Multibyte::strrpos($string, $find);
5095
                $expected = 24;
5096
                $this->assertEquals($expected, $result);
5097
5098
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
5099
                $find = 'Ƹ';
5100
                $result = Multibyte::strrpos($string, $find);
5101
                $expected = 39;
5102
                $this->assertEquals($expected, $result);
5103
5104
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
5105
                $find = 'ƹ';
5106
                $result = Multibyte::strrpos($string, $find);
5107
                $expected = 40;
5108
                $this->assertEquals($expected, $result);
5109
5110
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
5111
                $find = 'ʀ';
5112
                $result = Multibyte::strrpos($string, $find);
5113
                $expected = 39;
5114
                $this->assertEquals($expected, $result);
5115
5116
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
5117
                $find = 'Ї';
5118
                $result = Multibyte::strrpos($string, $find);
5119
                $expected = 7;
5120
                $this->assertEquals($expected, $result);
5121
5122
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5123
                $find = 'Р';
5124
                $result = Multibyte::strrpos($string, $find);
5125
                $expected = 4;
5126
                $this->assertEquals($expected, $result);
5127
5128
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5129
                $find = 'р';
5130
                $result = Multibyte::strrpos($string, $find, 5);
5131
                $expected = 36;
5132
                $this->assertEquals($expected, $result);
5133
5134
                $string = 'فقكلمنهوىيًٌٍَُ';
5135
                $find = 'ن';
5136
                $result = Multibyte::strrpos($string, $find);
5137
                $expected = 5;
5138
                $this->assertEquals($expected, $result);
5139
5140
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
5141
                $find = '';
5142
                $result = Multibyte::strrpos($string, $find);
5143
                $expected = 15;
5144
                $this->assertEquals($expected, $result);
5145
5146
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
5147
                $find = '';
5148
                $result = Multibyte::strrpos($string, $find);
5149
                $expected = 16;
5150
                $this->assertEquals($expected, $result);
5151
5152
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
5153
                $find = '';
5154
                $result = Multibyte::strrpos($string, $find);
5155
                $expected = 31;
5156
                $this->assertEquals($expected, $result);
5157
5158
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
5159
                $find = '';
5160
                $result = Multibyte::strrpos($string, $find);
5161
                $expected = 26;
5162
                $this->assertEquals($expected, $result);
5163
5164
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
5165
                $find = '';
5166
                $result = Multibyte::strrpos($string, $find);
5167
                $expected = 46;
5168
                $this->assertEquals($expected, $result);
5169
5170
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
5171
                $find = '';
5172
                $result = Multibyte::strrpos($string, $find);
5173
                $expected = 45;
5174
                $this->assertEquals($expected, $result);
5175
5176
                $string = 'abcdefghijklmnopqrstuvwxyz';
5177
                $find = '';
5178
                $result = Multibyte::strrpos($string, $find);
5179
                $expected = 10;
5180
                $this->assertEquals($expected, $result);
5181
5182
                $string = 'abcdefghijklmnopqrstuvwxyz';
5183
                $find = '';
5184
                $result = Multibyte::strrpos($string, $find);
5185
                $expected = 10;
5186
                $this->assertEquals($expected, $result);
5187
5188
                $string = 'abcdefghijklmnoppqrstuvwxyz';
5189
                $find = 'pp';
5190
                $result = Multibyte::strrpos($string, $find);
5191
                $expected = 15;
5192
                $this->assertEquals($expected, $result);
5193
5194
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
5195
                $find = '';
5196
                $result = Multibyte::strrpos($string, $find);
5197
                $expected = 16;
5198
                $this->assertEquals($expected, $result);
5199
5200
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
5201
                $find = '';
5202
                $result = Multibyte::strrpos($string, $find);
5203
                $expected = 17;
5204
                $this->assertEquals($expected, $result);
5205
5206
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5207
                $find = 'ő';
5208
                $result = Multibyte::strrpos($string, $find);
5209
                $expected = 8;
5210
                $this->assertEquals($expected, $result);
5211
5212
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5213
                $find = 'ő';
5214
                $result = Multibyte::strrpos($string, $find);
5215
                $expected = 8;
5216
                $this->assertEquals($expected, $result);
5217
5218
                $string = 'Hello, World!';
5219
                $find = 'o';
5220
                $result = Multibyte::strrpos($string, $find);
5221
                $expected = 8;
5222
                $this->assertEquals($expected, $result);
5223
5224
                $string = 'Hello, World!';
5225
                $find = 'o';
5226
                $result = Multibyte::strrpos($string, $find, 5);
5227
                $expected = 8;
5228
                $this->assertEquals($expected, $result);
5229
5230
                $string = 'čini';
5231
                $find = 'n';
5232
                $result = Multibyte::strrpos($string, $find);
5233
                $expected = 2;
5234
                $this->assertEquals($expected, $result);
5235
5236
                $string = 'čini';
5237
                $find = 'n';
5238
                $result = Multibyte::strrpos($string, $find);
5239
                $expected = 2;
5240
                $this->assertEquals($expected, $result);
5241
5242
                $string = 'moći';
5243
                $find = 'ć';
5244
                $result = Multibyte::strrpos($string, $find);
5245
                $expected = 2;
5246
                $this->assertEquals($expected, $result);
5247
5248
                $string = 'moći';
5249
                $find = 'ć';
5250
                $result = Multibyte::strrpos($string, $find);
5251
                $expected = 2;
5252
                $this->assertEquals($expected, $result);
5253
5254
                $string = 'državni';
5255
                $find = 'ž';
5256
                $result = Multibyte::strrpos($string, $find);
5257
                $expected = 2;
5258
                $this->assertEquals($expected, $result);
5259
5260
                $string = '把百度设为首页';
5261
                $find = '';
5262
                $result = Multibyte::strrpos($string, $find);
5263
                $expected = 3;
5264
                $this->assertEquals($expected, $result);
5265
5266
                $string = '一二三周永龍';
5267
                $find = '';
5268
                $result = Multibyte::strrpos($string, $find);
5269
                $expected = 3;
5270
                $this->assertEquals($expected, $result);
5271
5272
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5273
                $find = 'H';
5274
                $result = Multibyte::strrpos($string, $find);
5275
                $expected = false;
5276
                $this->assertEquals($expected, $result);
5277
        }
5278
5279
/**
5280
 * testUsingMbStrstr method
5281
 *
5282
 * @return void
5283
 */
5284
        public function testUsingMbStrstr() {
5285
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
5286
                $find = 'F';
5287
                $result = mb_strstr($string, $find);
5288
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
5289
                $this->assertEquals($expected, $result);
5290
5291
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
5292
                $find = 'F';
5293
                $result = mb_strstr($string, $find, true);
5294
                $expected = 'ABCDE';
5295
                $this->assertEquals($expected, $result);
5296
5297
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
5298
                $find = 'Å';
5299
                $result = mb_strstr($string, $find);
5300
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
5301
                $this->assertEquals($expected, $result);
5302
5303
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
5304
                $find = 'Å';
5305
                $result = mb_strstr($string, $find, true);
5306
                $expected = 'ÀÁÂÃÄ';
5307
                $this->assertEquals($expected, $result);
5308
5309
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5310
                $find = 'Ċ';
5311
                $result = mb_strstr($string, $find);
5312
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5313
                $this->assertEquals($expected, $result);
5314
5315
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5316
                $find = 'Ċ';
5317
                $result = mb_strstr($string, $find, true);
5318
                $expected = 'ĀĂĄĆĈ';
5319
                $this->assertEquals($expected, $result);
5320
5321
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
5322
                $find = 'F';
5323
                $result = mb_strstr($string, $find);
5324
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
5325
                $this->assertEquals($expected, $result);
5326
5327
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
5328
                $find = 'F';
5329
                $result = mb_strstr($string, $find, true);
5330
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
5331
                $this->assertEquals($expected, $result);
5332
5333
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
5334
                $find = 'µ';
5335
                $result = mb_strstr($string, $find);
5336
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
5337
                $this->assertEquals($expected, $result);
5338
5339
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
5340
                $find = 'µ';
5341
                $result = mb_strstr($string, $find, true);
5342
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
5343
                $this->assertEquals($expected, $result);
5344
5345
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
5346
                $find = 'Þ';
5347
                $result = mb_strstr($string, $find);
5348
                $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
5349
                $this->assertEquals($expected, $result);
5350
5351
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
5352
                $find = 'Þ';
5353
                $result = mb_strstr($string, $find, true);
5354
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
5355
                $this->assertEquals($expected, $result);
5356
5357
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
5358
                $find = 'Ņ';
5359
                $result = mb_strstr($string, $find);
5360
                $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
5361
                $this->assertEquals($expected, $result);
5362
5363
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
5364
                $find = 'Ņ';
5365
                $result = mb_strstr($string, $find, true);
5366
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
5367
                $this->assertEquals($expected, $result);
5368
5369
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
5370
                $find = 'Ƹ';
5371
                $result = mb_strstr($string, $find);
5372
                $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
5373
                $this->assertEquals($expected, $result);
5374
5375
                $find = 'Ƹ';
5376
                $result = mb_strstr($string, $find, true);
5377
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
5378
                $this->assertEquals($expected, $result);
5379
5380
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
5381
                $find = 'ʀ';
5382
                $result = mb_strstr($string, $find);
5383
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
5384
                $this->assertEquals($expected, $result);
5385
5386
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
5387
                $find = 'ʀ';
5388
                $result = mb_strstr($string, $find, true);
5389
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
5390
                $this->assertEquals($expected, $result);
5391
5392
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
5393
                $find = 'Ї';
5394
                $result = mb_strstr($string, $find);
5395
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
5396
                $this->assertEquals($expected, $result);
5397
5398
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
5399
                $find = 'Ї';
5400
                $result = mb_strstr($string, $find, true);
5401
                $expected = 'ЀЁЂЃЄЅІ';
5402
                $this->assertEquals($expected, $result);
5403
5404
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5405
                $find = 'Р';
5406
                $result = mb_strstr($string, $find);
5407
                $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5408
                $this->assertEquals($expected, $result);
5409
5410
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5411
                $find = 'Р';
5412
                $result = mb_strstr($string, $find, true);
5413
                $expected = 'МНОП';
5414
                $this->assertEquals($expected, $result);
5415
5416
                $string = 'فقكلمنهوىيًٌٍَُ';
5417
                $find = 'ن';
5418
                $result = mb_strstr($string, $find);
5419
                $expected = 'نهوىيًٌٍَُ';
5420
                $this->assertEquals($expected, $result);
5421
5422
                $string = 'فقكلمنهوىيًٌٍَُ';
5423
                $find = 'ن';
5424
                $result = mb_strstr($string, $find, true);
5425
                $expected = 'فقكلم';
5426
                $this->assertEquals($expected, $result);
5427
5428
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
5429
                $find = '';
5430
                $result = mb_strstr($string, $find);
5431
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
5432
                $this->assertEquals($expected, $result);
5433
5434
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
5435
                $find = '';
5436
                $result = mb_strstr($string, $find, true);
5437
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
5438
                $this->assertEquals($expected, $result);
5439
5440
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
5441
                $find = '';
5442
                $result = mb_strstr($string, $find);
5443
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
5444
                $this->assertEquals($expected, $result);
5445
5446
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
5447
                $find = '';
5448
                $result = mb_strstr($string, $find, true);
5449
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
5450
                $this->assertEquals($expected, $result);
5451
5452
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
5453
                $find = '';
5454
                $result = mb_strstr($string, $find);
5455
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
5456
                $this->assertEquals($expected, $result);
5457
5458
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
5459
                $find = '';
5460
                $result = mb_strstr($string, $find, true);
5461
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
5462
                $this->assertEquals($expected, $result);
5463
5464
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
5465
                $find = '';
5466
                $result = mb_strstr($string, $find);
5467
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
5468
                $this->assertEquals($expected, $result);
5469
5470
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
5471
                $find = '';
5472
                $result = mb_strstr($string, $find, true);
5473
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
5474
                $this->assertEquals($expected, $result);
5475
5476
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
5477
                $find = '';
5478
                $result = mb_strstr($string, $find);
5479
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
5480
                $this->assertEquals($expected, $result);
5481
5482
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
5483
                $find = '';
5484
                $result = mb_strstr($string, $find, true);
5485
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
5486
                $this->assertEquals($expected, $result);
5487
5488
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
5489
                $find = '';
5490
                $result = mb_strstr($string, $find);
5491
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
5492
                $this->assertEquals($expected, $result);
5493
5494
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
5495
                $find = '';
5496
                $result = mb_strstr($string, $find, true);
5497
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
5498
                $this->assertEquals($expected, $result);
5499
5500
                $string = 'abcdefghijklmnopqrstuvwxyz';
5501
                $find = '';
5502
                $result = mb_strstr($string, $find);
5503
                $expected = 'klmnopqrstuvwxyz';
5504
                $this->assertEquals($expected, $result);
5505
5506
                $string = 'abcdefghijklmnopqrstuvwxyz';
5507
                $find = '';
5508
                $result = mb_strstr($string, $find, true);
5509
                $expected = 'abcdefghij';
5510
                $this->assertEquals($expected, $result);
5511
5512
                $string = 'abcdefghijklmnopqrstuvwxyz';
5513
                $find = '';
5514
                $result = mb_strstr($string, $find);
5515
                $expected = false;
5516
                $this->assertEquals($expected, $result);
5517
5518
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
5519
                $find = '';
5520
                $result = mb_strstr($string, $find);
5521
                $expected = 'アイウエオカキク';
5522
                $this->assertEquals($expected, $result);
5523
5524
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
5525
                $find = '';
5526
                $result = mb_strstr($string, $find, true);
5527
                $expected = '。「」、・ヲァィゥェォャュョッー';
5528
                $this->assertEquals($expected, $result);
5529
5530
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
5531
                $find = '';
5532
                $result = mb_strstr($string, $find);
5533
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
5534
                $this->assertEquals($expected, $result);
5535
5536
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
5537
                $find = '';
5538
                $result = mb_strstr($string, $find, true);
5539
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
5540
                $this->assertEquals($expected, $result);
5541
5542
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5543
                $find = 'ő';
5544
                $result = mb_strstr($string, $find);
5545
                $expected = 'őřļď!';
5546
                $this->assertEquals($expected, $result);
5547
5548
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5549
                $find = 'ő';
5550
                $result = mb_strstr($string, $find, true);
5551
                $expected = 'Ĥēĺļŏ, Ŵ';
5552
                $this->assertEquals($expected, $result);
5553
5554
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5555
                $find = 'ĺļ';
5556
                $result = mb_strstr($string, $find, true);
5557
                $expected = 'Ĥē';
5558
                $this->assertEquals($expected, $result);
5559
5560
                $string = 'Hello, World!';
5561
                $find = 'o';
5562
                $result = mb_strstr($string, $find);
5563
                $expected = 'o, World!';
5564
                $this->assertEquals($expected, $result);
5565
5566
                $string = 'Hello, World!';
5567
                $find = 'o';
5568
                $result = mb_strstr($string, $find, true);
5569
                $expected = 'Hell';
5570
                $this->assertEquals($expected, $result);
5571
5572
                $string = 'Hello, World!';
5573
                $find = 'Wo';
5574
                $result = mb_strstr($string, $find);
5575
                $expected = 'World!';
5576
                $this->assertEquals($expected, $result);
5577
5578
                $string = 'Hello, World!';
5579
                $find = 'Wo';
5580
                $result = mb_strstr($string, $find, true);
5581
                $expected = 'Hello, ';
5582
                $this->assertEquals($expected, $result);
5583
5584
                $string = 'Hello, World!';
5585
                $find = 'll';
5586
                $result = mb_strstr($string, $find);
5587
                $expected = 'llo, World!';
5588
                $this->assertEquals($expected, $result);
5589
5590
                $string = 'Hello, World!';
5591
                $find = 'll';
5592
                $result = mb_strstr($string, $find, true);
5593
                $expected = 'He';
5594
                $this->assertEquals($expected, $result);
5595
5596
                $string = 'Hello, World!';
5597
                $find = 'rld';
5598
                $result = mb_strstr($string, $find);
5599
                $expected = 'rld!';
5600
                $this->assertEquals($expected, $result);
5601
5602
                $string = 'Hello, World!';
5603
                $find = 'rld';
5604
                $result = mb_strstr($string, $find, true);
5605
                $expected = 'Hello, Wo';
5606
                $this->assertEquals($expected, $result);
5607
5608
                $string = 'čini';
5609
                $find = 'n';
5610
                $result = mb_strstr($string, $find);
5611
                $expected = 'ni';
5612
                $this->assertEquals($expected, $result);
5613
5614
                $string = 'čini';
5615
                $find = 'n';
5616
                $result = mb_strstr($string, $find, true);
5617
                $expected = 'či';
5618
                $this->assertEquals($expected, $result);
5619
5620
                $string = 'moći';
5621
                $find = 'ć';
5622
                $result = mb_strstr($string, $find);
5623
                $expected = 'ći';
5624
                $this->assertEquals($expected, $result);
5625
5626
                $string = 'moći';
5627
                $find = 'ć';
5628
                $result = mb_strstr($string, $find, true);
5629
                $expected = 'mo';
5630
                $this->assertEquals($expected, $result);
5631
5632
                $string = 'državni';
5633
                $find = 'ž';
5634
                $result = mb_strstr($string, $find);
5635
                $expected = 'žavni';
5636
                $this->assertEquals($expected, $result);
5637
5638
                $string = 'državni';
5639
                $find = 'ž';
5640
                $result = mb_strstr($string, $find, true);
5641
                $expected = 'dr';
5642
                $this->assertEquals($expected, $result);
5643
5644
                $string = '把百度设为首页';
5645
                $find = '';
5646
                $result = mb_strstr($string, $find);
5647
                $expected = '设为首页';
5648
                $this->assertEquals($expected, $result);
5649
5650
                $string = '把百度设为首页';
5651
                $find = '';
5652
                $result = mb_strstr($string, $find, true);
5653
                $expected = '把百度';
5654
                $this->assertEquals($expected, $result);
5655
5656
                $string = '一二三周永龍';
5657
                $find = '';
5658
                $result = mb_strstr($string, $find);
5659
                $expected = '周永龍';
5660
                $this->assertEquals($expected, $result);
5661
5662
                $string = '一二三周永龍';
5663
                $find = '';
5664
                $result = mb_strstr($string, $find, true);
5665
                $expected = '一二三';
5666
                $this->assertEquals($expected, $result);
5667
5668
                $string = '一二三周永龍';
5669
                $find = '二周';
5670
                $result = mb_strstr($string, $find);
5671
                $expected = false;
5672
                $this->assertEquals($expected, $result);
5673
        }
5674
5675
/**
5676
 * testMultibyteStrstr method
5677
 *
5678
 * @return void
5679
 */
5680
        public function testMultibyteStrstr() {
5681
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
5682
                $find = 'F';
5683
                $result = Multibyte::strstr($string, $find);
5684
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ0123456789';
5685
                $this->assertEquals($expected, $result);
5686
5687
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
5688
                $find = 'F';
5689
                $result = Multibyte::strstr($string, $find, true);
5690
                $expected = 'ABCDE';
5691
                $this->assertEquals($expected, $result);
5692
5693
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
5694
                $find = 'Å';
5695
                $result = Multibyte::strstr($string, $find);
5696
                $expected = 'ÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
5697
                $this->assertEquals($expected, $result);
5698
5699
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
5700
                $find = 'Å';
5701
                $result = Multibyte::strstr($string, $find, true);
5702
                $expected = 'ÀÁÂÃÄ';
5703
                $this->assertEquals($expected, $result);
5704
5705
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5706
                $find = 'Ċ';
5707
                $result = Multibyte::strstr($string, $find);
5708
                $expected = 'ĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5709
                $this->assertEquals($expected, $result);
5710
5711
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
5712
                $find = 'Ċ';
5713
                $result = Multibyte::strstr($string, $find, true);
5714
                $expected = 'ĀĂĄĆĈ';
5715
                $this->assertEquals($expected, $result);
5716
5717
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
5718
                $find = 'F';
5719
                $result = Multibyte::strstr($string, $find);
5720
                $expected = 'FGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
5721
                $this->assertEquals($expected, $result);
5722
5723
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
5724
                $find = 'F';
5725
                $result = Multibyte::strstr($string, $find, true);
5726
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDE';
5727
                $this->assertEquals($expected, $result);
5728
5729
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
5730
                $find = 'µ';
5731
                $result = Multibyte::strstr($string, $find);
5732
                $expected = 'µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
5733
                $this->assertEquals($expected, $result);
5734
5735
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
5736
                $find = 'µ';
5737
                $result = Multibyte::strstr($string, $find, true);
5738
                $expected = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´';
5739
                $this->assertEquals($expected, $result);
5740
5741
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
5742
                $find = 'Þ';
5743
                $result = Multibyte::strstr($string, $find);
5744
                $expected = 'Þßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
5745
                $this->assertEquals($expected, $result);
5746
5747
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
5748
                $find = 'Þ';
5749
                $result = Multibyte::strstr($string, $find, true);
5750
                $expected = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝ';
5751
                $this->assertEquals($expected, $result);
5752
5753
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
5754
                $find = 'Ņ';
5755
                $result = Multibyte::strstr($string, $find);
5756
                $expected = 'ŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
5757
                $this->assertEquals($expected, $result);
5758
5759
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
5760
                $find = 'Ņ';
5761
                $result = Multibyte::strstr($string, $find, true);
5762
                $expected = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃń';
5763
                $this->assertEquals($expected, $result);
5764
5765
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
5766
                $find = 'Ƹ';
5767
                $result = Multibyte::strstr($string, $find);
5768
                $expected = 'ƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
5769
                $this->assertEquals($expected, $result);
5770
5771
                $find = 'Ƹ';
5772
                $result = Multibyte::strstr($string, $find, true);
5773
                $expected = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷ';
5774
                $this->assertEquals($expected, $result);
5775
5776
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
5777
                $find = 'ʀ';
5778
                $result = Multibyte::strstr($string, $find);
5779
                $expected = 'ʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
5780
                $this->assertEquals($expected, $result);
5781
5782
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
5783
                $find = 'ʀ';
5784
                $result = Multibyte::strstr($string, $find, true);
5785
                $expected = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿ';
5786
                $this->assertEquals($expected, $result);
5787
5788
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
5789
                $find = 'Ї';
5790
                $result = Multibyte::strstr($string, $find);
5791
                $expected = 'ЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
5792
                $this->assertEquals($expected, $result);
5793
5794
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
5795
                $find = 'Ї';
5796
                $result = Multibyte::strstr($string, $find, true);
5797
                $expected = 'ЀЁЂЃЄЅІ';
5798
                $this->assertEquals($expected, $result);
5799
5800
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5801
                $find = 'Р';
5802
                $result = Multibyte::strstr($string, $find);
5803
                $expected = 'РСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5804
                $this->assertEquals($expected, $result);
5805
5806
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
5807
                $find = 'Р';
5808
                $result = Multibyte::strstr($string, $find, true);
5809
                $expected = 'МНОП';
5810
                $this->assertEquals($expected, $result);
5811
5812
                $string = 'فقكلمنهوىيًٌٍَُ';
5813
                $find = 'ن';
5814
                $result = Multibyte::strstr($string, $find);
5815
                $expected = 'نهوىيًٌٍَُ';
5816
                $this->assertEquals($expected, $result);
5817
5818
                $string = 'فقكلمنهوىيًٌٍَُ';
5819
                $find = 'ن';
5820
                $result = Multibyte::strstr($string, $find, true);
5821
                $expected = 'فقكلم';
5822
                $this->assertEquals($expected, $result);
5823
5824
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
5825
                $find = '';
5826
                $result = Multibyte::strstr($string, $find);
5827
                $expected = '✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
5828
                $this->assertEquals($expected, $result);
5829
5830
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
5831
                $find = '';
5832
                $result = Multibyte::strstr($string, $find, true);
5833
                $expected = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾';
5834
                $this->assertEquals($expected, $result);
5835
5836
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
5837
                $find = '';
5838
                $result = Multibyte::strstr($string, $find);
5839
                $expected = '⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
5840
                $this->assertEquals($expected, $result);
5841
5842
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
5843
                $find = '';
5844
                $result = Multibyte::strstr($string, $find, true);
5845
                $expected = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏';
5846
                $this->assertEquals($expected, $result);
5847
5848
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
5849
                $find = '';
5850
                $result = Multibyte::strstr($string, $find);
5851
                $expected = '⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
5852
                $this->assertEquals($expected, $result);
5853
5854
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
5855
                $find = '';
5856
                $result = Multibyte::strstr($string, $find, true);
5857
                $expected = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣';
5858
                $this->assertEquals($expected, $result);
5859
5860
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
5861
                $find = '';
5862
                $result = Multibyte::strstr($string, $find);
5863
                $expected = '눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
5864
                $this->assertEquals($expected, $result);
5865
5866
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
5867
                $find = '';
5868
                $result = Multibyte::strstr($string, $find, true);
5869
                $expected = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺';
5870
                $this->assertEquals($expected, $result);
5871
5872
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
5873
                $find = '';
5874
                $result = Multibyte::strstr($string, $find);
5875
                $expected = 'ﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
5876
                $this->assertEquals($expected, $result);
5877
5878
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
5879
                $find = '';
5880
                $result = Multibyte::strstr($string, $find, true);
5881
                $expected = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝ';
5882
                $this->assertEquals($expected, $result);
5883
5884
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
5885
                $find = '';
5886
                $result = Multibyte::strstr($string, $find);
5887
                $expected = 'ﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
5888
                $this->assertEquals($expected, $result);
5889
5890
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
5891
                $find = '';
5892
                $result = Multibyte::strstr($string, $find, true);
5893
                $expected = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝ';
5894
                $this->assertEquals($expected, $result);
5895
5896
                $string = 'abcdefghijklmnopqrstuvwxyz';
5897
                $find = '';
5898
                $result = Multibyte::strstr($string, $find);
5899
                $expected = 'klmnopqrstuvwxyz';
5900
                $this->assertEquals($expected, $result);
5901
5902
                $string = 'abcdefghijklmnopqrstuvwxyz';
5903
                $find = '';
5904
                $result = Multibyte::strstr($string, $find, true);
5905
                $expected = 'abcdefghij';
5906
                $this->assertEquals($expected, $result);
5907
5908
                $string = 'abcdefghijklmnopqrstuvwxyz';
5909
                $find = '';
5910
                $result = Multibyte::strstr($string, $find);
5911
                $expected = false;
5912
                $this->assertEquals($expected, $result);
5913
5914
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
5915
                $find = '';
5916
                $result = Multibyte::strstr($string, $find);
5917
                $expected = 'アイウエオカキク';
5918
                $this->assertEquals($expected, $result);
5919
5920
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
5921
                $find = '';
5922
                $result = Multibyte::strstr($string, $find, true);
5923
                $expected = '。「」、・ヲァィゥェォャュョッー';
5924
                $this->assertEquals($expected, $result);
5925
5926
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
5927
                $find = '';
5928
                $result = Multibyte::strstr($string, $find);
5929
                $expected = 'ハヒフヘホマミムメモヤユヨラリルレロワン゙';
5930
                $this->assertEquals($expected, $result);
5931
5932
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
5933
                $find = '';
5934
                $result = Multibyte::strstr($string, $find, true);
5935
                $expected = 'ケコサシスセソタチツテトナニヌネノ';
5936
                $this->assertEquals($expected, $result);
5937
5938
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5939
                $find = 'ő';
5940
                $result = Multibyte::strstr($string, $find);
5941
                $expected = 'őřļď!';
5942
                $this->assertEquals($expected, $result);
5943
5944
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5945
                $find = 'ő';
5946
                $result = Multibyte::strstr($string, $find, true);
5947
                $expected = 'Ĥēĺļŏ, Ŵ';
5948
                $this->assertEquals($expected, $result);
5949
5950
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
5951
                $find = 'ĺļ';
5952
                $result = Multibyte::strstr($string, $find, true);
5953
                $expected = 'Ĥē';
5954
                $this->assertEquals($expected, $result);
5955
5956
                $string = 'Hello, World!';
5957
                $find = 'o';
5958
                $result = Multibyte::strstr($string, $find);
5959
                $expected = 'o, World!';
5960
                $this->assertEquals($expected, $result);
5961
5962
                $string = 'Hello, World!';
5963
                $find = 'o';
5964
                $result = Multibyte::strstr($string, $find, true);
5965
                $expected = 'Hell';
5966
                $this->assertEquals($expected, $result);
5967
5968
                $string = 'Hello, World!';
5969
                $find = 'Wo';
5970
                $result = Multibyte::strstr($string, $find);
5971
                $expected = 'World!';
5972
                $this->assertEquals($expected, $result);
5973
5974
                $string = 'Hello, World!';
5975
                $find = 'Wo';
5976
                $result = Multibyte::strstr($string, $find, true);
5977
                $expected = 'Hello, ';
5978
                $this->assertEquals($expected, $result);
5979
5980
                $string = 'Hello, World!';
5981
                $find = 'll';
5982
                $result = Multibyte::strstr($string, $find);
5983
                $expected = 'llo, World!';
5984
                $this->assertEquals($expected, $result);
5985
5986
                $string = 'Hello, World!';
5987
                $find = 'll';
5988
                $result = Multibyte::strstr($string, $find, true);
5989
                $expected = 'He';
5990
                $this->assertEquals($expected, $result);
5991
5992
                $string = 'Hello, World!';
5993
                $find = 'rld';
5994
                $result = Multibyte::strstr($string, $find);
5995
                $expected = 'rld!';
5996
                $this->assertEquals($expected, $result);
5997
5998
                $string = 'Hello, World!';
5999
                $find = 'rld';
6000
                $result = Multibyte::strstr($string, $find, true);
6001
                $expected = 'Hello, Wo';
6002
                $this->assertEquals($expected, $result);
6003
6004
                $string = 'čini';
6005
                $find = 'n';
6006
                $result = Multibyte::strstr($string, $find);
6007
                $expected = 'ni';
6008
                $this->assertEquals($expected, $result);
6009
6010
                $string = 'čini';
6011
                $find = 'n';
6012
                $result = Multibyte::strstr($string, $find, true);
6013
                $expected = 'či';
6014
                $this->assertEquals($expected, $result);
6015
6016
                $string = 'moći';
6017
                $find = 'ć';
6018
                $result = Multibyte::strstr($string, $find);
6019
                $expected = 'ći';
6020
                $this->assertEquals($expected, $result);
6021
6022
                $string = 'moći';
6023
                $find = 'ć';
6024
                $result = Multibyte::strstr($string, $find, true);
6025
                $expected = 'mo';
6026
                $this->assertEquals($expected, $result);
6027
6028
                $string = 'državni';
6029
                $find = 'ž';
6030
                $result = Multibyte::strstr($string, $find);
6031
                $expected = 'žavni';
6032
                $this->assertEquals($expected, $result);
6033
6034
                $string = 'državni';
6035
                $find = 'ž';
6036
                $result = Multibyte::strstr($string, $find, true);
6037
                $expected = 'dr';
6038
                $this->assertEquals($expected, $result);
6039
6040
                $string = '把百度设为首页';
6041
                $find = '';
6042
                $result = Multibyte::strstr($string, $find);
6043
                $expected = '设为首页';
6044
                $this->assertEquals($expected, $result);
6045
6046
                $string = '把百度设为首页';
6047
                $find = '';
6048
                $result = Multibyte::strstr($string, $find, true);
6049
                $expected = '把百度';
6050
                $this->assertEquals($expected, $result);
6051
6052
                $string = '一二三周永龍';
6053
                $find = '';
6054
                $result = Multibyte::strstr($string, $find);
6055
                $expected = '周永龍';
6056
                $this->assertEquals($expected, $result);
6057
6058
                $string = '一二三周永龍';
6059
                $find = '';
6060
                $result = Multibyte::strstr($string, $find, true);
6061
                $expected = '一二三';
6062
                $this->assertEquals($expected, $result);
6063
6064
                $string = '一二三周永龍';
6065
                $find = '二周';
6066
                $result = Multibyte::strstr($string, $find);
6067
                $expected = false;
6068
                $this->assertEquals($expected, $result);
6069
        }
6070
6071
/**
6072
 * testUsingMbStrtolower method
6073
 *
6074
 * @return void
6075
 */
6076
        public function testUsingMbStrtolower() {
6077
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
6078
                $result = mb_strtolower($string);
6079
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
6080
                $this->assertEquals($expected, $result);
6081
6082
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
6083
                $result = mb_strtolower($string);
6084
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
6085
                $this->assertEquals($expected, $result);
6086
6087
                $string = 'À';
6088
                $result = mb_strtolower($string);
6089
                $expected = 'à';
6090
                $this->assertEquals($expected, $result);
6091
6092
                $string = 'Á';
6093
                $result = mb_strtolower($string);
6094
                $expected = 'á';
6095
                $this->assertEquals($expected, $result);
6096
6097
                $string = 'Â';
6098
                $result = mb_strtolower($string);
6099
                $expected = 'â';
6100
                $this->assertEquals($expected, $result);
6101
6102
                $string = 'Ã';
6103
                $result = mb_strtolower($string);
6104
                $expected = 'ã';
6105
                $this->assertEquals($expected, $result);
6106
6107
                $string = 'Ä';
6108
                $result = mb_strtolower($string);
6109
                $expected = 'ä';
6110
                $this->assertEquals($expected, $result);
6111
6112
                $string = 'Å';
6113
                $result = mb_strtolower($string);
6114
                $expected = 'å';
6115
                $this->assertEquals($expected, $result);
6116
6117
                $string = 'Æ';
6118
                $result = mb_strtolower($string);
6119
                $expected = 'æ';
6120
                $this->assertEquals($expected, $result);
6121
6122
                $string = 'Ç';
6123
                $result = mb_strtolower($string);
6124
                $expected = 'ç';
6125
                $this->assertEquals($expected, $result);
6126
6127
                $string = 'È';
6128
                $result = mb_strtolower($string);
6129
                $expected = 'è';
6130
                $this->assertEquals($expected, $result);
6131
6132
                $string = 'É';
6133
                $result = mb_strtolower($string);
6134
                $expected = 'é';
6135
                $this->assertEquals($expected, $result);
6136
6137
                $string = 'Ê';
6138
                $result = mb_strtolower($string);
6139
                $expected = 'ê';
6140
                $this->assertEquals($expected, $result);
6141
6142
                $string = 'Ë';
6143
                $result = mb_strtolower($string);
6144
                $expected = 'ë';
6145
                $this->assertEquals($expected, $result);
6146
6147
                $string = 'Ì';
6148
                $result = mb_strtolower($string);
6149
                $expected = 'ì';
6150
                $this->assertEquals($expected, $result);
6151
6152
                $string = 'Í';
6153
                $result = mb_strtolower($string);
6154
                $expected = 'í';
6155
                $this->assertEquals($expected, $result);
6156
6157
                $string = 'Î';
6158
                $result = mb_strtolower($string);
6159
                $expected = 'î';
6160
                $this->assertEquals($expected, $result);
6161
6162
                $string = 'Ï';
6163
                $result = mb_strtolower($string);
6164
                $expected = 'ï';
6165
                $this->assertEquals($expected, $result);
6166
6167
                $string = 'Ð';
6168
                $result = mb_strtolower($string);
6169
                $expected = 'ð';
6170
                $this->assertEquals($expected, $result);
6171
6172
                $string = 'Ñ';
6173
                $result = mb_strtolower($string);
6174
                $expected = 'ñ';
6175
                $this->assertEquals($expected, $result);
6176
6177
                $string = 'Ò';
6178
                $result = mb_strtolower($string);
6179
                $expected = 'ò';
6180
                $this->assertEquals($expected, $result);
6181
6182
                $string = 'Ó';
6183
                $result = mb_strtolower($string);
6184
                $expected = 'ó';
6185
                $this->assertEquals($expected, $result);
6186
6187
                $string = 'Ô';
6188
                $result = mb_strtolower($string);
6189
                $expected = 'ô';
6190
                $this->assertEquals($expected, $result);
6191
6192
                $string = 'Õ';
6193
                $result = mb_strtolower($string);
6194
                $expected = 'õ';
6195
                $this->assertEquals($expected, $result);
6196
6197
                $string = 'Ö';
6198
                $result = mb_strtolower($string);
6199
                $expected = 'ö';
6200
                $this->assertEquals($expected, $result);
6201
6202
                $string = 'Ø';
6203
                $result = mb_strtolower($string);
6204
                $expected = 'ø';
6205
                $this->assertEquals($expected, $result);
6206
6207
                $string = 'Ù';
6208
                $result = mb_strtolower($string);
6209
                $expected = 'ù';
6210
                $this->assertEquals($expected, $result);
6211
6212
                $string = 'Ú';
6213
                $result = mb_strtolower($string);
6214
                $expected = 'ú';
6215
                $this->assertEquals($expected, $result);
6216
6217
                $string = 'Û';
6218
                $result = mb_strtolower($string);
6219
                $expected = 'û';
6220
                $this->assertEquals($expected, $result);
6221
6222
                $string = 'Ü';
6223
                $result = mb_strtolower($string);
6224
                $expected = 'ü';
6225
                $this->assertEquals($expected, $result);
6226
6227
                $string = 'Ý';
6228
                $result = mb_strtolower($string);
6229
                $expected = 'ý';
6230
                $this->assertEquals($expected, $result);
6231
6232
                $string = 'Þ';
6233
                $result = mb_strtolower($string);
6234
                $expected = 'þ';
6235
                $this->assertEquals($expected, $result);
6236
6237
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
6238
                $result = mb_strtolower($string);
6239
                $expected = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
6240
                $this->assertEquals($expected, $result);
6241
6242
                $string = 'Ā';
6243
                $result = mb_strtolower($string);
6244
                $expected = 'ā';
6245
                $this->assertEquals($expected, $result);
6246
6247
                $string = 'Ă';
6248
                $result = mb_strtolower($string);
6249
                $expected = 'ă';
6250
                $this->assertEquals($expected, $result);
6251
6252
                $string = 'Ą';
6253
                $result = mb_strtolower($string);
6254
                $expected = 'ą';
6255
                $this->assertEquals($expected, $result);
6256
6257
                $string = 'Ć';
6258
                $result = mb_strtolower($string);
6259
                $expected = 'ć';
6260
                $this->assertEquals($expected, $result);
6261
6262
                $string = 'Ĉ';
6263
                $result = mb_strtolower($string);
6264
                $expected = 'ĉ';
6265
                $this->assertEquals($expected, $result);
6266
6267
                $string = 'Ċ';
6268
                $result = mb_strtolower($string);
6269
                $expected = 'ċ';
6270
                $this->assertEquals($expected, $result);
6271
6272
                $string = 'Č';
6273
                $result = mb_strtolower($string);
6274
                $expected = 'č';
6275
                $this->assertEquals($expected, $result);
6276
6277
                $string = 'Ď';
6278
                $result = mb_strtolower($string);
6279
                $expected = 'ď';
6280
                $this->assertEquals($expected, $result);
6281
6282
                $string = 'Đ';
6283
                $result = mb_strtolower($string);
6284
                $expected = 'đ';
6285
                $this->assertEquals($expected, $result);
6286
6287
                $string = 'Ē';
6288
                $result = mb_strtolower($string);
6289
                $expected = 'ē';
6290
                $this->assertEquals($expected, $result);
6291
6292
                $string = 'Ĕ';
6293
                $result = mb_strtolower($string);
6294
                $expected = 'ĕ';
6295
                $this->assertEquals($expected, $result);
6296
6297
                $string = 'Ė';
6298
                $result = mb_strtolower($string);
6299
                $expected = 'ė';
6300
                $this->assertEquals($expected, $result);
6301
6302
                $string = 'Ę';
6303
                $result = mb_strtolower($string);
6304
                $expected = 'ę';
6305
                $this->assertEquals($expected, $result);
6306
6307
                $string = 'Ě';
6308
                $result = mb_strtolower($string);
6309
                $expected = 'ě';
6310
                $this->assertEquals($expected, $result);
6311
6312
                $string = 'Ĝ';
6313
                $result = mb_strtolower($string);
6314
                $expected = 'ĝ';
6315
                $this->assertEquals($expected, $result);
6316
6317
                $string = 'Ğ';
6318
                $result = mb_strtolower($string);
6319
                $expected = 'ğ';
6320
                $this->assertEquals($expected, $result);
6321
6322
                $string = 'Ġ';
6323
                $result = mb_strtolower($string);
6324
                $expected = 'ġ';
6325
                $this->assertEquals($expected, $result);
6326
6327
                $string = 'Ģ';
6328
                $result = mb_strtolower($string);
6329
                $expected = 'ģ';
6330
                $this->assertEquals($expected, $result);
6331
6332
                $string = 'Ĥ';
6333
                $result = mb_strtolower($string);
6334
                $expected = 'ĥ';
6335
                $this->assertEquals($expected, $result);
6336
6337
                $string = 'Ħ';
6338
                $result = mb_strtolower($string);
6339
                $expected = 'ħ';
6340
                $this->assertEquals($expected, $result);
6341
6342
                $string = 'Ĩ';
6343
                $result = mb_strtolower($string);
6344
                $expected = 'ĩ';
6345
                $this->assertEquals($expected, $result);
6346
6347
                $string = 'Ī';
6348
                $result = mb_strtolower($string);
6349
                $expected = 'ī';
6350
                $this->assertEquals($expected, $result);
6351
6352
                $string = 'Ĭ';
6353
                $result = mb_strtolower($string);
6354
                $expected = 'ĭ';
6355
                $this->assertEquals($expected, $result);
6356
6357
                $string = 'Į';
6358
                $result = mb_strtolower($string);
6359
                $expected = 'į';
6360
                $this->assertEquals($expected, $result);
6361
6362
                $string = 'IJ';
6363
                $result = mb_strtolower($string);
6364
                $expected = 'ij';
6365
                $this->assertEquals($expected, $result);
6366
6367
                $string = 'Ĵ';
6368
                $result = mb_strtolower($string);
6369
                $expected = 'ĵ';
6370
                $this->assertEquals($expected, $result);
6371
6372
                $string = 'Ķ';
6373
                $result = mb_strtolower($string);
6374
                $expected = 'ķ';
6375
                $this->assertEquals($expected, $result);
6376
6377
                $string = 'Ĺ';
6378
                $result = mb_strtolower($string);
6379
                $expected = 'ĺ';
6380
                $this->assertEquals($expected, $result);
6381
6382
                $string = 'Ļ';
6383
                $result = mb_strtolower($string);
6384
                $expected = 'ļ';
6385
                $this->assertEquals($expected, $result);
6386
6387
                $string = 'Ľ';
6388
                $result = mb_strtolower($string);
6389
                $expected = 'ľ';
6390
                $this->assertEquals($expected, $result);
6391
6392
                $string = 'Ŀ';
6393
                $result = mb_strtolower($string);
6394
                $expected = 'ŀ';
6395
                $this->assertEquals($expected, $result);
6396
6397
                $string = 'Ł';
6398
                $result = mb_strtolower($string);
6399
                $expected = 'ł';
6400
                $this->assertEquals($expected, $result);
6401
6402
                $string = 'Ń';
6403
                $result = mb_strtolower($string);
6404
                $expected = 'ń';
6405
                $this->assertEquals($expected, $result);
6406
6407
                $string = 'Ņ';
6408
                $result = mb_strtolower($string);
6409
                $expected = 'ņ';
6410
                $this->assertEquals($expected, $result);
6411
6412
                $string = 'Ň';
6413
                $result = mb_strtolower($string);
6414
                $expected = 'ň';
6415
                $this->assertEquals($expected, $result);
6416
6417
                $string = 'Ŋ';
6418
                $result = mb_strtolower($string);
6419
                $expected = 'ŋ';
6420
                $this->assertEquals($expected, $result);
6421
6422
                $string = 'Ō';
6423
                $result = mb_strtolower($string);
6424
                $expected = 'ō';
6425
                $this->assertEquals($expected, $result);
6426
6427
                $string = 'Ŏ';
6428
                $result = mb_strtolower($string);
6429
                $expected = 'ŏ';
6430
                $this->assertEquals($expected, $result);
6431
6432
                $string = 'Ő';
6433
                $result = mb_strtolower($string);
6434
                $expected = 'ő';
6435
                $this->assertEquals($expected, $result);
6436
6437
                $string = 'Œ';
6438
                $result = mb_strtolower($string);
6439
                $expected = 'œ';
6440
                $this->assertEquals($expected, $result);
6441
6442
                $string = 'Ŕ';
6443
                $result = mb_strtolower($string);
6444
                $expected = 'ŕ';
6445
                $this->assertEquals($expected, $result);
6446
6447
                $string = 'Ŗ';
6448
                $result = mb_strtolower($string);
6449
                $expected = 'ŗ';
6450
                $this->assertEquals($expected, $result);
6451
6452
                $string = 'Ř';
6453
                $result = mb_strtolower($string);
6454
                $expected = 'ř';
6455
                $this->assertEquals($expected, $result);
6456
6457
                $string = 'Ś';
6458
                $result = mb_strtolower($string);
6459
                $expected = 'ś';
6460
                $this->assertEquals($expected, $result);
6461
6462
                $string = 'Ŝ';
6463
                $result = mb_strtolower($string);
6464
                $expected = 'ŝ';
6465
                $this->assertEquals($expected, $result);
6466
6467
                $string = 'Ş';
6468
                $result = mb_strtolower($string);
6469
                $expected = 'ş';
6470
                $this->assertEquals($expected, $result);
6471
6472
                $string = 'Š';
6473
                $result = mb_strtolower($string);
6474
                $expected = 'š';
6475
                $this->assertEquals($expected, $result);
6476
6477
                $string = 'Ţ';
6478
                $result = mb_strtolower($string);
6479
                $expected = 'ţ';
6480
                $this->assertEquals($expected, $result);
6481
6482
                $string = 'Ť';
6483
                $result = mb_strtolower($string);
6484
                $expected = 'ť';
6485
                $this->assertEquals($expected, $result);
6486
6487
                $string = 'Ŧ';
6488
                $result = mb_strtolower($string);
6489
                $expected = 'ŧ';
6490
                $this->assertEquals($expected, $result);
6491
6492
                $string = 'Ũ';
6493
                $result = mb_strtolower($string);
6494
                $expected = 'ũ';
6495
                $this->assertEquals($expected, $result);
6496
6497
                $string = 'Ū';
6498
                $result = mb_strtolower($string);
6499
                $expected = 'ū';
6500
                $this->assertEquals($expected, $result);
6501
6502
                $string = 'Ŭ';
6503
                $result = mb_strtolower($string);
6504
                $expected = 'ŭ';
6505
                $this->assertEquals($expected, $result);
6506
6507
                $string = 'Ů';
6508
                $result = mb_strtolower($string);
6509
                $expected = 'ů';
6510
                $this->assertEquals($expected, $result);
6511
6512
                $string = 'Ű';
6513
                $result = mb_strtolower($string);
6514
                $expected = 'ű';
6515
                $this->assertEquals($expected, $result);
6516
6517
                $string = 'Ų';
6518
                $result = mb_strtolower($string);
6519
                $expected = 'ų';
6520
                $this->assertEquals($expected, $result);
6521
6522
                $string = 'Ŵ';
6523
                $result = mb_strtolower($string);
6524
                $expected = 'ŵ';
6525
                $this->assertEquals($expected, $result);
6526
6527
                $string = 'Ŷ';
6528
                $result = mb_strtolower($string);
6529
                $expected = 'ŷ';
6530
                $this->assertEquals($expected, $result);
6531
6532
                $string = 'Ź';
6533
                $result = mb_strtolower($string);
6534
                $expected = 'ź';
6535
                $this->assertEquals($expected, $result);
6536
6537
                $string = 'Ż';
6538
                $result = mb_strtolower($string);
6539
                $expected = 'ż';
6540
                $this->assertEquals($expected, $result);
6541
6542
                $string = 'Ž';
6543
                $result = mb_strtolower($string);
6544
                $expected = 'ž';
6545
                $this->assertEquals($expected, $result);
6546
6547
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
6548
                $result = mb_strtolower($string);
6549
                $expected = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
6550
                $this->assertEquals($expected, $result);
6551
6552
                $string = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
6553
                $result = mb_strtolower($string);
6554
                $expected = 'ĥēĺļŏ, ŵőřļď!';
6555
                $this->assertEquals($expected, $result);
6556
6557
                $string = 'ĥēĺļŏ, ŵőřļď!';
6558
                $result = mb_strtolower($string);
6559
                $expected = 'ĥēĺļŏ, ŵőřļď!';
6560
                $this->assertEquals($expected, $result);
6561
6562
                $string = 'ἈΙ';
6563
                $result = mb_strtolower($string);
6564
                $expected = 'ἀι';
6565
                $this->assertEquals($expected, $result);
6566
6567
                $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
6568
                $result = mb_strtolower($string);
6569
                $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
6570
                $this->assertEquals($expected, $result);
6571
        }
6572
6573
/**
6574
 * testMultibyteStrtolower method
6575
 *
6576
 * @return void
6577
 */
6578
        public function testMultibyteStrtolower() {
6579
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
6580
                $result = Multibyte::strtolower($string);
6581
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
6582
                $this->assertEquals($expected, $result);
6583
6584
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
6585
                $result = Multibyte::strtolower($string);
6586
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
6587
                $this->assertEquals($expected, $result);
6588
6589
                $string = 'À';
6590
                $result = Multibyte::strtolower($string);
6591
                $expected = 'à';
6592
                $this->assertEquals($expected, $result);
6593
6594
                $string = 'Á';
6595
                $result = Multibyte::strtolower($string);
6596
                $expected = 'á';
6597
                $this->assertEquals($expected, $result);
6598
6599
                $string = 'Â';
6600
                $result = Multibyte::strtolower($string);
6601
                $expected = 'â';
6602
                $this->assertEquals($expected, $result);
6603
6604
                $string = 'Ã';
6605
                $result = Multibyte::strtolower($string);
6606
                $expected = 'ã';
6607
                $this->assertEquals($expected, $result);
6608
6609
                $string = 'Ä';
6610
                $result = Multibyte::strtolower($string);
6611
                $expected = 'ä';
6612
                $this->assertEquals($expected, $result);
6613
6614
                $string = 'Å';
6615
                $result = Multibyte::strtolower($string);
6616
                $expected = 'å';
6617
                $this->assertEquals($expected, $result);
6618
6619
                $string = 'Æ';
6620
                $result = Multibyte::strtolower($string);
6621
                $expected = 'æ';
6622
                $this->assertEquals($expected, $result);
6623
6624
                $string = 'Ç';
6625
                $result = Multibyte::strtolower($string);
6626
                $expected = 'ç';
6627
                $this->assertEquals($expected, $result);
6628
6629
                $string = 'È';
6630
                $result = Multibyte::strtolower($string);
6631
                $expected = 'è';
6632
                $this->assertEquals($expected, $result);
6633
6634
                $string = 'É';
6635
                $result = Multibyte::strtolower($string);
6636
                $expected = 'é';
6637
                $this->assertEquals($expected, $result);
6638
6639
                $string = 'Ê';
6640
                $result = Multibyte::strtolower($string);
6641
                $expected = 'ê';
6642
                $this->assertEquals($expected, $result);
6643
6644
                $string = 'Ë';
6645
                $result = Multibyte::strtolower($string);
6646
                $expected = 'ë';
6647
                $this->assertEquals($expected, $result);
6648
6649
                $string = 'Ì';
6650
                $result = Multibyte::strtolower($string);
6651
                $expected = 'ì';
6652
                $this->assertEquals($expected, $result);
6653
6654
                $string = 'Í';
6655
                $result = Multibyte::strtolower($string);
6656
                $expected = 'í';
6657
                $this->assertEquals($expected, $result);
6658
6659
                $string = 'Î';
6660
                $result = Multibyte::strtolower($string);
6661
                $expected = 'î';
6662
                $this->assertEquals($expected, $result);
6663
6664
                $string = 'Ï';
6665
                $result = Multibyte::strtolower($string);
6666
                $expected = 'ï';
6667
                $this->assertEquals($expected, $result);
6668
6669
                $string = 'Ð';
6670
                $result = Multibyte::strtolower($string);
6671
                $expected = 'ð';
6672
                $this->assertEquals($expected, $result);
6673
6674
                $string = 'Ñ';
6675
                $result = Multibyte::strtolower($string);
6676
                $expected = 'ñ';
6677
                $this->assertEquals($expected, $result);
6678
6679
                $string = 'Ò';
6680
                $result = Multibyte::strtolower($string);
6681
                $expected = 'ò';
6682
                $this->assertEquals($expected, $result);
6683
6684
                $string = 'Ó';
6685
                $result = Multibyte::strtolower($string);
6686
                $expected = 'ó';
6687
                $this->assertEquals($expected, $result);
6688
6689
                $string = 'Ô';
6690
                $result = Multibyte::strtolower($string);
6691
                $expected = 'ô';
6692
                $this->assertEquals($expected, $result);
6693
6694
                $string = 'Õ';
6695
                $result = Multibyte::strtolower($string);
6696
                $expected = 'õ';
6697
                $this->assertEquals($expected, $result);
6698
6699
                $string = 'Ö';
6700
                $result = Multibyte::strtolower($string);
6701
                $expected = 'ö';
6702
                $this->assertEquals($expected, $result);
6703
6704
                $string = 'Ø';
6705
                $result = Multibyte::strtolower($string);
6706
                $expected = 'ø';
6707
                $this->assertEquals($expected, $result);
6708
6709
                $string = 'Ù';
6710
                $result = Multibyte::strtolower($string);
6711
                $expected = 'ù';
6712
                $this->assertEquals($expected, $result);
6713
6714
                $string = 'Ú';
6715
                $result = Multibyte::strtolower($string);
6716
                $expected = 'ú';
6717
                $this->assertEquals($expected, $result);
6718
6719
                $string = 'Û';
6720
                $result = Multibyte::strtolower($string);
6721
                $expected = 'û';
6722
                $this->assertEquals($expected, $result);
6723
6724
                $string = 'Ü';
6725
                $result = Multibyte::strtolower($string);
6726
                $expected = 'ü';
6727
                $this->assertEquals($expected, $result);
6728
6729
                $string = 'Ý';
6730
                $result = Multibyte::strtolower($string);
6731
                $expected = 'ý';
6732
                $this->assertEquals($expected, $result);
6733
6734
                $string = 'Þ';
6735
                $result = Multibyte::strtolower($string);
6736
                $expected = 'þ';
6737
                $this->assertEquals($expected, $result);
6738
6739
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
6740
                $result = Multibyte::strtolower($string);
6741
                $expected = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
6742
                $this->assertEquals($expected, $result);
6743
6744
                $string = 'Ā';
6745
                $result = Multibyte::strtolower($string);
6746
                $expected = 'ā';
6747
                $this->assertEquals($expected, $result);
6748
6749
                $string = 'Ă';
6750
                $result = Multibyte::strtolower($string);
6751
                $expected = 'ă';
6752
                $this->assertEquals($expected, $result);
6753
6754
                $string = 'Ą';
6755
                $result = Multibyte::strtolower($string);
6756
                $expected = 'ą';
6757
                $this->assertEquals($expected, $result);
6758
6759
                $string = 'Ć';
6760
                $result = Multibyte::strtolower($string);
6761
                $expected = 'ć';
6762
                $this->assertEquals($expected, $result);
6763
6764
                $string = 'Ĉ';
6765
                $result = Multibyte::strtolower($string);
6766
                $expected = 'ĉ';
6767
                $this->assertEquals($expected, $result);
6768
6769
                $string = 'Ċ';
6770
                $result = Multibyte::strtolower($string);
6771
                $expected = 'ċ';
6772
                $this->assertEquals($expected, $result);
6773
6774
                $string = 'Č';
6775
                $result = Multibyte::strtolower($string);
6776
                $expected = 'č';
6777
                $this->assertEquals($expected, $result);
6778
6779
                $string = 'Ď';
6780
                $result = Multibyte::strtolower($string);
6781
                $expected = 'ď';
6782
                $this->assertEquals($expected, $result);
6783
6784
                $string = 'Đ';
6785
                $result = Multibyte::strtolower($string);
6786
                $expected = 'đ';
6787
                $this->assertEquals($expected, $result);
6788
6789
                $string = 'Ē';
6790
                $result = Multibyte::strtolower($string);
6791
                $expected = 'ē';
6792
                $this->assertEquals($expected, $result);
6793
6794
                $string = 'Ĕ';
6795
                $result = Multibyte::strtolower($string);
6796
                $expected = 'ĕ';
6797
                $this->assertEquals($expected, $result);
6798
6799
                $string = 'Ė';
6800
                $result = Multibyte::strtolower($string);
6801
                $expected = 'ė';
6802
                $this->assertEquals($expected, $result);
6803
6804
                $string = 'Ę';
6805
                $result = Multibyte::strtolower($string);
6806
                $expected = 'ę';
6807
                $this->assertEquals($expected, $result);
6808
6809
                $string = 'Ě';
6810
                $result = Multibyte::strtolower($string);
6811
                $expected = 'ě';
6812
                $this->assertEquals($expected, $result);
6813
6814
                $string = 'Ĝ';
6815
                $result = Multibyte::strtolower($string);
6816
                $expected = 'ĝ';
6817
                $this->assertEquals($expected, $result);
6818
6819
                $string = 'Ğ';
6820
                $result = Multibyte::strtolower($string);
6821
                $expected = 'ğ';
6822
                $this->assertEquals($expected, $result);
6823
6824
                $string = 'Ġ';
6825
                $result = Multibyte::strtolower($string);
6826
                $expected = 'ġ';
6827
                $this->assertEquals($expected, $result);
6828
6829
                $string = 'Ģ';
6830
                $result = Multibyte::strtolower($string);
6831
                $expected = 'ģ';
6832
                $this->assertEquals($expected, $result);
6833
6834
                $string = 'Ĥ';
6835
                $result = Multibyte::strtolower($string);
6836
                $expected = 'ĥ';
6837
                $this->assertEquals($expected, $result);
6838
6839
                $string = 'Ħ';
6840
                $result = Multibyte::strtolower($string);
6841
                $expected = 'ħ';
6842
                $this->assertEquals($expected, $result);
6843
6844
                $string = 'Ĩ';
6845
                $result = Multibyte::strtolower($string);
6846
                $expected = 'ĩ';
6847
                $this->assertEquals($expected, $result);
6848
6849
                $string = 'Ī';
6850
                $result = Multibyte::strtolower($string);
6851
                $expected = 'ī';
6852
                $this->assertEquals($expected, $result);
6853
6854
                $string = 'Ĭ';
6855
                $result = Multibyte::strtolower($string);
6856
                $expected = 'ĭ';
6857
                $this->assertEquals($expected, $result);
6858
6859
                $string = 'Į';
6860
                $result = Multibyte::strtolower($string);
6861
                $expected = 'į';
6862
                $this->assertEquals($expected, $result);
6863
6864
                $string = 'IJ';
6865
                $result = Multibyte::strtolower($string);
6866
                $expected = 'ij';
6867
                $this->assertEquals($expected, $result);
6868
6869
                $string = 'Ĵ';
6870
                $result = Multibyte::strtolower($string);
6871
                $expected = 'ĵ';
6872
                $this->assertEquals($expected, $result);
6873
6874
                $string = 'Ķ';
6875
                $result = Multibyte::strtolower($string);
6876
                $expected = 'ķ';
6877
                $this->assertEquals($expected, $result);
6878
6879
                $string = 'Ĺ';
6880
                $result = Multibyte::strtolower($string);
6881
                $expected = 'ĺ';
6882
                $this->assertEquals($expected, $result);
6883
6884
                $string = 'Ļ';
6885
                $result = Multibyte::strtolower($string);
6886
                $expected = 'ļ';
6887
                $this->assertEquals($expected, $result);
6888
6889
                $string = 'Ľ';
6890
                $result = Multibyte::strtolower($string);
6891
                $expected = 'ľ';
6892
                $this->assertEquals($expected, $result);
6893
6894
                $string = 'Ŀ';
6895
                $result = Multibyte::strtolower($string);
6896
                $expected = 'ŀ';
6897
                $this->assertEquals($expected, $result);
6898
6899
                $string = 'Ł';
6900
                $result = Multibyte::strtolower($string);
6901
                $expected = 'ł';
6902
                $this->assertEquals($expected, $result);
6903
6904
                $string = 'Ń';
6905
                $result = Multibyte::strtolower($string);
6906
                $expected = 'ń';
6907
                $this->assertEquals($expected, $result);
6908
6909
                $string = 'Ņ';
6910
                $result = Multibyte::strtolower($string);
6911
                $expected = 'ņ';
6912
                $this->assertEquals($expected, $result);
6913
6914
                $string = 'Ň';
6915
                $result = Multibyte::strtolower($string);
6916
                $expected = 'ň';
6917
                $this->assertEquals($expected, $result);
6918
6919
                $string = 'Ŋ';
6920
                $result = Multibyte::strtolower($string);
6921
                $expected = 'ŋ';
6922
                $this->assertEquals($expected, $result);
6923
6924
                $string = 'Ō';
6925
                $result = Multibyte::strtolower($string);
6926
                $expected = 'ō';
6927
                $this->assertEquals($expected, $result);
6928
6929
                $string = 'Ŏ';
6930
                $result = Multibyte::strtolower($string);
6931
                $expected = 'ŏ';
6932
                $this->assertEquals($expected, $result);
6933
6934
                $string = 'Ő';
6935
                $result = Multibyte::strtolower($string);
6936
                $expected = 'ő';
6937
                $this->assertEquals($expected, $result);
6938
6939
                $string = 'Œ';
6940
                $result = Multibyte::strtolower($string);
6941
                $expected = 'œ';
6942
                $this->assertEquals($expected, $result);
6943
6944
                $string = 'Ŕ';
6945
                $result = Multibyte::strtolower($string);
6946
                $expected = 'ŕ';
6947
                $this->assertEquals($expected, $result);
6948
6949
                $string = 'Ŗ';
6950
                $result = Multibyte::strtolower($string);
6951
                $expected = 'ŗ';
6952
                $this->assertEquals($expected, $result);
6953
6954
                $string = 'Ř';
6955
                $result = Multibyte::strtolower($string);
6956
                $expected = 'ř';
6957
                $this->assertEquals($expected, $result);
6958
6959
                $string = 'Ś';
6960
                $result = Multibyte::strtolower($string);
6961
                $expected = 'ś';
6962
                $this->assertEquals($expected, $result);
6963
6964
                $string = 'Ŝ';
6965
                $result = Multibyte::strtolower($string);
6966
                $expected = 'ŝ';
6967
                $this->assertEquals($expected, $result);
6968
6969
                $string = 'Ş';
6970
                $result = Multibyte::strtolower($string);
6971
                $expected = 'ş';
6972
                $this->assertEquals($expected, $result);
6973
6974
                $string = 'Š';
6975
                $result = Multibyte::strtolower($string);
6976
                $expected = 'š';
6977
                $this->assertEquals($expected, $result);
6978
6979
                $string = 'Ţ';
6980
                $result = Multibyte::strtolower($string);
6981
                $expected = 'ţ';
6982
                $this->assertEquals($expected, $result);
6983
6984
                $string = 'Ť';
6985
                $result = Multibyte::strtolower($string);
6986
                $expected = 'ť';
6987
                $this->assertEquals($expected, $result);
6988
6989
                $string = 'Ŧ';
6990
                $result = Multibyte::strtolower($string);
6991
                $expected = 'ŧ';
6992
                $this->assertEquals($expected, $result);
6993
6994
                $string = 'Ũ';
6995
                $result = Multibyte::strtolower($string);
6996
                $expected = 'ũ';
6997
                $this->assertEquals($expected, $result);
6998
6999
                $string = 'Ū';
7000
                $result = Multibyte::strtolower($string);
7001
                $expected = 'ū';
7002
                $this->assertEquals($expected, $result);
7003
7004
                $string = 'Ŭ';
7005
                $result = Multibyte::strtolower($string);
7006
                $expected = 'ŭ';
7007
                $this->assertEquals($expected, $result);
7008
7009
                $string = 'Ů';
7010
                $result = Multibyte::strtolower($string);
7011
                $expected = 'ů';
7012
                $this->assertEquals($expected, $result);
7013
7014
                $string = 'Ű';
7015
                $result = Multibyte::strtolower($string);
7016
                $expected = 'ű';
7017
                $this->assertEquals($expected, $result);
7018
7019
                $string = 'Ų';
7020
                $result = Multibyte::strtolower($string);
7021
                $expected = 'ų';
7022
                $this->assertEquals($expected, $result);
7023
7024
                $string = 'Ŵ';
7025
                $result = Multibyte::strtolower($string);
7026
                $expected = 'ŵ';
7027
                $this->assertEquals($expected, $result);
7028
7029
                $string = 'Ŷ';
7030
                $result = Multibyte::strtolower($string);
7031
                $expected = 'ŷ';
7032
                $this->assertEquals($expected, $result);
7033
7034
                $string = 'Ź';
7035
                $result = Multibyte::strtolower($string);
7036
                $expected = 'ź';
7037
                $this->assertEquals($expected, $result);
7038
7039
                $string = 'Ż';
7040
                $result = Multibyte::strtolower($string);
7041
                $expected = 'ż';
7042
                $this->assertEquals($expected, $result);
7043
7044
                $string = 'Ž';
7045
                $result = Multibyte::strtolower($string);
7046
                $expected = 'ž';
7047
                $this->assertEquals($expected, $result);
7048
7049
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
7050
                $result = Multibyte::strtolower($string);
7051
                $expected = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
7052
                $this->assertEquals($expected, $result);
7053
7054
                $string = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
7055
                $result = Multibyte::strtolower($string);
7056
                $expected = 'ĥēĺļŏ, ŵőřļď!';
7057
                $this->assertEquals($expected, $result);
7058
7059
                $string = 'ĥēĺļŏ, ŵőřļď!';
7060
                $result = Multibyte::strtolower($string);
7061
                $expected = 'ĥēĺļŏ, ŵőřļď!';
7062
                $this->assertEquals($expected, $result);
7063
7064
                $string = 'ἈΙ';
7065
                $result = Multibyte::strtolower($string);
7066
                $expected = 'ἀι';
7067
                $this->assertEquals($expected, $result);
7068
7069
                $string = 'ԀԂԄԆԈԊԌԎԐԒ';
7070
                $result = Multibyte::strtolower($string);
7071
                $expected = 'ԁԃԅԇԉԋԍԏԑԓ';
7072
                $this->assertEquals($expected, $result);
7073
7074
                $string = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
7075
                $result = Multibyte::strtolower($string);
7076
                $expected = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
7077
                $this->assertEquals($expected, $result);
7078
7079
                $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
7080
                $result = Multibyte::strtolower($string);
7081
                $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
7082
                $this->assertEquals($expected, $result);
7083
7084
                $string = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
7085
                $result = Multibyte::strtolower($string);
7086
                $expected = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
7087
                $this->assertEquals($expected, $result);
7088
7089
                $string = 'ΩKÅℲ';
7090
                $result = Multibyte::strtolower($string);
7091
                $expected = 'ωkåⅎ';
7092
                $this->assertEquals($expected, $result);
7093
7094
                $string = 'ΩKÅ';
7095
                $result = Multibyte::strtolower($string);
7096
                $expected = 'ωkå';
7097
                $this->assertEquals($expected, $result);
7098
7099
                $string = 'ΩKÅ';
7100
                $result = Multibyte::strtolower($string);
7101
                $expected = 'ωkå';
7102
                $this->assertEquals($expected, $result);
7103
7104
                $string = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
7105
                $result = Multibyte::strtolower($string);
7106
                $expected = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
7107
                $this->assertEquals($expected, $result);
7108
7109
                $string = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
7110
                $result = Multibyte::strtolower($string);
7111
                $expected = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
7112
                $this->assertEquals($expected, $result);
7113
7114
                $string = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
7115
                $result = Multibyte::strtolower($string);
7116
                $expected = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
7117
                $this->assertEquals($expected, $result);
7118
7119
                $string = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
7120
                $result = Multibyte::strtolower($string);
7121
                $expected = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
7122
                $this->assertEquals($expected, $result);
7123
7124
                $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
7125
                $result = Multibyte::strtolower($string);
7126
                $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
7127
                $this->assertEquals($expected, $result);
7128
        }
7129
7130
/**
7131
 * testUsingMbStrtoupper method
7132
 *
7133
 * @return void
7134
 */
7135
        public function testUsingMbStrtoupper() {
7136
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
7137
                $result = mb_strtoupper($string);
7138
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
7139
                $this->assertEquals($expected, $result);
7140
7141
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
7142
                $result = mb_strtoupper($string);
7143
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
7144
                $this->assertEquals($expected, $result);
7145
7146
                $string = 'à';
7147
                $result = mb_strtoupper($string);
7148
                $expected = 'À';
7149
                $this->assertEquals($expected, $result);
7150
7151
                $string = 'á';
7152
                $result = mb_strtoupper($string);
7153
                $expected = 'Á';
7154
                $this->assertEquals($expected, $result);
7155
7156
                $string = 'â';
7157
                $result = mb_strtoupper($string);
7158
                $expected = 'Â';
7159
                $this->assertEquals($expected, $result);
7160
7161
                $string = 'ã';
7162
                $result = mb_strtoupper($string);
7163
                $expected = 'Ã';
7164
                $this->assertEquals($expected, $result);
7165
7166
                $string = 'ä';
7167
                $result = mb_strtoupper($string);
7168
                $expected = 'Ä';
7169
                $this->assertEquals($expected, $result);
7170
7171
                $string = 'å';
7172
                $result = mb_strtoupper($string);
7173
                $expected = 'Å';
7174
                $this->assertEquals($expected, $result);
7175
7176
                $string = 'æ';
7177
                $result = mb_strtoupper($string);
7178
                $expected = 'Æ';
7179
                $this->assertEquals($expected, $result);
7180
7181
                $string = 'ç';
7182
                $result = mb_strtoupper($string);
7183
                $expected = 'Ç';
7184
                $this->assertEquals($expected, $result);
7185
7186
                $string = 'è';
7187
                $result = mb_strtoupper($string);
7188
                $expected = 'È';
7189
                $this->assertEquals($expected, $result);
7190
7191
                $string = 'é';
7192
                $result = mb_strtoupper($string);
7193
                $expected = 'É';
7194
                $this->assertEquals($expected, $result);
7195
7196
                $string = 'ê';
7197
                $result = mb_strtoupper($string);
7198
                $expected = 'Ê';
7199
                $this->assertEquals($expected, $result);
7200
7201
                $string = 'ë';
7202
                $result = mb_strtoupper($string);
7203
                $expected = 'Ë';
7204
                $this->assertEquals($expected, $result);
7205
7206
                $string = 'ì';
7207
                $result = mb_strtoupper($string);
7208
                $expected = 'Ì';
7209
                $this->assertEquals($expected, $result);
7210
7211
                $string = 'í';
7212
                $result = mb_strtoupper($string);
7213
                $expected = 'Í';
7214
                $this->assertEquals($expected, $result);
7215
7216
                $string = 'î';
7217
                $result = mb_strtoupper($string);
7218
                $expected = 'Î';
7219
                $this->assertEquals($expected, $result);
7220
7221
                $string = 'ï';
7222
                $result = mb_strtoupper($string);
7223
                $expected = 'Ï';
7224
                $this->assertEquals($expected, $result);
7225
7226
                $string = 'ð';
7227
                $result = mb_strtoupper($string);
7228
                $expected = 'Ð';
7229
                $this->assertEquals($expected, $result);
7230
7231
                $string = 'ñ';
7232
                $result = mb_strtoupper($string);
7233
                $expected = 'Ñ';
7234
                $this->assertEquals($expected, $result);
7235
7236
                $string = 'ò';
7237
                $result = mb_strtoupper($string);
7238
                $expected = 'Ò';
7239
                $this->assertEquals($expected, $result);
7240
7241
                $string = 'ó';
7242
                $result = mb_strtoupper($string);
7243
                $expected = 'Ó';
7244
                $this->assertEquals($expected, $result);
7245
7246
                $string = 'ô';
7247
                $result = mb_strtoupper($string);
7248
                $expected = 'Ô';
7249
                $this->assertEquals($expected, $result);
7250
7251
                $string = 'õ';
7252
                $result = mb_strtoupper($string);
7253
                $expected = 'Õ';
7254
                $this->assertEquals($expected, $result);
7255
7256
                $string = 'ö';
7257
                $result = mb_strtoupper($string);
7258
                $expected = 'Ö';
7259
                $this->assertEquals($expected, $result);
7260
7261
                $string = 'ø';
7262
                $result = mb_strtoupper($string);
7263
                $expected = 'Ø';
7264
                $this->assertEquals($expected, $result);
7265
7266
                $string = 'ù';
7267
                $result = mb_strtoupper($string);
7268
                $expected = 'Ù';
7269
                $this->assertEquals($expected, $result);
7270
7271
                $string = 'ú';
7272
                $result = mb_strtoupper($string);
7273
                $expected = 'Ú';
7274
                $this->assertEquals($expected, $result);
7275
7276
                $string = 'û';
7277
                $result = mb_strtoupper($string);
7278
                $expected = 'Û';
7279
                $this->assertEquals($expected, $result);
7280
7281
                $string = 'ü';
7282
                $result = mb_strtoupper($string);
7283
                $expected = 'Ü';
7284
                $this->assertEquals($expected, $result);
7285
7286
                $string = 'ý';
7287
                $result = mb_strtoupper($string);
7288
                $expected = 'Ý';
7289
                $this->assertEquals($expected, $result);
7290
7291
                $string = 'þ';
7292
                $result = mb_strtoupper($string);
7293
                $expected = 'Þ';
7294
                $this->assertEquals($expected, $result);
7295
7296
                $string = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
7297
                $result = mb_strtoupper($string);
7298
                $expected = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
7299
                $this->assertEquals($expected, $result);
7300
7301
                $string = 'ā';
7302
                $result = mb_strtoupper($string);
7303
                $expected = 'Ā';
7304
                $this->assertEquals($expected, $result);
7305
7306
                $string = 'ă';
7307
                $result = mb_strtoupper($string);
7308
                $expected = 'Ă';
7309
                $this->assertEquals($expected, $result);
7310
7311
                $string = 'ą';
7312
                $result = mb_strtoupper($string);
7313
                $expected = 'Ą';
7314
                $this->assertEquals($expected, $result);
7315
7316
                $string = 'ć';
7317
                $result = mb_strtoupper($string);
7318
                $expected = 'Ć';
7319
                $this->assertEquals($expected, $result);
7320
7321
                $string = 'ĉ';
7322
                $result = mb_strtoupper($string);
7323
                $expected = 'Ĉ';
7324
                $this->assertEquals($expected, $result);
7325
7326
                $string = 'ċ';
7327
                $result = mb_strtoupper($string);
7328
                $expected = 'Ċ';
7329
                $this->assertEquals($expected, $result);
7330
7331
                $string = 'č';
7332
                $result = mb_strtoupper($string);
7333
                $expected = 'Č';
7334
                $this->assertEquals($expected, $result);
7335
7336
                $string = 'ď';
7337
                $result = mb_strtoupper($string);
7338
                $expected = 'Ď';
7339
                $this->assertEquals($expected, $result);
7340
7341
                $string = 'đ';
7342
                $result = mb_strtoupper($string);
7343
                $expected = 'Đ';
7344
                $this->assertEquals($expected, $result);
7345
7346
                $string = 'ē';
7347
                $result = mb_strtoupper($string);
7348
                $expected = 'Ē';
7349
                $this->assertEquals($expected, $result);
7350
7351
                $string = 'ĕ';
7352
                $result = mb_strtoupper($string);
7353
                $expected = 'Ĕ';
7354
                $this->assertEquals($expected, $result);
7355
7356
                $string = 'ė';
7357
                $result = mb_strtoupper($string);
7358
                $expected = 'Ė';
7359
                $this->assertEquals($expected, $result);
7360
7361
                $string = 'ę';
7362
                $result = mb_strtoupper($string);
7363
                $expected = 'Ę';
7364
                $this->assertEquals($expected, $result);
7365
7366
                $string = 'ě';
7367
                $result = mb_strtoupper($string);
7368
                $expected = 'Ě';
7369
                $this->assertEquals($expected, $result);
7370
7371
                $string = 'ĝ';
7372
                $result = mb_strtoupper($string);
7373
                $expected = 'Ĝ';
7374
                $this->assertEquals($expected, $result);
7375
7376
                $string = 'ğ';
7377
                $result = mb_strtoupper($string);
7378
                $expected = 'Ğ';
7379
                $this->assertEquals($expected, $result);
7380
7381
                $string = 'ġ';
7382
                $result = mb_strtoupper($string);
7383
                $expected = 'Ġ';
7384
                $this->assertEquals($expected, $result);
7385
7386
                $string = 'ģ';
7387
                $result = mb_strtoupper($string);
7388
                $expected = 'Ģ';
7389
                $this->assertEquals($expected, $result);
7390
7391
                $string = 'ĥ';
7392
                $result = mb_strtoupper($string);
7393
                $expected = 'Ĥ';
7394
                $this->assertEquals($expected, $result);
7395
7396
                $string = 'ħ';
7397
                $result = mb_strtoupper($string);
7398
                $expected = 'Ħ';
7399
                $this->assertEquals($expected, $result);
7400
7401
                $string = 'ĩ';
7402
                $result = mb_strtoupper($string);
7403
                $expected = 'Ĩ';
7404
                $this->assertEquals($expected, $result);
7405
7406
                $string = 'ī';
7407
                $result = mb_strtoupper($string);
7408
                $expected = 'Ī';
7409
                $this->assertEquals($expected, $result);
7410
7411
                $string = 'ĭ';
7412
                $result = mb_strtoupper($string);
7413
                $expected = 'Ĭ';
7414
                $this->assertEquals($expected, $result);
7415
7416
                $string = 'į';
7417
                $result = mb_strtoupper($string);
7418
                $expected = 'Į';
7419
                $this->assertEquals($expected, $result);
7420
7421
                $string = 'ij';
7422
                $result = mb_strtoupper($string);
7423
                $expected = 'IJ';
7424
                $this->assertEquals($expected, $result);
7425
7426
                $string = 'ĵ';
7427
                $result = mb_strtoupper($string);
7428
                $expected = 'Ĵ';
7429
                $this->assertEquals($expected, $result);
7430
7431
                $string = 'ķ';
7432
                $result = mb_strtoupper($string);
7433
                $expected = 'Ķ';
7434
                $this->assertEquals($expected, $result);
7435
7436
                $string = 'ĺ';
7437
                $result = mb_strtoupper($string);
7438
                $expected = 'Ĺ';
7439
                $this->assertEquals($expected, $result);
7440
7441
                $string = 'ļ';
7442
                $result = mb_strtoupper($string);
7443
                $expected = 'Ļ';
7444
                $this->assertEquals($expected, $result);
7445
7446
                $string = 'ľ';
7447
                $result = mb_strtoupper($string);
7448
                $expected = 'Ľ';
7449
                $this->assertEquals($expected, $result);
7450
7451
                $string = 'ŀ';
7452
                $result = mb_strtoupper($string);
7453
                $expected = 'Ŀ';
7454
                $this->assertEquals($expected, $result);
7455
7456
                $string = 'ł';
7457
                $result = mb_strtoupper($string);
7458
                $expected = 'Ł';
7459
                $this->assertEquals($expected, $result);
7460
7461
                $string = 'ń';
7462
                $result = mb_strtoupper($string);
7463
                $expected = 'Ń';
7464
                $this->assertEquals($expected, $result);
7465
7466
                $string = 'ņ';
7467
                $result = mb_strtoupper($string);
7468
                $expected = 'Ņ';
7469
                $this->assertEquals($expected, $result);
7470
7471
                $string = 'ň';
7472
                $result = mb_strtoupper($string);
7473
                $expected = 'Ň';
7474
                $this->assertEquals($expected, $result);
7475
7476
                $string = 'ŋ';
7477
                $result = mb_strtoupper($string);
7478
                $expected = 'Ŋ';
7479
                $this->assertEquals($expected, $result);
7480
7481
                $string = 'ō';
7482
                $result = mb_strtoupper($string);
7483
                $expected = 'Ō';
7484
                $this->assertEquals($expected, $result);
7485
7486
                $string = 'ŏ';
7487
                $result = mb_strtoupper($string);
7488
                $expected = 'Ŏ';
7489
                $this->assertEquals($expected, $result);
7490
7491
                $string = 'ő';
7492
                $result = mb_strtoupper($string);
7493
                $expected = 'Ő';
7494
                $this->assertEquals($expected, $result);
7495
7496
                $string = 'œ';
7497
                $result = mb_strtoupper($string);
7498
                $expected = 'Œ';
7499
                $this->assertEquals($expected, $result);
7500
7501
                $string = 'ŕ';
7502
                $result = mb_strtoupper($string);
7503
                $expected = 'Ŕ';
7504
                $this->assertEquals($expected, $result);
7505
7506
                $string = 'ŗ';
7507
                $result = mb_strtoupper($string);
7508
                $expected = 'Ŗ';
7509
                $this->assertEquals($expected, $result);
7510
7511
                $string = 'ř';
7512
                $result = mb_strtoupper($string);
7513
                $expected = 'Ř';
7514
                $this->assertEquals($expected, $result);
7515
7516
                $string = 'ś';
7517
                $result = mb_strtoupper($string);
7518
                $expected = 'Ś';
7519
                $this->assertEquals($expected, $result);
7520
7521
                $string = 'ŝ';
7522
                $result = mb_strtoupper($string);
7523
                $expected = 'Ŝ';
7524
                $this->assertEquals($expected, $result);
7525
7526
                $string = 'ş';
7527
                $result = mb_strtoupper($string);
7528
                $expected = 'Ş';
7529
                $this->assertEquals($expected, $result);
7530
7531
                $string = 'š';
7532
                $result = mb_strtoupper($string);
7533
                $expected = 'Š';
7534
                $this->assertEquals($expected, $result);
7535
7536
                $string = 'ţ';
7537
                $result = mb_strtoupper($string);
7538
                $expected = 'Ţ';
7539
                $this->assertEquals($expected, $result);
7540
7541
                $string = 'ť';
7542
                $result = mb_strtoupper($string);
7543
                $expected = 'Ť';
7544
                $this->assertEquals($expected, $result);
7545
7546
                $string = 'ŧ';
7547
                $result = mb_strtoupper($string);
7548
                $expected = 'Ŧ';
7549
                $this->assertEquals($expected, $result);
7550
7551
                $string = 'ũ';
7552
                $result = mb_strtoupper($string);
7553
                $expected = 'Ũ';
7554
                $this->assertEquals($expected, $result);
7555
7556
                $string = 'ū';
7557
                $result = mb_strtoupper($string);
7558
                $expected = 'Ū';
7559
                $this->assertEquals($expected, $result);
7560
7561
                $string = 'ŭ';
7562
                $result = mb_strtoupper($string);
7563
                $expected = 'Ŭ';
7564
                $this->assertEquals($expected, $result);
7565
7566
                $string = 'ů';
7567
                $result = mb_strtoupper($string);
7568
                $expected = 'Ů';
7569
                $this->assertEquals($expected, $result);
7570
7571
                $string = 'ű';
7572
                $result = mb_strtoupper($string);
7573
                $expected = 'Ű';
7574
                $this->assertEquals($expected, $result);
7575
7576
                $string = 'ų';
7577
                $result = mb_strtoupper($string);
7578
                $expected = 'Ų';
7579
                $this->assertEquals($expected, $result);
7580
7581
                $string = 'ŵ';
7582
                $result = mb_strtoupper($string);
7583
                $expected = 'Ŵ';
7584
                $this->assertEquals($expected, $result);
7585
7586
                $string = 'ŷ';
7587
                $result = mb_strtoupper($string);
7588
                $expected = 'Ŷ';
7589
                $this->assertEquals($expected, $result);
7590
7591
                $string = 'ź';
7592
                $result = mb_strtoupper($string);
7593
                $expected = 'Ź';
7594
                $this->assertEquals($expected, $result);
7595
7596
                $string = 'ż';
7597
                $result = mb_strtoupper($string);
7598
                $expected = 'Ż';
7599
                $this->assertEquals($expected, $result);
7600
7601
                $string = 'ž';
7602
                $result = mb_strtoupper($string);
7603
                $expected = 'Ž';
7604
                $this->assertEquals($expected, $result);
7605
7606
                $string = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
7607
                $result = mb_strtoupper($string);
7608
                $expected = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
7609
                $this->assertEquals($expected, $result);
7610
7611
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
7612
                $result = mb_strtoupper($string);
7613
                $expected = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
7614
                $this->assertEquals($expected, $result);
7615
7616
                $string = 'ἀι';
7617
                $result = mb_strtoupper($string);
7618
                $expected = 'ἈΙ';
7619
                $this->assertEquals($expected, $result);
7620
7621
                $string = 'ԁԃԅԇԉԋԍԏԐԒ';
7622
                $result = mb_strtoupper($string);
7623
                $expected = 'ԀԂԄԆԈԊԌԎԐԒ';
7624
                $this->assertEquals($expected, $result);
7625
7626
                $string = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
7627
                $result = mb_strtoupper($string);
7628
                $expected = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
7629
                $this->assertEquals($expected, $result);
7630
7631
                $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
7632
                $result = mb_strtoupper($string);
7633
                $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
7634
                $this->assertEquals($expected, $result);
7635
7636
                $string = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
7637
                $result = mb_strtoupper($string);
7638
                $expected = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
7639
                $this->assertEquals($expected, $result);
7640
7641
                $string = 'ωkå';
7642
                $result = mb_strtoupper($string);
7643
                $expected = 'ΩKÅ';
7644
                $this->assertEquals($expected, $result);
7645
7646
                $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
7647
                $result = mb_strtoupper($string);
7648
                $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
7649
                $this->assertEquals($expected, $result);
7650
        }
7651
7652
/**
7653
 * testMultibyteStrtoupper method
7654
 *
7655
 * @return void
7656
 */
7657
        public function testMultibyteStrtoupper() {
7658
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
7659
                $result = Multibyte::strtoupper($string);
7660
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~';
7661
                $this->assertEquals($expected, $result);
7662
7663
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@';
7664
                $result = Multibyte::strtoupper($string);
7665
                $expected = '!"#$%&\'()*+,-./0123456789:;<=>?@';
7666
                $this->assertEquals($expected, $result);
7667
7668
                $string = 'à';
7669
                $result = Multibyte::strtoupper($string);
7670
                $expected = 'À';
7671
                $this->assertEquals($expected, $result);
7672
7673
                $string = 'á';
7674
                $result = Multibyte::strtoupper($string);
7675
                $expected = 'Á';
7676
                $this->assertEquals($expected, $result);
7677
7678
                $string = 'â';
7679
                $result = Multibyte::strtoupper($string);
7680
                $expected = 'Â';
7681
                $this->assertEquals($expected, $result);
7682
7683
                $string = 'ã';
7684
                $result = Multibyte::strtoupper($string);
7685
                $expected = 'Ã';
7686
                $this->assertEquals($expected, $result);
7687
7688
                $string = 'ä';
7689
                $result = Multibyte::strtoupper($string);
7690
                $expected = 'Ä';
7691
                $this->assertEquals($expected, $result);
7692
7693
                $string = 'å';
7694
                $result = Multibyte::strtoupper($string);
7695
                $expected = 'Å';
7696
                $this->assertEquals($expected, $result);
7697
7698
                $string = 'æ';
7699
                $result = Multibyte::strtoupper($string);
7700
                $expected = 'Æ';
7701
                $this->assertEquals($expected, $result);
7702
7703
                $string = 'ç';
7704
                $result = Multibyte::strtoupper($string);
7705
                $expected = 'Ç';
7706
                $this->assertEquals($expected, $result);
7707
7708
                $string = 'è';
7709
                $result = Multibyte::strtoupper($string);
7710
                $expected = 'È';
7711
                $this->assertEquals($expected, $result);
7712
7713
                $string = 'é';
7714
                $result = Multibyte::strtoupper($string);
7715
                $expected = 'É';
7716
                $this->assertEquals($expected, $result);
7717
7718
                $string = 'ê';
7719
                $result = Multibyte::strtoupper($string);
7720
                $expected = 'Ê';
7721
                $this->assertEquals($expected, $result);
7722
7723
                $string = 'ë';
7724
                $result = Multibyte::strtoupper($string);
7725
                $expected = 'Ë';
7726
                $this->assertEquals($expected, $result);
7727
7728
                $string = 'ì';
7729
                $result = Multibyte::strtoupper($string);
7730
                $expected = 'Ì';
7731
                $this->assertEquals($expected, $result);
7732
7733
                $string = 'í';
7734
                $result = Multibyte::strtoupper($string);
7735
                $expected = 'Í';
7736
                $this->assertEquals($expected, $result);
7737
7738
                $string = 'î';
7739
                $result = Multibyte::strtoupper($string);
7740
                $expected = 'Î';
7741
                $this->assertEquals($expected, $result);
7742
7743
                $string = 'ï';
7744
                $result = Multibyte::strtoupper($string);
7745
                $expected = 'Ï';
7746
                $this->assertEquals($expected, $result);
7747
7748
                $string = 'ð';
7749
                $result = Multibyte::strtoupper($string);
7750
                $expected = 'Ð';
7751
                $this->assertEquals($expected, $result);
7752
7753
                $string = 'ñ';
7754
                $result = Multibyte::strtoupper($string);
7755
                $expected = 'Ñ';
7756
                $this->assertEquals($expected, $result);
7757
7758
                $string = 'ò';
7759
                $result = Multibyte::strtoupper($string);
7760
                $expected = 'Ò';
7761
                $this->assertEquals($expected, $result);
7762
7763
                $string = 'ó';
7764
                $result = Multibyte::strtoupper($string);
7765
                $expected = 'Ó';
7766
                $this->assertEquals($expected, $result);
7767
7768
                $string = 'ô';
7769
                $result = Multibyte::strtoupper($string);
7770
                $expected = 'Ô';
7771
                $this->assertEquals($expected, $result);
7772
7773
                $string = 'õ';
7774
                $result = Multibyte::strtoupper($string);
7775
                $expected = 'Õ';
7776
                $this->assertEquals($expected, $result);
7777
7778
                $string = 'ö';
7779
                $result = Multibyte::strtoupper($string);
7780
                $expected = 'Ö';
7781
                $this->assertEquals($expected, $result);
7782
7783
                $string = 'ø';
7784
                $result = Multibyte::strtoupper($string);
7785
                $expected = 'Ø';
7786
                $this->assertEquals($expected, $result);
7787
7788
                $string = 'ù';
7789
                $result = Multibyte::strtoupper($string);
7790
                $expected = 'Ù';
7791
                $this->assertEquals($expected, $result);
7792
7793
                $string = 'ú';
7794
                $result = Multibyte::strtoupper($string);
7795
                $expected = 'Ú';
7796
                $this->assertEquals($expected, $result);
7797
7798
                $string = 'û';
7799
                $result = Multibyte::strtoupper($string);
7800
                $expected = 'Û';
7801
                $this->assertEquals($expected, $result);
7802
7803
                $string = 'ü';
7804
                $result = Multibyte::strtoupper($string);
7805
                $expected = 'Ü';
7806
                $this->assertEquals($expected, $result);
7807
7808
                $string = 'ý';
7809
                $result = Multibyte::strtoupper($string);
7810
                $expected = 'Ý';
7811
                $this->assertEquals($expected, $result);
7812
7813
                $string = 'þ';
7814
                $result = Multibyte::strtoupper($string);
7815
                $expected = 'Þ';
7816
                $this->assertEquals($expected, $result);
7817
7818
                $string = 'àáâãäåæçèéêëìíîïðñòóôõöøùúûüýþ';
7819
                $result = Multibyte::strtoupper($string);
7820
                $expected = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
7821
                $this->assertEquals($expected, $result);
7822
7823
                $string = 'ā';
7824
                $result = Multibyte::strtoupper($string);
7825
                $expected = 'Ā';
7826
                $this->assertEquals($expected, $result);
7827
7828
                $string = 'ă';
7829
                $result = Multibyte::strtoupper($string);
7830
                $expected = 'Ă';
7831
                $this->assertEquals($expected, $result);
7832
7833
                $string = 'ą';
7834
                $result = Multibyte::strtoupper($string);
7835
                $expected = 'Ą';
7836
                $this->assertEquals($expected, $result);
7837
7838
                $string = 'ć';
7839
                $result = Multibyte::strtoupper($string);
7840
                $expected = 'Ć';
7841
                $this->assertEquals($expected, $result);
7842
7843
                $string = 'ĉ';
7844
                $result = Multibyte::strtoupper($string);
7845
                $expected = 'Ĉ';
7846
                $this->assertEquals($expected, $result);
7847
7848
                $string = 'ċ';
7849
                $result = Multibyte::strtoupper($string);
7850
                $expected = 'Ċ';
7851
                $this->assertEquals($expected, $result);
7852
7853
                $string = 'č';
7854
                $result = Multibyte::strtoupper($string);
7855
                $expected = 'Č';
7856
                $this->assertEquals($expected, $result);
7857
7858
                $string = 'ď';
7859
                $result = Multibyte::strtoupper($string);
7860
                $expected = 'Ď';
7861
                $this->assertEquals($expected, $result);
7862
7863
                $string = 'đ';
7864
                $result = Multibyte::strtoupper($string);
7865
                $expected = 'Đ';
7866
                $this->assertEquals($expected, $result);
7867
7868
                $string = 'ē';
7869
                $result = Multibyte::strtoupper($string);
7870
                $expected = 'Ē';
7871
                $this->assertEquals($expected, $result);
7872
7873
                $string = 'ĕ';
7874
                $result = Multibyte::strtoupper($string);
7875
                $expected = 'Ĕ';
7876
                $this->assertEquals($expected, $result);
7877
7878
                $string = 'ė';
7879
                $result = Multibyte::strtoupper($string);
7880
                $expected = 'Ė';
7881
                $this->assertEquals($expected, $result);
7882
7883
                $string = 'ę';
7884
                $result = Multibyte::strtoupper($string);
7885
                $expected = 'Ę';
7886
                $this->assertEquals($expected, $result);
7887
7888
                $string = 'ě';
7889
                $result = Multibyte::strtoupper($string);
7890
                $expected = 'Ě';
7891
                $this->assertEquals($expected, $result);
7892
7893
                $string = 'ĝ';
7894
                $result = Multibyte::strtoupper($string);
7895
                $expected = 'Ĝ';
7896
                $this->assertEquals($expected, $result);
7897
7898
                $string = 'ğ';
7899
                $result = Multibyte::strtoupper($string);
7900
                $expected = 'Ğ';
7901
                $this->assertEquals($expected, $result);
7902
7903
                $string = 'ġ';
7904
                $result = Multibyte::strtoupper($string);
7905
                $expected = 'Ġ';
7906
                $this->assertEquals($expected, $result);
7907
7908
                $string = 'ģ';
7909
                $result = Multibyte::strtoupper($string);
7910
                $expected = 'Ģ';
7911
                $this->assertEquals($expected, $result);
7912
7913
                $string = 'ĥ';
7914
                $result = Multibyte::strtoupper($string);
7915
                $expected = 'Ĥ';
7916
                $this->assertEquals($expected, $result);
7917
7918
                $string = 'ħ';
7919
                $result = Multibyte::strtoupper($string);
7920
                $expected = 'Ħ';
7921
                $this->assertEquals($expected, $result);
7922
7923
                $string = 'ĩ';
7924
                $result = Multibyte::strtoupper($string);
7925
                $expected = 'Ĩ';
7926
                $this->assertEquals($expected, $result);
7927
7928
                $string = 'ī';
7929
                $result = Multibyte::strtoupper($string);
7930
                $expected = 'Ī';
7931
                $this->assertEquals($expected, $result);
7932
7933
                $string = 'ĭ';
7934
                $result = Multibyte::strtoupper($string);
7935
                $expected = 'Ĭ';
7936
                $this->assertEquals($expected, $result);
7937
7938
                $string = 'į';
7939
                $result = Multibyte::strtoupper($string);
7940
                $expected = 'Į';
7941
                $this->assertEquals($expected, $result);
7942
7943
                $string = 'ij';
7944
                $result = Multibyte::strtoupper($string);
7945
                $expected = 'IJ';
7946
                $this->assertEquals($expected, $result);
7947
7948
                $string = 'ĵ';
7949
                $result = Multibyte::strtoupper($string);
7950
                $expected = 'Ĵ';
7951
                $this->assertEquals($expected, $result);
7952
7953
                $string = 'ķ';
7954
                $result = Multibyte::strtoupper($string);
7955
                $expected = 'Ķ';
7956
                $this->assertEquals($expected, $result);
7957
7958
                $string = 'ĺ';
7959
                $result = Multibyte::strtoupper($string);
7960
                $expected = 'Ĺ';
7961
                $this->assertEquals($expected, $result);
7962
7963
                $string = 'ļ';
7964
                $result = Multibyte::strtoupper($string);
7965
                $expected = 'Ļ';
7966
                $this->assertEquals($expected, $result);
7967
7968
                $string = 'ľ';
7969
                $result = Multibyte::strtoupper($string);
7970
                $expected = 'Ľ';
7971
                $this->assertEquals($expected, $result);
7972
7973
                $string = 'ŀ';
7974
                $result = Multibyte::strtoupper($string);
7975
                $expected = 'Ŀ';
7976
                $this->assertEquals($expected, $result);
7977
7978
                $string = 'ł';
7979
                $result = Multibyte::strtoupper($string);
7980
                $expected = 'Ł';
7981
                $this->assertEquals($expected, $result);
7982
7983
                $string = 'ń';
7984
                $result = Multibyte::strtoupper($string);
7985
                $expected = 'Ń';
7986
                $this->assertEquals($expected, $result);
7987
7988
                $string = 'ņ';
7989
                $result = Multibyte::strtoupper($string);
7990
                $expected = 'Ņ';
7991
                $this->assertEquals($expected, $result);
7992
7993
                $string = 'ň';
7994
                $result = Multibyte::strtoupper($string);
7995
                $expected = 'Ň';
7996
                $this->assertEquals($expected, $result);
7997
7998
                $string = 'ŋ';
7999
                $result = Multibyte::strtoupper($string);
8000
                $expected = 'Ŋ';
8001
                $this->assertEquals($expected, $result);
8002
8003
                $string = 'ō';
8004
                $result = Multibyte::strtoupper($string);
8005
                $expected = 'Ō';
8006
                $this->assertEquals($expected, $result);
8007
8008
                $string = 'ŏ';
8009
                $result = Multibyte::strtoupper($string);
8010
                $expected = 'Ŏ';
8011
                $this->assertEquals($expected, $result);
8012
8013
                $string = 'ő';
8014
                $result = Multibyte::strtoupper($string);
8015
                $expected = 'Ő';
8016
                $this->assertEquals($expected, $result);
8017
8018
                $string = 'œ';
8019
                $result = Multibyte::strtoupper($string);
8020
                $expected = 'Œ';
8021
                $this->assertEquals($expected, $result);
8022
8023
                $string = 'ŕ';
8024
                $result = Multibyte::strtoupper($string);
8025
                $expected = 'Ŕ';
8026
                $this->assertEquals($expected, $result);
8027
8028
                $string = 'ŗ';
8029
                $result = Multibyte::strtoupper($string);
8030
                $expected = 'Ŗ';
8031
                $this->assertEquals($expected, $result);
8032
8033
                $string = 'ř';
8034
                $result = Multibyte::strtoupper($string);
8035
                $expected = 'Ř';
8036
                $this->assertEquals($expected, $result);
8037
8038
                $string = 'ś';
8039
                $result = Multibyte::strtoupper($string);
8040
                $expected = 'Ś';
8041
                $this->assertEquals($expected, $result);
8042
8043
                $string = 'ŝ';
8044
                $result = Multibyte::strtoupper($string);
8045
                $expected = 'Ŝ';
8046
                $this->assertEquals($expected, $result);
8047
8048
                $string = 'ş';
8049
                $result = Multibyte::strtoupper($string);
8050
                $expected = 'Ş';
8051
                $this->assertEquals($expected, $result);
8052
8053
                $string = 'š';
8054
                $result = Multibyte::strtoupper($string);
8055
                $expected = 'Š';
8056
                $this->assertEquals($expected, $result);
8057
8058
                $string = 'ţ';
8059
                $result = Multibyte::strtoupper($string);
8060
                $expected = 'Ţ';
8061
                $this->assertEquals($expected, $result);
8062
8063
                $string = 'ť';
8064
                $result = Multibyte::strtoupper($string);
8065
                $expected = 'Ť';
8066
                $this->assertEquals($expected, $result);
8067
8068
                $string = 'ŧ';
8069
                $result = Multibyte::strtoupper($string);
8070
                $expected = 'Ŧ';
8071
                $this->assertEquals($expected, $result);
8072
8073
                $string = 'ũ';
8074
                $result = Multibyte::strtoupper($string);
8075
                $expected = 'Ũ';
8076
                $this->assertEquals($expected, $result);
8077
8078
                $string = 'ū';
8079
                $result = Multibyte::strtoupper($string);
8080
                $expected = 'Ū';
8081
                $this->assertEquals($expected, $result);
8082
8083
                $string = 'ŭ';
8084
                $result = Multibyte::strtoupper($string);
8085
                $expected = 'Ŭ';
8086
                $this->assertEquals($expected, $result);
8087
8088
                $string = 'ů';
8089
                $result = Multibyte::strtoupper($string);
8090
                $expected = 'Ů';
8091
                $this->assertEquals($expected, $result);
8092
8093
                $string = 'ű';
8094
                $result = Multibyte::strtoupper($string);
8095
                $expected = 'Ű';
8096
                $this->assertEquals($expected, $result);
8097
8098
                $string = 'ų';
8099
                $result = Multibyte::strtoupper($string);
8100
                $expected = 'Ų';
8101
                $this->assertEquals($expected, $result);
8102
8103
                $string = 'ŵ';
8104
                $result = Multibyte::strtoupper($string);
8105
                $expected = 'Ŵ';
8106
                $this->assertEquals($expected, $result);
8107
8108
                $string = 'ŷ';
8109
                $result = Multibyte::strtoupper($string);
8110
                $expected = 'Ŷ';
8111
                $this->assertEquals($expected, $result);
8112
8113
                $string = 'ź';
8114
                $result = Multibyte::strtoupper($string);
8115
                $expected = 'Ź';
8116
                $this->assertEquals($expected, $result);
8117
8118
                $string = 'ż';
8119
                $result = Multibyte::strtoupper($string);
8120
                $expected = 'Ż';
8121
                $this->assertEquals($expected, $result);
8122
8123
                $string = 'ž';
8124
                $result = Multibyte::strtoupper($string);
8125
                $expected = 'Ž';
8126
                $this->assertEquals($expected, $result);
8127
8128
                $string = 'āăąćĉċčďđēĕėęěĝğġģĥħĩīĭįijĵķĺļľŀłńņňŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž';
8129
                $result = Multibyte::strtoupper($string);
8130
                $expected = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
8131
                $this->assertEquals($expected, $result);
8132
8133
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8134
                $result = Multibyte::strtoupper($string);
8135
                $expected = 'ĤĒĹĻŎ, ŴŐŘĻĎ!';
8136
                $this->assertEquals($expected, $result);
8137
8138
                $string = 'ἀι';
8139
                $result = mb_strtoupper($string);
8140
                $expected = 'ἈΙ';
8141
                $this->assertEquals($expected, $result);
8142
8143
                $string = 'ἀι';
8144
                $result = Multibyte::strtoupper($string);
8145
                $expected = 'ἈΙ';
8146
                $this->assertEquals($expected, $result);
8147
8148
                $string = 'ԁԃԅԇԉԋԍԏԐԒ';
8149
                $result = Multibyte::strtoupper($string);
8150
                $expected = 'ԀԂԄԆԈԊԌԎԐԒ';
8151
                $this->assertEquals($expected, $result);
8152
8153
                $string = 'աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև';
8154
                $result = Multibyte::strtoupper($string);
8155
                $expected = 'ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖև';
8156
                $this->assertEquals($expected, $result);
8157
8158
                $string = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
8159
                $result = Multibyte::strtoupper($string);
8160
                $expected = 'ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅ';
8161
                $this->assertEquals($expected, $result);
8162
8163
                $string = 'ḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕẖẗẘẙẚạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹ';
8164
                $result = Multibyte::strtoupper($string);
8165
                $expected = 'ḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẖẗẘẙẚẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸ';
8166
                $this->assertEquals($expected, $result);
8167
8168
                $string = 'ωkåⅎ';
8169
                $result = Multibyte::strtoupper($string);
8170
                $expected = 'ΩKÅℲ';
8171
                $this->assertEquals($expected, $result);
8172
8173
                $string = 'ωkå';
8174
                $result = Multibyte::strtoupper($string);
8175
                $expected = 'ΩKÅ';
8176
                $this->assertEquals($expected, $result);
8177
8178
                $string = 'ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↄ';
8179
                $result = Multibyte::strtoupper($string);
8180
                $expected = 'ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯↃ';
8181
                $this->assertEquals($expected, $result);
8182
8183
                $string = 'ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ';
8184
                $result = Multibyte::strtoupper($string);
8185
                $expected = 'ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏ';
8186
                $this->assertEquals($expected, $result);
8187
8188
                $string = 'ⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞ';
8189
                $result = Multibyte::strtoupper($string);
8190
                $expected = 'ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮ';
8191
                $this->assertEquals($expected, $result);
8192
8193
                $string = 'ⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣ';
8194
                $result = Multibyte::strtoupper($string);
8195
                $expected = 'ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢ';
8196
                $this->assertEquals($expected, $result);
8197
8198
                $string = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
8199
                $result = Multibyte::strtoupper($string);
8200
                $expected = 'fffiflffifflſtstﬓﬔﬕﬖﬗ';
8201
                $this->assertEquals($expected, $result);
8202
        }
8203
8204
/**
8205
 * testUsingMbSubstrCount method
8206
 *
8207
 * @return void
8208
 */
8209
        public function testUsingMbSubstrCount() {
8210
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
8211
                $find = 'F';
8212
                $result = mb_substr_count($string, $find);
8213
                $expected = 1;
8214
                $this->assertEquals($expected, $result);
8215
8216
                $string = 'ABCDEFGHIJKLMNOPQFRSFTUVWXYZ0F12345F6789';
8217
                $find = 'F';
8218
                $result = mb_substr_count($string, $find);
8219
                $expected = 5;
8220
                $this->assertEquals($expected, $result);
8221
8222
                $string = 'ÀÁÂÃÄÅÆÇÈÉÅÊËÌÍÎÏÐÑÒÓÔÅÕÖØÅÙÚÛÅÜÝÞ';
8223
                $find = 'Å';
8224
                $result = mb_substr_count($string, $find);
8225
                $expected = 5;
8226
                $this->assertEquals($expected, $result);
8227
8228
                $string = 'ÀÁÙÚÂÃÄÅÆÇÈÙÚÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞÙÚ';
8229
                $find = 'ÙÚ';
8230
                $result = mb_substr_count($string, $find);
8231
                $expected = 4;
8232
                $this->assertEquals($expected, $result);
8233
8234
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊÅËÌÍÎÏÐÑÒÓÔÕÅÖØÅÙÚÅÛÜÅÝÞÅ';
8235
                $find = 'Å';
8236
                $result = mb_substr_count($string, $find);
8237
                $expected = 7;
8238
                $this->assertEquals($expected, $result);
8239
8240
                $string = 'ĊĀĂĄĆĈĊČĎĐĒĔĖĊĘĚĜĞĠĢĤĦĨĪĬĮĊIJĴĶĹĻĽĿŁŃŅŇŊŌĊŎŐŒŔŖŘŚŜŞŠŢĊŤŦŨŪŬŮŰĊŲŴŶŹŻŽ';
8241
                $find = 'Ċ';
8242
                $result = mb_substr_count($string, $find);
8243
                $expected = 7;
8244
                $this->assertEquals($expected, $result);
8245
8246
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĊĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅĊŇŊŌŎŐŒŔŖĊŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
8247
                $find = 'Ċ';
8248
                $result = mb_substr_count($string, $find);
8249
                $expected = 5;
8250
                $this->assertEquals($expected, $result);
8251
8252
                $string = '!"#$%&\'()*+,-./012F34567F89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiFjklmnopqFrstuvwFxyz{|}~';
8253
                $find = 'F';
8254
                $result = mb_substr_count($string, $find);
8255
                $expected = 6;
8256
                $this->assertEquals($expected, $result);
8257
8258
                $string = '¡¢£¤¥µ¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁµÂõÄÅÆǵÈ';
8259
                $find = 'µ';
8260
                $result = mb_substr_count($string, $find);
8261
                $expected = 5;
8262
                $this->assertEquals($expected, $result);
8263
8264
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôÕÖõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉÕÖĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝÕÖĞğĠġĢģĤĥĦÕÖħĨĩĪīĬ';
8265
                $find = 'ÕÖ';
8266
                $result = mb_substr_count($string, $find);
8267
                $expected = 5;
8268
                $this->assertEquals($expected, $result);
8269
8270
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōĵĶķĸĹŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšĵĶķĸĹŢţŤťŦŧŨũŪūŬŭŮůŰűŲųĵĶķĸĹŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
8271
                $find = 'ĵĶķĸĹ';
8272
                $result = mb_substr_count($string, $find);
8273
                $expected = 4;
8274
                $this->assertEquals($expected, $result);
8275
8276
                $string = 'ƑƒƓƔƕƖƸƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJƸNjnjǍǎǏǐǑǒǓƸǔǕǖǗǘǙǚƸǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8277
                $find = 'Ƹ';
8278
                $result = mb_substr_count($string, $find);
8279
                $expected = 5;
8280
                $this->assertEquals($expected, $result);
8281
8282
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƹƠơƢƣƤƥƦƧƨƩƹƪƫƬƭƮƯưƱƲƳƴƹƵƶƷƸƹƺƻƼƽƾƿǀǁǂƹǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8283
                $find = 'ƹ';
8284
                $result = mb_substr_count($string, $find);
8285
                $expected = 5;
8286
                $this->assertEquals($expected, $result);
8287
8288
                $string = 'əɚɛɜɝɞʀɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʀʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʀʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʀʻʼ';
8289
                $find = 'ʀ';
8290
                $result = mb_substr_count($string, $find);
8291
                $expected = 5;
8292
                $this->assertEquals($expected, $result);
8293
8294
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЇЎЏАБВГДЕЖЗИЙКЛ';
8295
                $find = 'Ї';
8296
                $result = mb_substr_count($string, $find);
8297
                $expected = 2;
8298
                $this->assertEquals($expected, $result);
8299
8300
                $string = 'МНОПРСРТУФХЦЧШЩЪЫЬРЭЮЯабРвгдежзийклРмнопрстуфхцчшщъыь';
8301
                $find = 'Р';
8302
                $result = mb_substr_count($string, $find);
8303
                $expected = 5;
8304
                $this->assertEquals($expected, $result);
8305
8306
                $string = 'МНОПРСрТУФХЦЧШЩЪЫрЬЭЮЯабвгдежзийклмнопррстуфхцчшщъыь';
8307
                $find = 'р';
8308
                $result = mb_substr_count($string, $find);
8309
                $expected = 4;
8310
                $this->assertEquals($expected, $result);
8311
8312
                $string = 'فنقكلنمنهونىينًٌٍَُ';
8313
                $find = 'ن';
8314
                $result = mb_substr_count($string, $find);
8315
                $expected = 5;
8316
                $this->assertEquals($expected, $result);
8317
8318
                $string = '✰✱✲✳✿✴✵✶✷✸✿✹✺✻✼✽✾✿❀❁❂❃❄❅❆✿❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
8319
                $find = '';
8320
                $result = mb_substr_count($string, $find);
8321
                $expected = 4;
8322
                $this->assertEquals($expected, $result);
8323
8324
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺐⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺐⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⺐⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
8325
                $find = '';
8326
                $result = mb_substr_count($string, $find);
8327
                $expected = 4;
8328
                $this->assertEquals($expected, $result);
8329
8330
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽤⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽤⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
8331
                $find = '';
8332
                $result = mb_substr_count($string, $find);
8333
                $expected = 3;
8334
                $this->assertEquals($expected, $result);
8335
8336
                $string = '눡눢눣눤눥눦눺눻눼눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕눺눻눼뉖뉗뉘뉙뉚뉛뉜뉝눺눻눼뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
8337
                $find = '눺눻눼';
8338
                $result = mb_substr_count($string, $find);
8339
                $expected = 4;
8340
                $this->assertEquals($expected, $result);
8341
8342
                $string = 'ﺞﺟﺠﺡﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺞﺟﺠﺡﺆﺇﺞﺟﺠﺡﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
8343
                $find = 'ﺞﺟﺠﺡ';
8344
                $result = mb_substr_count($string, $find);
8345
                $expected = 4;
8346
                $this->assertEquals($expected, $result);
8347
8348
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﻞﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻞﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻞﻸﻹﻺﻞﻻﻼ';
8349
                $find = '';
8350
                $result = mb_substr_count($string, $find);
8351
                $expected = 5;
8352
                $this->assertEquals($expected, $result);
8353
8354
                $string = 'abcdkefghijklmnopqrstuvwxkyz';
8355
                $find = '';
8356
                $result = mb_substr_count($string, $find);
8357
                $expected = 3;
8358
                $this->assertEquals($expected, $result);
8359
8360
                $string = 'abklmcdefghijklmnopqrstuvklmwxyz';
8361
                $find = 'klm';
8362
                $result = mb_substr_count($string, $find);
8363
                $expected = 3;
8364
                $this->assertEquals($expected, $result);
8365
8366
                $string = 'abcdppefghijklmnoppqrstuvwxyz';
8367
                $find = 'ppe';
8368
                $result = mb_substr_count($string, $find);
8369
                $expected = 1;
8370
                $this->assertEquals($expected, $result);
8371
8372
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
8373
                $find = '';
8374
                $result = mb_substr_count($string, $find);
8375
                $expected = 1;
8376
                $this->assertEquals($expected, $result);
8377
8378
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
8379
                $find = '';
8380
                $result = mb_substr_count($string, $find);
8381
                $expected = 1;
8382
                $this->assertEquals($expected, $result);
8383
8384
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8385
                $find = 'ő';
8386
                $result = mb_substr_count($string, $find);
8387
                $expected = 1;
8388
                $this->assertEquals($expected, $result);
8389
8390
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8391
                $find = 'ĺļ';
8392
                $result = mb_substr_count($string, $find);
8393
                $expected = 1;
8394
                $this->assertEquals($expected, $result);
8395
8396
                $string = 'Hello, World!';
8397
                $find = 'o';
8398
                $result = mb_substr_count($string, $find);
8399
                $expected = 2;
8400
                $this->assertEquals($expected, $result);
8401
8402
                $string = 'Hello, World!';
8403
                $find = 'rl';
8404
                $result = mb_substr_count($string, $find);
8405
                $expected = 1;
8406
                $this->assertEquals($expected, $result);
8407
8408
                $string = 'čini';
8409
                $find = 'n';
8410
                $result = mb_substr_count($string, $find);
8411
                $expected = 1;
8412
                $this->assertEquals($expected, $result);
8413
8414
                $string = 'ničiničiini';
8415
                $find = 'n';
8416
                $result = mb_substr_count($string, $find);
8417
                $expected = 3;
8418
                $this->assertEquals($expected, $result);
8419
8420
                $string = 'moći';
8421
                $find = 'ć';
8422
                $result = mb_substr_count($string, $find);
8423
                $expected = 1;
8424
                $this->assertEquals($expected, $result);
8425
8426
                $string = 'moćimoćimoćmćioći';
8427
                $find = 'ći';
8428
                $result = mb_substr_count($string, $find);
8429
                $expected = 4;
8430
                $this->assertEquals($expected, $result);
8431
8432
                $string = 'državni';
8433
                $find = 'ž';
8434
                $result = mb_substr_count($string, $find);
8435
                $expected = 1;
8436
                $this->assertEquals($expected, $result);
8437
8438
                $string = '把百度设为首页';
8439
                $find = '';
8440
                $result = mb_substr_count($string, $find);
8441
                $expected = 1;
8442
                $this->assertEquals($expected, $result);
8443
8444
                $string = '一二三周永龍';
8445
                $find = '';
8446
                $result = mb_substr_count($string, $find);
8447
                $expected = 1;
8448
                $this->assertEquals($expected, $result);
8449
8450
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8451
                $find = 'H';
8452
                $result = mb_substr_count($string, $find);
8453
                $expected = 0;
8454
                $this->assertEquals($expected, $result);
8455
        }
8456
8457
/**
8458
 * testMultibyteSubstrCount method
8459
 *
8460
 * @return void
8461
 */
8462
        public function testMultibyteSubstrCount() {
8463
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
8464
                $find = 'F';
8465
                $result = Multibyte::substrCount($string, $find);
8466
                $expected = 1;
8467
                $this->assertEquals($expected, $result);
8468
8469
                $string = 'ABCDEFGHIJKLMNOPQFRSFTUVWXYZ0F12345F6789';
8470
                $find = 'F';
8471
                $result = Multibyte::substrCount($string, $find);
8472
                $expected = 5;
8473
                $this->assertEquals($expected, $result);
8474
8475
                $string = 'ÀÁÂÃÄÅÆÇÈÉÅÊËÌÍÎÏÐÑÒÓÔÅÕÖØÅÙÚÛÅÜÝÞ';
8476
                $find = 'Å';
8477
                $result = Multibyte::substrCount($string, $find);
8478
                $expected = 5;
8479
                $this->assertEquals($expected, $result);
8480
8481
                $string = 'ÀÁÙÚÂÃÄÅÆÇÈÙÚÉÊËÌÍÎÏÐÑÒÓÔÕÖØÅÙÚÛÜÝÞÙÚ';
8482
                $find = 'ÙÚ';
8483
                $result = Multibyte::substrCount($string, $find);
8484
                $expected = 4;
8485
                $this->assertEquals($expected, $result);
8486
8487
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊÅËÌÍÎÏÐÑÒÓÔÕÅÖØÅÙÚÅÛÜÅÝÞÅ';
8488
                $find = 'Å';
8489
                $result = Multibyte::substrCount($string, $find);
8490
                $expected = 7;
8491
                $this->assertEquals($expected, $result);
8492
8493
                $string = 'ĊĀĂĄĆĈĊČĎĐĒĔĖĊĘĚĜĞĠĢĤĦĨĪĬĮĊIJĴĶĹĻĽĿŁŃŅŇŊŌĊŎŐŒŔŖŘŚŜŞŠŢĊŤŦŨŪŬŮŰĊŲŴŶŹŻŽ';
8494
                $find = 'Ċ';
8495
                $result = Multibyte::substrCount($string, $find);
8496
                $expected = 7;
8497
                $this->assertEquals($expected, $result);
8498
8499
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĊĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁĊŃŅĊŇŊŌŎŐŒŔŖĊŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
8500
                $find = 'Ċ';
8501
                $result = Multibyte::substrCount($string, $find);
8502
                $expected = 5;
8503
                $this->assertEquals($expected, $result);
8504
8505
                $string = '!"#$%&\'()*+,-./012F34567F89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghiFjklmnopqFrstuvwFxyz{|}~';
8506
                $find = 'F';
8507
                $result = Multibyte::substrCount($string, $find);
8508
                $expected = 6;
8509
                $this->assertEquals($expected, $result);
8510
8511
                $string = '¡¢£¤¥µ¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁµÂõÄÅÆǵÈ';
8512
                $find = 'µ';
8513
                $result = Multibyte::substrCount($string, $find);
8514
                $expected = 5;
8515
                $this->assertEquals($expected, $result);
8516
8517
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôÕÖõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉÕÖĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝÕÖĞğĠġĢģĤĥĦÕÖħĨĩĪīĬ';
8518
                $find = 'ÕÖ';
8519
                $result = Multibyte::substrCount($string, $find);
8520
                $expected = 5;
8521
                $this->assertEquals($expected, $result);
8522
8523
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōĵĶķĸĹŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšĵĶķĸĹŢţŤťŦŧŨũŪūŬŭŮůŰűŲųĵĶķĸĹŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
8524
                $find = 'ĵĶķĸĹ';
8525
                $result = Multibyte::substrCount($string, $find);
8526
                $expected = 4;
8527
                $this->assertEquals($expected, $result);
8528
8529
                $string = 'ƑƒƓƔƕƖƸƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJƸNjnjǍǎǏǐǑǒǓƸǔǕǖǗǘǙǚƸǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8530
                $find = 'Ƹ';
8531
                $result = Multibyte::substrCount($string, $find);
8532
                $expected = 5;
8533
                $this->assertEquals($expected, $result);
8534
8535
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƹƠơƢƣƤƥƦƧƨƩƹƪƫƬƭƮƯưƱƲƳƴƹƵƶƷƸƹƺƻƼƽƾƿǀǁǂƹǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8536
                $find = 'ƹ';
8537
                $result = Multibyte::substrCount($string, $find);
8538
                $expected = 5;
8539
                $this->assertEquals($expected, $result);
8540
8541
                $string = 'əɚɛɜɝɞʀɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʀʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʀʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʀʻʼ';
8542
                $find = 'ʀ';
8543
                $result = Multibyte::substrCount($string, $find);
8544
                $expected = 5;
8545
                $this->assertEquals($expected, $result);
8546
8547
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЇЎЏАБВГДЕЖЗИЙКЛ';
8548
                $find = 'Ї';
8549
                $result = Multibyte::substrCount($string, $find);
8550
                $expected = 2;
8551
                $this->assertEquals($expected, $result);
8552
8553
                $string = 'МНОПРСРТУФХЦЧШЩЪЫЬРЭЮЯабРвгдежзийклРмнопрстуфхцчшщъыь';
8554
                $find = 'Р';
8555
                $result = Multibyte::substrCount($string, $find);
8556
                $expected = 5;
8557
                $this->assertEquals($expected, $result);
8558
8559
                $string = 'МНОПРСрТУФХЦЧШЩЪЫрЬЭЮЯабвгдежзийклмнопррстуфхцчшщъыь';
8560
                $find = 'р';
8561
                $result = Multibyte::substrCount($string, $find);
8562
                $expected = 4;
8563
                $this->assertEquals($expected, $result);
8564
8565
                $string = 'فنقكلنمنهونىينًٌٍَُ';
8566
                $find = 'ن';
8567
                $result = Multibyte::substrCount($string, $find);
8568
                $expected = 5;
8569
                $this->assertEquals($expected, $result);
8570
8571
                $string = '✰✱✲✳✿✴✵✶✷✸✿✹✺✻✼✽✾✿❀❁❂❃❄❅❆✿❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
8572
                $find = '';
8573
                $result = Multibyte::substrCount($string, $find);
8574
                $expected = 4;
8575
                $this->assertEquals($expected, $result);
8576
8577
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺐⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺐⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⺐⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
8578
                $find = '';
8579
                $result = Multibyte::substrCount($string, $find);
8580
                $expected = 4;
8581
                $this->assertEquals($expected, $result);
8582
8583
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽤⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽤⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
8584
                $find = '';
8585
                $result = Multibyte::substrCount($string, $find);
8586
                $expected = 3;
8587
                $this->assertEquals($expected, $result);
8588
8589
                $string = '눡눢눣눤눥눦눺눻눼눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕눺눻눼뉖뉗뉘뉙뉚뉛뉜뉝눺눻눼뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
8590
                $find = '눺눻눼';
8591
                $result = Multibyte::substrCount($string, $find);
8592
                $expected = 4;
8593
                $this->assertEquals($expected, $result);
8594
8595
                $string = 'ﺞﺟﺠﺡﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺞﺟﺠﺡﺆﺇﺞﺟﺠﺡﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
8596
                $find = 'ﺞﺟﺠﺡ';
8597
                $result = Multibyte::substrCount($string, $find);
8598
                $expected = 4;
8599
                $this->assertEquals($expected, $result);
8600
8601
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﻞﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻞﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻞﻸﻹﻺﻞﻻﻼ';
8602
                $find = '';
8603
                $result = Multibyte::substrCount($string, $find);
8604
                $expected = 5;
8605
                $this->assertEquals($expected, $result);
8606
8607
                $string = 'abcdkefghijklmnopqrstuvwxkyz';
8608
                $find = '';
8609
                $result = Multibyte::substrCount($string, $find);
8610
                $expected = 3;
8611
                $this->assertEquals($expected, $result);
8612
8613
                $string = 'abklmcdefghijklmnopqrstuvklmwxyz';
8614
                $find = 'klm';
8615
                $result = Multibyte::substrCount($string, $find);
8616
                $expected = 3;
8617
                $this->assertEquals($expected, $result);
8618
8619
                $string = 'abcdppefghijklmnoppqrstuvwxyz';
8620
                $find = 'ppe';
8621
                $result = Multibyte::substrCount($string, $find);
8622
                $expected = 1;
8623
                $this->assertEquals($expected, $result);
8624
8625
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
8626
                $find = '';
8627
                $result = Multibyte::substrCount($string, $find);
8628
                $expected = 1;
8629
                $this->assertEquals($expected, $result);
8630
8631
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
8632
                $find = '';
8633
                $result = Multibyte::substrCount($string, $find);
8634
                $expected = 1;
8635
                $this->assertEquals($expected, $result);
8636
8637
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8638
                $find = 'ő';
8639
                $result = Multibyte::substrCount($string, $find);
8640
                $expected = 1;
8641
                $this->assertEquals($expected, $result);
8642
8643
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8644
                $find = 'ĺļ';
8645
                $result = Multibyte::substrCount($string, $find);
8646
                $expected = 1;
8647
                $this->assertEquals($expected, $result);
8648
8649
                $string = 'Hello, World!';
8650
                $find = 'o';
8651
                $result = Multibyte::substrCount($string, $find);
8652
                $expected = 2;
8653
                $this->assertEquals($expected, $result);
8654
8655
                $string = 'Hello, World!';
8656
                $find = 'rl';
8657
                $result = Multibyte::substrCount($string, $find);
8658
                $expected = 1;
8659
                $this->assertEquals($expected, $result);
8660
8661
                $string = 'čini';
8662
                $find = 'n';
8663
                $result = Multibyte::substrCount($string, $find);
8664
                $expected = 1;
8665
                $this->assertEquals($expected, $result);
8666
8667
                $string = 'ničiničiini';
8668
                $find = 'n';
8669
                $result = Multibyte::substrCount($string, $find);
8670
                $expected = 3;
8671
                $this->assertEquals($expected, $result);
8672
8673
                $string = 'moći';
8674
                $find = 'ć';
8675
                $result = Multibyte::substrCount($string, $find);
8676
                $expected = 1;
8677
                $this->assertEquals($expected, $result);
8678
8679
                $string = 'moćimoćimoćmćioći';
8680
                $find = 'ći';
8681
                $result = Multibyte::substrCount($string, $find);
8682
                $expected = 4;
8683
                $this->assertEquals($expected, $result);
8684
8685
                $string = 'državni';
8686
                $find = 'ž';
8687
                $result = Multibyte::substrCount($string, $find);
8688
                $expected = 1;
8689
                $this->assertEquals($expected, $result);
8690
8691
                $string = '把百度设为首页';
8692
                $find = '';
8693
                $result = Multibyte::substrCount($string, $find);
8694
                $expected = 1;
8695
                $this->assertEquals($expected, $result);
8696
8697
                $string = '一二三周永龍';
8698
                $find = '';
8699
                $result = Multibyte::substrCount($string, $find);
8700
                $expected = 1;
8701
                $this->assertEquals($expected, $result);
8702
8703
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8704
                $find = 'H';
8705
                $result = Multibyte::substrCount($string, $find);
8706
                $expected = 0;
8707
                $this->assertEquals($expected, $result);
8708
        }
8709
8710
/**
8711
 * testUsingMbSubstr method
8712
 *
8713
 * @return void
8714
 */
8715
        public function testUsingMbSubstr() {
8716
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
8717
                $result = mb_substr($string, 4, 7);
8718
                $expected = 'EFGHIJK';
8719
                $this->assertEquals($expected, $result);
8720
8721
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
8722
                $result = mb_substr($string, 4, 7);
8723
                $expected = 'ÄÅÆÇÈÉÊ';
8724
                $this->assertEquals($expected, $result);
8725
8726
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
8727
                $result = mb_substr($string, 4, 7);
8728
                $expected = 'ĈĊČĎĐĒĔ';
8729
                $this->assertEquals($expected, $result);
8730
8731
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
8732
                $result = mb_substr($string, 4, 7);
8733
                $expected = '%&\'()*+';
8734
                $this->assertEquals($expected, $result);
8735
8736
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
8737
                $result = mb_substr($string, 4);
8738
                $expected = '¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
8739
                $this->assertEquals($expected, $result);
8740
8741
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
8742
                $result = mb_substr($string, 4, 7);
8743
                $expected = 'ÍÎÏÐÑÒÓ';
8744
                $this->assertEquals($expected, $result);
8745
8746
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
8747
                $result = mb_substr($string, 4, 7);
8748
                $expected = 'ıIJijĴĵĶķ';
8749
                $this->assertEquals($expected, $result);
8750
8751
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8752
                $result = mb_substr($string, 25);
8753
                $expected = 'ƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8754
                $this->assertEquals($expected, $result);
8755
8756
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
8757
                $result = mb_substr($string, 3);
8758
                $expected = 'ɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
8759
                $this->assertEquals($expected, $result);
8760
8761
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
8762
                $result = mb_substr($string, 3);
8763
                $expected = 'ЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
8764
                $this->assertEquals($expected, $result);
8765
8766
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
8767
                $result = mb_substr($string, 3, 16);
8768
                $expected = 'ПРСТУФХЦЧШЩЪЫЬЭЮ';
8769
                $this->assertEquals($expected, $result);
8770
8771
                $string = 'فقكلمنهوىيًٌٍَُ';
8772
                $result = mb_substr($string, 3, 6);
8773
                $expected = 'لمنهوى';
8774
                $this->assertEquals($expected, $result);
8775
8776
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
8777
                $result = mb_substr($string, 6, 14);
8778
                $expected = '✶✷✸✹✺✻✼✽✾✿❀❁❂❃';
8779
                $this->assertEquals($expected, $result);
8780
8781
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
8782
                $result = mb_substr($string, 8, 13);
8783
                $expected = '⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔';
8784
                $this->assertEquals($expected, $result);
8785
8786
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
8787
                $result = mb_substr($string, 12, 24);
8788
                $expected = '⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨';
8789
                $this->assertEquals($expected, $result);
8790
8791
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
8792
                $result = mb_substr($string, 12, 24);
8793
                $expected = '눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄';
8794
                $this->assertEquals($expected, $result);
8795
8796
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
8797
                $result = mb_substr($string, 12);
8798
                $expected = 'ﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
8799
                $this->assertEquals($expected, $result);
8800
8801
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
8802
                $result = mb_substr($string, 24, 12);
8803
                $expected = 'ﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔ';
8804
                $this->assertEquals($expected, $result);
8805
8806
                $string = 'abcdefghijklmnopqrstuvwxyz';
8807
                $result = mb_substr($string, 11, 2);
8808
                $expected = 'lm';
8809
                $this->assertEquals($expected, $result);
8810
8811
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
8812
                $result = mb_substr($string, 7, 11);
8813
                $expected = 'ィゥェォャュョッーアイ';
8814
                $this->assertEquals($expected, $result);
8815
8816
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
8817
                $result = mb_substr($string, 13, 13);
8818
                $expected = 'ニヌネノハヒフヘホマミムメ';
8819
                $this->assertEquals($expected, $result);
8820
8821
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8822
                $result = mb_substr($string, 3, 4);
8823
                $expected = 'ļŏ, ';
8824
                $this->assertEquals($expected, $result);
8825
8826
                $string = 'Hello, World!';
8827
                $result = mb_substr($string, 3, 4);
8828
                $expected = 'lo, ';
8829
                $this->assertEquals($expected, $result);
8830
8831
                $string = 'čini';
8832
                $result = mb_substr($string, 3);
8833
                $expected = 'i';
8834
                $this->assertEquals($expected, $result);
8835
8836
                $string = 'moći';
8837
                $result = mb_substr($string, 1);
8838
                $expected = 'oći';
8839
                $this->assertEquals($expected, $result);
8840
8841
                $string = 'državni';
8842
                $result = mb_substr($string, 0, 2);
8843
                $expected = 'dr';
8844
                $this->assertEquals($expected, $result);
8845
8846
                $string = '把百度设为首页';
8847
                $result = mb_substr($string, 3, 3);
8848
                $expected = '设为首';
8849
                $this->assertEquals($expected, $result);
8850
8851
                $string = '一二三周永龍';
8852
                $result = mb_substr($string, 0, 1);
8853
                $expected = '';
8854
                $this->assertEquals($expected, $result);
8855
8856
                $string = '一二三周永龍';
8857
                $result = mb_substr($string, 6);
8858
                $expected = false;
8859
                $this->assertEquals($expected, $result);
8860
8861
                $string = '一二三周永龍';
8862
                $result = mb_substr($string, 0);
8863
                $expected = '一二三周永龍';
8864
                $this->assertEquals($expected, $result);
8865
        }
8866
8867
/**
8868
 * testMultibyteSubstr method
8869
 *
8870
 * @return void
8871
 */
8872
        public function testMultibyteSubstr() {
8873
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
8874
                $result = Multibyte::substr($string, 4, 7);
8875
                $expected = 'EFGHIJK';
8876
                $this->assertEquals($expected, $result);
8877
8878
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
8879
                $result = Multibyte::substr($string, 4, 7);
8880
                $expected = 'ÄÅÆÇÈÉÊ';
8881
                $this->assertEquals($expected, $result);
8882
8883
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
8884
                $result = Multibyte::substr($string, 4, 7);
8885
                $expected = 'ĈĊČĎĐĒĔ';
8886
                $this->assertEquals($expected, $result);
8887
8888
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
8889
                $result = Multibyte::substr($string, 4, 7);
8890
                $expected = '%&\'()*+';
8891
                $this->assertEquals($expected, $result);
8892
8893
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
8894
                $result = Multibyte::substr($string, 4);
8895
                $expected = '¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
8896
                $this->assertEquals($expected, $result);
8897
8898
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
8899
                $result = Multibyte::substr($string, 4, 7);
8900
                $expected = 'ÍÎÏÐÑÒÓ';
8901
                $this->assertEquals($expected, $result);
8902
8903
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
8904
                $result = Multibyte::substr($string, 4, 7);
8905
                $expected = 'ıIJijĴĵĶķ';
8906
                $this->assertEquals($expected, $result);
8907
8908
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8909
                $result = Multibyte::substr($string, 25);
8910
                $expected = 'ƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
8911
                $this->assertEquals($expected, $result);
8912
8913
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
8914
                $result = Multibyte::substr($string, 3);
8915
                $expected = 'ɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
8916
                $this->assertEquals($expected, $result);
8917
8918
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
8919
                $result = Multibyte::substr($string, 3);
8920
                $expected = 'ЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
8921
                $this->assertEquals($expected, $result);
8922
8923
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
8924
                $result = Multibyte::substr($string, 3, 16);
8925
                $expected = 'ПРСТУФХЦЧШЩЪЫЬЭЮ';
8926
                $this->assertEquals($expected, $result);
8927
8928
                $string = 'فقكلمنهوىيًٌٍَُ';
8929
                $result = Multibyte::substr($string, 3, 6);
8930
                $expected = 'لمنهوى';
8931
                $this->assertEquals($expected, $result);
8932
8933
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
8934
                $result = Multibyte::substr($string, 6, 14);
8935
                $expected = '✶✷✸✹✺✻✼✽✾✿❀❁❂❃';
8936
                $this->assertEquals($expected, $result);
8937
8938
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
8939
                $result = Multibyte::substr($string, 8, 13);
8940
                $expected = '⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔';
8941
                $this->assertEquals($expected, $result);
8942
8943
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
8944
                $result = Multibyte::substr($string, 12, 24);
8945
                $expected = '⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨';
8946
                $this->assertEquals($expected, $result);
8947
8948
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
8949
                $result = Multibyte::substr($string, 12, 24);
8950
                $expected = '눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄';
8951
                $this->assertEquals($expected, $result);
8952
8953
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
8954
                $result = Multibyte::substr($string, 12);
8955
                $expected = 'ﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
8956
                $this->assertEquals($expected, $result);
8957
8958
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
8959
                $result = Multibyte::substr($string, 24, 12);
8960
                $expected = 'ﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔ';
8961
                $this->assertEquals($expected, $result);
8962
8963
                $string = 'abcdefghijklmnopqrstuvwxyz';
8964
                $result = Multibyte::substr($string, 11, 2);
8965
                $expected = 'lm';
8966
                $this->assertEquals($expected, $result);
8967
8968
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
8969
                $result = Multibyte::substr($string, 7, 11);
8970
                $expected = 'ィゥェォャュョッーアイ';
8971
                $this->assertEquals($expected, $result);
8972
8973
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
8974
                $result = Multibyte::substr($string, 13, 13);
8975
                $expected = 'ニヌネノハヒフヘホマミムメ';
8976
                $this->assertEquals($expected, $result);
8977
8978
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
8979
                $result = Multibyte::substr($string, 3, 4);
8980
                $expected = 'ļŏ, ';
8981
                $this->assertEquals($expected, $result);
8982
8983
                $string = 'Hello, World!';
8984
                $result = Multibyte::substr($string, 3, 4);
8985
                $expected = 'lo, ';
8986
                $this->assertEquals($expected, $result);
8987
8988
                $string = 'čini';
8989
                $result = Multibyte::substr($string, 3);
8990
                $expected = 'i';
8991
                $this->assertEquals($expected, $result);
8992
8993
                $string = 'moći';
8994
                $result = Multibyte::substr($string, 1);
8995
                $expected = 'oći';
8996
                $this->assertEquals($expected, $result);
8997
8998
                $string = 'državni';
8999
                $result = Multibyte::substr($string, 0, 2);
9000
                $expected = 'dr';
9001
                $this->assertEquals($expected, $result);
9002
9003
                $string = '把百度设为首页';
9004
                $result = Multibyte::substr($string, 3, 3);
9005
                $expected = '设为首';
9006
                $this->assertEquals($expected, $result);
9007
9008
                $string = '一二三周永龍';
9009
                $result = Multibyte::substr($string, 0, 1);
9010
                $expected = '';
9011
                $this->assertEquals($expected, $result);
9012
9013
                $string = '一二三周永龍';
9014
                $result = Multibyte::substr($string, 6);
9015
                $expected = false;
9016
                $this->assertEquals($expected, $result);
9017
9018
                $string = '一二三周永龍';
9019
                $result = Multibyte::substr($string, 0);
9020
                $expected = '一二三周永龍';
9021
                $this->assertEquals($expected, $result);
9022
        }
9023
9024
/**
9025
 * testMultibyteSubstr method
9026
 *
9027
 * @return void
9028
 */
9029
        public function testMultibyteMimeEncode() {
9030
                $string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
9031
                $result = Multibyte::mimeEncode($string);
9032
                $this->assertEquals($string, $result);
9033
9034
                $string = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞ';
9035
                $result = Multibyte::mimeEncode($string);
9036
                $expected = '=?UTF-8?B?w4DDgcOCw4PDhMOFw4bDh8OIw4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5U=?=' . "\r\n" .
9037
                                        ' =?UTF-8?B?w5bDmMOZw5rDm8Ocw53Dng==?=';
9038
                $this->assertEquals($expected, $result);
9039
                $result = Multibyte::mimeEncode($string, null, "\n");
9040
                $expected = '=?UTF-8?B?w4DDgcOCw4PDhMOFw4bDh8OIw4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5U=?=' . "\n" .
9041
                                        ' =?UTF-8?B?w5bDmMOZw5rDm8Ocw53Dng==?=';
9042
                $this->assertEquals($expected, $result);
9043
9044
                $string = 'ĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŹŻŽ';
9045
                $result = Multibyte::mimeEncode($string);
9046
                $expected = '=?UTF-8?B?xIDEgsSExIbEiMSKxIzEjsSQxJLElMSWxJjEmsScxJ7EoMSixKTEpsSoxKo=?=' . "\r\n" .
9047
                                        ' =?UTF-8?B?xKzErsSyxLTEtsS5xLvEvcS/xYHFg8WFxYfFisWMxY7FkMWSxZTFlsWYxZo=?=' . "\r\n" .
9048
                                        ' =?UTF-8?B?xZzFnsWgxaLFpMWmxajFqsWsxa7FsMWyxbTFtsW5xbvFvQ==?=';
9049
                $this->assertEquals($expected, $result);
9050
9051
                $string = '!"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~';
9052
                $result = Multibyte::mimeEncode($string);
9053
                $expected = '=?UTF-8?B?ISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xN?=' . "\r\n" .
9054
                                        ' =?UTF-8?B?Tk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6?=' . "\r\n" .
9055
                                        ' =?UTF-8?B?e3x9fg==?=';
9056
                $this->assertEquals($expected, $result);
9057
9058
                $string = '¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈ';
9059
                $result = Multibyte::mimeEncode($string);
9060
                $expected = '=?UTF-8?B?wqHCosKjwqTCpcKmwqfCqMKpwqrCq8Kswq3CrsKvwrDCscKywrPCtMK1wrY=?=' . "\r\n" .
9061
                                        ' =?UTF-8?B?wrfCuMK5wrrCu8K8wr3CvsK/w4DDgcOCw4PDhMOFw4bDh8OI?=';
9062
                $this->assertEquals($expected, $result);
9063
9064
                $string = 'ÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬ';
9065
                $result = Multibyte::mimeEncode($string);
9066
                $expected = '=?UTF-8?B?w4nDisOLw4zDjcOOw4/DkMORw5LDk8OUw5XDlsOXw5jDmcOaw5vDnMOdw54=?=' . "\r\n" .
9067
                                        ' =?UTF-8?B?w5/DoMOhw6LDo8Okw6XDpsOnw6jDqcOqw6vDrMOtw67Dr8Oww7HDssOzw7Q=?=' . "\r\n" .
9068
                                        ' =?UTF-8?B?w7XDtsO3w7jDucO6w7vDvMO9w77Dv8SAxIHEgsSDxITEhcSGxIfEiMSJxIo=?=' . "\r\n" .
9069
                                        ' =?UTF-8?B?xIvEjMSNxI7Ej8SQxJHEksSTxJTElcSWxJfEmMSZxJrEm8ScxJ3EnsSfxKA=?=' . "\r\n" .
9070
                                        ' =?UTF-8?B?xKHEosSjxKTEpcSmxKfEqMSpxKrEq8Ss?=';
9071
                $this->assertEquals($expected, $result);
9072
9073
                $string = 'ĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐ';
9074
                $result = Multibyte::mimeEncode($string);
9075
                $expected = '=?UTF-8?B?xK3ErsSvxLDEscSyxLPEtMS1xLbEt8S4xLnEusS7xLzEvcS+xL/FgMWBxYI=?=' . "\r\n" .
9076
                                        ' =?UTF-8?B?xYPFhMWFxYbFh8WIxYnFisWLxYzFjcWOxY/FkMWRxZLFk8WUxZXFlsWXxZg=?=' . "\r\n" .
9077
                                        ' =?UTF-8?B?xZnFmsWbxZzFncWexZ/FoMWhxaLFo8WkxaXFpsWnxajFqcWqxavFrMWtxa4=?=' . "\r\n" .
9078
                                        ' =?UTF-8?B?xa/FsMWxxbLFs8W0xbXFtsW3xbjFucW6xbvFvMW9xb7Fv8aAxoHGgsaDxoQ=?=' . "\r\n" .
9079
                                        ' =?UTF-8?B?xoXGhsaHxojGicaKxovGjMaNxo7Gj8aQ?=';
9080
                $this->assertEquals($expected, $result);
9081
9082
                $string = 'ƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴ';
9083
                $result = Multibyte::mimeEncode($string);
9084
                $expected = '=?UTF-8?B?xpHGksaTxpTGlcaWxpfGmMaZxprGm8acxp3GnsafxqDGocaixqPGpMalxqY=?=' . "\r\n" .
9085
                                        ' =?UTF-8?B?xqfGqMapxqrGq8asxq3GrsavxrDGscayxrPGtMa1xrbGt8a4xrnGusa7xrw=?=' . "\r\n" .
9086
                                        ' =?UTF-8?B?xr3Gvsa/x4DHgceCx4PHhMeFx4bHh8eIx4nHiseLx4zHjceOx4/HkMeRx5I=?=' . "\r\n" .
9087
                                        ' =?UTF-8?B?x5PHlMeVx5bHl8eYx5nHmsebx5zHnceex5/HoMehx6LHo8ekx6XHpsenx6g=?=' . "\r\n" .
9088
                                        ' =?UTF-8?B?x6nHqserx6zHrceux6/HsMexx7LHs8e0?=';
9089
                $this->assertEquals($expected, $result);
9090
9091
                $string = 'əɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼ';
9092
                $result = Multibyte::mimeEncode($string);
9093
                $expected = '=?UTF-8?B?yZnJmsmbyZzJncmeyZ/JoMmhyaLJo8mkyaXJpsmnyajJqcmqyavJrMmtya4=?=' . "\r\n" .
9094
                                        ' =?UTF-8?B?ya/JsMmxybLJs8m0ybXJtsm3ybjJucm6ybvJvMm9yb7Jv8qAyoHKgsqDyoQ=?=' . "\r\n" .
9095
                                        ' =?UTF-8?B?yoXKhsqHyojKicqKyovKjMqNyo7Kj8qQypHKksqTypTKlcqWypfKmMqZypo=?=' . "\r\n" .
9096
                                        ' =?UTF-8?B?ypvKnMqdyp7Kn8qgyqHKosqjyqTKpcqmyqfKqMqpyqrKq8qsyq3KrsqvyrA=?=' . "\r\n" .
9097
                                        ' =?UTF-8?B?yrHKssqzyrTKtcq2yrfKuMq5yrrKu8q8?=';
9098
                $this->assertEquals($expected, $result);
9099
9100
                $string = 'ЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛ';
9101
                $result = Multibyte::mimeEncode($string);
9102
                $expected = '=?UTF-8?B?0IDQgdCC0IPQhNCF0IbQh9CI0InQitCL0IzQjdCO0I/QkNCR0JLQk9CU0JU=?=' . "\r\n" .
9103
                                        ' =?UTF-8?B?0JbQl9CY0JnQmtCb?=';
9104
                $this->assertEquals($expected, $result);
9105
9106
                $string = 'МНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыь';
9107
                $result = Multibyte::mimeEncode($string);
9108
                $expected = '=?UTF-8?B?0JzQndCe0J/QoNCh0KLQo9Ck0KXQptCn0KjQqdCq0KvQrNCt0K7Qr9Cw0LE=?=' . "\r\n" .
9109
                                        ' =?UTF-8?B?0LLQs9C00LXQttC30LjQudC60LvQvNC90L7Qv9GA0YHRgtGD0YTRhdGG0Yc=?=' . "\r\n" .
9110
                                        ' =?UTF-8?B?0YjRidGK0YvRjA==?=';
9111
                $this->assertEquals($expected, $result);
9112
9113
                $string = 'فقكلمنهوىيًٌٍَُ';
9114
                $result = Multibyte::mimeEncode($string);
9115
                $expected = '=?UTF-8?B?2YHZgtmD2YTZhdmG2YfZiNmJ2YrZi9mM2Y3ZjtmP?=';
9116
                $this->assertEquals($expected, $result);
9117
9118
                $string = '✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❌❍❎❏❐❑❒❓❔❕❖❗❘❙❚❛❜❝❞';
9119
                $result = Multibyte::mimeEncode($string);
9120
                $expected = '=?UTF-8?B?4pyw4pyx4pyy4pyz4py04py14py24py34py44py54py64py74py84py94py+?=' . "\r\n" .
9121
                                        ' =?UTF-8?B?4py/4p2A4p2B4p2C4p2D4p2E4p2F4p2G4p2H4p2I4p2J4p2K4p2L4p2M4p2N?=' . "\r\n" .
9122
                                        ' =?UTF-8?B?4p2O4p2P4p2Q4p2R4p2S4p2T4p2U4p2V4p2W4p2X4p2Y4p2Z4p2a4p2b4p2c?=' . "\r\n" .
9123
                                        ' =?UTF-8?B?4p2d4p2e?=';
9124
                $this->assertEquals($expected, $result);
9125
9126
                $string = '⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠';
9127
                $result = Multibyte::mimeEncode($string);
9128
                $expected = '=?UTF-8?B?4rqA4rqB4rqC4rqD4rqE4rqF4rqG4rqH4rqI4rqJ4rqK4rqL4rqM4rqN4rqO?=' . "\r\n" .
9129
                                        ' =?UTF-8?B?4rqP4rqQ4rqR4rqS4rqT4rqU4rqV4rqW4rqX4rqY4rqZ4rqb4rqc4rqd4rqe?=' . "\r\n" .
9130
                                        ' =?UTF-8?B?4rqf4rqg4rqh4rqi4rqj4rqk4rql4rqm4rqn4rqo4rqp4rqq4rqr4rqs4rqt?=' . "\r\n" .
9131
                                        ' =?UTF-8?B?4rqu4rqv4rqw4rqx4rqy4rqz4rq04rq14rq24rq34rq44rq54rq64rq74rq8?=' . "\r\n" .
9132
                                        ' =?UTF-8?B?4rq94rq+4rq/4ruA4ruB4ruC4ruD4ruE4ruF4ruG4ruH4ruI4ruJ4ruK4ruL?=' . "\r\n" .
9133
                                        ' =?UTF-8?B?4ruM4ruN4ruO4ruP4ruQ4ruR4ruS4ruT4ruU4ruV4ruW4ruX4ruY4ruZ4rua?=' . "\r\n" .
9134
                                        ' =?UTF-8?B?4rub4ruc4rud4rue4ruf4rug?=';
9135
                $this->assertEquals($expected, $result);
9136
9137
                $string = '⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿';
9138
                $result = Multibyte::mimeEncode($string);
9139
                $expected = '=?UTF-8?B?4r2F4r2G4r2H4r2I4r2J4r2K4r2L4r2M4r2N4r2O4r2P4r2Q4r2R4r2S4r2T?=' . "\r\n" .
9140
                                        ' =?UTF-8?B?4r2U4r2V4r2W4r2X4r2Y4r2Z4r2a4r2b4r2c4r2d4r2e4r2f4r2g4r2h4r2i?=' . "\r\n" .
9141
                                        ' =?UTF-8?B?4r2j4r2k4r2l4r2m4r2n4r2o4r2p4r2q4r2r4r2s4r2t4r2u4r2v4r2w4r2x?=' . "\r\n" .
9142
                                        ' =?UTF-8?B?4r2y4r2z4r204r214r224r234r244r254r264r274r284r294r2+4r2/?=';
9143
                $this->assertEquals($expected, $result);
9144
9145
                $string = '눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눴눵눶눷눸눹눺눻눼눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉘뉙뉚뉛뉜뉝뉞뉟뉠뉡뉢뉣뉤뉥뉦뉧뉨뉩뉪뉫뉬뉭뉮뉯뉰뉱뉲뉳뉴뉵뉶뉷뉸뉹뉺뉻뉼뉽뉾뉿늀늁늂늃늄';
9146
                $result = Multibyte::mimeEncode($string);
9147
                $expected = '=?UTF-8?B?64ih64ii64ij64ik64il64im64in64io64ip64iq64ir64is64it64iu64iv?=' . "\r\n" .
9148
                                        ' =?UTF-8?B?64iw64ix64iy64iz64i064i164i264i364i464i564i664i764i864i964i+?=' . "\r\n" .
9149
                                        ' =?UTF-8?B?64i/64mA64mB64mC64mD64mE64mF64mG64mH64mI64mJ64mK64mL64mM64mN?=' . "\r\n" .
9150
                                        ' =?UTF-8?B?64mO64mP64mQ64mR64mS64mT64mU64mV64mW64mX64mY64mZ64ma64mb64mc?=' . "\r\n" .
9151
                                        ' =?UTF-8?B?64md64me64mf64mg64mh64mi64mj64mk64ml64mm64mn64mo64mp64mq64mr?=' . "\r\n" .
9152
                                        ' =?UTF-8?B?64ms64mt64mu64mv64mw64mx64my64mz64m064m164m264m364m464m564m6?=' . "\r\n" .
9153
                                        ' =?UTF-8?B?64m764m864m964m+64m/64qA64qB64qC64qD64qE?=';
9154
                $this->assertEquals($expected, $result);
9155
9156
                $string = 'ﹰﹱﹲﹳﹴ﹵ﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰ';
9157
                $result = Multibyte::mimeEncode($string);
9158
                $expected = '=?UTF-8?B?77mw77mx77my77mz77m077m177m277m377m477m577m677m777m877m977m+?=' . "\r\n" .
9159
                                        ' =?UTF-8?B?77m/77qA77qB77qC77qD77qE77qF77qG77qH77qI77qJ77qK77qL77qM77qN?=' . "\r\n" .
9160
                                        ' =?UTF-8?B?77qO77qP77qQ77qR77qS77qT77qU77qV77qW77qX77qY77qZ77qa77qb77qc?=' . "\r\n" .
9161
                                        ' =?UTF-8?B?77qd77qe77qf77qg77qh77qi77qj77qk77ql77qm77qn77qo77qp77qq77qr?=' . "\r\n" .
9162
                                        ' =?UTF-8?B?77qs77qt77qu77qv77qw?=';
9163
                $this->assertEquals($expected, $result);
9164
9165
                $string = 'ﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ';
9166
                $result = Multibyte::mimeEncode($string);
9167
                $expected = '=?UTF-8?B?77qx77qy77qz77q077q177q277q377q477q577q677q777q877q977q+77q/?=' . "\r\n" .
9168
                                        ' =?UTF-8?B?77uA77uB77uC77uD77uE77uF77uG77uH77uI77uJ77uK77uL77uM77uN77uO?=' . "\r\n" .
9169
                                        ' =?UTF-8?B?77uP77uQ77uR77uS77uT77uU77uV77uW77uX77uY77uZ77ua77ub77uc77ud?=' . "\r\n" .
9170
                                        ' =?UTF-8?B?77ue77uf77ug77uh77ui77uj77uk77ul77um77un77uo77up77uq77ur77us?=' . "\r\n" .
9171
                                        ' =?UTF-8?B?77ut77uu77uv77uw77ux77uy77uz77u077u177u277u377u477u577u677u7?=' . "\r\n" .
9172
                                        ' =?UTF-8?B?77u8?=';
9173
                $this->assertEquals($expected, $result);
9174
9175
                $string = 'abcdefghijklmnopqrstuvwxyz';
9176
                $result = Multibyte::mimeEncode($string);
9177
                $expected = '=?UTF-8?B?772B772C772D772E772F772G772H772I772J772K772L772M772N772O772P?=' . "\r\n" .
9178
                                        ' =?UTF-8?B?772Q772R772S772T772U772V772W772X772Y772Z772a?=';
9179
                $this->assertEquals($expected, $result);
9180
9181
                $string = '。「」、・ヲァィゥェォャュョッーアイウエオカキク';
9182
                $result = Multibyte::mimeEncode($string);
9183
                $expected = '=?UTF-8?B?772h772i772j772k772l772m772n772o772p772q772r772s772t772u772v?=' . "\r\n" .
9184
                                        ' =?UTF-8?B?772w772x772y772z77207721772277237724?=';
9185
                $this->assertEquals($expected, $result);
9186
9187
                $string = 'ケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙';
9188
                $result = Multibyte::mimeEncode($string);
9189
                $expected = '=?UTF-8?B?77257726772777287729772+772/776A776B776C776D776E776F776G776H?=' . "\r\n" .
9190
                                        ' =?UTF-8?B?776I776J776K776L776M776N776O776P776Q776R776S776T776U776V776W?=' . "\r\n" .
9191
                                        ' =?UTF-8?B?776X776Y776Z776a776b776c776d776e?=';
9192
                $this->assertEquals($expected, $result);
9193
9194
                $string = 'Ĥēĺļŏ, Ŵőřļď!';
9195
                $result = Multibyte::mimeEncode($string);
9196
                $expected = '=?UTF-8?B?xKTEk8S6xLzFjywgxbTFkcWZxLzEjyE=?=';
9197
                $this->assertEquals($expected, $result);
9198
9199
                $string = 'Hello, World!';
9200
                $result = Multibyte::mimeEncode($string);
9201
                $this->assertEquals($string, $result);
9202
9203
                $string = 'čini';
9204
                $result = Multibyte::mimeEncode($string);
9205
                $expected = '=?UTF-8?B?xI1pbmk=?=';
9206
                $this->assertEquals($expected, $result);
9207
9208
                $string = 'moći';
9209
                $result = Multibyte::mimeEncode($string);
9210
                $expected = '=?UTF-8?B?bW/Eh2k=?=';
9211
                $this->assertEquals($expected, $result);
9212
9213
                $string = 'državni';
9214
                $result = Multibyte::mimeEncode($string);
9215
                $expected = '=?UTF-8?B?ZHLFvmF2bmk=?=';
9216
                $this->assertEquals($expected, $result);
9217
9218
                $string = '把百度设为首页';
9219
                $result = Multibyte::mimeEncode($string);
9220
                $expected = '=?UTF-8?B?5oqK55m+5bqm6K6+5Li66aaW6aG1?=';
9221
                $this->assertEquals($expected, $result);
9222
9223
                $string = '一二三周永龍';
9224
                $result = Multibyte::mimeEncode($string);
9225
                $expected = '=?UTF-8?B?5LiA5LqM5LiJ5ZGo5rC46b6N?=';
9226
                $this->assertEquals($expected, $result);
9227
        }
9228
}