How to use is class

Best Quick code snippet using is

024.phpt

Source:024.phpt Github

copy

Full Screen

...4<?php5for ($jdk=0; $jdk<50; $jdk++) {6?><html>7<head>8<?php /* the point of this file is to intensively test various aspects of the parser.9 * right now, each test focuses in one aspect only (e.g. variable aliasing, arithemtic operator,10 * various control structures), while trying to combine code from other parts of the parser as well.11 */12?>13*** Testing assignments and variable aliasing: ***14<?php15 /* This test tests assignments to variables using other variables as variable-names */16 $a = "b";17 $$a = "test";18 $$$a = "blah";19 ${$$$a}["associative arrays work too"] = "this is nifty";20?>21This should read "blah": <?php echo "$test\n"; ?>22This should read "this is nifty": <?php echo $blah[$test="associative arrays work too"]."\n"; ?>23*************************************************24*** Testing integer operators ***25<?php26 /* test just about any operator possible on $i and $j (ints) */27 $i = 5;28 $j = 3;29?>30Correct result - 8: <?php echo $i+$j; ?>31Correct result - 8: <?php echo $i+$j; ?>32Correct result - 2: <?php echo $i-$j; ?>33Correct result - -2: <?php echo $j-$i; ?>34Correct result - 15: <?php echo $i*$j; ?>35Correct result - 15: <?php echo $j*$i; ?>36Correct result - 2: <?php echo $i%$j; ?>37Correct result - 3: <?php echo $j%$i; ?>38*********************************39*** Testing real operators ***40<?php41 /* test just about any operator possible on $i and $j (floats) */42 $i = 5.0;43 $j = 3.0;44?>45Correct result - 8: <?php echo $i+$j; ?>46Correct result - 8: <?php echo $i+$j; ?>47Correct result - 2: <?php echo $i-$j; ?>48Correct result - -2: <?php echo $j-$i; ?>49Correct result - 15: <?php echo $i*$j; ?>50Correct result - 15: <?php echo $j*$i; ?>51Correct result - 2: <?php echo $i%$j; ?>52Correct result - 3: <?php echo $j%$i; ?>53*********************************54*** Testing if/elseif/else control ***55<?php56/* sick if/elseif/else test by Andi :) */57$a = 5;58if ($a == "4") {59 echo "This "." does "." not "." work\n";60} elseif ($a == "5") {61 echo "This "." works\n";62 $a = 6;63 if ("andi" == ($test = "andi")) {64 echo "this_still_works\n";65 } elseif (1) {66 echo "should_not_print\n";67 } else {68 echo "should_not_print\n";69 }70 if (44 == 43) {71 echo "should_not_print\n";72 } else {73 echo "should_print\n";74 }75} elseif ($a == 6) {76 echo "this "."broken\n";77 if (0) {78 echo "this_should_not_print\n";79 } else {80 echo "TestingDanglingElse_This_Should_not_print\n";81 }82} else {83 echo "This "."does "." not"." work\n";84}85?>86*** Seriously nested if's test ***87** spelling correction by kluzz **88<?php89/* yet another sick if/elseif/else test by Zeev */90$i=$j=0;91echo "Only two lines of text should follow:\n";92if (0) { /* this code is not supposed to be executed */93 echo "hmm, this shouldn't be displayed #1\n";94 $j++;95 if (1) {96 $i += $j;97 if (0) {98 $j = ++$i;99 if (1) {100 $j *= $i;101 echo "damn, this shouldn't be displayed\n";102 } else {103 $j /= $i;104 ++$j;105 echo "this shouldn't be displayed either\n";106 }107 } elseif (1) {108 $i++; $j++;109 echo "this isn't supposed to be displayed\n";110 }111 } elseif (0) {112 $i++;113 echo "this definitely shouldn't be displayed\n";114 } else {115 --$j;116 echo "and this too shouldn't be displayed\n";117 while ($j>0) {118 $j--;119 }120 }121} elseif (2-2) { /* as long as 2-2==0, this isn't supposed to be executed either */122 $i = ++$j;123 echo "hmm, this shouldn't be displayed #2\n";124 if (1) {125 $j = ++$i;126 if (0) {127 $j = $i*2+$j*($i++);128 if (1) {129 $i++;130 echo "damn, this shouldn't be displayed\n";131 } else {132 $j++;133 echo "this shouldn't be displayed either\n";134 }135 } else if (1) {136 ++$j;137 echo "this isn't supposed to be displayed\n";138 }139 } elseif (0) {140 $j++;141 echo "this definitely shouldn't be displayed\n";142 } else {143 $i++;144 echo "and this too shouldn't be displayed\n";145 }146} else {147 $j=$i++; /* this should set $i to 1, but shouldn't change $j (it's assigned $i's previous values, zero) */148 echo "this should be displayed. should be: \$i=1, \$j=0. is: \$i=$i, \$j=$j\n";149 if (1) {150 $j += ++$i; /* ++$i --> $i==2, $j += 2 --> $j==2 */151 if (0) {152 $j += 40;153 if (1) {154 $i += 50;155 echo "damn, this shouldn't be displayed\n";156 } else {157 $j += 20;158 echo "this shouldn't be displayed either\n";159 }160 } else if (1) {161 $j *= $i; /* $j *= 2 --> $j == 4 */162 echo "this is supposed to be displayed. should be: \$i=2, \$j=4. is: \$i=$i, \$j=$j\n";163 echo "3 loop iterations should follow:\n";164 while ($i<=$j) {165 echo $i++." $j\n";166 }167 }168 } elseif (0) {169 echo "this definitely shouldn't be displayed\n";170 } else {171 echo "and this too shouldn't be displayed\n";172 }173 echo "**********************************\n";174}175?>176*** C-style else-if's ***177<?php178 /* looks like without we even tried, C-style else-if structure works fine! */179 if ($a=0) {180 echo "This shouldn't be displayed\n";181 } else if ($a++) {182 echo "This shouldn't be displayed either\n";183 } else if (--$a) {184 echo "No, this neither\n";185 } else if (++$a) {186 echo "This should be displayed\n";187 } else {188 echo "This shouldn't be displayed at all\n";189 }190?>191*************************192*** WHILE tests ***193<?php194$i=0;195$j=20;196while ($i<(2*$j)) {197 if ($i>$j) {198 echo "$i is greater than $j\n";199 } else if ($i==$j) {200 echo "$i equals $j\n";201 } else {202 echo "$i is smaller than $j\n";203 }204 $i++;205}206?>207*******************208*** Nested WHILEs ***209<?php210$arr_len=3;211$i=0;212while ($i<$arr_len) {213 $j=0;214 while ($j<$arr_len) {215 $k=0;216 while ($k<$arr_len) {217 ${"test$i$j"}[$k] = $i+$j+$k;218 $k++;219 }220 $j++;221 }222 $i++;223}224echo "Each array variable should be equal to the sum of its indices:\n";225$i=0;226while ($i<$arr_len) {227 $j=0;228 while ($j<$arr_len) {229 $k=0;230 while ($k<$arr_len) {231 echo "\${test$i$j}[$k] = ".${"test$i$j"}[$k]."\n";232 $k++;233 }234 $j++;235 }236 $i++;237}238?>239*********************240*** hash test... ***241<?php242/*243$i=0;244while ($i<10000) {245 $arr[$i]=$i;246 $i++;247}248$i=0;249while ($i<10000) {250 echo $arr[$i++]."\n";251}252*/253echo "commented out...";254?>255**************************256*** Hash resizing test ***257<?php258$i = 10;259$a = "b";260while ($i > 0) {261 $a = $a . "a";262 echo "$a\n";263 $resize[$a] = $i;264 $i--;265}266$i = 10;267$a = "b";268while ($i > 0) {269 $a = $a . "a";270 echo "$a\n";271 echo $resize[$a]."\n";272 $i--;273}274?>275**************************276*** break/continue test ***277<?php278$i=0;279echo "\$i should go from 0 to 2\n";280while ($i<5) {281 if ($i>2) {282 break;283 }284 $j=0;285 echo "\$j should go from 3 to 4, and \$q should go from 3 to 4\n";286 while ($j<5) {287 if ($j<=2) {288 $j++;289 continue;290 }291 echo " \$j=$j\n";292 for ($q=0; $q<=10; $q++) {293 if ($q<3) {294 continue;295 }296 if ($q>4) {297 break;298 }299 echo " \$q=$q\n";300 }301 $j++;302 }303 $j=0;304 echo "\$j should go from 0 to 2\n";305 while ($j<5) {306 if ($j>2) {307 $k=0;308 echo "\$k should go from 0 to 2\n";309 while ($k<5) {310 if ($k>2) {311 break 2;312 }313 echo " \$k=$k\n";314 $k++;315 }316 }317 echo " \$j=$j\n";318 $j++;319 }320 echo "\$i=$i\n";321 $i++;322}323?>324***********************325*** Nested file include test ***326<?php include("023-2.inc"); ?>327********************************328<?php329{330 echo "Tests completed.\n"; # testing some PHP style comment...331}332} ?>333--EXPECT--334<html>335<head>336*** Testing assignments and variable aliasing: ***337This should read "blah": blah338This should read "this is nifty": this is nifty339*************************************************340*** Testing integer operators ***341Correct result - 8: 8342Correct result - 8: 8343Correct result - 2: 2344Correct result - -2: -2345Correct result - 15: 15346Correct result - 15: 15347Correct result - 2: 2348Correct result - 3: 3349*********************************350*** Testing real operators ***351Correct result - 8: 8352Correct result - 8: 8353Correct result - 2: 2354Correct result - -2: -2355Correct result - 15: 15356Correct result - 15: 15357Correct result - 2: 2358Correct result - 3: 3359*********************************360*** Testing if/elseif/else control ***361This works362this_still_works363should_print364*** Seriously nested if's test ***365** spelling correction by kluzz **366Only two lines of text should follow:367this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=0368this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=43693 loop iterations should follow:3702 43713 43724 4373**********************************374*** C-style else-if's ***375This should be displayed376*************************377*** WHILE tests ***3780 is smaller than 203791 is smaller than 203802 is smaller than 203813 is smaller than 203824 is smaller than 203835 is smaller than 203846 is smaller than 203857 is smaller than 203868 is smaller than 203879 is smaller than 2038810 is smaller than 2038911 is smaller than 2039012 is smaller than 2039113 is smaller than 2039214 is smaller than 2039315 is smaller than 2039416 is smaller than 2039517 is smaller than 2039618 is smaller than 2039719 is smaller than 2039820 equals 2039921 is greater than 2040022 is greater than 2040123 is greater than 2040224 is greater than 2040325 is greater than 2040426 is greater than 2040527 is greater than 2040628 is greater than 2040729 is greater than 2040830 is greater than 2040931 is greater than 2041032 is greater than 2041133 is greater than 2041234 is greater than 2041335 is greater than 2041436 is greater than 2041537 is greater than 2041638 is greater than 2041739 is greater than 20418*******************419*** Nested WHILEs ***420Each array variable should be equal to the sum of its indices:421${test00}[0] = 0422${test00}[1] = 1423${test00}[2] = 2424${test01}[0] = 1425${test01}[1] = 2426${test01}[2] = 3427${test02}[0] = 2428${test02}[1] = 3429${test02}[2] = 4430${test10}[0] = 1431${test10}[1] = 2432${test10}[2] = 3433${test11}[0] = 2434${test11}[1] = 3435${test11}[2] = 4436${test12}[0] = 3437${test12}[1] = 4438${test12}[2] = 5439${test20}[0] = 2440${test20}[1] = 3441${test20}[2] = 4442${test21}[0] = 3443${test21}[1] = 4444${test21}[2] = 5445${test22}[0] = 4446${test22}[1] = 5447${test22}[2] = 6448*********************449*** hash test... ***450commented out...451**************************452*** Hash resizing test ***453ba454baa455baaa456baaaa457baaaaa458baaaaaa459baaaaaaa460baaaaaaaa461baaaaaaaaa462baaaaaaaaaa463ba46410465baa4669467baaa4688469baaaa4707471baaaaa4726473baaaaaa4745475baaaaaaa4764477baaaaaaaa4783479baaaaaaaaa4802481baaaaaaaaaa4821483**************************484*** break/continue test ***485$i should go from 0 to 2486$j should go from 3 to 4, and $q should go from 3 to 4487 $j=3488 $q=3489 $q=4490 $j=4491 $q=3492 $q=4493$j should go from 0 to 2494 $j=0495 $j=1496 $j=2497$k should go from 0 to 2498 $k=0499 $k=1500 $k=2501$i=0502$j should go from 3 to 4, and $q should go from 3 to 4503 $j=3504 $q=3505 $q=4506 $j=4507 $q=3508 $q=4509$j should go from 0 to 2510 $j=0511 $j=1512 $j=2513$k should go from 0 to 2514 $k=0515 $k=1516 $k=2517$i=1518$j should go from 3 to 4, and $q should go from 3 to 4519 $j=3520 $q=3521 $q=4522 $j=4523 $q=3524 $q=4525$j should go from 0 to 2526 $j=0527 $j=1528 $j=2529$k should go from 0 to 2530 $k=0531 $k=1532 $k=2533$i=2534***********************535*** Nested file include test ***536<html>537This is Finish.phtml. This file is supposed to be included538from regression_test.phtml. This is normal HTML.539and this is PHP code, 2+2=4540</html>541********************************542Tests completed.543<html>544<head>545*** Testing assignments and variable aliasing: ***546This should read "blah": blah547This should read "this is nifty": this is nifty548*************************************************549*** Testing integer operators ***550Correct result - 8: 8551Correct result - 8: 8552Correct result - 2: 2553Correct result - -2: -2554Correct result - 15: 15555Correct result - 15: 15556Correct result - 2: 2557Correct result - 3: 3558*********************************559*** Testing real operators ***560Correct result - 8: 8561Correct result - 8: 8562Correct result - 2: 2563Correct result - -2: -2564Correct result - 15: 15565Correct result - 15: 15566Correct result - 2: 2567Correct result - 3: 3568*********************************569*** Testing if/elseif/else control ***570This works571this_still_works572should_print573*** Seriously nested if's test ***574** spelling correction by kluzz **575Only two lines of text should follow:576this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=0577this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=45783 loop iterations should follow:5792 45803 45814 4582**********************************583*** C-style else-if's ***584This should be displayed585*************************586*** WHILE tests ***5870 is smaller than 205881 is smaller than 205892 is smaller than 205903 is smaller than 205914 is smaller than 205925 is smaller than 205936 is smaller than 205947 is smaller than 205958 is smaller than 205969 is smaller than 2059710 is smaller than 2059811 is smaller than 2059912 is smaller than 2060013 is smaller than 2060114 is smaller than 2060215 is smaller than 2060316 is smaller than 2060417 is smaller than 2060518 is smaller than 2060619 is smaller than 2060720 equals 2060821 is greater than 2060922 is greater than 2061023 is greater than 2061124 is greater than 2061225 is greater than 2061326 is greater than 2061427 is greater than 2061528 is greater than 2061629 is greater than 2061730 is greater than 2061831 is greater than 2061932 is greater than 2062033 is greater than 2062134 is greater than 2062235 is greater than 2062336 is greater than 2062437 is greater than 2062538 is greater than 2062639 is greater than 20627*******************628*** Nested WHILEs ***629Each array variable should be equal to the sum of its indices:630${test00}[0] = 0631${test00}[1] = 1632${test00}[2] = 2633${test01}[0] = 1634${test01}[1] = 2635${test01}[2] = 3636${test02}[0] = 2637${test02}[1] = 3638${test02}[2] = 4639${test10}[0] = 1640${test10}[1] = 2641${test10}[2] = 3642${test11}[0] = 2643${test11}[1] = 3644${test11}[2] = 4645${test12}[0] = 3646${test12}[1] = 4647${test12}[2] = 5648${test20}[0] = 2649${test20}[1] = 3650${test20}[2] = 4651${test21}[0] = 3652${test21}[1] = 4653${test21}[2] = 5654${test22}[0] = 4655${test22}[1] = 5656${test22}[2] = 6657*********************658*** hash test... ***659commented out...660**************************661*** Hash resizing test ***662ba663baa664baaa665baaaa666baaaaa667baaaaaa668baaaaaaa669baaaaaaaa670baaaaaaaaa671baaaaaaaaaa672ba67310674baa6759676baaa6778678baaaa6797680baaaaa6816682baaaaaa6835684baaaaaaa6854686baaaaaaaa6873688baaaaaaaaa6892690baaaaaaaaaa6911692**************************693*** break/continue test ***694$i should go from 0 to 2695$j should go from 3 to 4, and $q should go from 3 to 4696 $j=3697 $q=3698 $q=4699 $j=4700 $q=3701 $q=4702$j should go from 0 to 2703 $j=0704 $j=1705 $j=2706$k should go from 0 to 2707 $k=0708 $k=1709 $k=2710$i=0711$j should go from 3 to 4, and $q should go from 3 to 4712 $j=3713 $q=3714 $q=4715 $j=4716 $q=3717 $q=4718$j should go from 0 to 2719 $j=0720 $j=1721 $j=2722$k should go from 0 to 2723 $k=0724 $k=1725 $k=2726$i=1727$j should go from 3 to 4, and $q should go from 3 to 4728 $j=3729 $q=3730 $q=4731 $j=4732 $q=3733 $q=4734$j should go from 0 to 2735 $j=0736 $j=1737 $j=2738$k should go from 0 to 2739 $k=0740 $k=1741 $k=2742$i=2743***********************744*** Nested file include test ***745<html>746This is Finish.phtml. This file is supposed to be included747from regression_test.phtml. This is normal HTML.748and this is PHP code, 2+2=4749</html>750********************************751Tests completed.752<html>753<head>754*** Testing assignments and variable aliasing: ***755This should read "blah": blah756This should read "this is nifty": this is nifty757*************************************************758*** Testing integer operators ***759Correct result - 8: 8760Correct result - 8: 8761Correct result - 2: 2762Correct result - -2: -2763Correct result - 15: 15764Correct result - 15: 15765Correct result - 2: 2766Correct result - 3: 3767*********************************768*** Testing real operators ***769Correct result - 8: 8770Correct result - 8: 8771Correct result - 2: 2772Correct result - -2: -2773Correct result - 15: 15774Correct result - 15: 15775Correct result - 2: 2776Correct result - 3: 3777*********************************778*** Testing if/elseif/else control ***779This works780this_still_works781should_print782*** Seriously nested if's test ***783** spelling correction by kluzz **784Only two lines of text should follow:785this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=0786this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=47873 loop iterations should follow:7882 47893 47904 4791**********************************792*** C-style else-if's ***793This should be displayed794*************************795*** WHILE tests ***7960 is smaller than 207971 is smaller than 207982 is smaller than 207993 is smaller than 208004 is smaller than 208015 is smaller than 208026 is smaller than 208037 is smaller than 208048 is smaller than 208059 is smaller than 2080610 is smaller than 2080711 is smaller than 2080812 is smaller than 2080913 is smaller than 2081014 is smaller than 2081115 is smaller than 2081216 is smaller than 2081317 is smaller than 2081418 is smaller than 2081519 is smaller than 2081620 equals 2081721 is greater than 2081822 is greater than 2081923 is greater than 2082024 is greater than 2082125 is greater than 2082226 is greater than 2082327 is greater than 2082428 is greater than 2082529 is greater than 2082630 is greater than 2082731 is greater than 2082832 is greater than 2082933 is greater than 2083034 is greater than 2083135 is greater than 2083236 is greater than 2083337 is greater than 2083438 is greater than 2083539 is greater than 20836*******************837*** Nested WHILEs ***838Each array variable should be equal to the sum of its indices:839${test00}[0] = 0840${test00}[1] = 1841${test00}[2] = 2842${test01}[0] = 1843${test01}[1] = 2844${test01}[2] = 3845${test02}[0] = 2846${test02}[1] = 3847${test02}[2] = 4848${test10}[0] = 1849${test10}[1] = 2850${test10}[2] = 3851${test11}[0] = 2852${test11}[1] = 3853${test11}[2] = 4854${test12}[0] = 3855${test12}[1] = 4856${test12}[2] = 5857${test20}[0] = 2858${test20}[1] = 3859${test20}[2] = 4860${test21}[0] = 3861${test21}[1] = 4862${test21}[2] = 5863${test22}[0] = 4864${test22}[1] = 5865${test22}[2] = 6866*********************867*** hash test... ***868commented out...869**************************870*** Hash resizing test ***871ba872baa873baaa874baaaa875baaaaa876baaaaaa877baaaaaaa878baaaaaaaa879baaaaaaaaa880baaaaaaaaaa881ba88210883baa8849885baaa8868887baaaa8887889baaaaa8906891baaaaaa8925893baaaaaaa8944895baaaaaaaa8963897baaaaaaaaa8982899baaaaaaaaaa9001901**************************902*** break/continue test ***903$i should go from 0 to 2904$j should go from 3 to 4, and $q should go from 3 to 4905 $j=3906 $q=3907 $q=4908 $j=4909 $q=3910 $q=4911$j should go from 0 to 2912 $j=0913 $j=1914 $j=2915$k should go from 0 to 2916 $k=0917 $k=1918 $k=2919$i=0920$j should go from 3 to 4, and $q should go from 3 to 4921 $j=3922 $q=3923 $q=4924 $j=4925 $q=3926 $q=4927$j should go from 0 to 2928 $j=0929 $j=1930 $j=2931$k should go from 0 to 2932 $k=0933 $k=1934 $k=2935$i=1936$j should go from 3 to 4, and $q should go from 3 to 4937 $j=3938 $q=3939 $q=4940 $j=4941 $q=3942 $q=4943$j should go from 0 to 2944 $j=0945 $j=1946 $j=2947$k should go from 0 to 2948 $k=0949 $k=1950 $k=2951$i=2952***********************953*** Nested file include test ***954<html>955This is Finish.phtml. This file is supposed to be included956from regression_test.phtml. This is normal HTML.957and this is PHP code, 2+2=4958</html>959********************************960Tests completed.961<html>962<head>963*** Testing assignments and variable aliasing: ***964This should read "blah": blah965This should read "this is nifty": this is nifty966*************************************************967*** Testing integer operators ***968Correct result - 8: 8969Correct result - 8: 8970Correct result - 2: 2971Correct result - -2: -2972Correct result - 15: 15973Correct result - 15: 15974Correct result - 2: 2975Correct result - 3: 3976*********************************977*** Testing real operators ***978Correct result - 8: 8979Correct result - 8: 8980Correct result - 2: 2981Correct result - -2: -2982Correct result - 15: 15983Correct result - 15: 15984Correct result - 2: 2985Correct result - 3: 3986*********************************987*** Testing if/elseif/else control ***988This works989this_still_works990should_print991*** Seriously nested if's test ***992** spelling correction by kluzz **993Only two lines of text should follow:994this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=0995this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=49963 loop iterations should follow:9972 49983 49994 41000**********************************1001*** C-style else-if's ***1002This should be displayed1003*************************1004*** WHILE tests ***10050 is smaller than 2010061 is smaller than 2010072 is smaller than 2010083 is smaller than 2010094 is smaller than 2010105 is smaller than 2010116 is smaller than 2010127 is smaller than 2010138 is smaller than 2010149 is smaller than 20101510 is smaller than 20101611 is smaller than 20101712 is smaller than 20101813 is smaller than 20101914 is smaller than 20102015 is smaller than 20102116 is smaller than 20102217 is smaller than 20102318 is smaller than 20102419 is smaller than 20102520 equals 20102621 is greater than 20102722 is greater than 20102823 is greater than 20102924 is greater than 20103025 is greater than 20103126 is greater than 20103227 is greater than 20103328 is greater than 20103429 is greater than 20103530 is greater than 20103631 is greater than 20103732 is greater than 20103833 is greater than 20103934 is greater than 20104035 is greater than 20104136 is greater than 20104237 is greater than 20104338 is greater than 20104439 is greater than 201045*******************1046*** Nested WHILEs ***1047Each array variable should be equal to the sum of its indices:1048${test00}[0] = 01049${test00}[1] = 11050${test00}[2] = 21051${test01}[0] = 11052${test01}[1] = 21053${test01}[2] = 31054${test02}[0] = 21055${test02}[1] = 31056${test02}[2] = 41057${test10}[0] = 11058${test10}[1] = 21059${test10}[2] = 31060${test11}[0] = 21061${test11}[1] = 31062${test11}[2] = 41063${test12}[0] = 31064${test12}[1] = 41065${test12}[2] = 51066${test20}[0] = 21067${test20}[1] = 31068${test20}[2] = 41069${test21}[0] = 31070${test21}[1] = 41071${test21}[2] = 51072${test22}[0] = 41073${test22}[1] = 51074${test22}[2] = 61075*********************1076*** hash test... ***1077commented out...1078**************************1079*** Hash resizing test ***1080ba1081baa1082baaa1083baaaa1084baaaaa1085baaaaaa1086baaaaaaa1087baaaaaaaa1088baaaaaaaaa1089baaaaaaaaaa1090ba1091101092baa109391094baaa109581096baaaa109771098baaaaa109961100baaaaaa110151102baaaaaaa110341104baaaaaaaa110531106baaaaaaaaa110721108baaaaaaaaaa110911110**************************1111*** break/continue test ***1112$i should go from 0 to 21113$j should go from 3 to 4, and $q should go from 3 to 41114 $j=31115 $q=31116 $q=41117 $j=41118 $q=31119 $q=41120$j should go from 0 to 21121 $j=01122 $j=11123 $j=21124$k should go from 0 to 21125 $k=01126 $k=11127 $k=21128$i=01129$j should go from 3 to 4, and $q should go from 3 to 41130 $j=31131 $q=31132 $q=41133 $j=41134 $q=31135 $q=41136$j should go from 0 to 21137 $j=01138 $j=11139 $j=21140$k should go from 0 to 21141 $k=01142 $k=11143 $k=21144$i=11145$j should go from 3 to 4, and $q should go from 3 to 41146 $j=31147 $q=31148 $q=41149 $j=41150 $q=31151 $q=41152$j should go from 0 to 21153 $j=01154 $j=11155 $j=21156$k should go from 0 to 21157 $k=01158 $k=11159 $k=21160$i=21161***********************1162*** Nested file include test ***1163<html>1164This is Finish.phtml. This file is supposed to be included1165from regression_test.phtml. This is normal HTML.1166and this is PHP code, 2+2=41167</html>1168********************************1169Tests completed.1170<html>1171<head>1172*** Testing assignments and variable aliasing: ***1173This should read "blah": blah1174This should read "this is nifty": this is nifty1175*************************************************1176*** Testing integer operators ***1177Correct result - 8: 81178Correct result - 8: 81179Correct result - 2: 21180Correct result - -2: -21181Correct result - 15: 151182Correct result - 15: 151183Correct result - 2: 21184Correct result - 3: 31185*********************************1186*** Testing real operators ***1187Correct result - 8: 81188Correct result - 8: 81189Correct result - 2: 21190Correct result - -2: -21191Correct result - 15: 151192Correct result - 15: 151193Correct result - 2: 21194Correct result - 3: 31195*********************************1196*** Testing if/elseif/else control ***1197This works1198this_still_works1199should_print1200*** Seriously nested if's test ***1201** spelling correction by kluzz **1202Only two lines of text should follow:1203this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=01204this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=412053 loop iterations should follow:12062 412073 412084 41209**********************************1210*** C-style else-if's ***1211This should be displayed1212*************************1213*** WHILE tests ***12140 is smaller than 2012151 is smaller than 2012162 is smaller than 2012173 is smaller than 2012184 is smaller than 2012195 is smaller than 2012206 is smaller than 2012217 is smaller than 2012228 is smaller than 2012239 is smaller than 20122410 is smaller than 20122511 is smaller than 20122612 is smaller than 20122713 is smaller than 20122814 is smaller than 20122915 is smaller than 20123016 is smaller than 20123117 is smaller than 20123218 is smaller than 20123319 is smaller than 20123420 equals 20123521 is greater than 20123622 is greater than 20123723 is greater than 20123824 is greater than 20123925 is greater than 20124026 is greater than 20124127 is greater than 20124228 is greater than 20124329 is greater than 20124430 is greater than 20124531 is greater than 20124632 is greater than 20124733 is greater than 20124834 is greater than 20124935 is greater than 20125036 is greater than 20125137 is greater than 20125238 is greater than 20125339 is greater than 201254*******************1255*** Nested WHILEs ***1256Each array variable should be equal to the sum of its indices:1257${test00}[0] = 01258${test00}[1] = 11259${test00}[2] = 21260${test01}[0] = 11261${test01}[1] = 21262${test01}[2] = 31263${test02}[0] = 21264${test02}[1] = 31265${test02}[2] = 41266${test10}[0] = 11267${test10}[1] = 21268${test10}[2] = 31269${test11}[0] = 21270${test11}[1] = 31271${test11}[2] = 41272${test12}[0] = 31273${test12}[1] = 41274${test12}[2] = 51275${test20}[0] = 21276${test20}[1] = 31277${test20}[2] = 41278${test21}[0] = 31279${test21}[1] = 41280${test21}[2] = 51281${test22}[0] = 41282${test22}[1] = 51283${test22}[2] = 61284*********************1285*** hash test... ***1286commented out...1287**************************1288*** Hash resizing test ***1289ba1290baa1291baaa1292baaaa1293baaaaa1294baaaaaa1295baaaaaaa1296baaaaaaaa1297baaaaaaaaa1298baaaaaaaaaa1299ba1300101301baa130291303baaa130481305baaaa130671307baaaaa130861309baaaaaa131051311baaaaaaa131241313baaaaaaaa131431315baaaaaaaaa131621317baaaaaaaaaa131811319**************************1320*** break/continue test ***1321$i should go from 0 to 21322$j should go from 3 to 4, and $q should go from 3 to 41323 $j=31324 $q=31325 $q=41326 $j=41327 $q=31328 $q=41329$j should go from 0 to 21330 $j=01331 $j=11332 $j=21333$k should go from 0 to 21334 $k=01335 $k=11336 $k=21337$i=01338$j should go from 3 to 4, and $q should go from 3 to 41339 $j=31340 $q=31341 $q=41342 $j=41343 $q=31344 $q=41345$j should go from 0 to 21346 $j=01347 $j=11348 $j=21349$k should go from 0 to 21350 $k=01351 $k=11352 $k=21353$i=11354$j should go from 3 to 4, and $q should go from 3 to 41355 $j=31356 $q=31357 $q=41358 $j=41359 $q=31360 $q=41361$j should go from 0 to 21362 $j=01363 $j=11364 $j=21365$k should go from 0 to 21366 $k=01367 $k=11368 $k=21369$i=21370***********************1371*** Nested file include test ***1372<html>1373This is Finish.phtml. This file is supposed to be included1374from regression_test.phtml. This is normal HTML.1375and this is PHP code, 2+2=41376</html>1377********************************1378Tests completed.1379<html>1380<head>1381*** Testing assignments and variable aliasing: ***1382This should read "blah": blah1383This should read "this is nifty": this is nifty1384*************************************************1385*** Testing integer operators ***1386Correct result - 8: 81387Correct result - 8: 81388Correct result - 2: 21389Correct result - -2: -21390Correct result - 15: 151391Correct result - 15: 151392Correct result - 2: 21393Correct result - 3: 31394*********************************1395*** Testing real operators ***1396Correct result - 8: 81397Correct result - 8: 81398Correct result - 2: 21399Correct result - -2: -21400Correct result - 15: 151401Correct result - 15: 151402Correct result - 2: 21403Correct result - 3: 31404*********************************1405*** Testing if/elseif/else control ***1406This works1407this_still_works1408should_print1409*** Seriously nested if's test ***1410** spelling correction by kluzz **1411Only two lines of text should follow:1412this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=01413this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=414143 loop iterations should follow:14152 414163 414174 41418**********************************1419*** C-style else-if's ***1420This should be displayed1421*************************1422*** WHILE tests ***14230 is smaller than 2014241 is smaller than 2014252 is smaller than 2014263 is smaller than 2014274 is smaller than 2014285 is smaller than 2014296 is smaller than 2014307 is smaller than 2014318 is smaller than 2014329 is smaller than 20143310 is smaller than 20143411 is smaller than 20143512 is smaller than 20143613 is smaller than 20143714 is smaller than 20143815 is smaller than 20143916 is smaller than 20144017 is smaller than 20144118 is smaller than 20144219 is smaller than 20144320 equals 20144421 is greater than 20144522 is greater than 20144623 is greater than 20144724 is greater than 20144825 is greater than 20144926 is greater than 20145027 is greater than 20145128 is greater than 20145229 is greater than 20145330 is greater than 20145431 is greater than 20145532 is greater than 20145633 is greater than 20145734 is greater than 20145835 is greater than 20145936 is greater than 20146037 is greater than 20146138 is greater than 20146239 is greater than 201463*******************1464*** Nested WHILEs ***1465Each array variable should be equal to the sum of its indices:1466${test00}[0] = 01467${test00}[1] = 11468${test00}[2] = 21469${test01}[0] = 11470${test01}[1] = 21471${test01}[2] = 31472${test02}[0] = 21473${test02}[1] = 31474${test02}[2] = 41475${test10}[0] = 11476${test10}[1] = 21477${test10}[2] = 31478${test11}[0] = 21479${test11}[1] = 31480${test11}[2] = 41481${test12}[0] = 31482${test12}[1] = 41483${test12}[2] = 51484${test20}[0] = 21485${test20}[1] = 31486${test20}[2] = 41487${test21}[0] = 31488${test21}[1] = 41489${test21}[2] = 51490${test22}[0] = 41491${test22}[1] = 51492${test22}[2] = 61493*********************1494*** hash test... ***1495commented out...1496**************************1497*** Hash resizing test ***1498ba1499baa1500baaa1501baaaa1502baaaaa1503baaaaaa1504baaaaaaa1505baaaaaaaa1506baaaaaaaaa1507baaaaaaaaaa1508ba1509101510baa151191512baaa151381514baaaa151571516baaaaa151761518baaaaaa151951520baaaaaaa152141522baaaaaaaa152331524baaaaaaaaa152521526baaaaaaaaaa152711528**************************1529*** break/continue test ***1530$i should go from 0 to 21531$j should go from 3 to 4, and $q should go from 3 to 41532 $j=31533 $q=31534 $q=41535 $j=41536 $q=31537 $q=41538$j should go from 0 to 21539 $j=01540 $j=11541 $j=21542$k should go from 0 to 21543 $k=01544 $k=11545 $k=21546$i=01547$j should go from 3 to 4, and $q should go from 3 to 41548 $j=31549 $q=31550 $q=41551 $j=41552 $q=31553 $q=41554$j should go from 0 to 21555 $j=01556 $j=11557 $j=21558$k should go from 0 to 21559 $k=01560 $k=11561 $k=21562$i=11563$j should go from 3 to 4, and $q should go from 3 to 41564 $j=31565 $q=31566 $q=41567 $j=41568 $q=31569 $q=41570$j should go from 0 to 21571 $j=01572 $j=11573 $j=21574$k should go from 0 to 21575 $k=01576 $k=11577 $k=21578$i=21579***********************1580*** Nested file include test ***1581<html>1582This is Finish.phtml. This file is supposed to be included1583from regression_test.phtml. This is normal HTML.1584and this is PHP code, 2+2=41585</html>1586********************************1587Tests completed.1588<html>1589<head>1590*** Testing assignments and variable aliasing: ***1591This should read "blah": blah1592This should read "this is nifty": this is nifty1593*************************************************1594*** Testing integer operators ***1595Correct result - 8: 81596Correct result - 8: 81597Correct result - 2: 21598Correct result - -2: -21599Correct result - 15: 151600Correct result - 15: 151601Correct result - 2: 21602Correct result - 3: 31603*********************************1604*** Testing real operators ***1605Correct result - 8: 81606Correct result - 8: 81607Correct result - 2: 21608Correct result - -2: -21609Correct result - 15: 151610Correct result - 15: 151611Correct result - 2: 21612Correct result - 3: 31613*********************************1614*** Testing if/elseif/else control ***1615This works1616this_still_works1617should_print1618*** Seriously nested if's test ***1619** spelling correction by kluzz **1620Only two lines of text should follow:1621this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=01622this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=416233 loop iterations should follow:16242 416253 416264 41627**********************************1628*** C-style else-if's ***1629This should be displayed1630*************************1631*** WHILE tests ***16320 is smaller than 2016331 is smaller than 2016342 is smaller than 2016353 is smaller than 2016364 is smaller than 2016375 is smaller than 2016386 is smaller than 2016397 is smaller than 2016408 is smaller than 2016419 is smaller than 20164210 is smaller than 20164311 is smaller than 20164412 is smaller than 20164513 is smaller than 20164614 is smaller than 20164715 is smaller than 20164816 is smaller than 20164917 is smaller than 20165018 is smaller than 20165119 is smaller than 20165220 equals 20165321 is greater than 20165422 is greater than 20165523 is greater than 20165624 is greater than 20165725 is greater than 20165826 is greater than 20165927 is greater than 20166028 is greater than 20166129 is greater than 20166230 is greater than 20166331 is greater than 20166432 is greater than 20166533 is greater than 20166634 is greater than 20166735 is greater than 20166836 is greater than 20166937 is greater than 20167038 is greater than 20167139 is greater than 201672*******************1673*** Nested WHILEs ***1674Each array variable should be equal to the sum of its indices:1675${test00}[0] = 01676${test00}[1] = 11677${test00}[2] = 21678${test01}[0] = 11679${test01}[1] = 21680${test01}[2] = 31681${test02}[0] = 21682${test02}[1] = 31683${test02}[2] = 41684${test10}[0] = 11685${test10}[1] = 21686${test10}[2] = 31687${test11}[0] = 21688${test11}[1] = 31689${test11}[2] = 41690${test12}[0] = 31691${test12}[1] = 41692${test12}[2] = 51693${test20}[0] = 21694${test20}[1] = 31695${test20}[2] = 41696${test21}[0] = 31697${test21}[1] = 41698${test21}[2] = 51699${test22}[0] = 41700${test22}[1] = 51701${test22}[2] = 61702*********************1703*** hash test... ***1704commented out...1705**************************1706*** Hash resizing test ***1707ba1708baa1709baaa1710baaaa1711baaaaa1712baaaaaa1713baaaaaaa1714baaaaaaaa1715baaaaaaaaa1716baaaaaaaaaa1717ba1718101719baa172091721baaa172281723baaaa172471725baaaaa172661727baaaaaa172851729baaaaaaa173041731baaaaaaaa173231733baaaaaaaaa173421735baaaaaaaaaa173611737**************************1738*** break/continue test ***1739$i should go from 0 to 21740$j should go from 3 to 4, and $q should go from 3 to 41741 $j=31742 $q=31743 $q=41744 $j=41745 $q=31746 $q=41747$j should go from 0 to 21748 $j=01749 $j=11750 $j=21751$k should go from 0 to 21752 $k=01753 $k=11754 $k=21755$i=01756$j should go from 3 to 4, and $q should go from 3 to 41757 $j=31758 $q=31759 $q=41760 $j=41761 $q=31762 $q=41763$j should go from 0 to 21764 $j=01765 $j=11766 $j=21767$k should go from 0 to 21768 $k=01769 $k=11770 $k=21771$i=11772$j should go from 3 to 4, and $q should go from 3 to 41773 $j=31774 $q=31775 $q=41776 $j=41777 $q=31778 $q=41779$j should go from 0 to 21780 $j=01781 $j=11782 $j=21783$k should go from 0 to 21784 $k=01785 $k=11786 $k=21787$i=21788***********************1789*** Nested file include test ***1790<html>1791This is Finish.phtml. This file is supposed to be included1792from regression_test.phtml. This is normal HTML.1793and this is PHP code, 2+2=41794</html>1795********************************1796Tests completed.1797<html>1798<head>1799*** Testing assignments and variable aliasing: ***1800This should read "blah": blah1801This should read "this is nifty": this is nifty1802*************************************************1803*** Testing integer operators ***1804Correct result - 8: 81805Correct result - 8: 81806Correct result - 2: 21807Correct result - -2: -21808Correct result - 15: 151809Correct result - 15: 151810Correct result - 2: 21811Correct result - 3: 31812*********************************1813*** Testing real operators ***1814Correct result - 8: 81815Correct result - 8: 81816Correct result - 2: 21817Correct result - -2: -21818Correct result - 15: 151819Correct result - 15: 151820Correct result - 2: 21821Correct result - 3: 31822*********************************1823*** Testing if/elseif/else control ***1824This works1825this_still_works1826should_print1827*** Seriously nested if's test ***1828** spelling correction by kluzz **1829Only two lines of text should follow:1830this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=01831this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=418323 loop iterations should follow:18332 418343 418354 41836**********************************1837*** C-style else-if's ***1838This should be displayed1839*************************1840*** WHILE tests ***18410 is smaller than 2018421 is smaller than 2018432 is smaller than 2018443 is smaller than 2018454 is smaller than 2018465 is smaller than 2018476 is smaller than 2018487 is smaller than 2018498 is smaller than 2018509 is smaller than 20185110 is smaller than 20185211 is smaller than 20185312 is smaller than 20185413 is smaller than 20185514 is smaller than 20185615 is smaller than 20185716 is smaller than 20185817 is smaller than 20185918 is smaller than 20186019 is smaller than 20186120 equals 20186221 is greater than 20186322 is greater than 20186423 is greater than 20186524 is greater than 20186625 is greater than 20186726 is greater than 20186827 is greater than 20186928 is greater than 20187029 is greater than 20187130 is greater than 20187231 is greater than 20187332 is greater than 20187433 is greater than 20187534 is greater than 20187635 is greater than 20187736 is greater than 20187837 is greater than 20187938 is greater than 20188039 is greater than 201881*******************1882*** Nested WHILEs ***1883Each array variable should be equal to the sum of its indices:1884${test00}[0] = 01885${test00}[1] = 11886${test00}[2] = 21887${test01}[0] = 11888${test01}[1] = 21889${test01}[2] = 31890${test02}[0] = 21891${test02}[1] = 31892${test02}[2] = 41893${test10}[0] = 11894${test10}[1] = 21895${test10}[2] = 31896${test11}[0] = 21897${test11}[1] = 31898${test11}[2] = 41899${test12}[0] = 31900${test12}[1] = 41901${test12}[2] = 51902${test20}[0] = 21903${test20}[1] = 31904${test20}[2] = 41905${test21}[0] = 31906${test21}[1] = 41907${test21}[2] = 51908${test22}[0] = 41909${test22}[1] = 51910${test22}[2] = 61911*********************1912*** hash test... ***1913commented out...1914**************************1915*** Hash resizing test ***1916ba1917baa1918baaa1919baaaa1920baaaaa1921baaaaaa1922baaaaaaa1923baaaaaaaa1924baaaaaaaaa1925baaaaaaaaaa1926ba1927101928baa192991930baaa193181932baaaa193371934baaaaa193561936baaaaaa193751938baaaaaaa193941940baaaaaaaa194131942baaaaaaaaa194321944baaaaaaaaaa194511946**************************1947*** break/continue test ***1948$i should go from 0 to 21949$j should go from 3 to 4, and $q should go from 3 to 41950 $j=31951 $q=31952 $q=41953 $j=41954 $q=31955 $q=41956$j should go from 0 to 21957 $j=01958 $j=11959 $j=21960$k should go from 0 to 21961 $k=01962 $k=11963 $k=21964$i=01965$j should go from 3 to 4, and $q should go from 3 to 41966 $j=31967 $q=31968 $q=41969 $j=41970 $q=31971 $q=41972$j should go from 0 to 21973 $j=01974 $j=11975 $j=21976$k should go from 0 to 21977 $k=01978 $k=11979 $k=21980$i=11981$j should go from 3 to 4, and $q should go from 3 to 41982 $j=31983 $q=31984 $q=41985 $j=41986 $q=31987 $q=41988$j should go from 0 to 21989 $j=01990 $j=11991 $j=21992$k should go from 0 to 21993 $k=01994 $k=11995 $k=21996$i=21997***********************1998*** Nested file include test ***1999<html>2000This is Finish.phtml. This file is supposed to be included2001from regression_test.phtml. This is normal HTML.2002and this is PHP code, 2+2=42003</html>2004********************************2005Tests completed.2006<html>2007<head>2008*** Testing assignments and variable aliasing: ***2009This should read "blah": blah2010This should read "this is nifty": this is nifty2011*************************************************2012*** Testing integer operators ***2013Correct result - 8: 82014Correct result - 8: 82015Correct result - 2: 22016Correct result - -2: -22017Correct result - 15: 152018Correct result - 15: 152019Correct result - 2: 22020Correct result - 3: 32021*********************************2022*** Testing real operators ***2023Correct result - 8: 82024Correct result - 8: 82025Correct result - 2: 22026Correct result - -2: -22027Correct result - 15: 152028Correct result - 15: 152029Correct result - 2: 22030Correct result - 3: 32031*********************************2032*** Testing if/elseif/else control ***2033This works2034this_still_works2035should_print2036*** Seriously nested if's test ***2037** spelling correction by kluzz **2038Only two lines of text should follow:2039this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=02040this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=420413 loop iterations should follow:20422 420433 420444 42045**********************************2046*** C-style else-if's ***2047This should be displayed2048*************************2049*** WHILE tests ***20500 is smaller than 2020511 is smaller than 2020522 is smaller than 2020533 is smaller than 2020544 is smaller than 2020555 is smaller than 2020566 is smaller than 2020577 is smaller than 2020588 is smaller than 2020599 is smaller than 20206010 is smaller than 20206111 is smaller than 20206212 is smaller than 20206313 is smaller than 20206414 is smaller than 20206515 is smaller than 20206616 is smaller than 20206717 is smaller than 20206818 is smaller than 20206919 is smaller than 20207020 equals 20207121 is greater than 20207222 is greater than 20207323 is greater than 20207424 is greater than 20207525 is greater than 20207626 is greater than 20207727 is greater than 20207828 is greater than 20207929 is greater than 20208030 is greater than 20208131 is greater than 20208232 is greater than 20208333 is greater than 20208434 is greater than 20208535 is greater than 20208636 is greater than 20208737 is greater than 20208838 is greater than 20208939 is greater than 202090*******************2091*** Nested WHILEs ***2092Each array variable should be equal to the sum of its indices:2093${test00}[0] = 02094${test00}[1] = 12095${test00}[2] = 22096${test01}[0] = 12097${test01}[1] = 22098${test01}[2] = 32099${test02}[0] = 22100${test02}[1] = 32101${test02}[2] = 42102${test10}[0] = 12103${test10}[1] = 22104${test10}[2] = 32105${test11}[0] = 22106${test11}[1] = 32107${test11}[2] = 42108${test12}[0] = 32109${test12}[1] = 42110${test12}[2] = 52111${test20}[0] = 22112${test20}[1] = 32113${test20}[2] = 42114${test21}[0] = 32115${test21}[1] = 42116${test21}[2] = 52117${test22}[0] = 42118${test22}[1] = 52119${test22}[2] = 62120*********************2121*** hash test... ***2122commented out...2123**************************2124*** Hash resizing test ***2125ba2126baa2127baaa2128baaaa2129baaaaa2130baaaaaa2131baaaaaaa2132baaaaaaaa2133baaaaaaaaa2134baaaaaaaaaa2135ba2136102137baa213892139baaa214082141baaaa214272143baaaaa214462145baaaaaa214652147baaaaaaa214842149baaaaaaaa215032151baaaaaaaaa215222153baaaaaaaaaa215412155**************************2156*** break/continue test ***2157$i should go from 0 to 22158$j should go from 3 to 4, and $q should go from 3 to 42159 $j=32160 $q=32161 $q=42162 $j=42163 $q=32164 $q=42165$j should go from 0 to 22166 $j=02167 $j=12168 $j=22169$k should go from 0 to 22170 $k=02171 $k=12172 $k=22173$i=02174$j should go from 3 to 4, and $q should go from 3 to 42175 $j=32176 $q=32177 $q=42178 $j=42179 $q=32180 $q=42181$j should go from 0 to 22182 $j=02183 $j=12184 $j=22185$k should go from 0 to 22186 $k=02187 $k=12188 $k=22189$i=12190$j should go from 3 to 4, and $q should go from 3 to 42191 $j=32192 $q=32193 $q=42194 $j=42195 $q=32196 $q=42197$j should go from 0 to 22198 $j=02199 $j=12200 $j=22201$k should go from 0 to 22202 $k=02203 $k=12204 $k=22205$i=22206***********************2207*** Nested file include test ***2208<html>2209This is Finish.phtml. This file is supposed to be included2210from regression_test.phtml. This is normal HTML.2211and this is PHP code, 2+2=42212</html>2213********************************2214Tests completed.2215<html>2216<head>2217*** Testing assignments and variable aliasing: ***2218This should read "blah": blah2219This should read "this is nifty": this is nifty2220*************************************************2221*** Testing integer operators ***2222Correct result - 8: 82223Correct result - 8: 82224Correct result - 2: 22225Correct result - -2: -22226Correct result - 15: 152227Correct result - 15: 152228Correct result - 2: 22229Correct result - 3: 32230*********************************2231*** Testing real operators ***2232Correct result - 8: 82233Correct result - 8: 82234Correct result - 2: 22235Correct result - -2: -22236Correct result - 15: 152237Correct result - 15: 152238Correct result - 2: 22239Correct result - 3: 32240*********************************2241*** Testing if/elseif/else control ***2242This works2243this_still_works2244should_print2245*** Seriously nested if's test ***2246** spelling correction by kluzz **2247Only two lines of text should follow:2248this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=02249this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=422503 loop iterations should follow:22512 422523 422534 42254**********************************2255*** C-style else-if's ***2256This should be displayed2257*************************2258*** WHILE tests ***22590 is smaller than 2022601 is smaller than 2022612 is smaller than 2022623 is smaller than 2022634 is smaller than 2022645 is smaller than 2022656 is smaller than 2022667 is smaller than 2022678 is smaller than 2022689 is smaller than 20226910 is smaller than 20227011 is smaller than 20227112 is smaller than 20227213 is smaller than 20227314 is smaller than 20227415 is smaller than 20227516 is smaller than 20227617 is smaller than 20227718 is smaller than 20227819 is smaller than 20227920 equals 20228021 is greater than 20228122 is greater than 20228223 is greater than 20228324 is greater than 20228425 is greater than 20228526 is greater than 20228627 is greater than 20228728 is greater than 20228829 is greater than 20228930 is greater than 20229031 is greater than 20229132 is greater than 20229233 is greater than 20229334 is greater than 20229435 is greater than 20229536 is greater than 20229637 is greater than 20229738 is greater than 20229839 is greater than 202299*******************2300*** Nested WHILEs ***2301Each array variable should be equal to the sum of its indices:2302${test00}[0] = 02303${test00}[1] = 12304${test00}[2] = 22305${test01}[0] = 12306${test01}[1] = 22307${test01}[2] = 32308${test02}[0] = 22309${test02}[1] = 32310${test02}[2] = 42311${test10}[0] = 12312${test10}[1] = 22313${test10}[2] = 32314${test11}[0] = 22315${test11}[1] = 32316${test11}[2] = 42317${test12}[0] = 32318${test12}[1] = 42319${test12}[2] = 52320${test20}[0] = 22321${test20}[1] = 32322${test20}[2] = 42323${test21}[0] = 32324${test21}[1] = 42325${test21}[2] = 52326${test22}[0] = 42327${test22}[1] = 52328${test22}[2] = 62329*********************2330*** hash test... ***2331commented out...2332**************************2333*** Hash resizing test ***2334ba2335baa2336baaa2337baaaa2338baaaaa2339baaaaaa2340baaaaaaa2341baaaaaaaa2342baaaaaaaaa2343baaaaaaaaaa2344ba2345102346baa234792348baaa234982350baaaa235172352baaaaa235362354baaaaaa235552356baaaaaaa235742358baaaaaaaa235932360baaaaaaaaa236122362baaaaaaaaaa236312364**************************2365*** break/continue test ***2366$i should go from 0 to 22367$j should go from 3 to 4, and $q should go from 3 to 42368 $j=32369 $q=32370 $q=42371 $j=42372 $q=32373 $q=42374$j should go from 0 to 22375 $j=02376 $j=12377 $j=22378$k should go from 0 to 22379 $k=02380 $k=12381 $k=22382$i=02383$j should go from 3 to 4, and $q should go from 3 to 42384 $j=32385 $q=32386 $q=42387 $j=42388 $q=32389 $q=42390$j should go from 0 to 22391 $j=02392 $j=12393 $j=22394$k should go from 0 to 22395 $k=02396 $k=12397 $k=22398$i=12399$j should go from 3 to 4, and $q should go from 3 to 42400 $j=32401 $q=32402 $q=42403 $j=42404 $q=32405 $q=42406$j should go from 0 to 22407 $j=02408 $j=12409 $j=22410$k should go from 0 to 22411 $k=02412 $k=12413 $k=22414$i=22415***********************2416*** Nested file include test ***2417<html>2418This is Finish.phtml. This file is supposed to be included2419from regression_test.phtml. This is normal HTML.2420and this is PHP code, 2+2=42421</html>2422********************************2423Tests completed.2424<html>2425<head>2426*** Testing assignments and variable aliasing: ***2427This should read "blah": blah2428This should read "this is nifty": this is nifty2429*************************************************2430*** Testing integer operators ***2431Correct result - 8: 82432Correct result - 8: 82433Correct result - 2: 22434Correct result - -2: -22435Correct result - 15: 152436Correct result - 15: 152437Correct result - 2: 22438Correct result - 3: 32439*********************************2440*** Testing real operators ***2441Correct result - 8: 82442Correct result - 8: 82443Correct result - 2: 22444Correct result - -2: -22445Correct result - 15: 152446Correct result - 15: 152447Correct result - 2: 22448Correct result - 3: 32449*********************************2450*** Testing if/elseif/else control ***2451This works2452this_still_works2453should_print2454*** Seriously nested if's test ***2455** spelling correction by kluzz **2456Only two lines of text should follow:2457this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=02458this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=424593 loop iterations should follow:24602 424613 424624 42463**********************************2464*** C-style else-if's ***2465This should be displayed2466*************************2467*** WHILE tests ***24680 is smaller than 2024691 is smaller than 2024702 is smaller than 2024713 is smaller than 2024724 is smaller than 2024735 is smaller than 2024746 is smaller than 2024757 is smaller than 2024768 is smaller than 2024779 is smaller than 20247810 is smaller than 20247911 is smaller than 20248012 is smaller than 20248113 is smaller than 20248214 is smaller than 20248315 is smaller than 20248416 is smaller than 20248517 is smaller than 20248618 is smaller than 20248719 is smaller than 20248820 equals 20248921 is greater than 20249022 is greater than 20249123 is greater than 20249224 is greater than 20249325 is greater than 20249426 is greater than 20249527 is greater than 20249628 is greater than 20249729 is greater than 20249830 is greater than 20249931 is greater than 20250032 is greater than 20250133 is greater than 20250234 is greater than 20250335 is greater than 20250436 is greater than 20250537 is greater than 20250638 is greater than 20250739 is greater than 202508*******************2509*** Nested WHILEs ***2510Each array variable should be equal to the sum of its indices:2511${test00}[0] = 02512${test00}[1] = 12513${test00}[2] = 22514${test01}[0] = 12515${test01}[1] = 22516${test01}[2] = 32517${test02}[0] = 22518${test02}[1] = 32519${test02}[2] = 42520${test10}[0] = 12521${test10}[1] = 22522${test10}[2] = 32523${test11}[0] = 22524${test11}[1] = 32525${test11}[2] = 42526${test12}[0] = 32527${test12}[1] = 42528${test12}[2] = 52529${test20}[0] = 22530${test20}[1] = 32531${test20}[2] = 42532${test21}[0] = 32533${test21}[1] = 42534${test21}[2] = 52535${test22}[0] = 42536${test22}[1] = 52537${test22}[2] = 62538*********************2539*** hash test... ***2540commented out...2541**************************2542*** Hash resizing test ***2543ba2544baa2545baaa2546baaaa2547baaaaa2548baaaaaa2549baaaaaaa2550baaaaaaaa2551baaaaaaaaa2552baaaaaaaaaa2553ba2554102555baa255692557baaa255882559baaaa256072561baaaaa256262563baaaaaa256452565baaaaaaa256642567baaaaaaaa256832569baaaaaaaaa257022571baaaaaaaaaa257212573**************************2574*** break/continue test ***2575$i should go from 0 to 22576$j should go from 3 to 4, and $q should go from 3 to 42577 $j=32578 $q=32579 $q=42580 $j=42581 $q=32582 $q=42583$j should go from 0 to 22584 $j=02585 $j=12586 $j=22587$k should go from 0 to 22588 $k=02589 $k=12590 $k=22591$i=02592$j should go from 3 to 4, and $q should go from 3 to 42593 $j=32594 $q=32595 $q=42596 $j=42597 $q=32598 $q=42599$j should go from 0 to 22600 $j=02601 $j=12602 $j=22603$k should go from 0 to 22604 $k=02605 $k=12606 $k=22607$i=12608$j should go from 3 to 4, and $q should go from 3 to 42609 $j=32610 $q=32611 $q=42612 $j=42613 $q=32614 $q=42615$j should go from 0 to 22616 $j=02617 $j=12618 $j=22619$k should go from 0 to 22620 $k=02621 $k=12622 $k=22623$i=22624***********************2625*** Nested file include test ***2626<html>2627This is Finish.phtml. This file is supposed to be included2628from regression_test.phtml. This is normal HTML.2629and this is PHP code, 2+2=42630</html>2631********************************2632Tests completed.2633<html>2634<head>2635*** Testing assignments and variable aliasing: ***2636This should read "blah": blah2637This should read "this is nifty": this is nifty2638*************************************************2639*** Testing integer operators ***2640Correct result - 8: 82641Correct result - 8: 82642Correct result - 2: 22643Correct result - -2: -22644Correct result - 15: 152645Correct result - 15: 152646Correct result - 2: 22647Correct result - 3: 32648*********************************2649*** Testing real operators ***2650Correct result - 8: 82651Correct result - 8: 82652Correct result - 2: 22653Correct result - -2: -22654Correct result - 15: 152655Correct result - 15: 152656Correct result - 2: 22657Correct result - 3: 32658*********************************2659*** Testing if/elseif/else control ***2660This works2661this_still_works2662should_print2663*** Seriously nested if's test ***2664** spelling correction by kluzz **2665Only two lines of text should follow:2666this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=02667this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=426683 loop iterations should follow:26692 426703 426714 42672**********************************2673*** C-style else-if's ***2674This should be displayed2675*************************2676*** WHILE tests ***26770 is smaller than 2026781 is smaller than 2026792 is smaller than 2026803 is smaller than 2026814 is smaller than 2026825 is smaller than 2026836 is smaller than 2026847 is smaller than 2026858 is smaller than 2026869 is smaller than 20268710 is smaller than 20268811 is smaller than 20268912 is smaller than 20269013 is smaller than 20269114 is smaller than 20269215 is smaller than 20269316 is smaller than 20269417 is smaller than 20269518 is smaller than 20269619 is smaller than 20269720 equals 20269821 is greater than 20269922 is greater than 20270023 is greater than 20270124 is greater than 20270225 is greater than 20270326 is greater than 20270427 is greater than 20270528 is greater than 20270629 is greater than 20270730 is greater than 20270831 is greater than 20270932 is greater than 20271033 is greater than 20271134 is greater than 20271235 is greater than 20271336 is greater than 20271437 is greater than 20271538 is greater than 20271639 is greater than 202717*******************2718*** Nested WHILEs ***2719Each array variable should be equal to the sum of its indices:2720${test00}[0] = 02721${test00}[1] = 12722${test00}[2] = 22723${test01}[0] = 12724${test01}[1] = 22725${test01}[2] = 32726${test02}[0] = 22727${test02}[1] = 32728${test02}[2] = 42729${test10}[0] = 12730${test10}[1] = 22731${test10}[2] = 32732${test11}[0] = 22733${test11}[1] = 32734${test11}[2] = 42735${test12}[0] = 32736${test12}[1] = 42737${test12}[2] = 52738${test20}[0] = 22739${test20}[1] = 32740${test20}[2] = 42741${test21}[0] = 32742${test21}[1] = 42743${test21}[2] = 52744${test22}[0] = 42745${test22}[1] = 52746${test22}[2] = 62747*********************2748*** hash test... ***2749commented out...2750**************************2751*** Hash resizing test ***2752ba2753baa2754baaa2755baaaa2756baaaaa2757baaaaaa2758baaaaaaa2759baaaaaaaa2760baaaaaaaaa2761baaaaaaaaaa2762ba2763102764baa276592766baaa276782768baaaa276972770baaaaa277162772baaaaaa277352774baaaaaaa277542776baaaaaaaa277732778baaaaaaaaa277922780baaaaaaaaaa278112782**************************2783*** break/continue test ***2784$i should go from 0 to 22785$j should go from 3 to 4, and $q should go from 3 to 42786 $j=32787 $q=32788 $q=42789 $j=42790 $q=32791 $q=42792$j should go from 0 to 22793 $j=02794 $j=12795 $j=22796$k should go from 0 to 22797 $k=02798 $k=12799 $k=22800$i=02801$j should go from 3 to 4, and $q should go from 3 to 42802 $j=32803 $q=32804 $q=42805 $j=42806 $q=32807 $q=42808$j should go from 0 to 22809 $j=02810 $j=12811 $j=22812$k should go from 0 to 22813 $k=02814 $k=12815 $k=22816$i=12817$j should go from 3 to 4, and $q should go from 3 to 42818 $j=32819 $q=32820 $q=42821 $j=42822 $q=32823 $q=42824$j should go from 0 to 22825 $j=02826 $j=12827 $j=22828$k should go from 0 to 22829 $k=02830 $k=12831 $k=22832$i=22833***********************2834*** Nested file include test ***2835<html>2836This is Finish.phtml. This file is supposed to be included2837from regression_test.phtml. This is normal HTML.2838and this is PHP code, 2+2=42839</html>2840********************************2841Tests completed.2842<html>2843<head>2844*** Testing assignments and variable aliasing: ***2845This should read "blah": blah2846This should read "this is nifty": this is nifty2847*************************************************2848*** Testing integer operators ***2849Correct result - 8: 82850Correct result - 8: 82851Correct result - 2: 22852Correct result - -2: -22853Correct result - 15: 152854Correct result - 15: 152855Correct result - 2: 22856Correct result - 3: 32857*********************************2858*** Testing real operators ***2859Correct result - 8: 82860Correct result - 8: 82861Correct result - 2: 22862Correct result - -2: -22863Correct result - 15: 152864Correct result - 15: 152865Correct result - 2: 22866Correct result - 3: 32867*********************************2868*** Testing if/elseif/else control ***2869This works2870this_still_works2871should_print2872*** Seriously nested if's test ***2873** spelling correction by kluzz **2874Only two lines of text should follow:2875this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=02876this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=428773 loop iterations should follow:28782 428793 428804 42881**********************************2882*** C-style else-if's ***2883This should be displayed2884*************************2885*** WHILE tests ***28860 is smaller than 2028871 is smaller than 2028882 is smaller than 2028893 is smaller than 2028904 is smaller than 2028915 is smaller than 2028926 is smaller than 2028937 is smaller than 2028948 is smaller than 2028959 is smaller than 20289610 is smaller than 20289711 is smaller than 20289812 is smaller than 20289913 is smaller than 20290014 is smaller than 20290115 is smaller than 20290216 is smaller than 20290317 is smaller than 20290418 is smaller than 20290519 is smaller than 20290620 equals 20290721 is greater than 20290822 is greater than 20290923 is greater than 20291024 is greater than 20291125 is greater than 20291226 is greater than 20291327 is greater than 20291428 is greater than 20291529 is greater than 20291630 is greater than 20291731 is greater than 20291832 is greater than 20291933 is greater than 20292034 is greater than 20292135 is greater than 20292236 is greater than 20292337 is greater than 20292438 is greater than 20292539 is greater than 202926*******************2927*** Nested WHILEs ***2928Each array variable should be equal to the sum of its indices:2929${test00}[0] = 02930${test00}[1] = 12931${test00}[2] = 22932${test01}[0] = 12933${test01}[1] = 22934${test01}[2] = 32935${test02}[0] = 22936${test02}[1] = 32937${test02}[2] = 42938${test10}[0] = 12939${test10}[1] = 22940${test10}[2] = 32941${test11}[0] = 22942${test11}[1] = 32943${test11}[2] = 42944${test12}[0] = 32945${test12}[1] = 42946${test12}[2] = 52947${test20}[0] = 22948${test20}[1] = 32949${test20}[2] = 42950${test21}[0] = 32951${test21}[1] = 42952${test21}[2] = 52953${test22}[0] = 42954${test22}[1] = 52955${test22}[2] = 62956*********************2957*** hash test... ***2958commented out...2959**************************2960*** Hash resizing test ***2961ba2962baa2963baaa2964baaaa2965baaaaa2966baaaaaa2967baaaaaaa2968baaaaaaaa2969baaaaaaaaa2970baaaaaaaaaa2971ba2972102973baa297492975baaa297682977baaaa297872979baaaaa298062981baaaaaa298252983baaaaaaa298442985baaaaaaaa298632987baaaaaaaaa298822989baaaaaaaaaa299012991**************************2992*** break/continue test ***2993$i should go from 0 to 22994$j should go from 3 to 4, and $q should go from 3 to 42995 $j=32996 $q=32997 $q=42998 $j=42999 $q=33000 $q=43001$j should go from 0 to 23002 $j=03003 $j=13004 $j=23005$k should go from 0 to 23006 $k=03007 $k=13008 $k=23009$i=03010$j should go from 3 to 4, and $q should go from 3 to 43011 $j=33012 $q=33013 $q=43014 $j=43015 $q=33016 $q=43017$j should go from 0 to 23018 $j=03019 $j=13020 $j=23021$k should go from 0 to 23022 $k=03023 $k=13024 $k=23025$i=13026$j should go from 3 to 4, and $q should go from 3 to 43027 $j=33028 $q=33029 $q=43030 $j=43031 $q=33032 $q=43033$j should go from 0 to 23034 $j=03035 $j=13036 $j=23037$k should go from 0 to 23038 $k=03039 $k=13040 $k=23041$i=23042***********************3043*** Nested file include test ***3044<html>3045This is Finish.phtml. This file is supposed to be included3046from regression_test.phtml. This is normal HTML.3047and this is PHP code, 2+2=43048</html>3049********************************3050Tests completed.3051<html>3052<head>3053*** Testing assignments and variable aliasing: ***3054This should read "blah": blah3055This should read "this is nifty": this is nifty3056*************************************************3057*** Testing integer operators ***3058Correct result - 8: 83059Correct result - 8: 83060Correct result - 2: 23061Correct result - -2: -23062Correct result - 15: 153063Correct result - 15: 153064Correct result - 2: 23065Correct result - 3: 33066*********************************3067*** Testing real operators ***3068Correct result - 8: 83069Correct result - 8: 83070Correct result - 2: 23071Correct result - -2: -23072Correct result - 15: 153073Correct result - 15: 153074Correct result - 2: 23075Correct result - 3: 33076*********************************3077*** Testing if/elseif/else control ***3078This works3079this_still_works3080should_print3081*** Seriously nested if's test ***3082** spelling correction by kluzz **3083Only two lines of text should follow:3084this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=03085this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=430863 loop iterations should follow:30872 430883 430894 43090**********************************3091*** C-style else-if's ***3092This should be displayed3093*************************3094*** WHILE tests ***30950 is smaller than 2030961 is smaller than 2030972 is smaller than 2030983 is smaller than 2030994 is smaller than 2031005 is smaller than 2031016 is smaller than 2031027 is smaller than 2031038 is smaller than 2031049 is smaller than 20310510 is smaller than 20310611 is smaller than 20310712 is smaller than 20310813 is smaller than 20310914 is smaller than 20311015 is smaller than 20311116 is smaller than 20311217 is smaller than 20311318 is smaller than 20311419 is smaller than 20311520 equals 20311621 is greater than 20311722 is greater than 20311823 is greater than 20311924 is greater than 20312025 is greater than 20312126 is greater than 20312227 is greater than 20312328 is greater than 20312429 is greater than 20312530 is greater than 20312631 is greater than 20312732 is greater than 20312833 is greater than 20312934 is greater than 20313035 is greater than 20313136 is greater than 20313237 is greater than 20313338 is greater than 20313439 is greater than 203135*******************3136*** Nested WHILEs ***3137Each array variable should be equal to the sum of its indices:3138${test00}[0] = 03139${test00}[1] = 13140${test00}[2] = 23141${test01}[0] = 13142${test01}[1] = 23143${test01}[2] = 33144${test02}[0] = 23145${test02}[1] = 33146${test02}[2] = 43147${test10}[0] = 13148${test10}[1] = 23149${test10}[2] = 33150${test11}[0] = 23151${test11}[1] = 33152${test11}[2] = 43153${test12}[0] = 33154${test12}[1] = 43155${test12}[2] = 53156${test20}[0] = 23157${test20}[1] = 33158${test20}[2] = 43159${test21}[0] = 33160${test21}[1] = 43161${test21}[2] = 53162${test22}[0] = 43163${test22}[1] = 53164${test22}[2] = 63165*********************3166*** hash test... ***3167commented out...3168**************************3169*** Hash resizing test ***3170ba3171baa3172baaa3173baaaa3174baaaaa3175baaaaaa3176baaaaaaa3177baaaaaaaa3178baaaaaaaaa3179baaaaaaaaaa3180ba3181103182baa318393184baaa318583186baaaa318773188baaaaa318963190baaaaaa319153192baaaaaaa319343194baaaaaaaa319533196baaaaaaaaa319723198baaaaaaaaaa319913200**************************3201*** break/continue test ***3202$i should go from 0 to 23203$j should go from 3 to 4, and $q should go from 3 to 43204 $j=33205 $q=33206 $q=43207 $j=43208 $q=33209 $q=43210$j should go from 0 to 23211 $j=03212 $j=13213 $j=23214$k should go from 0 to 23215 $k=03216 $k=13217 $k=23218$i=03219$j should go from 3 to 4, and $q should go from 3 to 43220 $j=33221 $q=33222 $q=43223 $j=43224 $q=33225 $q=43226$j should go from 0 to 23227 $j=03228 $j=13229 $j=23230$k should go from 0 to 23231 $k=03232 $k=13233 $k=23234$i=13235$j should go from 3 to 4, and $q should go from 3 to 43236 $j=33237 $q=33238 $q=43239 $j=43240 $q=33241 $q=43242$j should go from 0 to 23243 $j=03244 $j=13245 $j=23246$k should go from 0 to 23247 $k=03248 $k=13249 $k=23250$i=23251***********************3252*** Nested file include test ***3253<html>3254This is Finish.phtml. This file is supposed to be included3255from regression_test.phtml. This is normal HTML.3256and this is PHP code, 2+2=43257</html>3258********************************3259Tests completed.3260<html>3261<head>3262*** Testing assignments and variable aliasing: ***3263This should read "blah": blah3264This should read "this is nifty": this is nifty3265*************************************************3266*** Testing integer operators ***3267Correct result - 8: 83268Correct result - 8: 83269Correct result - 2: 23270Correct result - -2: -23271Correct result - 15: 153272Correct result - 15: 153273Correct result - 2: 23274Correct result - 3: 33275*********************************3276*** Testing real operators ***3277Correct result - 8: 83278Correct result - 8: 83279Correct result - 2: 23280Correct result - -2: -23281Correct result - 15: 153282Correct result - 15: 153283Correct result - 2: 23284Correct result - 3: 33285*********************************3286*** Testing if/elseif/else control ***3287This works3288this_still_works3289should_print3290*** Seriously nested if's test ***3291** spelling correction by kluzz **3292Only two lines of text should follow:3293this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=03294this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=432953 loop iterations should follow:32962 432973 432984 43299**********************************3300*** C-style else-if's ***3301This should be displayed3302*************************3303*** WHILE tests ***33040 is smaller than 2033051 is smaller than 2033062 is smaller than 2033073 is smaller than 2033084 is smaller than 2033095 is smaller than 2033106 is smaller than 2033117 is smaller than 2033128 is smaller than 2033139 is smaller than 20331410 is smaller than 20331511 is smaller than 20331612 is smaller than 20331713 is smaller than 20331814 is smaller than 20331915 is smaller than 20332016 is smaller than 20332117 is smaller than 20332218 is smaller than 20332319 is smaller than 20332420 equals 20332521 is greater than 20332622 is greater than 20332723 is greater than 20332824 is greater than 20332925 is greater than 20333026 is greater than 20333127 is greater than 20333228 is greater than 20333329 is greater than 20333430 is greater than 20333531 is greater than 20333632 is greater than 20333733 is greater than 20333834 is greater than 20333935 is greater than 20334036 is greater than 20334137 is greater than 20334238 is greater than 20334339 is greater than 203344*******************3345*** Nested WHILEs ***3346Each array variable should be equal to the sum of its indices:3347${test00}[0] = 03348${test00}[1] = 13349${test00}[2] = 23350${test01}[0] = 13351${test01}[1] = 23352${test01}[2] = 33353${test02}[0] = 23354${test02}[1] = 33355${test02}[2] = 43356${test10}[0] = 13357${test10}[1] = 23358${test10}[2] = 33359${test11}[0] = 23360${test11}[1] = 33361${test11}[2] = 43362${test12}[0] = 33363${test12}[1] = 43364${test12}[2] = 53365${test20}[0] = 23366${test20}[1] = 33367${test20}[2] = 43368${test21}[0] = 33369${test21}[1] = 43370${test21}[2] = 53371${test22}[0] = 43372${test22}[1] = 53373${test22}[2] = 63374*********************3375*** hash test... ***3376commented out...3377**************************3378*** Hash resizing test ***3379ba3380baa3381baaa3382baaaa3383baaaaa3384baaaaaa3385baaaaaaa3386baaaaaaaa3387baaaaaaaaa3388baaaaaaaaaa3389ba3390103391baa339293393baaa339483395baaaa339673397baaaaa339863399baaaaaa340053401baaaaaaa340243403baaaaaaaa340433405baaaaaaaaa340623407baaaaaaaaaa340813409**************************3410*** break/continue test ***3411$i should go from 0 to 23412$j should go from 3 to 4, and $q should go from 3 to 43413 $j=33414 $q=33415 $q=43416 $j=43417 $q=33418 $q=43419$j should go from 0 to 23420 $j=03421 $j=13422 $j=23423$k should go from 0 to 23424 $k=03425 $k=13426 $k=23427$i=03428$j should go from 3 to 4, and $q should go from 3 to 43429 $j=33430 $q=33431 $q=43432 $j=43433 $q=33434 $q=43435$j should go from 0 to 23436 $j=03437 $j=13438 $j=23439$k should go from 0 to 23440 $k=03441 $k=13442 $k=23443$i=13444$j should go from 3 to 4, and $q should go from 3 to 43445 $j=33446 $q=33447 $q=43448 $j=43449 $q=33450 $q=43451$j should go from 0 to 23452 $j=03453 $j=13454 $j=23455$k should go from 0 to 23456 $k=03457 $k=13458 $k=23459$i=23460***********************3461*** Nested file include test ***3462<html>3463This is Finish.phtml. This file is supposed to be included3464from regression_test.phtml. This is normal HTML.3465and this is PHP code, 2+2=43466</html>3467********************************3468Tests completed.3469<html>3470<head>3471*** Testing assignments and variable aliasing: ***3472This should read "blah": blah3473This should read "this is nifty": this is nifty3474*************************************************3475*** Testing integer operators ***3476Correct result - 8: 83477Correct result - 8: 83478Correct result - 2: 23479Correct result - -2: -23480Correct result - 15: 153481Correct result - 15: 153482Correct result - 2: 23483Correct result - 3: 33484*********************************3485*** Testing real operators ***3486Correct result - 8: 83487Correct result - 8: 83488Correct result - 2: 23489Correct result - -2: -23490Correct result - 15: 153491Correct result - 15: 153492Correct result - 2: 23493Correct result - 3: 33494*********************************3495*** Testing if/elseif/else control ***3496This works3497this_still_works3498should_print3499*** Seriously nested if's test ***3500** spelling correction by kluzz **3501Only two lines of text should follow:3502this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=03503this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=435043 loop iterations should follow:35052 435063 435074 43508**********************************3509*** C-style else-if's ***3510This should be displayed3511*************************3512*** WHILE tests ***35130 is smaller than 2035141 is smaller than 2035152 is smaller than 2035163 is smaller than 2035174 is smaller than 2035185 is smaller than 2035196 is smaller than 2035207 is smaller than 2035218 is smaller than 2035229 is smaller than 20352310 is smaller than 20352411 is smaller than 20352512 is smaller than 20352613 is smaller than 20352714 is smaller than 20352815 is smaller than 20352916 is smaller than 20353017 is smaller than 20353118 is smaller than 20353219 is smaller than 20353320 equals 20353421 is greater than 20353522 is greater than 20353623 is greater than 20353724 is greater than 20353825 is greater than 20353926 is greater than 20354027 is greater than 20354128 is greater than 20354229 is greater than 20354330 is greater than 20354431 is greater than 20354532 is greater than 20354633 is greater than 20354734 is greater than 20354835 is greater than 20354936 is greater than 20355037 is greater than 20355138 is greater than 20355239 is greater than 203553*******************3554*** Nested WHILEs ***3555Each array variable should be equal to the sum of its indices:3556${test00}[0] = 03557${test00}[1] = 13558${test00}[2] = 23559${test01}[0] = 13560${test01}[1] = 23561${test01}[2] = 33562${test02}[0] = 23563${test02}[1] = 33564${test02}[2] = 43565${test10}[0] = 13566${test10}[1] = 23567${test10}[2] = 33568${test11}[0] = 23569${test11}[1] = 33570${test11}[2] = 43571${test12}[0] = 33572${test12}[1] = 43573${test12}[2] = 53574${test20}[0] = 23575${test20}[1] = 33576${test20}[2] = 43577${test21}[0] = 33578${test21}[1] = 43579${test21}[2] = 53580${test22}[0] = 43581${test22}[1] = 53582${test22}[2] = 63583*********************3584*** hash test... ***3585commented out...3586**************************3587*** Hash resizing test ***3588ba3589baa3590baaa3591baaaa3592baaaaa3593baaaaaa3594baaaaaaa3595baaaaaaaa3596baaaaaaaaa3597baaaaaaaaaa3598ba3599103600baa360193602baaa360383604baaaa360573606baaaaa360763608baaaaaa360953610baaaaaaa361143612baaaaaaaa361333614baaaaaaaaa361523616baaaaaaaaaa361713618**************************3619*** break/continue test ***3620$i should go from 0 to 23621$j should go from 3 to 4, and $q should go from 3 to 43622 $j=33623 $q=33624 $q=43625 $j=43626 $q=33627 $q=43628$j should go from 0 to 23629 $j=03630 $j=13631 $j=23632$k should go from 0 to 23633 $k=03634 $k=13635 $k=23636$i=03637$j should go from 3 to 4, and $q should go from 3 to 43638 $j=33639 $q=33640 $q=43641 $j=43642 $q=33643 $q=43644$j should go from 0 to 23645 $j=03646 $j=13647 $j=23648$k should go from 0 to 23649 $k=03650 $k=13651 $k=23652$i=13653$j should go from 3 to 4, and $q should go from 3 to 43654 $j=33655 $q=33656 $q=43657 $j=43658 $q=33659 $q=43660$j should go from 0 to 23661 $j=03662 $j=13663 $j=23664$k should go from 0 to 23665 $k=03666 $k=13667 $k=23668$i=23669***********************3670*** Nested file include test ***3671<html>3672This is Finish.phtml. This file is supposed to be included3673from regression_test.phtml. This is normal HTML.3674and this is PHP code, 2+2=43675</html>3676********************************3677Tests completed.3678<html>3679<head>3680*** Testing assignments and variable aliasing: ***3681This should read "blah": blah3682This should read "this is nifty": this is nifty3683*************************************************3684*** Testing integer operators ***3685Correct result - 8: 83686Correct result - 8: 83687Correct result - 2: 23688Correct result - -2: -23689Correct result - 15: 153690Correct result - 15: 153691Correct result - 2: 23692Correct result - 3: 33693*********************************3694*** Testing real operators ***3695Correct result - 8: 83696Correct result - 8: 83697Correct result - 2: 23698Correct result - -2: -23699Correct result - 15: 153700Correct result - 15: 153701Correct result - 2: 23702Correct result - 3: 33703*********************************3704*** Testing if/elseif/else control ***3705This works3706this_still_works3707should_print3708*** Seriously nested if's test ***3709** spelling correction by kluzz **3710Only two lines of text should follow:3711this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=03712this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=437133 loop iterations should follow:37142 437153 437164 43717**********************************3718*** C-style else-if's ***3719This should be displayed3720*************************3721*** WHILE tests ***37220 is smaller than 2037231 is smaller than 2037242 is smaller than 2037253 is smaller than 2037264 is smaller than 2037275 is smaller than 2037286 is smaller than 2037297 is smaller than 2037308 is smaller than 2037319 is smaller than 20373210 is smaller than 20373311 is smaller than 20373412 is smaller than 20373513 is smaller than 20373614 is smaller than 20373715 is smaller than 20373816 is smaller than 20373917 is smaller than 20374018 is smaller than 20374119 is smaller than 20374220 equals 20374321 is greater than 20374422 is greater than 20374523 is greater than 20374624 is greater than 20374725 is greater than 20374826 is greater than 20374927 is greater than 20375028 is greater than 20375129 is greater than 20375230 is greater than 20375331 is greater than 20375432 is greater than 20375533 is greater than 20375634 is greater than 20375735 is greater than 20375836 is greater than 20375937 is greater than 20376038 is greater than 20376139 is greater than 203762*******************3763*** Nested WHILEs ***3764Each array variable should be equal to the sum of its indices:3765${test00}[0] = 03766${test00}[1] = 13767${test00}[2] = 23768${test01}[0] = 13769${test01}[1] = 23770${test01}[2] = 33771${test02}[0] = 23772${test02}[1] = 33773${test02}[2] = 43774${test10}[0] = 13775${test10}[1] = 23776${test10}[2] = 33777${test11}[0] = 23778${test11}[1] = 33779${test11}[2] = 43780${test12}[0] = 33781${test12}[1] = 43782${test12}[2] = 53783${test20}[0] = 23784${test20}[1] = 33785${test20}[2] = 43786${test21}[0] = 33787${test21}[1] = 43788${test21}[2] = 53789${test22}[0] = 43790${test22}[1] = 53791${test22}[2] = 63792*********************3793*** hash test... ***3794commented out...3795**************************3796*** Hash resizing test ***3797ba3798baa3799baaa3800baaaa3801baaaaa3802baaaaaa3803baaaaaaa3804baaaaaaaa3805baaaaaaaaa3806baaaaaaaaaa3807ba3808103809baa381093811baaa381283813baaaa381473815baaaaa381663817baaaaaa381853819baaaaaaa382043821baaaaaaaa382233823baaaaaaaaa382423825baaaaaaaaaa382613827**************************3828*** break/continue test ***3829$i should go from 0 to 23830$j should go from 3 to 4, and $q should go from 3 to 43831 $j=33832 $q=33833 $q=43834 $j=43835 $q=33836 $q=43837$j should go from 0 to 23838 $j=03839 $j=13840 $j=23841$k should go from 0 to 23842 $k=03843 $k=13844 $k=23845$i=03846$j should go from 3 to 4, and $q should go from 3 to 43847 $j=33848 $q=33849 $q=43850 $j=43851 $q=33852 $q=43853$j should go from 0 to 23854 $j=03855 $j=13856 $j=23857$k should go from 0 to 23858 $k=03859 $k=13860 $k=23861$i=13862$j should go from 3 to 4, and $q should go from 3 to 43863 $j=33864 $q=33865 $q=43866 $j=43867 $q=33868 $q=43869$j should go from 0 to 23870 $j=03871 $j=13872 $j=23873$k should go from 0 to 23874 $k=03875 $k=13876 $k=23877$i=23878***********************3879*** Nested file include test ***3880<html>3881This is Finish.phtml. This file is supposed to be included3882from regression_test.phtml. This is normal HTML.3883and this is PHP code, 2+2=43884</html>3885********************************3886Tests completed.3887<html>3888<head>3889*** Testing assignments and variable aliasing: ***3890This should read "blah": blah3891This should read "this is nifty": this is nifty3892*************************************************3893*** Testing integer operators ***3894Correct result - 8: 83895Correct result - 8: 83896Correct result - 2: 23897Correct result - -2: -23898Correct result - 15: 153899Correct result - 15: 153900Correct result - 2: 23901Correct result - 3: 33902*********************************3903*** Testing real operators ***3904Correct result - 8: 83905Correct result - 8: 83906Correct result - 2: 23907Correct result - -2: -23908Correct result - 15: 153909Correct result - 15: 153910Correct result - 2: 23911Correct result - 3: 33912*********************************3913*** Testing if/elseif/else control ***3914This works3915this_still_works3916should_print3917*** Seriously nested if's test ***3918** spelling correction by kluzz **3919Only two lines of text should follow:3920this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=03921this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=439223 loop iterations should follow:39232 439243 439254 43926**********************************3927*** C-style else-if's ***3928This should be displayed3929*************************3930*** WHILE tests ***39310 is smaller than 2039321 is smaller than 2039332 is smaller than 2039343 is smaller than 2039354 is smaller than 2039365 is smaller than 2039376 is smaller than 2039387 is smaller than 2039398 is smaller than 2039409 is smaller than 20394110 is smaller than 20394211 is smaller than 20394312 is smaller than 20394413 is smaller than 20394514 is smaller than 20394615 is smaller than 20394716 is smaller than 20394817 is smaller than 20394918 is smaller than 20395019 is smaller than 20395120 equals 20395221 is greater than 20395322 is greater than 20395423 is greater than 20395524 is greater than 20395625 is greater than 20395726 is greater than 20395827 is greater than 20395928 is greater than 20396029 is greater than 20396130 is greater than 20396231 is greater than 20396332 is greater than 20396433 is greater than 20396534 is greater than 20396635 is greater than 20396736 is greater than 20396837 is greater than 20396938 is greater than 20397039 is greater than 203971*******************3972*** Nested WHILEs ***3973Each array variable should be equal to the sum of its indices:3974${test00}[0] = 03975${test00}[1] = 13976${test00}[2] = 23977${test01}[0] = 13978${test01}[1] = 23979${test01}[2] = 33980${test02}[0] = 23981${test02}[1] = 33982${test02}[2] = 43983${test10}[0] = 13984${test10}[1] = 23985${test10}[2] = 33986${test11}[0] = 23987${test11}[1] = 33988${test11}[2] = 43989${test12}[0] = 33990${test12}[1] = 43991${test12}[2] = 53992${test20}[0] = 23993${test20}[1] = 33994${test20}[2] = 43995${test21}[0] = 33996${test21}[1] = 43997${test21}[2] = 53998${test22}[0] = 43999${test22}[1] = 54000${test22}[2] = 64001*********************4002*** hash test... ***4003commented out...4004**************************4005*** Hash resizing test ***4006ba4007baa4008baaa4009baaaa4010baaaaa4011baaaaaa4012baaaaaaa4013baaaaaaaa4014baaaaaaaaa4015baaaaaaaaaa4016ba4017104018baa401994020baaa402184022baaaa402374024baaaaa402564026baaaaaa402754028baaaaaaa402944030baaaaaaaa403134032baaaaaaaaa403324034baaaaaaaaaa403514036**************************4037*** break/continue test ***4038$i should go from 0 to 24039$j should go from 3 to 4, and $q should go from 3 to 44040 $j=34041 $q=34042 $q=44043 $j=44044 $q=34045 $q=44046$j should go from 0 to 24047 $j=04048 $j=14049 $j=24050$k should go from 0 to 24051 $k=04052 $k=14053 $k=24054$i=04055$j should go from 3 to 4, and $q should go from 3 to 44056 $j=34057 $q=34058 $q=44059 $j=44060 $q=34061 $q=44062$j should go from 0 to 24063 $j=04064 $j=14065 $j=24066$k should go from 0 to 24067 $k=04068 $k=14069 $k=24070$i=14071$j should go from 3 to 4, and $q should go from 3 to 44072 $j=34073 $q=34074 $q=44075 $j=44076 $q=34077 $q=44078$j should go from 0 to 24079 $j=04080 $j=14081 $j=24082$k should go from 0 to 24083 $k=04084 $k=14085 $k=24086$i=24087***********************4088*** Nested file include test ***4089<html>4090This is Finish.phtml. This file is supposed to be included4091from regression_test.phtml. This is normal HTML.4092and this is PHP code, 2+2=44093</html>4094********************************4095Tests completed.4096<html>4097<head>4098*** Testing assignments and variable aliasing: ***4099This should read "blah": blah4100This should read "this is nifty": this is nifty4101*************************************************4102*** Testing integer operators ***4103Correct result - 8: 84104Correct result - 8: 84105Correct result - 2: 24106Correct result - -2: -24107Correct result - 15: 154108Correct result - 15: 154109Correct result - 2: 24110Correct result - 3: 34111*********************************4112*** Testing real operators ***4113Correct result - 8: 84114Correct result - 8: 84115Correct result - 2: 24116Correct result - -2: -24117Correct result - 15: 154118Correct result - 15: 154119Correct result - 2: 24120Correct result - 3: 34121*********************************4122*** Testing if/elseif/else control ***4123This works4124this_still_works4125should_print4126*** Seriously nested if's test ***4127** spelling correction by kluzz **4128Only two lines of text should follow:4129this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=04130this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=441313 loop iterations should follow:41322 441333 441344 44135**********************************4136*** C-style else-if's ***4137This should be displayed4138*************************4139*** WHILE tests ***41400 is smaller than 2041411 is smaller than 2041422 is smaller than 2041433 is smaller than 2041444 is smaller than 2041455 is smaller than 2041466 is smaller than 2041477 is smaller than 2041488 is smaller than 2041499 is smaller than 20415010 is smaller than 20415111 is smaller than 20415212 is smaller than 20415313 is smaller than 20415414 is smaller than 20415515 is smaller than 20415616 is smaller than 20415717 is smaller than 20415818 is smaller than 20415919 is smaller than 20416020 equals 20416121 is greater than 20416222 is greater than 20416323 is greater than 20416424 is greater than 20416525 is greater than 20416626 is greater than 20416727 is greater than 20416828 is greater than 20416929 is greater than 20417030 is greater than 20417131 is greater than 20417232 is greater than 20417333 is greater than 20417434 is greater than 20417535 is greater than 20417636 is greater than 20417737 is greater than 20417838 is greater than 20417939 is greater than 204180*******************4181*** Nested WHILEs ***4182Each array variable should be equal to the sum of its indices:4183${test00}[0] = 04184${test00}[1] = 14185${test00}[2] = 24186${test01}[0] = 14187${test01}[1] = 24188${test01}[2] = 34189${test02}[0] = 24190${test02}[1] = 34191${test02}[2] = 44192${test10}[0] = 14193${test10}[1] = 24194${test10}[2] = 34195${test11}[0] = 24196${test11}[1] = 34197${test11}[2] = 44198${test12}[0] = 34199${test12}[1] = 44200${test12}[2] = 54201${test20}[0] = 24202${test20}[1] = 34203${test20}[2] = 44204${test21}[0] = 34205${test21}[1] = 44206${test21}[2] = 54207${test22}[0] = 44208${test22}[1] = 54209${test22}[2] = 64210*********************4211*** hash test... ***4212commented out...4213**************************4214*** Hash resizing test ***4215ba4216baa4217baaa4218baaaa4219baaaaa4220baaaaaa4221baaaaaaa4222baaaaaaaa4223baaaaaaaaa4224baaaaaaaaaa4225ba4226104227baa422894229baaa423084231baaaa423274233baaaaa423464235baaaaaa423654237baaaaaaa423844239baaaaaaaa424034241baaaaaaaaa424224243baaaaaaaaaa424414245**************************4246*** break/continue test ***4247$i should go from 0 to 24248$j should go from 3 to 4, and $q should go from 3 to 44249 $j=34250 $q=34251 $q=44252 $j=44253 $q=34254 $q=44255$j should go from 0 to 24256 $j=04257 $j=14258 $j=24259$k should go from 0 to 24260 $k=04261 $k=14262 $k=24263$i=04264$j should go from 3 to 4, and $q should go from 3 to 44265 $j=34266 $q=34267 $q=44268 $j=44269 $q=34270 $q=44271$j should go from 0 to 24272 $j=04273 $j=14274 $j=24275$k should go from 0 to 24276 $k=04277 $k=14278 $k=24279$i=14280$j should go from 3 to 4, and $q should go from 3 to 44281 $j=34282 $q=34283 $q=44284 $j=44285 $q=34286 $q=44287$j should go from 0 to 24288 $j=04289 $j=14290 $j=24291$k should go from 0 to 24292 $k=04293 $k=14294 $k=24295$i=24296***********************4297*** Nested file include test ***4298<html>4299This is Finish.phtml. This file is supposed to be included4300from regression_test.phtml. This is normal HTML.4301and this is PHP code, 2+2=44302</html>4303********************************4304Tests completed.4305<html>4306<head>4307*** Testing assignments and variable aliasing: ***4308This should read "blah": blah4309This should read "this is nifty": this is nifty4310*************************************************4311*** Testing integer operators ***4312Correct result - 8: 84313Correct result - 8: 84314Correct result - 2: 24315Correct result - -2: -24316Correct result - 15: 154317Correct result - 15: 154318Correct result - 2: 24319Correct result - 3: 34320*********************************4321*** Testing real operators ***4322Correct result - 8: 84323Correct result - 8: 84324Correct result - 2: 24325Correct result - -2: -24326Correct result - 15: 154327Correct result - 15: 154328Correct result - 2: 24329Correct result - 3: 34330*********************************4331*** Testing if/elseif/else control ***4332This works4333this_still_works4334should_print4335*** Seriously nested if's test ***4336** spelling correction by kluzz **4337Only two lines of text should follow:4338this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=04339this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=443403 loop iterations should follow:43412 443423 443434 44344**********************************4345*** C-style else-if's ***4346This should be displayed4347*************************4348*** WHILE tests ***43490 is smaller than 2043501 is smaller than 2043512 is smaller than 2043523 is smaller than 2043534 is smaller than 2043545 is smaller than 2043556 is smaller than 2043567 is smaller than 2043578 is smaller than 2043589 is smaller than 20435910 is smaller than 20436011 is smaller than 20436112 is smaller than 20436213 is smaller than 20436314 is smaller than 20436415 is smaller than 20436516 is smaller than 20436617 is smaller than 20436718 is smaller than 20436819 is smaller than 20436920 equals 20437021 is greater than 20437122 is greater than 20437223 is greater than 20437324 is greater than 20437425 is greater than 20437526 is greater than 20437627 is greater than 20437728 is greater than 20437829 is greater than 20437930 is greater than 20438031 is greater than 20438132 is greater than 20438233 is greater than 20438334 is greater than 20438435 is greater than 20438536 is greater than 20438637 is greater than 20438738 is greater than 20438839 is greater than 204389*******************4390*** Nested WHILEs ***4391Each array variable should be equal to the sum of its indices:4392${test00}[0] = 04393${test00}[1] = 14394${test00}[2] = 24395${test01}[0] = 14396${test01}[1] = 24397${test01}[2] = 34398${test02}[0] = 24399${test02}[1] = 34400${test02}[2] = 44401${test10}[0] = 14402${test10}[1] = 24403${test10}[2] = 34404${test11}[0] = 24405${test11}[1] = 34406${test11}[2] = 44407${test12}[0] = 34408${test12}[1] = 44409${test12}[2] = 54410${test20}[0] = 24411${test20}[1] = 34412${test20}[2] = 44413${test21}[0] = 34414${test21}[1] = 44415${test21}[2] = 54416${test22}[0] = 44417${test22}[1] = 54418${test22}[2] = 64419*********************4420*** hash test... ***4421commented out...4422**************************4423*** Hash resizing test ***4424ba4425baa4426baaa4427baaaa4428baaaaa4429baaaaaa4430baaaaaaa4431baaaaaaaa4432baaaaaaaaa4433baaaaaaaaaa4434ba4435104436baa443794438baaa443984440baaaa444174442baaaaa444364444baaaaaa444554446baaaaaaa444744448baaaaaaaa444934450baaaaaaaaa445124452baaaaaaaaaa445314454**************************4455*** break/continue test ***4456$i should go from 0 to 24457$j should go from 3 to 4, and $q should go from 3 to 44458 $j=34459 $q=34460 $q=44461 $j=44462 $q=34463 $q=44464$j should go from 0 to 24465 $j=04466 $j=14467 $j=24468$k should go from 0 to 24469 $k=04470 $k=14471 $k=24472$i=04473$j should go from 3 to 4, and $q should go from 3 to 44474 $j=34475 $q=34476 $q=44477 $j=44478 $q=34479 $q=44480$j should go from 0 to 24481 $j=04482 $j=14483 $j=24484$k should go from 0 to 24485 $k=04486 $k=14487 $k=24488$i=14489$j should go from 3 to 4, and $q should go from 3 to 44490 $j=34491 $q=34492 $q=44493 $j=44494 $q=34495 $q=44496$j should go from 0 to 24497 $j=04498 $j=14499 $j=24500$k should go from 0 to 24501 $k=04502 $k=14503 $k=24504$i=24505***********************4506*** Nested file include test ***4507<html>4508This is Finish.phtml. This file is supposed to be included4509from regression_test.phtml. This is normal HTML.4510and this is PHP code, 2+2=44511</html>4512********************************4513Tests completed.4514<html>4515<head>4516*** Testing assignments and variable aliasing: ***4517This should read "blah": blah4518This should read "this is nifty": this is nifty4519*************************************************4520*** Testing integer operators ***4521Correct result - 8: 84522Correct result - 8: 84523Correct result - 2: 24524Correct result - -2: -24525Correct result - 15: 154526Correct result - 15: 154527Correct result - 2: 24528Correct result - 3: 34529*********************************4530*** Testing real operators ***4531Correct result - 8: 84532Correct result - 8: 84533Correct result - 2: 24534Correct result - -2: -24535Correct result - 15: 154536Correct result - 15: 154537Correct result - 2: 24538Correct result - 3: 34539*********************************4540*** Testing if/elseif/else control ***4541This works4542this_still_works4543should_print4544*** Seriously nested if's test ***4545** spelling correction by kluzz **4546Only two lines of text should follow:4547this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=04548this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=445493 loop iterations should follow:45502 445513 445524 44553**********************************4554*** C-style else-if's ***4555This should be displayed4556*************************4557*** WHILE tests ***45580 is smaller than 2045591 is smaller than 2045602 is smaller than 2045613 is smaller than 2045624 is smaller than 2045635 is smaller than 2045646 is smaller than 2045657 is smaller than 2045668 is smaller than 2045679 is smaller than 20456810 is smaller than 20456911 is smaller than 20457012 is smaller than 20457113 is smaller than 20457214 is smaller than 20457315 is smaller than 20457416 is smaller than 20457517 is smaller than 20457618 is smaller than 20457719 is smaller than 20457820 equals 20457921 is greater than 20458022 is greater than 20458123 is greater than 20458224 is greater than 20458325 is greater than 20458426 is greater than 20458527 is greater than 20458628 is greater than 20458729 is greater than 20458830 is greater than 20458931 is greater than 20459032 is greater than 20459133 is greater than 20459234 is greater than 20459335 is greater than 20459436 is greater than 20459537 is greater than 20459638 is greater than 20459739 is greater than 204598*******************4599*** Nested WHILEs ***4600Each array variable should be equal to the sum of its indices:4601${test00}[0] = 04602${test00}[1] = 14603${test00}[2] = 24604${test01}[0] = 14605${test01}[1] = 24606${test01}[2] = 34607${test02}[0] = 24608${test02}[1] = 34609${test02}[2] = 44610${test10}[0] = 14611${test10}[1] = 24612${test10}[2] = 34613${test11}[0] = 24614${test11}[1] = 34615${test11}[2] = 44616${test12}[0] = 34617${test12}[1] = 44618${test12}[2] = 54619${test20}[0] = 24620${test20}[1] = 34621${test20}[2] = 44622${test21}[0] = 34623${test21}[1] = 44624${test21}[2] = 54625${test22}[0] = 44626${test22}[1] = 54627${test22}[2] = 64628*********************4629*** hash test... ***4630commented out...4631**************************4632*** Hash resizing test ***4633ba4634baa4635baaa4636baaaa4637baaaaa4638baaaaaa4639baaaaaaa4640baaaaaaaa4641baaaaaaaaa4642baaaaaaaaaa4643ba4644104645baa464694647baaa464884649baaaa465074651baaaaa465264653baaaaaa465454655baaaaaaa465644657baaaaaaaa465834659baaaaaaaaa466024661baaaaaaaaaa466214663**************************4664*** break/continue test ***4665$i should go from 0 to 24666$j should go from 3 to 4, and $q should go from 3 to 44667 $j=34668 $q=34669 $q=44670 $j=44671 $q=34672 $q=44673$j should go from 0 to 24674 $j=04675 $j=14676 $j=24677$k should go from 0 to 24678 $k=04679 $k=14680 $k=24681$i=04682$j should go from 3 to 4, and $q should go from 3 to 44683 $j=34684 $q=34685 $q=44686 $j=44687 $q=34688 $q=44689$j should go from 0 to 24690 $j=04691 $j=14692 $j=24693$k should go from 0 to 24694 $k=04695 $k=14696 $k=24697$i=14698$j should go from 3 to 4, and $q should go from 3 to 44699 $j=34700 $q=34701 $q=44702 $j=44703 $q=34704 $q=44705$j should go from 0 to 24706 $j=04707 $j=14708 $j=24709$k should go from 0 to 24710 $k=04711 $k=14712 $k=24713$i=24714***********************4715*** Nested file include test ***4716<html>4717This is Finish.phtml. This file is supposed to be included4718from regression_test.phtml. This is normal HTML.4719and this is PHP code, 2+2=44720</html>4721********************************4722Tests completed.4723<html>4724<head>4725*** Testing assignments and variable aliasing: ***4726This should read "blah": blah4727This should read "this is nifty": this is nifty4728*************************************************4729*** Testing integer operators ***4730Correct result - 8: 84731Correct result - 8: 84732Correct result - 2: 24733Correct result - -2: -24734Correct result - 15: 154735Correct result - 15: 154736Correct result - 2: 24737Correct result - 3: 34738*********************************4739*** Testing real operators ***4740Correct result - 8: 84741Correct result - 8: 84742Correct result - 2: 24743Correct result - -2: -24744Correct result - 15: 154745Correct result - 15: 154746Correct result - 2: 24747Correct result - 3: 34748*********************************4749*** Testing if/elseif/else control ***4750This works4751this_still_works4752should_print4753*** Seriously nested if's test ***4754** spelling correction by kluzz **4755Only two lines of text should follow:4756this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=04757this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=447583 loop iterations should follow:47592 447603 447614 44762**********************************4763*** C-style else-if's ***4764This should be displayed4765*************************4766*** WHILE tests ***47670 is smaller than 2047681 is smaller than 2047692 is smaller than 2047703 is smaller than 2047714 is smaller than 2047725 is smaller than 2047736 is smaller than 2047747 is smaller than 2047758 is smaller than 2047769 is smaller than 20477710 is smaller than 20477811 is smaller than 20477912 is smaller than 20478013 is smaller than 20478114 is smaller than 20478215 is smaller than 20478316 is smaller than 20478417 is smaller than 20478518 is smaller than 20478619 is smaller than 20478720 equals 20478821 is greater than 20478922 is greater than 20479023 is greater than 20479124 is greater than 20479225 is greater than 20479326 is greater than 20479427 is greater than 20479528 is greater than 20479629 is greater than 20479730 is greater than 20479831 is greater than 20479932 is greater than 20480033 is greater than 20480134 is greater than 20480235 is greater than 20480336 is greater than 20480437 is greater than 20480538 is greater than 20480639 is greater than 204807*******************4808*** Nested WHILEs ***4809Each array variable should be equal to the sum of its indices:4810${test00}[0] = 04811${test00}[1] = 14812${test00}[2] = 24813${test01}[0] = 14814${test01}[1] = 24815${test01}[2] = 34816${test02}[0] = 24817${test02}[1] = 34818${test02}[2] = 44819${test10}[0] = 14820${test10}[1] = 24821${test10}[2] = 34822${test11}[0] = 24823${test11}[1] = 34824${test11}[2] = 44825${test12}[0] = 34826${test12}[1] = 44827${test12}[2] = 54828${test20}[0] = 24829${test20}[1] = 34830${test20}[2] = 44831${test21}[0] = 34832${test21}[1] = 44833${test21}[2] = 54834${test22}[0] = 44835${test22}[1] = 54836${test22}[2] = 64837*********************4838*** hash test... ***4839commented out...4840**************************4841*** Hash resizing test ***4842ba4843baa4844baaa4845baaaa4846baaaaa4847baaaaaa4848baaaaaaa4849baaaaaaaa4850baaaaaaaaa4851baaaaaaaaaa4852ba4853104854baa485594856baaa485784858baaaa485974860baaaaa486164862baaaaaa486354864baaaaaaa486544866baaaaaaaa486734868baaaaaaaaa486924870baaaaaaaaaa487114872**************************4873*** break/continue test ***4874$i should go from 0 to 24875$j should go from 3 to 4, and $q should go from 3 to 44876 $j=34877 $q=34878 $q=44879 $j=44880 $q=34881 $q=44882$j should go from 0 to 24883 $j=04884 $j=14885 $j=24886$k should go from 0 to 24887 $k=04888 $k=14889 $k=24890$i=04891$j should go from 3 to 4, and $q should go from 3 to 44892 $j=34893 $q=34894 $q=44895 $j=44896 $q=34897 $q=44898$j should go from 0 to 24899 $j=04900 $j=14901 $j=24902$k should go from 0 to 24903 $k=04904 $k=14905 $k=24906$i=14907$j should go from 3 to 4, and $q should go from 3 to 44908 $j=34909 $q=34910 $q=44911 $j=44912 $q=34913 $q=44914$j should go from 0 to 24915 $j=04916 $j=14917 $j=24918$k should go from 0 to 24919 $k=04920 $k=14921 $k=24922$i=24923***********************4924*** Nested file include test ***4925<html>4926This is Finish.phtml. This file is supposed to be included4927from regression_test.phtml. This is normal HTML.4928and this is PHP code, 2+2=44929</html>4930********************************4931Tests completed.4932<html>4933<head>4934*** Testing assignments and variable aliasing: ***4935This should read "blah": blah4936This should read "this is nifty": this is nifty4937*************************************************4938*** Testing integer operators ***4939Correct result - 8: 84940Correct result - 8: 84941Correct result - 2: 24942Correct result - -2: -24943Correct result - 15: 154944Correct result - 15: 154945Correct result - 2: 24946Correct result - 3: 34947*********************************4948*** Testing real operators ***4949Correct result - 8: 84950Correct result - 8: 84951Correct result - 2: 24952Correct result - -2: -24953Correct result - 15: 154954Correct result - 15: 154955Correct result - 2: 24956Correct result - 3: 34957*********************************4958*** Testing if/elseif/else control ***4959This works4960this_still_works4961should_print4962*** Seriously nested if's test ***4963** spelling correction by kluzz **4964Only two lines of text should follow:4965this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=04966this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=449673 loop iterations should follow:49682 449693 449704 44971**********************************4972*** C-style else-if's ***4973This should be displayed4974*************************4975*** WHILE tests ***49760 is smaller than 2049771 is smaller than 2049782 is smaller than 2049793 is smaller than 2049804 is smaller than 2049815 is smaller than 2049826 is smaller than 2049837 is smaller than 2049848 is smaller than 2049859 is smaller than 20498610 is smaller than 20498711 is smaller than 20498812 is smaller than 20498913 is smaller than 20499014 is smaller than 20499115 is smaller than 20499216 is smaller than 20499317 is smaller than 20499418 is smaller than 20499519 is smaller than 20499620 equals 20499721 is greater than 20499822 is greater than 20499923 is greater than 20500024 is greater than 20500125 is greater than 20500226 is greater than 20500327 is greater than 20500428 is greater than 20500529 is greater than 20500630 is greater than 20500731 is greater than 20500832 is greater than 20500933 is greater than 20501034 is greater than 20501135 is greater than 20501236 is greater than 20501337 is greater than 20501438 is greater than 20501539 is greater than 205016*******************5017*** Nested WHILEs ***5018Each array variable should be equal to the sum of its indices:5019${test00}[0] = 05020${test00}[1] = 15021${test00}[2] = 25022${test01}[0] = 15023${test01}[1] = 25024${test01}[2] = 35025${test02}[0] = 25026${test02}[1] = 35027${test02}[2] = 45028${test10}[0] = 15029${test10}[1] = 25030${test10}[2] = 35031${test11}[0] = 25032${test11}[1] = 35033${test11}[2] = 45034${test12}[0] = 35035${test12}[1] = 45036${test12}[2] = 55037${test20}[0] = 25038${test20}[1] = 35039${test20}[2] = 45040${test21}[0] = 35041${test21}[1] = 45042${test21}[2] = 55043${test22}[0] = 45044${test22}[1] = 55045${test22}[2] = 65046*********************5047*** hash test... ***5048commented out...5049**************************5050*** Hash resizing test ***5051ba5052baa5053baaa5054baaaa5055baaaaa5056baaaaaa5057baaaaaaa5058baaaaaaaa5059baaaaaaaaa5060baaaaaaaaaa5061ba5062105063baa506495065baaa506685067baaaa506875069baaaaa507065071baaaaaa507255073baaaaaaa507445075baaaaaaaa507635077baaaaaaaaa507825079baaaaaaaaaa508015081**************************5082*** break/continue test ***5083$i should go from 0 to 25084$j should go from 3 to 4, and $q should go from 3 to 45085 $j=35086 $q=35087 $q=45088 $j=45089 $q=35090 $q=45091$j should go from 0 to 25092 $j=05093 $j=15094 $j=25095$k should go from 0 to 25096 $k=05097 $k=15098 $k=25099$i=05100$j should go from 3 to 4, and $q should go from 3 to 45101 $j=35102 $q=35103 $q=45104 $j=45105 $q=35106 $q=45107$j should go from 0 to 25108 $j=05109 $j=15110 $j=25111$k should go from 0 to 25112 $k=05113 $k=15114 $k=25115$i=15116$j should go from 3 to 4, and $q should go from 3 to 45117 $j=35118 $q=35119 $q=45120 $j=45121 $q=35122 $q=45123$j should go from 0 to 25124 $j=05125 $j=15126 $j=25127$k should go from 0 to 25128 $k=05129 $k=15130 $k=25131$i=25132***********************5133*** Nested file include test ***5134<html>5135This is Finish.phtml. This file is supposed to be included5136from regression_test.phtml. This is normal HTML.5137and this is PHP code, 2+2=45138</html>5139********************************5140Tests completed.5141<html>5142<head>5143*** Testing assignments and variable aliasing: ***5144This should read "blah": blah5145This should read "this is nifty": this is nifty5146*************************************************5147*** Testing integer operators ***5148Correct result - 8: 85149Correct result - 8: 85150Correct result - 2: 25151Correct result - -2: -25152Correct result - 15: 155153Correct result - 15: 155154Correct result - 2: 25155Correct result - 3: 35156*********************************5157*** Testing real operators ***5158Correct result - 8: 85159Correct result - 8: 85160Correct result - 2: 25161Correct result - -2: -25162Correct result - 15: 155163Correct result - 15: 155164Correct result - 2: 25165Correct result - 3: 35166*********************************5167*** Testing if/elseif/else control ***5168This works5169this_still_works5170should_print5171*** Seriously nested if's test ***5172** spelling correction by kluzz **5173Only two lines of text should follow:5174this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=05175this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=451763 loop iterations should follow:51772 451783 451794 45180**********************************5181*** C-style else-if's ***5182This should be displayed5183*************************5184*** WHILE tests ***51850 is smaller than 2051861 is smaller than 2051872 is smaller than 2051883 is smaller than 2051894 is smaller than 2051905 is smaller than 2051916 is smaller than 2051927 is smaller than 2051938 is smaller than 2051949 is smaller than 20519510 is smaller than 20519611 is smaller than 20519712 is smaller than 20519813 is smaller than 20519914 is smaller than 20520015 is smaller than 20520116 is smaller than 20520217 is smaller than 20520318 is smaller than 20520419 is smaller than 20520520 equals 20520621 is greater than 20520722 is greater than 20520823 is greater than 20520924 is greater than 20521025 is greater than 20521126 is greater than 20521227 is greater than 20521328 is greater than 20521429 is greater than 20521530 is greater than 20521631 is greater than 20521732 is greater than 20521833 is greater than 20521934 is greater than 20522035 is greater than 20522136 is greater than 20522237 is greater than 20522338 is greater than 20522439 is greater than 205225*******************5226*** Nested WHILEs ***5227Each array variable should be equal to the sum of its indices:5228${test00}[0] = 05229${test00}[1] = 15230${test00}[2] = 25231${test01}[0] = 15232${test01}[1] = 25233${test01}[2] = 35234${test02}[0] = 25235${test02}[1] = 35236${test02}[2] = 45237${test10}[0] = 15238${test10}[1] = 25239${test10}[2] = 35240${test11}[0] = 25241${test11}[1] = 35242${test11}[2] = 45243${test12}[0] = 35244${test12}[1] = 45245${test12}[2] = 55246${test20}[0] = 25247${test20}[1] = 35248${test20}[2] = 45249${test21}[0] = 35250${test21}[1] = 45251${test21}[2] = 55252${test22}[0] = 45253${test22}[1] = 55254${test22}[2] = 65255*********************5256*** hash test... ***5257commented out...5258**************************5259*** Hash resizing test ***5260ba5261baa5262baaa5263baaaa5264baaaaa5265baaaaaa5266baaaaaaa5267baaaaaaaa5268baaaaaaaaa5269baaaaaaaaaa5270ba5271105272baa527395274baaa527585276baaaa527775278baaaaa527965280baaaaaa528155282baaaaaaa528345284baaaaaaaa528535286baaaaaaaaa528725288baaaaaaaaaa528915290**************************5291*** break/continue test ***5292$i should go from 0 to 25293$j should go from 3 to 4, and $q should go from 3 to 45294 $j=35295 $q=35296 $q=45297 $j=45298 $q=35299 $q=45300$j should go from 0 to 25301 $j=05302 $j=15303 $j=25304$k should go from 0 to 25305 $k=05306 $k=15307 $k=25308$i=05309$j should go from 3 to 4, and $q should go from 3 to 45310 $j=35311 $q=35312 $q=45313 $j=45314 $q=35315 $q=45316$j should go from 0 to 25317 $j=05318 $j=15319 $j=25320$k should go from 0 to 25321 $k=05322 $k=15323 $k=25324$i=15325$j should go from 3 to 4, and $q should go from 3 to 45326 $j=35327 $q=35328 $q=45329 $j=45330 $q=35331 $q=45332$j should go from 0 to 25333 $j=05334 $j=15335 $j=25336$k should go from 0 to 25337 $k=05338 $k=15339 $k=25340$i=25341***********************5342*** Nested file include test ***5343<html>5344This is Finish.phtml. This file is supposed to be included5345from regression_test.phtml. This is normal HTML.5346and this is PHP code, 2+2=45347</html>5348********************************5349Tests completed.5350<html>5351<head>5352*** Testing assignments and variable aliasing: ***5353This should read "blah": blah5354This should read "this is nifty": this is nifty5355*************************************************5356*** Testing integer operators ***5357Correct result - 8: 85358Correct result - 8: 85359Correct result - 2: 25360Correct result - -2: -25361Correct result - 15: 155362Correct result - 15: 155363Correct result - 2: 25364Correct result - 3: 35365*********************************5366*** Testing real operators ***5367Correct result - 8: 85368Correct result - 8: 85369Correct result - 2: 25370Correct result - -2: -25371Correct result - 15: 155372Correct result - 15: 155373Correct result - 2: 25374Correct result - 3: 35375*********************************5376*** Testing if/elseif/else control ***5377This works5378this_still_works5379should_print5380*** Seriously nested if's test ***5381** spelling correction by kluzz **5382Only two lines of text should follow:5383this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=05384this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=453853 loop iterations should follow:53862 453873 453884 45389**********************************5390*** C-style else-if's ***5391This should be displayed5392*************************5393*** WHILE tests ***53940 is smaller than 2053951 is smaller than 2053962 is smaller than 2053973 is smaller than 2053984 is smaller than 2053995 is smaller than 2054006 is smaller than 2054017 is smaller than 2054028 is smaller than 2054039 is smaller than 20540410 is smaller than 20540511 is smaller than 20540612 is smaller than 20540713 is smaller than 20540814 is smaller than 20540915 is smaller than 20541016 is smaller than 20541117 is smaller than 20541218 is smaller than 20541319 is smaller than 20541420 equals 20541521 is greater than 20541622 is greater than 20541723 is greater than 20541824 is greater than 20541925 is greater than 20542026 is greater than 20542127 is greater than 20542228 is greater than 20542329 is greater than 20542430 is greater than 20542531 is greater than 20542632 is greater than 20542733 is greater than 20542834 is greater than 20542935 is greater than 20543036 is greater than 20543137 is greater than 20543238 is greater than 20543339 is greater than 205434*******************5435*** Nested WHILEs ***5436Each array variable should be equal to the sum of its indices:5437${test00}[0] = 05438${test00}[1] = 15439${test00}[2] = 25440${test01}[0] = 15441${test01}[1] = 25442${test01}[2] = 35443${test02}[0] = 25444${test02}[1] = 35445${test02}[2] = 45446${test10}[0] = 15447${test10}[1] = 25448${test10}[2] = 35449${test11}[0] = 25450${test11}[1] = 35451${test11}[2] = 45452${test12}[0] = 35453${test12}[1] = 45454${test12}[2] = 55455${test20}[0] = 25456${test20}[1] = 35457${test20}[2] = 45458${test21}[0] = 35459${test21}[1] = 45460${test21}[2] = 55461${test22}[0] = 45462${test22}[1] = 55463${test22}[2] = 65464*********************5465*** hash test... ***5466commented out...5467**************************5468*** Hash resizing test ***5469ba5470baa5471baaa5472baaaa5473baaaaa5474baaaaaa5475baaaaaaa5476baaaaaaaa5477baaaaaaaaa5478baaaaaaaaaa5479ba5480105481baa548295483baaa548485485baaaa548675487baaaaa548865489baaaaaa549055491baaaaaaa549245493baaaaaaaa549435495baaaaaaaaa549625497baaaaaaaaaa549815499**************************5500*** break/continue test ***5501$i should go from 0 to 25502$j should go from 3 to 4, and $q should go from 3 to 45503 $j=35504 $q=35505 $q=45506 $j=45507 $q=35508 $q=45509$j should go from 0 to 25510 $j=05511 $j=15512 $j=25513$k should go from 0 to 25514 $k=05515 $k=15516 $k=25517$i=05518$j should go from 3 to 4, and $q should go from 3 to 45519 $j=35520 $q=35521 $q=45522 $j=45523 $q=35524 $q=45525$j should go from 0 to 25526 $j=05527 $j=15528 $j=25529$k should go from 0 to 25530 $k=05531 $k=15532 $k=25533$i=15534$j should go from 3 to 4, and $q should go from 3 to 45535 $j=35536 $q=35537 $q=45538 $j=45539 $q=35540 $q=45541$j should go from 0 to 25542 $j=05543 $j=15544 $j=25545$k should go from 0 to 25546 $k=05547 $k=15548 $k=25549$i=25550***********************5551*** Nested file include test ***5552<html>5553This is Finish.phtml. This file is supposed to be included5554from regression_test.phtml. This is normal HTML.5555and this is PHP code, 2+2=45556</html>5557********************************5558Tests completed.5559<html>5560<head>5561*** Testing assignments and variable aliasing: ***5562This should read "blah": blah5563This should read "this is nifty": this is nifty5564*************************************************5565*** Testing integer operators ***5566Correct result - 8: 85567Correct result - 8: 85568Correct result - 2: 25569Correct result - -2: -25570Correct result - 15: 155571Correct result - 15: 155572Correct result - 2: 25573Correct result - 3: 35574*********************************5575*** Testing real operators ***5576Correct result - 8: 85577Correct result - 8: 85578Correct result - 2: 25579Correct result - -2: -25580Correct result - 15: 155581Correct result - 15: 155582Correct result - 2: 25583Correct result - 3: 35584*********************************5585*** Testing if/elseif/else control ***5586This works5587this_still_works5588should_print5589*** Seriously nested if's test ***5590** spelling correction by kluzz **5591Only two lines of text should follow:5592this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=05593this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=455943 loop iterations should follow:55952 455963 455974 45598**********************************5599*** C-style else-if's ***5600This should be displayed5601*************************5602*** WHILE tests ***56030 is smaller than 2056041 is smaller than 2056052 is smaller than 2056063 is smaller than 2056074 is smaller than 2056085 is smaller than 2056096 is smaller than 2056107 is smaller than 2056118 is smaller than 2056129 is smaller than 20561310 is smaller than 20561411 is smaller than 20561512 is smaller than 20561613 is smaller than 20561714 is smaller than 20561815 is smaller than 20561916 is smaller than 20562017 is smaller than 20562118 is smaller than 20562219 is smaller than 20562320 equals 20562421 is greater than 20562522 is greater than 20562623 is greater than 20562724 is greater than 20562825 is greater than 20562926 is greater than 20563027 is greater than 20563128 is greater than 20563229 is greater than 20563330 is greater than 20563431 is greater than 20563532 is greater than 20563633 is greater than 20563734 is greater than 20563835 is greater than 20563936 is greater than 20564037 is greater than 20564138 is greater than 20564239 is greater than 205643*******************5644*** Nested WHILEs ***5645Each array variable should be equal to the sum of its indices:5646${test00}[0] = 05647${test00}[1] = 15648${test00}[2] = 25649${test01}[0] = 15650${test01}[1] = 25651${test01}[2] = 35652${test02}[0] = 25653${test02}[1] = 35654${test02}[2] = 45655${test10}[0] = 15656${test10}[1] = 25657${test10}[2] = 35658${test11}[0] = 25659${test11}[1] = 35660${test11}[2] = 45661${test12}[0] = 35662${test12}[1] = 45663${test12}[2] = 55664${test20}[0] = 25665${test20}[1] = 35666${test20}[2] = 45667${test21}[0] = 35668${test21}[1] = 45669${test21}[2] = 55670${test22}[0] = 45671${test22}[1] = 55672${test22}[2] = 65673*********************5674*** hash test... ***5675commented out...5676**************************5677*** Hash resizing test ***5678ba5679baa5680baaa5681baaaa5682baaaaa5683baaaaaa5684baaaaaaa5685baaaaaaaa5686baaaaaaaaa5687baaaaaaaaaa5688ba5689105690baa569195692baaa569385694baaaa569575696baaaaa569765698baaaaaa569955700baaaaaaa570145702baaaaaaaa570335704baaaaaaaaa570525706baaaaaaaaaa570715708**************************5709*** break/continue test ***5710$i should go from 0 to 25711$j should go from 3 to 4, and $q should go from 3 to 45712 $j=35713 $q=35714 $q=45715 $j=45716 $q=35717 $q=45718$j should go from 0 to 25719 $j=05720 $j=15721 $j=25722$k should go from 0 to 25723 $k=05724 $k=15725 $k=25726$i=05727$j should go from 3 to 4, and $q should go from 3 to 45728 $j=35729 $q=35730 $q=45731 $j=45732 $q=35733 $q=45734$j should go from 0 to 25735 $j=05736 $j=15737 $j=25738$k should go from 0 to 25739 $k=05740 $k=15741 $k=25742$i=15743$j should go from 3 to 4, and $q should go from 3 to 45744 $j=35745 $q=35746 $q=45747 $j=45748 $q=35749 $q=45750$j should go from 0 to 25751 $j=05752 $j=15753 $j=25754$k should go from 0 to 25755 $k=05756 $k=15757 $k=25758$i=25759***********************5760*** Nested file include test ***5761<html>5762This is Finish.phtml. This file is supposed to be included5763from regression_test.phtml. This is normal HTML.5764and this is PHP code, 2+2=45765</html>5766********************************5767Tests completed.5768<html>5769<head>5770*** Testing assignments and variable aliasing: ***5771This should read "blah": blah5772This should read "this is nifty": this is nifty5773*************************************************5774*** Testing integer operators ***5775Correct result - 8: 85776Correct result - 8: 85777Correct result - 2: 25778Correct result - -2: -25779Correct result - 15: 155780Correct result - 15: 155781Correct result - 2: 25782Correct result - 3: 35783*********************************5784*** Testing real operators ***5785Correct result - 8: 85786Correct result - 8: 85787Correct result - 2: 25788Correct result - -2: -25789Correct result - 15: 155790Correct result - 15: 155791Correct result - 2: 25792Correct result - 3: 35793*********************************5794*** Testing if/elseif/else control ***5795This works5796this_still_works5797should_print5798*** Seriously nested if's test ***5799** spelling correction by kluzz **5800Only two lines of text should follow:5801this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=05802this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=458033 loop iterations should follow:58042 458053 458064 45807**********************************5808*** C-style else-if's ***5809This should be displayed5810*************************5811*** WHILE tests ***58120 is smaller than 2058131 is smaller than 2058142 is smaller than 2058153 is smaller than 2058164 is smaller than 2058175 is smaller than 2058186 is smaller than 2058197 is smaller than 2058208 is smaller than 2058219 is smaller than 20582210 is smaller than 20582311 is smaller than 20582412 is smaller than 20582513 is smaller than 20582614 is smaller than 20582715 is smaller than 20582816 is smaller than 20582917 is smaller than 20583018 is smaller than 20583119 is smaller than 20583220 equals 20583321 is greater than 20583422 is greater than 20583523 is greater than 20583624 is greater than 20583725 is greater than 20583826 is greater than 20583927 is greater than 20584028 is greater than 20584129 is greater than 20584230 is greater than 20584331 is greater than 20584432 is greater than 20584533 is greater than 20584634 is greater than 20584735 is greater than 20584836 is greater than 20584937 is greater than 20585038 is greater than 20585139 is greater than 205852*******************5853*** Nested WHILEs ***5854Each array variable should be equal to the sum of its indices:5855${test00}[0] = 05856${test00}[1] = 15857${test00}[2] = 25858${test01}[0] = 15859${test01}[1] = 25860${test01}[2] = 35861${test02}[0] = 25862${test02}[1] = 35863${test02}[2] = 45864${test10}[0] = 15865${test10}[1] = 25866${test10}[2] = 35867${test11}[0] = 25868${test11}[1] = 35869${test11}[2] = 45870${test12}[0] = 35871${test12}[1] = 45872${test12}[2] = 55873${test20}[0] = 25874${test20}[1] = 35875${test20}[2] = 45876${test21}[0] = 35877${test21}[1] = 45878${test21}[2] = 55879${test22}[0] = 45880${test22}[1] = 55881${test22}[2] = 65882*********************5883*** hash test... ***5884commented out...5885**************************5886*** Hash resizing test ***5887ba5888baa5889baaa5890baaaa5891baaaaa5892baaaaaa5893baaaaaaa5894baaaaaaaa5895baaaaaaaaa5896baaaaaaaaaa5897ba5898105899baa590095901baaa590285903baaaa590475905baaaaa590665907baaaaaa590855909baaaaaaa591045911baaaaaaaa591235913baaaaaaaaa591425915baaaaaaaaaa591615917**************************5918*** break/continue test ***5919$i should go from 0 to 25920$j should go from 3 to 4, and $q should go from 3 to 45921 $j=35922 $q=35923 $q=45924 $j=45925 $q=35926 $q=45927$j should go from 0 to 25928 $j=05929 $j=15930 $j=25931$k should go from 0 to 25932 $k=05933 $k=15934 $k=25935$i=05936$j should go from 3 to 4, and $q should go from 3 to 45937 $j=35938 $q=35939 $q=45940 $j=45941 $q=35942 $q=45943$j should go from 0 to 25944 $j=05945 $j=15946 $j=25947$k should go from 0 to 25948 $k=05949 $k=15950 $k=25951$i=15952$j should go from 3 to 4, and $q should go from 3 to 45953 $j=35954 $q=35955 $q=45956 $j=45957 $q=35958 $q=45959$j should go from 0 to 25960 $j=05961 $j=15962 $j=25963$k should go from 0 to 25964 $k=05965 $k=15966 $k=25967$i=25968***********************5969*** Nested file include test ***5970<html>5971This is Finish.phtml. This file is supposed to be included5972from regression_test.phtml. This is normal HTML.5973and this is PHP code, 2+2=45974</html>5975********************************5976Tests completed.5977<html>5978<head>5979*** Testing assignments and variable aliasing: ***5980This should read "blah": blah5981This should read "this is nifty": this is nifty5982*************************************************5983*** Testing integer operators ***5984Correct result - 8: 85985Correct result - 8: 85986Correct result - 2: 25987Correct result - -2: -25988Correct result - 15: 155989Correct result - 15: 155990Correct result - 2: 25991Correct result - 3: 35992*********************************5993*** Testing real operators ***5994Correct result - 8: 85995Correct result - 8: 85996Correct result - 2: 25997Correct result - -2: -25998Correct result - 15: 155999Correct result - 15: 156000Correct result - 2: 26001Correct result - 3: 36002*********************************6003*** Testing if/elseif/else control ***6004This works6005this_still_works6006should_print6007*** Seriously nested if's test ***6008** spelling correction by kluzz **6009Only two lines of text should follow:6010this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=06011this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=460123 loop iterations should follow:60132 460143 460154 46016**********************************6017*** C-style else-if's ***6018This should be displayed6019*************************6020*** WHILE tests ***60210 is smaller than 2060221 is smaller than 2060232 is smaller than 2060243 is smaller than 2060254 is smaller than 2060265 is smaller than 2060276 is smaller than 2060287 is smaller than 2060298 is smaller than 2060309 is smaller than 20603110 is smaller than 20603211 is smaller than 20603312 is smaller than 20603413 is smaller than 20603514 is smaller than 20603615 is smaller than 20603716 is smaller than 20603817 is smaller than 20603918 is smaller than 20604019 is smaller than 20604120 equals 20604221 is greater than 20604322 is greater than 20604423 is greater than 20604524 is greater than 20604625 is greater than 20604726 is greater than 20604827 is greater than 20604928 is greater than 20605029 is greater than 20605130 is greater than 20605231 is greater than 20605332 is greater than 20605433 is greater than 20605534 is greater than 20605635 is greater than 20605736 is greater than 20605837 is greater than 20605938 is greater than 20606039 is greater than 206061*******************6062*** Nested WHILEs ***6063Each array variable should be equal to the sum of its indices:6064${test00}[0] = 06065${test00}[1] = 16066${test00}[2] = 26067${test01}[0] = 16068${test01}[1] = 26069${test01}[2] = 36070${test02}[0] = 26071${test02}[1] = 36072${test02}[2] = 46073${test10}[0] = 16074${test10}[1] = 26075${test10}[2] = 36076${test11}[0] = 26077${test11}[1] = 36078${test11}[2] = 46079${test12}[0] = 36080${test12}[1] = 46081${test12}[2] = 56082${test20}[0] = 26083${test20}[1] = 36084${test20}[2] = 46085${test21}[0] = 36086${test21}[1] = 46087${test21}[2] = 56088${test22}[0] = 46089${test22}[1] = 56090${test22}[2] = 66091*********************6092*** hash test... ***6093commented out...6094**************************6095*** Hash resizing test ***6096ba6097baa6098baaa6099baaaa6100baaaaa6101baaaaaa6102baaaaaaa6103baaaaaaaa6104baaaaaaaaa6105baaaaaaaaaa6106ba6107106108baa610996110baaa611186112baaaa611376114baaaaa611566116baaaaaa611756118baaaaaaa611946120baaaaaaaa612136122baaaaaaaaa612326124baaaaaaaaaa612516126**************************6127*** break/continue test ***6128$i should go from 0 to 26129$j should go from 3 to 4, and $q should go from 3 to 46130 $j=36131 $q=36132 $q=46133 $j=46134 $q=36135 $q=46136$j should go from 0 to 26137 $j=06138 $j=16139 $j=26140$k should go from 0 to 26141 $k=06142 $k=16143 $k=26144$i=06145$j should go from 3 to 4, and $q should go from 3 to 46146 $j=36147 $q=36148 $q=46149 $j=46150 $q=36151 $q=46152$j should go from 0 to 26153 $j=06154 $j=16155 $j=26156$k should go from 0 to 26157 $k=06158 $k=16159 $k=26160$i=16161$j should go from 3 to 4, and $q should go from 3 to 46162 $j=36163 $q=36164 $q=46165 $j=46166 $q=36167 $q=46168$j should go from 0 to 26169 $j=06170 $j=16171 $j=26172$k should go from 0 to 26173 $k=06174 $k=16175 $k=26176$i=26177***********************6178*** Nested file include test ***6179<html>6180This is Finish.phtml. This file is supposed to be included6181from regression_test.phtml. This is normal HTML.6182and this is PHP code, 2+2=46183</html>6184********************************6185Tests completed.6186<html>6187<head>6188*** Testing assignments and variable aliasing: ***6189This should read "blah": blah6190This should read "this is nifty": this is nifty6191*************************************************6192*** Testing integer operators ***6193Correct result - 8: 86194Correct result - 8: 86195Correct result - 2: 26196Correct result - -2: -26197Correct result - 15: 156198Correct result - 15: 156199Correct result - 2: 26200Correct result - 3: 36201*********************************6202*** Testing real operators ***6203Correct result - 8: 86204Correct result - 8: 86205Correct result - 2: 26206Correct result - -2: -26207Correct result - 15: 156208Correct result - 15: 156209Correct result - 2: 26210Correct result - 3: 36211*********************************6212*** Testing if/elseif/else control ***6213This works6214this_still_works6215should_print6216*** Seriously nested if's test ***6217** spelling correction by kluzz **6218Only two lines of text should follow:6219this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=06220this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=462213 loop iterations should follow:62222 462233 462244 46225**********************************6226*** C-style else-if's ***6227This should be displayed6228*************************6229*** WHILE tests ***62300 is smaller than 2062311 is smaller than 2062322 is smaller than 2062333 is smaller than 2062344 is smaller than 2062355 is smaller than 2062366 is smaller than 2062377 is smaller than 2062388 is smaller than 2062399 is smaller than 20624010 is smaller than 20624111 is smaller than 20624212 is smaller than 20624313 is smaller than 20624414 is smaller than 20624515 is smaller than 20624616 is smaller than 20624717 is smaller than 20624818 is smaller than 20624919 is smaller than 20625020 equals 20625121 is greater than 20625222 is greater than 20625323 is greater than 20625424 is greater than 20625525 is greater than 20625626 is greater than 20625727 is greater than 20625828 is greater than 20625929 is greater than 20626030 is greater than 20626131 is greater than 20626232 is greater than 20626333 is greater than 20626434 is greater than 20626535 is greater than 20626636 is greater than 20626737 is greater than 20626838 is greater than 20626939 is greater than 206270*******************6271*** Nested WHILEs ***6272Each array variable should be equal to the sum of its indices:6273${test00}[0] = 06274${test00}[1] = 16275${test00}[2] = 26276${test01}[0] = 16277${test01}[1] = 26278${test01}[2] = 36279${test02}[0] = 26280${test02}[1] = 36281${test02}[2] = 46282${test10}[0] = 16283${test10}[1] = 26284${test10}[2] = 36285${test11}[0] = 26286${test11}[1] = 36287${test11}[2] = 46288${test12}[0] = 36289${test12}[1] = 46290${test12}[2] = 56291${test20}[0] = 26292${test20}[1] = 36293${test20}[2] = 46294${test21}[0] = 36295${test21}[1] = 46296${test21}[2] = 56297${test22}[0] = 46298${test22}[1] = 56299${test22}[2] = 66300*********************6301*** hash test... ***6302commented out...6303**************************6304*** Hash resizing test ***6305ba6306baa6307baaa6308baaaa6309baaaaa6310baaaaaa6311baaaaaaa6312baaaaaaaa6313baaaaaaaaa6314baaaaaaaaaa6315ba6316106317baa631896319baaa632086321baaaa632276323baaaaa632466325baaaaaa632656327baaaaaaa632846329baaaaaaaa633036331baaaaaaaaa633226333baaaaaaaaaa633416335**************************6336*** break/continue test ***6337$i should go from 0 to 26338$j should go from 3 to 4, and $q should go from 3 to 46339 $j=36340 $q=36341 $q=46342 $j=46343 $q=36344 $q=46345$j should go from 0 to 26346 $j=06347 $j=16348 $j=26349$k should go from 0 to 26350 $k=06351 $k=16352 $k=26353$i=06354$j should go from 3 to 4, and $q should go from 3 to 46355 $j=36356 $q=36357 $q=46358 $j=46359 $q=36360 $q=46361$j should go from 0 to 26362 $j=06363 $j=16364 $j=26365$k should go from 0 to 26366 $k=06367 $k=16368 $k=26369$i=16370$j should go from 3 to 4, and $q should go from 3 to 46371 $j=36372 $q=36373 $q=46374 $j=46375 $q=36376 $q=46377$j should go from 0 to 26378 $j=06379 $j=16380 $j=26381$k should go from 0 to 26382 $k=06383 $k=16384 $k=26385$i=26386***********************6387*** Nested file include test ***6388<html>6389This is Finish.phtml. This file is supposed to be included6390from regression_test.phtml. This is normal HTML.6391and this is PHP code, 2+2=46392</html>6393********************************6394Tests completed.6395<html>6396<head>6397*** Testing assignments and variable aliasing: ***6398This should read "blah": blah6399This should read "this is nifty": this is nifty6400*************************************************6401*** Testing integer operators ***6402Correct result - 8: 86403Correct result - 8: 86404Correct result - 2: 26405Correct result - -2: -26406Correct result - 15: 156407Correct result - 15: 156408Correct result - 2: 26409Correct result - 3: 36410*********************************6411*** Testing real operators ***6412Correct result - 8: 86413Correct result - 8: 86414Correct result - 2: 26415Correct result - -2: -26416Correct result - 15: 156417Correct result - 15: 156418Correct result - 2: 26419Correct result - 3: 36420*********************************6421*** Testing if/elseif/else control ***6422This works6423this_still_works6424should_print6425*** Seriously nested if's test ***6426** spelling correction by kluzz **6427Only two lines of text should follow:6428this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=06429this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=464303 loop iterations should follow:64312 464323 464334 46434**********************************6435*** C-style else-if's ***6436This should be displayed6437*************************6438*** WHILE tests ***64390 is smaller than 2064401 is smaller than 2064412 is smaller than 2064423 is smaller than 2064434 is smaller than 2064445 is smaller than 2064456 is smaller than 2064467 is smaller than 2064478 is smaller than 2064489 is smaller than 20644910 is smaller than 20645011 is smaller than 20645112 is smaller than 20645213 is smaller than 20645314 is smaller than 20645415 is smaller than 20645516 is smaller than 20645617 is smaller than 20645718 is smaller than 20645819 is smaller than 20645920 equals 20646021 is greater than 20646122 is greater than 20646223 is greater than 20646324 is greater than 20646425 is greater than 20646526 is greater than 20646627 is greater than 20646728 is greater than 20646829 is greater than 20646930 is greater than 20647031 is greater than 20647132 is greater than 20647233 is greater than 20647334 is greater than 20647435 is greater than 20647536 is greater than 20647637 is greater than 20647738 is greater than 20647839 is greater than 206479*******************6480*** Nested WHILEs ***6481Each array variable should be equal to the sum of its indices:6482${test00}[0] = 06483${test00}[1] = 16484${test00}[2] = 26485${test01}[0] = 16486${test01}[1] = 26487${test01}[2] = 36488${test02}[0] = 26489${test02}[1] = 36490${test02}[2] = 46491${test10}[0] = 16492${test10}[1] = 26493${test10}[2] = 36494${test11}[0] = 26495${test11}[1] = 36496${test11}[2] = 46497${test12}[0] = 36498${test12}[1] = 46499${test12}[2] = 56500${test20}[0] = 26501${test20}[1] = 36502${test20}[2] = 46503${test21}[0] = 36504${test21}[1] = 46505${test21}[2] = 56506${test22}[0] = 46507${test22}[1] = 56508${test22}[2] = 66509*********************6510*** hash test... ***6511commented out...6512**************************6513*** Hash resizing test ***6514ba6515baa6516baaa6517baaaa6518baaaaa6519baaaaaa6520baaaaaaa6521baaaaaaaa6522baaaaaaaaa6523baaaaaaaaaa6524ba6525106526baa652796528baaa652986530baaaa653176532baaaaa653366534baaaaaa653556536baaaaaaa653746538baaaaaaaa653936540baaaaaaaaa654126542baaaaaaaaaa654316544**************************6545*** break/continue test ***6546$i should go from 0 to 26547$j should go from 3 to 4, and $q should go from 3 to 46548 $j=36549 $q=36550 $q=46551 $j=46552 $q=36553 $q=46554$j should go from 0 to 26555 $j=06556 $j=16557 $j=26558$k should go from 0 to 26559 $k=06560 $k=16561 $k=26562$i=06563$j should go from 3 to 4, and $q should go from 3 to 46564 $j=36565 $q=36566 $q=46567 $j=46568 $q=36569 $q=46570$j should go from 0 to 26571 $j=06572 $j=16573 $j=26574$k should go from 0 to 26575 $k=06576 $k=16577 $k=26578$i=16579$j should go from 3 to 4, and $q should go from 3 to 46580 $j=36581 $q=36582 $q=46583 $j=46584 $q=36585 $q=46586$j should go from 0 to 26587 $j=06588 $j=16589 $j=26590$k should go from 0 to 26591 $k=06592 $k=16593 $k=26594$i=26595***********************6596*** Nested file include test ***6597<html>6598This is Finish.phtml. This file is supposed to be included6599from regression_test.phtml. This is normal HTML.6600and this is PHP code, 2+2=46601</html>6602********************************6603Tests completed.6604<html>6605<head>6606*** Testing assignments and variable aliasing: ***6607This should read "blah": blah6608This should read "this is nifty": this is nifty6609*************************************************6610*** Testing integer operators ***6611Correct result - 8: 86612Correct result - 8: 86613Correct result - 2: 26614Correct result - -2: -26615Correct result - 15: 156616Correct result - 15: 156617Correct result - 2: 26618Correct result - 3: 36619*********************************6620*** Testing real operators ***6621Correct result - 8: 86622Correct result - 8: 86623Correct result - 2: 26624Correct result - -2: -26625Correct result - 15: 156626Correct result - 15: 156627Correct result - 2: 26628Correct result - 3: 36629*********************************6630*** Testing if/elseif/else control ***6631This works6632this_still_works6633should_print6634*** Seriously nested if's test ***6635** spelling correction by kluzz **6636Only two lines of text should follow:6637this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=06638this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=466393 loop iterations should follow:66402 466413 466424 46643**********************************6644*** C-style else-if's ***6645This should be displayed6646*************************6647*** WHILE tests ***66480 is smaller than 2066491 is smaller than 2066502 is smaller than 2066513 is smaller than 2066524 is smaller than 2066535 is smaller than 2066546 is smaller than 2066557 is smaller than 2066568 is smaller than 2066579 is smaller than 20665810 is smaller than 20665911 is smaller than 20666012 is smaller than 20666113 is smaller than 20666214 is smaller than 20666315 is smaller than 20666416 is smaller than 20666517 is smaller than 20666618 is smaller than 20666719 is smaller than 20666820 equals 20666921 is greater than 20667022 is greater than 20667123 is greater than 20667224 is greater than 20667325 is greater than 20667426 is greater than 20667527 is greater than 20667628 is greater than 20667729 is greater than 20667830 is greater than 20667931 is greater than 20668032 is greater than 20668133 is greater than 20668234 is greater than 20668335 is greater than 20668436 is greater than 20668537 is greater than 20668638 is greater than 20668739 is greater than 206688*******************6689*** Nested WHILEs ***6690Each array variable should be equal to the sum of its indices:6691${test00}[0] = 06692${test00}[1] = 16693${test00}[2] = 26694${test01}[0] = 16695${test01}[1] = 26696${test01}[2] = 36697${test02}[0] = 26698${test02}[1] = 36699${test02}[2] = 46700${test10}[0] = 16701${test10}[1] = 26702${test10}[2] = 36703${test11}[0] = 26704${test11}[1] = 36705${test11}[2] = 46706${test12}[0] = 36707${test12}[1] = 46708${test12}[2] = 56709${test20}[0] = 26710${test20}[1] = 36711${test20}[2] = 46712${test21}[0] = 36713${test21}[1] = 46714${test21}[2] = 56715${test22}[0] = 46716${test22}[1] = 56717${test22}[2] = 66718*********************6719*** hash test... ***6720commented out...6721**************************6722*** Hash resizing test ***6723ba6724baa6725baaa6726baaaa6727baaaaa6728baaaaaa6729baaaaaaa6730baaaaaaaa6731baaaaaaaaa6732baaaaaaaaaa6733ba6734106735baa673696737baaa673886739baaaa674076741baaaaa674266743baaaaaa674456745baaaaaaa674646747baaaaaaaa674836749baaaaaaaaa675026751baaaaaaaaaa675216753**************************6754*** break/continue test ***6755$i should go from 0 to 26756$j should go from 3 to 4, and $q should go from 3 to 46757 $j=36758 $q=36759 $q=46760 $j=46761 $q=36762 $q=46763$j should go from 0 to 26764 $j=06765 $j=16766 $j=26767$k should go from 0 to 26768 $k=06769 $k=16770 $k=26771$i=06772$j should go from 3 to 4, and $q should go from 3 to 46773 $j=36774 $q=36775 $q=46776 $j=46777 $q=36778 $q=46779$j should go from 0 to 26780 $j=06781 $j=16782 $j=26783$k should go from 0 to 26784 $k=06785 $k=16786 $k=26787$i=16788$j should go from 3 to 4, and $q should go from 3 to 46789 $j=36790 $q=36791 $q=46792 $j=46793 $q=36794 $q=46795$j should go from 0 to 26796 $j=06797 $j=16798 $j=26799$k should go from 0 to 26800 $k=06801 $k=16802 $k=26803$i=26804***********************6805*** Nested file include test ***6806<html>6807This is Finish.phtml. This file is supposed to be included6808from regression_test.phtml. This is normal HTML.6809and this is PHP code, 2+2=46810</html>6811********************************6812Tests completed.6813<html>6814<head>6815*** Testing assignments and variable aliasing: ***6816This should read "blah": blah6817This should read "this is nifty": this is nifty6818*************************************************6819*** Testing integer operators ***6820Correct result - 8: 86821Correct result - 8: 86822Correct result - 2: 26823Correct result - -2: -26824Correct result - 15: 156825Correct result - 15: 156826Correct result - 2: 26827Correct result - 3: 36828*********************************6829*** Testing real operators ***6830Correct result - 8: 86831Correct result - 8: 86832Correct result - 2: 26833Correct result - -2: -26834Correct result - 15: 156835Correct result - 15: 156836Correct result - 2: 26837Correct result - 3: 36838*********************************6839*** Testing if/elseif/else control ***6840This works6841this_still_works6842should_print6843*** Seriously nested if's test ***6844** spelling correction by kluzz **6845Only two lines of text should follow:6846this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=06847this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=468483 loop iterations should follow:68492 468503 468514 46852**********************************6853*** C-style else-if's ***6854This should be displayed6855*************************6856*** WHILE tests ***68570 is smaller than 2068581 is smaller than 2068592 is smaller than 2068603 is smaller than 2068614 is smaller than 2068625 is smaller than 2068636 is smaller than 2068647 is smaller than 2068658 is smaller than 2068669 is smaller than 20686710 is smaller than 20686811 is smaller than 20686912 is smaller than 20687013 is smaller than 20687114 is smaller than 20687215 is smaller than 20687316 is smaller than 20687417 is smaller than 20687518 is smaller than 20687619 is smaller than 20687720 equals 20687821 is greater than 20687922 is greater than 20688023 is greater than 20688124 is greater than 20688225 is greater than 20688326 is greater than 20688427 is greater than 20688528 is greater than 20688629 is greater than 20688730 is greater than 20688831 is greater than 20688932 is greater than 20689033 is greater than 20689134 is greater than 20689235 is greater than 20689336 is greater than 20689437 is greater than 20689538 is greater than 20689639 is greater than 206897*******************6898*** Nested WHILEs ***6899Each array variable should be equal to the sum of its indices:6900${test00}[0] = 06901${test00}[1] = 16902${test00}[2] = 26903${test01}[0] = 16904${test01}[1] = 26905${test01}[2] = 36906${test02}[0] = 26907${test02}[1] = 36908${test02}[2] = 46909${test10}[0] = 16910${test10}[1] = 26911${test10}[2] = 36912${test11}[0] = 26913${test11}[1] = 36914${test11}[2] = 46915${test12}[0] = 36916${test12}[1] = 46917${test12}[2] = 56918${test20}[0] = 26919${test20}[1] = 36920${test20}[2] = 46921${test21}[0] = 36922${test21}[1] = 46923${test21}[2] = 56924${test22}[0] = 46925${test22}[1] = 56926${test22}[2] = 66927*********************6928*** hash test... ***6929commented out...6930**************************6931*** Hash resizing test ***6932ba6933baa6934baaa6935baaaa6936baaaaa6937baaaaaa6938baaaaaaa6939baaaaaaaa6940baaaaaaaaa6941baaaaaaaaaa6942ba6943106944baa694596946baaa694786948baaaa694976950baaaaa695166952baaaaaa695356954baaaaaaa695546956baaaaaaaa695736958baaaaaaaaa695926960baaaaaaaaaa696116962**************************6963*** break/continue test ***6964$i should go from 0 to 26965$j should go from 3 to 4, and $q should go from 3 to 46966 $j=36967 $q=36968 $q=46969 $j=46970 $q=36971 $q=46972$j should go from 0 to 26973 $j=06974 $j=16975 $j=26976$k should go from 0 to 26977 $k=06978 $k=16979 $k=26980$i=06981$j should go from 3 to 4, and $q should go from 3 to 46982 $j=36983 $q=36984 $q=46985 $j=46986 $q=36987 $q=46988$j should go from 0 to 26989 $j=06990 $j=16991 $j=26992$k should go from 0 to 26993 $k=06994 $k=16995 $k=26996$i=16997$j should go from 3 to 4, and $q should go from 3 to 46998 $j=36999 $q=37000 $q=47001 $j=47002 $q=37003 $q=47004$j should go from 0 to 27005 $j=07006 $j=17007 $j=27008$k should go from 0 to 27009 $k=07010 $k=17011 $k=27012$i=27013***********************7014*** Nested file include test ***7015<html>7016This is Finish.phtml. This file is supposed to be included7017from regression_test.phtml. This is normal HTML.7018and this is PHP code, 2+2=47019</html>7020********************************7021Tests completed.7022<html>7023<head>7024*** Testing assignments and variable aliasing: ***7025This should read "blah": blah7026This should read "this is nifty": this is nifty7027*************************************************7028*** Testing integer operators ***7029Correct result - 8: 87030Correct result - 8: 87031Correct result - 2: 27032Correct result - -2: -27033Correct result - 15: 157034Correct result - 15: 157035Correct result - 2: 27036Correct result - 3: 37037*********************************7038*** Testing real operators ***7039Correct result - 8: 87040Correct result - 8: 87041Correct result - 2: 27042Correct result - -2: -27043Correct result - 15: 157044Correct result - 15: 157045Correct result - 2: 27046Correct result - 3: 37047*********************************7048*** Testing if/elseif/else control ***7049This works7050this_still_works7051should_print7052*** Seriously nested if's test ***7053** spelling correction by kluzz **7054Only two lines of text should follow:7055this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=07056this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=470573 loop iterations should follow:70582 470593 470604 47061**********************************7062*** C-style else-if's ***7063This should be displayed7064*************************7065*** WHILE tests ***70660 is smaller than 2070671 is smaller than 2070682 is smaller than 2070693 is smaller than 2070704 is smaller than 2070715 is smaller than 2070726 is smaller than 2070737 is smaller than 2070748 is smaller than 2070759 is smaller than 20707610 is smaller than 20707711 is smaller than 20707812 is smaller than 20707913 is smaller than 20708014 is smaller than 20708115 is smaller than 20708216 is smaller than 20708317 is smaller than 20708418 is smaller than 20708519 is smaller than 20708620 equals 20708721 is greater than 20708822 is greater than 20708923 is greater than 20709024 is greater than 20709125 is greater than 20709226 is greater than 20709327 is greater than 20709428 is greater than 20709529 is greater than 20709630 is greater than 20709731 is greater than 20709832 is greater than 20709933 is greater than 20710034 is greater than 20710135 is greater than 20710236 is greater than 20710337 is greater than 20710438 is greater than 20710539 is greater than 207106*******************7107*** Nested WHILEs ***7108Each array variable should be equal to the sum of its indices:7109${test00}[0] = 07110${test00}[1] = 17111${test00}[2] = 27112${test01}[0] = 17113${test01}[1] = 27114${test01}[2] = 37115${test02}[0] = 27116${test02}[1] = 37117${test02}[2] = 47118${test10}[0] = 17119${test10}[1] = 27120${test10}[2] = 37121${test11}[0] = 27122${test11}[1] = 37123${test11}[2] = 47124${test12}[0] = 37125${test12}[1] = 47126${test12}[2] = 57127${test20}[0] = 27128${test20}[1] = 37129${test20}[2] = 47130${test21}[0] = 37131${test21}[1] = 47132${test21}[2] = 57133${test22}[0] = 47134${test22}[1] = 57135${test22}[2] = 67136*********************7137*** hash test... ***7138commented out...7139**************************7140*** Hash resizing test ***7141ba7142baa7143baaa7144baaaa7145baaaaa7146baaaaaa7147baaaaaaa7148baaaaaaaa7149baaaaaaaaa7150baaaaaaaaaa7151ba7152107153baa715497155baaa715687157baaaa715877159baaaaa716067161baaaaaa716257163baaaaaaa716447165baaaaaaaa716637167baaaaaaaaa716827169baaaaaaaaaa717017171**************************7172*** break/continue test ***7173$i should go from 0 to 27174$j should go from 3 to 4, and $q should go from 3 to 47175 $j=37176 $q=37177 $q=47178 $j=47179 $q=37180 $q=47181$j should go from 0 to 27182 $j=07183 $j=17184 $j=27185$k should go from 0 to 27186 $k=07187 $k=17188 $k=27189$i=07190$j should go from 3 to 4, and $q should go from 3 to 47191 $j=37192 $q=37193 $q=47194 $j=47195 $q=37196 $q=47197$j should go from 0 to 27198 $j=07199 $j=17200 $j=27201$k should go from 0 to 27202 $k=07203 $k=17204 $k=27205$i=17206$j should go from 3 to 4, and $q should go from 3 to 47207 $j=37208 $q=37209 $q=47210 $j=47211 $q=37212 $q=47213$j should go from 0 to 27214 $j=07215 $j=17216 $j=27217$k should go from 0 to 27218 $k=07219 $k=17220 $k=27221$i=27222***********************7223*** Nested file include test ***7224<html>7225This is Finish.phtml. This file is supposed to be included7226from regression_test.phtml. This is normal HTML.7227and this is PHP code, 2+2=47228</html>7229********************************7230Tests completed.7231<html>7232<head>7233*** Testing assignments and variable aliasing: ***7234This should read "blah": blah7235This should read "this is nifty": this is nifty7236*************************************************7237*** Testing integer operators ***7238Correct result - 8: 87239Correct result - 8: 87240Correct result - 2: 27241Correct result - -2: -27242Correct result - 15: 157243Correct result - 15: 157244Correct result - 2: 27245Correct result - 3: 37246*********************************7247*** Testing real operators ***7248Correct result - 8: 87249Correct result - 8: 87250Correct result - 2: 27251Correct result - -2: -27252Correct result - 15: 157253Correct result - 15: 157254Correct result - 2: 27255Correct result - 3: 37256*********************************7257*** Testing if/elseif/else control ***7258This works7259this_still_works7260should_print7261*** Seriously nested if's test ***7262** spelling correction by kluzz **7263Only two lines of text should follow:7264this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=07265this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=472663 loop iterations should follow:72672 472683 472694 47270**********************************7271*** C-style else-if's ***7272This should be displayed7273*************************7274*** WHILE tests ***72750 is smaller than 2072761 is smaller than 2072772 is smaller than 2072783 is smaller than 2072794 is smaller than 2072805 is smaller than 2072816 is smaller than 2072827 is smaller than 2072838 is smaller than 2072849 is smaller than 20728510 is smaller than 20728611 is smaller than 20728712 is smaller than 20728813 is smaller than 20728914 is smaller than 20729015 is smaller than 20729116 is smaller than 20729217 is smaller than 20729318 is smaller than 20729419 is smaller than 20729520 equals 20729621 is greater than 20729722 is greater than 20729823 is greater than 20729924 is greater than 20730025 is greater than 20730126 is greater than 20730227 is greater than 20730328 is greater than 20730429 is greater than 20730530 is greater than 20730631 is greater than 20730732 is greater than 20730833 is greater than 20730934 is greater than 20731035 is greater than 20731136 is greater than 20731237 is greater than 20731338 is greater than 20731439 is greater than 207315*******************7316*** Nested WHILEs ***7317Each array variable should be equal to the sum of its indices:7318${test00}[0] = 07319${test00}[1] = 17320${test00}[2] = 27321${test01}[0] = 17322${test01}[1] = 27323${test01}[2] = 37324${test02}[0] = 27325${test02}[1] = 37326${test02}[2] = 47327${test10}[0] = 17328${test10}[1] = 27329${test10}[2] = 37330${test11}[0] = 27331${test11}[1] = 37332${test11}[2] = 47333${test12}[0] = 37334${test12}[1] = 47335${test12}[2] = 57336${test20}[0] = 27337${test20}[1] = 37338${test20}[2] = 47339${test21}[0] = 37340${test21}[1] = 47341${test21}[2] = 57342${test22}[0] = 47343${test22}[1] = 57344${test22}[2] = 67345*********************7346*** hash test... ***7347commented out...7348**************************7349*** Hash resizing test ***7350ba7351baa7352baaa7353baaaa7354baaaaa7355baaaaaa7356baaaaaaa7357baaaaaaaa7358baaaaaaaaa7359baaaaaaaaaa7360ba7361107362baa736397364baaa736587366baaaa736777368baaaaa736967370baaaaaa737157372baaaaaaa737347374baaaaaaaa737537376baaaaaaaaa737727378baaaaaaaaaa737917380**************************7381*** break/continue test ***7382$i should go from 0 to 27383$j should go from 3 to 4, and $q should go from 3 to 47384 $j=37385 $q=37386 $q=47387 $j=47388 $q=37389 $q=47390$j should go from 0 to 27391 $j=07392 $j=17393 $j=27394$k should go from 0 to 27395 $k=07396 $k=17397 $k=27398$i=07399$j should go from 3 to 4, and $q should go from 3 to 47400 $j=37401 $q=37402 $q=47403 $j=47404 $q=37405 $q=47406$j should go from 0 to 27407 $j=07408 $j=17409 $j=27410$k should go from 0 to 27411 $k=07412 $k=17413 $k=27414$i=17415$j should go from 3 to 4, and $q should go from 3 to 47416 $j=37417 $q=37418 $q=47419 $j=47420 $q=37421 $q=47422$j should go from 0 to 27423 $j=07424 $j=17425 $j=27426$k should go from 0 to 27427 $k=07428 $k=17429 $k=27430$i=27431***********************7432*** Nested file include test ***7433<html>7434This is Finish.phtml. This file is supposed to be included7435from regression_test.phtml. This is normal HTML.7436and this is PHP code, 2+2=47437</html>7438********************************7439Tests completed.7440<html>7441<head>7442*** Testing assignments and variable aliasing: ***7443This should read "blah": blah7444This should read "this is nifty": this is nifty7445*************************************************7446*** Testing integer operators ***7447Correct result - 8: 87448Correct result - 8: 87449Correct result - 2: 27450Correct result - -2: -27451Correct result - 15: 157452Correct result - 15: 157453Correct result - 2: 27454Correct result - 3: 37455*********************************7456*** Testing real operators ***7457Correct result - 8: 87458Correct result - 8: 87459Correct result - 2: 27460Correct result - -2: -27461Correct result - 15: 157462Correct result - 15: 157463Correct result - 2: 27464Correct result - 3: 37465*********************************7466*** Testing if/elseif/else control ***7467This works7468this_still_works7469should_print7470*** Seriously nested if's test ***7471** spelling correction by kluzz **7472Only two lines of text should follow:7473this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=07474this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=474753 loop iterations should follow:74762 474773 474784 47479**********************************7480*** C-style else-if's ***7481This should be displayed7482*************************7483*** WHILE tests ***74840 is smaller than 2074851 is smaller than 2074862 is smaller than 2074873 is smaller than 2074884 is smaller than 2074895 is smaller than 2074906 is smaller than 2074917 is smaller than 2074928 is smaller than 2074939 is smaller than 20749410 is smaller than 20749511 is smaller than 20749612 is smaller than 20749713 is smaller than 20749814 is smaller than 20749915 is smaller than 20750016 is smaller than 20750117 is smaller than 20750218 is smaller than 20750319 is smaller than 20750420 equals 20750521 is greater than 20750622 is greater than 20750723 is greater than 20750824 is greater than 20750925 is greater than 20751026 is greater than 20751127 is greater than 20751228 is greater than 20751329 is greater than 20751430 is greater than 20751531 is greater than 20751632 is greater than 20751733 is greater than 20751834 is greater than 20751935 is greater than 20752036 is greater than 20752137 is greater than 20752238 is greater than 20752339 is greater than 207524*******************7525*** Nested WHILEs ***7526Each array variable should be equal to the sum of its indices:7527${test00}[0] = 07528${test00}[1] = 17529${test00}[2] = 27530${test01}[0] = 17531${test01}[1] = 27532${test01}[2] = 37533${test02}[0] = 27534${test02}[1] = 37535${test02}[2] = 47536${test10}[0] = 17537${test10}[1] = 27538${test10}[2] = 37539${test11}[0] = 27540${test11}[1] = 37541${test11}[2] = 47542${test12}[0] = 37543${test12}[1] = 47544${test12}[2] = 57545${test20}[0] = 27546${test20}[1] = 37547${test20}[2] = 47548${test21}[0] = 37549${test21}[1] = 47550${test21}[2] = 57551${test22}[0] = 47552${test22}[1] = 57553${test22}[2] = 67554*********************7555*** hash test... ***7556commented out...7557**************************7558*** Hash resizing test ***7559ba7560baa7561baaa7562baaaa7563baaaaa7564baaaaaa7565baaaaaaa7566baaaaaaaa7567baaaaaaaaa7568baaaaaaaaaa7569ba7570107571baa757297573baaa757487575baaaa757677577baaaaa757867579baaaaaa758057581baaaaaaa758247583baaaaaaaa758437585baaaaaaaaa758627587baaaaaaaaaa758817589**************************7590*** break/continue test ***7591$i should go from 0 to 27592$j should go from 3 to 4, and $q should go from 3 to 47593 $j=37594 $q=37595 $q=47596 $j=47597 $q=37598 $q=47599$j should go from 0 to 27600 $j=07601 $j=17602 $j=27603$k should go from 0 to 27604 $k=07605 $k=17606 $k=27607$i=07608$j should go from 3 to 4, and $q should go from 3 to 47609 $j=37610 $q=37611 $q=47612 $j=47613 $q=37614 $q=47615$j should go from 0 to 27616 $j=07617 $j=17618 $j=27619$k should go from 0 to 27620 $k=07621 $k=17622 $k=27623$i=17624$j should go from 3 to 4, and $q should go from 3 to 47625 $j=37626 $q=37627 $q=47628 $j=47629 $q=37630 $q=47631$j should go from 0 to 27632 $j=07633 $j=17634 $j=27635$k should go from 0 to 27636 $k=07637 $k=17638 $k=27639$i=27640***********************7641*** Nested file include test ***7642<html>7643This is Finish.phtml. This file is supposed to be included7644from regression_test.phtml. This is normal HTML.7645and this is PHP code, 2+2=47646</html>7647********************************7648Tests completed.7649<html>7650<head>7651*** Testing assignments and variable aliasing: ***7652This should read "blah": blah7653This should read "this is nifty": this is nifty7654*************************************************7655*** Testing integer operators ***7656Correct result - 8: 87657Correct result - 8: 87658Correct result - 2: 27659Correct result - -2: -27660Correct result - 15: 157661Correct result - 15: 157662Correct result - 2: 27663Correct result - 3: 37664*********************************7665*** Testing real operators ***7666Correct result - 8: 87667Correct result - 8: 87668Correct result - 2: 27669Correct result - -2: -27670Correct result - 15: 157671Correct result - 15: 157672Correct result - 2: 27673Correct result - 3: 37674*********************************7675*** Testing if/elseif/else control ***7676This works7677this_still_works7678should_print7679*** Seriously nested if's test ***7680** spelling correction by kluzz **7681Only two lines of text should follow:7682this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=07683this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=476843 loop iterations should follow:76852 476863 476874 47688**********************************7689*** C-style else-if's ***7690This should be displayed7691*************************7692*** WHILE tests ***76930 is smaller than 2076941 is smaller than 2076952 is smaller than 2076963 is smaller than 2076974 is smaller than 2076985 is smaller than 2076996 is smaller than 2077007 is smaller than 2077018 is smaller than 2077029 is smaller than 20770310 is smaller than 20770411 is smaller than 20770512 is smaller than 20770613 is smaller than 20770714 is smaller than 20770815 is smaller than 20770916 is smaller than 20771017 is smaller than 20771118 is smaller than 20771219 is smaller than 20771320 equals 20771421 is greater than 20771522 is greater than 20771623 is greater than 20771724 is greater than 20771825 is greater than 20771926 is greater than 20772027 is greater than 20772128 is greater than 20772229 is greater than 20772330 is greater than 20772431 is greater than 20772532 is greater than 20772633 is greater than 20772734 is greater than 20772835 is greater than 20772936 is greater than 20773037 is greater than 20773138 is greater than 20773239 is greater than 207733*******************7734*** Nested WHILEs ***7735Each array variable should be equal to the sum of its indices:7736${test00}[0] = 07737${test00}[1] = 17738${test00}[2] = 27739${test01}[0] = 17740${test01}[1] = 27741${test01}[2] = 37742${test02}[0] = 27743${test02}[1] = 37744${test02}[2] = 47745${test10}[0] = 17746${test10}[1] = 27747${test10}[2] = 37748${test11}[0] = 27749${test11}[1] = 37750${test11}[2] = 47751${test12}[0] = 37752${test12}[1] = 47753${test12}[2] = 57754${test20}[0] = 27755${test20}[1] = 37756${test20}[2] = 47757${test21}[0] = 37758${test21}[1] = 47759${test21}[2] = 57760${test22}[0] = 47761${test22}[1] = 57762${test22}[2] = 67763*********************7764*** hash test... ***7765commented out...7766**************************7767*** Hash resizing test ***7768ba7769baa7770baaa7771baaaa7772baaaaa7773baaaaaa7774baaaaaaa7775baaaaaaaa7776baaaaaaaaa7777baaaaaaaaaa7778ba7779107780baa778197782baaa778387784baaaa778577786baaaaa778767788baaaaaa778957790baaaaaaa779147792baaaaaaaa779337794baaaaaaaaa779527796baaaaaaaaaa779717798**************************7799*** break/continue test ***7800$i should go from 0 to 27801$j should go from 3 to 4, and $q should go from 3 to 47802 $j=37803 $q=37804 $q=47805 $j=47806 $q=37807 $q=47808$j should go from 0 to 27809 $j=07810 $j=17811 $j=27812$k should go from 0 to 27813 $k=07814 $k=17815 $k=27816$i=07817$j should go from 3 to 4, and $q should go from 3 to 47818 $j=37819 $q=37820 $q=47821 $j=47822 $q=37823 $q=47824$j should go from 0 to 27825 $j=07826 $j=17827 $j=27828$k should go from 0 to 27829 $k=07830 $k=17831 $k=27832$i=17833$j should go from 3 to 4, and $q should go from 3 to 47834 $j=37835 $q=37836 $q=47837 $j=47838 $q=37839 $q=47840$j should go from 0 to 27841 $j=07842 $j=17843 $j=27844$k should go from 0 to 27845 $k=07846 $k=17847 $k=27848$i=27849***********************7850*** Nested file include test ***7851<html>7852This is Finish.phtml. This file is supposed to be included7853from regression_test.phtml. This is normal HTML.7854and this is PHP code, 2+2=47855</html>7856********************************7857Tests completed.7858<html>7859<head>7860*** Testing assignments and variable aliasing: ***7861This should read "blah": blah7862This should read "this is nifty": this is nifty7863*************************************************7864*** Testing integer operators ***7865Correct result - 8: 87866Correct result - 8: 87867Correct result - 2: 27868Correct result - -2: -27869Correct result - 15: 157870Correct result - 15: 157871Correct result - 2: 27872Correct result - 3: 37873*********************************7874*** Testing real operators ***7875Correct result - 8: 87876Correct result - 8: 87877Correct result - 2: 27878Correct result - -2: -27879Correct result - 15: 157880Correct result - 15: 157881Correct result - 2: 27882Correct result - 3: 37883*********************************7884*** Testing if/elseif/else control ***7885This works7886this_still_works7887should_print7888*** Seriously nested if's test ***7889** spelling correction by kluzz **7890Only two lines of text should follow:7891this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=07892this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=478933 loop iterations should follow:78942 478953 478964 47897**********************************7898*** C-style else-if's ***7899This should be displayed7900*************************7901*** WHILE tests ***79020 is smaller than 2079031 is smaller than 2079042 is smaller than 2079053 is smaller than 2079064 is smaller than 2079075 is smaller than 2079086 is smaller than 2079097 is smaller than 2079108 is smaller than 2079119 is smaller than 20791210 is smaller than 20791311 is smaller than 20791412 is smaller than 20791513 is smaller than 20791614 is smaller than 20791715 is smaller than 20791816 is smaller than 20791917 is smaller than 20792018 is smaller than 20792119 is smaller than 20792220 equals 20792321 is greater than 20792422 is greater than 20792523 is greater than 20792624 is greater than 20792725 is greater than 20792826 is greater than 20792927 is greater than 20793028 is greater than 20793129 is greater than 20793230 is greater than 20793331 is greater than 20793432 is greater than 20793533 is greater than 20793634 is greater than 20793735 is greater than 20793836 is greater than 20793937 is greater than 20794038 is greater than 20794139 is greater than 207942*******************7943*** Nested WHILEs ***7944Each array variable should be equal to the sum of its indices:7945${test00}[0] = 07946${test00}[1] = 17947${test00}[2] = 27948${test01}[0] = 17949${test01}[1] = 27950${test01}[2] = 37951${test02}[0] = 27952${test02}[1] = 37953${test02}[2] = 47954${test10}[0] = 17955${test10}[1] = 27956${test10}[2] = 37957${test11}[0] = 27958${test11}[1] = 37959${test11}[2] = 47960${test12}[0] = 37961${test12}[1] = 47962${test12}[2] = 57963${test20}[0] = 27964${test20}[1] = 37965${test20}[2] = 47966${test21}[0] = 37967${test21}[1] = 47968${test21}[2] = 57969${test22}[0] = 47970${test22}[1] = 57971${test22}[2] = 67972*********************7973*** hash test... ***7974commented out...7975**************************7976*** Hash resizing test ***7977ba7978baa7979baaa7980baaaa7981baaaaa7982baaaaaa7983baaaaaaa7984baaaaaaaa7985baaaaaaaaa7986baaaaaaaaaa7987ba7988107989baa799097991baaa799287993baaaa799477995baaaaa799667997baaaaaa799857999baaaaaaa800048001baaaaaaaa800238003baaaaaaaaa800428005baaaaaaaaaa800618007**************************8008*** break/continue test ***8009$i should go from 0 to 28010$j should go from 3 to 4, and $q should go from 3 to 48011 $j=38012 $q=38013 $q=48014 $j=48015 $q=38016 $q=48017$j should go from 0 to 28018 $j=08019 $j=18020 $j=28021$k should go from 0 to 28022 $k=08023 $k=18024 $k=28025$i=08026$j should go from 3 to 4, and $q should go from 3 to 48027 $j=38028 $q=38029 $q=48030 $j=48031 $q=38032 $q=48033$j should go from 0 to 28034 $j=08035 $j=18036 $j=28037$k should go from 0 to 28038 $k=08039 $k=18040 $k=28041$i=18042$j should go from 3 to 4, and $q should go from 3 to 48043 $j=38044 $q=38045 $q=48046 $j=48047 $q=38048 $q=48049$j should go from 0 to 28050 $j=08051 $j=18052 $j=28053$k should go from 0 to 28054 $k=08055 $k=18056 $k=28057$i=28058***********************8059*** Nested file include test ***8060<html>8061This is Finish.phtml. This file is supposed to be included8062from regression_test.phtml. This is normal HTML.8063and this is PHP code, 2+2=48064</html>8065********************************8066Tests completed.8067<html>8068<head>8069*** Testing assignments and variable aliasing: ***8070This should read "blah": blah8071This should read "this is nifty": this is nifty8072*************************************************8073*** Testing integer operators ***8074Correct result - 8: 88075Correct result - 8: 88076Correct result - 2: 28077Correct result - -2: -28078Correct result - 15: 158079Correct result - 15: 158080Correct result - 2: 28081Correct result - 3: 38082*********************************8083*** Testing real operators ***8084Correct result - 8: 88085Correct result - 8: 88086Correct result - 2: 28087Correct result - -2: -28088Correct result - 15: 158089Correct result - 15: 158090Correct result - 2: 28091Correct result - 3: 38092*********************************8093*** Testing if/elseif/else control ***8094This works8095this_still_works8096should_print8097*** Seriously nested if's test ***8098** spelling correction by kluzz **8099Only two lines of text should follow:8100this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=08101this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=481023 loop iterations should follow:81032 481043 481054 48106**********************************8107*** C-style else-if's ***8108This should be displayed8109*************************8110*** WHILE tests ***81110 is smaller than 2081121 is smaller than 2081132 is smaller than 2081143 is smaller than 2081154 is smaller than 2081165 is smaller than 2081176 is smaller than 2081187 is smaller than 2081198 is smaller than 2081209 is smaller than 20812110 is smaller than 20812211 is smaller than 20812312 is smaller than 20812413 is smaller than 20812514 is smaller than 20812615 is smaller than 20812716 is smaller than 20812817 is smaller than 20812918 is smaller than 20813019 is smaller than 20813120 equals 20813221 is greater than 20813322 is greater than 20813423 is greater than 20813524 is greater than 20813625 is greater than 20813726 is greater than 20813827 is greater than 20813928 is greater than 20814029 is greater than 20814130 is greater than 20814231 is greater than 20814332 is greater than 20814433 is greater than 20814534 is greater than 20814635 is greater than 20814736 is greater than 20814837 is greater than 20814938 is greater than 20815039 is greater than 208151*******************8152*** Nested WHILEs ***8153Each array variable should be equal to the sum of its indices:8154${test00}[0] = 08155${test00}[1] = 18156${test00}[2] = 28157${test01}[0] = 18158${test01}[1] = 28159${test01}[2] = 38160${test02}[0] = 28161${test02}[1] = 38162${test02}[2] = 48163${test10}[0] = 18164${test10}[1] = 28165${test10}[2] = 38166${test11}[0] = 28167${test11}[1] = 38168${test11}[2] = 48169${test12}[0] = 38170${test12}[1] = 48171${test12}[2] = 58172${test20}[0] = 28173${test20}[1] = 38174${test20}[2] = 48175${test21}[0] = 38176${test21}[1] = 48177${test21}[2] = 58178${test22}[0] = 48179${test22}[1] = 58180${test22}[2] = 68181*********************8182*** hash test... ***8183commented out...8184**************************8185*** Hash resizing test ***8186ba8187baa8188baaa8189baaaa8190baaaaa8191baaaaaa8192baaaaaaa8193baaaaaaaa8194baaaaaaaaa8195baaaaaaaaaa8196ba8197108198baa819998200baaa820188202baaaa820378204baaaaa820568206baaaaaa820758208baaaaaaa820948210baaaaaaaa821138212baaaaaaaaa821328214baaaaaaaaaa821518216**************************8217*** break/continue test ***8218$i should go from 0 to 28219$j should go from 3 to 4, and $q should go from 3 to 48220 $j=38221 $q=38222 $q=48223 $j=48224 $q=38225 $q=48226$j should go from 0 to 28227 $j=08228 $j=18229 $j=28230$k should go from 0 to 28231 $k=08232 $k=18233 $k=28234$i=08235$j should go from 3 to 4, and $q should go from 3 to 48236 $j=38237 $q=38238 $q=48239 $j=48240 $q=38241 $q=48242$j should go from 0 to 28243 $j=08244 $j=18245 $j=28246$k should go from 0 to 28247 $k=08248 $k=18249 $k=28250$i=18251$j should go from 3 to 4, and $q should go from 3 to 48252 $j=38253 $q=38254 $q=48255 $j=48256 $q=38257 $q=48258$j should go from 0 to 28259 $j=08260 $j=18261 $j=28262$k should go from 0 to 28263 $k=08264 $k=18265 $k=28266$i=28267***********************8268*** Nested file include test ***8269<html>8270This is Finish.phtml. This file is supposed to be included8271from regression_test.phtml. This is normal HTML.8272and this is PHP code, 2+2=48273</html>8274********************************8275Tests completed.8276<html>8277<head>8278*** Testing assignments and variable aliasing: ***8279This should read "blah": blah8280This should read "this is nifty": this is nifty8281*************************************************8282*** Testing integer operators ***8283Correct result - 8: 88284Correct result - 8: 88285Correct result - 2: 28286Correct result - -2: -28287Correct result - 15: 158288Correct result - 15: 158289Correct result - 2: 28290Correct result - 3: 38291*********************************8292*** Testing real operators ***8293Correct result - 8: 88294Correct result - 8: 88295Correct result - 2: 28296Correct result - -2: -28297Correct result - 15: 158298Correct result - 15: 158299Correct result - 2: 28300Correct result - 3: 38301*********************************8302*** Testing if/elseif/else control ***8303This works8304this_still_works8305should_print8306*** Seriously nested if's test ***8307** spelling correction by kluzz **8308Only two lines of text should follow:8309this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=08310this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=483113 loop iterations should follow:83122 483133 483144 48315**********************************8316*** C-style else-if's ***8317This should be displayed8318*************************8319*** WHILE tests ***83200 is smaller than 2083211 is smaller than 2083222 is smaller than 2083233 is smaller than 2083244 is smaller than 2083255 is smaller than 2083266 is smaller than 2083277 is smaller than 2083288 is smaller than 2083299 is smaller than 20833010 is smaller than 20833111 is smaller than 20833212 is smaller than 20833313 is smaller than 20833414 is smaller than 20833515 is smaller than 20833616 is smaller than 20833717 is smaller than 20833818 is smaller than 20833919 is smaller than 20834020 equals 20834121 is greater than 20834222 is greater than 20834323 is greater than 20834424 is greater than 20834525 is greater than 20834626 is greater than 20834727 is greater than 20834828 is greater than 20834929 is greater than 20835030 is greater than 20835131 is greater than 20835232 is greater than 20835333 is greater than 20835434 is greater than 20835535 is greater than 20835636 is greater than 20835737 is greater than 20835838 is greater than 20835939 is greater than 208360*******************8361*** Nested WHILEs ***8362Each array variable should be equal to the sum of its indices:8363${test00}[0] = 08364${test00}[1] = 18365${test00}[2] = 28366${test01}[0] = 18367${test01}[1] = 28368${test01}[2] = 38369${test02}[0] = 28370${test02}[1] = 38371${test02}[2] = 48372${test10}[0] = 18373${test10}[1] = 28374${test10}[2] = 38375${test11}[0] = 28376${test11}[1] = 38377${test11}[2] = 48378${test12}[0] = 38379${test12}[1] = 48380${test12}[2] = 58381${test20}[0] = 28382${test20}[1] = 38383${test20}[2] = 48384${test21}[0] = 38385${test21}[1] = 48386${test21}[2] = 58387${test22}[0] = 48388${test22}[1] = 58389${test22}[2] = 68390*********************8391*** hash test... ***8392commented out...8393**************************8394*** Hash resizing test ***8395ba8396baa8397baaa8398baaaa8399baaaaa8400baaaaaa8401baaaaaaa8402baaaaaaaa8403baaaaaaaaa8404baaaaaaaaaa8405ba8406108407baa840898409baaa841088411baaaa841278413baaaaa841468415baaaaaa841658417baaaaaaa841848419baaaaaaaa842038421baaaaaaaaa842228423baaaaaaaaaa842418425**************************8426*** break/continue test ***8427$i should go from 0 to 28428$j should go from 3 to 4, and $q should go from 3 to 48429 $j=38430 $q=38431 $q=48432 $j=48433 $q=38434 $q=48435$j should go from 0 to 28436 $j=08437 $j=18438 $j=28439$k should go from 0 to 28440 $k=08441 $k=18442 $k=28443$i=08444$j should go from 3 to 4, and $q should go from 3 to 48445 $j=38446 $q=38447 $q=48448 $j=48449 $q=38450 $q=48451$j should go from 0 to 28452 $j=08453 $j=18454 $j=28455$k should go from 0 to 28456 $k=08457 $k=18458 $k=28459$i=18460$j should go from 3 to 4, and $q should go from 3 to 48461 $j=38462 $q=38463 $q=48464 $j=48465 $q=38466 $q=48467$j should go from 0 to 28468 $j=08469 $j=18470 $j=28471$k should go from 0 to 28472 $k=08473 $k=18474 $k=28475$i=28476***********************8477*** Nested file include test ***8478<html>8479This is Finish.phtml. This file is supposed to be included8480from regression_test.phtml. This is normal HTML.8481and this is PHP code, 2+2=48482</html>8483********************************8484Tests completed.8485<html>8486<head>8487*** Testing assignments and variable aliasing: ***8488This should read "blah": blah8489This should read "this is nifty": this is nifty8490*************************************************8491*** Testing integer operators ***8492Correct result - 8: 88493Correct result - 8: 88494Correct result - 2: 28495Correct result - -2: -28496Correct result - 15: 158497Correct result - 15: 158498Correct result - 2: 28499Correct result - 3: 38500*********************************8501*** Testing real operators ***8502Correct result - 8: 88503Correct result - 8: 88504Correct result - 2: 28505Correct result - -2: -28506Correct result - 15: 158507Correct result - 15: 158508Correct result - 2: 28509Correct result - 3: 38510*********************************8511*** Testing if/elseif/else control ***8512This works8513this_still_works8514should_print8515*** Seriously nested if's test ***8516** spelling correction by kluzz **8517Only two lines of text should follow:8518this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=08519this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=485203 loop iterations should follow:85212 485223 485234 48524**********************************8525*** C-style else-if's ***8526This should be displayed8527*************************8528*** WHILE tests ***85290 is smaller than 2085301 is smaller than 2085312 is smaller than 2085323 is smaller than 2085334 is smaller than 2085345 is smaller than 2085356 is smaller than 2085367 is smaller than 2085378 is smaller than 2085389 is smaller than 20853910 is smaller than 20854011 is smaller than 20854112 is smaller than 20854213 is smaller than 20854314 is smaller than 20854415 is smaller than 20854516 is smaller than 20854617 is smaller than 20854718 is smaller than 20854819 is smaller than 20854920 equals 20855021 is greater than 20855122 is greater than 20855223 is greater than 20855324 is greater than 20855425 is greater than 20855526 is greater than 20855627 is greater than 20855728 is greater than 20855829 is greater than 20855930 is greater than 20856031 is greater than 20856132 is greater than 20856233 is greater than 20856334 is greater than 20856435 is greater than 20856536 is greater than 20856637 is greater than 20856738 is greater than 20856839 is greater than 208569*******************8570*** Nested WHILEs ***8571Each array variable should be equal to the sum of its indices:8572${test00}[0] = 08573${test00}[1] = 18574${test00}[2] = 28575${test01}[0] = 18576${test01}[1] = 28577${test01}[2] = 38578${test02}[0] = 28579${test02}[1] = 38580${test02}[2] = 48581${test10}[0] = 18582${test10}[1] = 28583${test10}[2] = 38584${test11}[0] = 28585${test11}[1] = 38586${test11}[2] = 48587${test12}[0] = 38588${test12}[1] = 48589${test12}[2] = 58590${test20}[0] = 28591${test20}[1] = 38592${test20}[2] = 48593${test21}[0] = 38594${test21}[1] = 48595${test21}[2] = 58596${test22}[0] = 48597${test22}[1] = 58598${test22}[2] = 68599*********************8600*** hash test... ***8601commented out...8602**************************8603*** Hash resizing test ***8604ba8605baa8606baaa8607baaaa8608baaaaa8609baaaaaa8610baaaaaaa8611baaaaaaaa8612baaaaaaaaa8613baaaaaaaaaa8614ba8615108616baa861798618baaa861988620baaaa862178622baaaaa862368624baaaaaa862558626baaaaaaa862748628baaaaaaaa862938630baaaaaaaaa863128632baaaaaaaaaa863318634**************************8635*** break/continue test ***8636$i should go from 0 to 28637$j should go from 3 to 4, and $q should go from 3 to 48638 $j=38639 $q=38640 $q=48641 $j=48642 $q=38643 $q=48644$j should go from 0 to 28645 $j=08646 $j=18647 $j=28648$k should go from 0 to 28649 $k=08650 $k=18651 $k=28652$i=08653$j should go from 3 to 4, and $q should go from 3 to 48654 $j=38655 $q=38656 $q=48657 $j=48658 $q=38659 $q=48660$j should go from 0 to 28661 $j=08662 $j=18663 $j=28664$k should go from 0 to 28665 $k=08666 $k=18667 $k=28668$i=18669$j should go from 3 to 4, and $q should go from 3 to 48670 $j=38671 $q=38672 $q=48673 $j=48674 $q=38675 $q=48676$j should go from 0 to 28677 $j=08678 $j=18679 $j=28680$k should go from 0 to 28681 $k=08682 $k=18683 $k=28684$i=28685***********************8686*** Nested file include test ***8687<html>8688This is Finish.phtml. This file is supposed to be included8689from regression_test.phtml. This is normal HTML.8690and this is PHP code, 2+2=48691</html>8692********************************8693Tests completed.8694<html>8695<head>8696*** Testing assignments and variable aliasing: ***8697This should read "blah": blah8698This should read "this is nifty": this is nifty8699*************************************************8700*** Testing integer operators ***8701Correct result - 8: 88702Correct result - 8: 88703Correct result - 2: 28704Correct result - -2: -28705Correct result - 15: 158706Correct result - 15: 158707Correct result - 2: 28708Correct result - 3: 38709*********************************8710*** Testing real operators ***8711Correct result - 8: 88712Correct result - 8: 88713Correct result - 2: 28714Correct result - -2: -28715Correct result - 15: 158716Correct result - 15: 158717Correct result - 2: 28718Correct result - 3: 38719*********************************8720*** Testing if/elseif/else control ***8721This works8722this_still_works8723should_print8724*** Seriously nested if's test ***8725** spelling correction by kluzz **8726Only two lines of text should follow:8727this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=08728this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=487293 loop iterations should follow:87302 487313 487324 48733**********************************8734*** C-style else-if's ***8735This should be displayed8736*************************8737*** WHILE tests ***87380 is smaller than 2087391 is smaller than 2087402 is smaller than 2087413 is smaller than 2087424 is smaller than 2087435 is smaller than 2087446 is smaller than 2087457 is smaller than 2087468 is smaller than 2087479 is smaller than 20874810 is smaller than 20874911 is smaller than 20875012 is smaller than 20875113 is smaller than 20875214 is smaller than 20875315 is smaller than 20875416 is smaller than 20875517 is smaller than 20875618 is smaller than 20875719 is smaller than 20875820 equals 20875921 is greater than 20876022 is greater than 20876123 is greater than 20876224 is greater than 20876325 is greater than 20876426 is greater than 20876527 is greater than 20876628 is greater than 20876729 is greater than 20876830 is greater than 20876931 is greater than 20877032 is greater than 20877133 is greater than 20877234 is greater than 20877335 is greater than 20877436 is greater than 20877537 is greater than 20877638 is greater than 20877739 is greater than 208778*******************8779*** Nested WHILEs ***8780Each array variable should be equal to the sum of its indices:8781${test00}[0] = 08782${test00}[1] = 18783${test00}[2] = 28784${test01}[0] = 18785${test01}[1] = 28786${test01}[2] = 38787${test02}[0] = 28788${test02}[1] = 38789${test02}[2] = 48790${test10}[0] = 18791${test10}[1] = 28792${test10}[2] = 38793${test11}[0] = 28794${test11}[1] = 38795${test11}[2] = 48796${test12}[0] = 38797${test12}[1] = 48798${test12}[2] = 58799${test20}[0] = 28800${test20}[1] = 38801${test20}[2] = 48802${test21}[0] = 38803${test21}[1] = 48804${test21}[2] = 58805${test22}[0] = 48806${test22}[1] = 58807${test22}[2] = 68808*********************8809*** hash test... ***8810commented out...8811**************************8812*** Hash resizing test ***8813ba8814baa8815baaa8816baaaa8817baaaaa8818baaaaaa8819baaaaaaa8820baaaaaaaa8821baaaaaaaaa8822baaaaaaaaaa8823ba8824108825baa882698827baaa882888829baaaa883078831baaaaa883268833baaaaaa883458835baaaaaaa883648837baaaaaaaa883838839baaaaaaaaa884028841baaaaaaaaaa884218843**************************8844*** break/continue test ***8845$i should go from 0 to 28846$j should go from 3 to 4, and $q should go from 3 to 48847 $j=38848 $q=38849 $q=48850 $j=48851 $q=38852 $q=48853$j should go from 0 to 28854 $j=08855 $j=18856 $j=28857$k should go from 0 to 28858 $k=08859 $k=18860 $k=28861$i=08862$j should go from 3 to 4, and $q should go from 3 to 48863 $j=38864 $q=38865 $q=48866 $j=48867 $q=38868 $q=48869$j should go from 0 to 28870 $j=08871 $j=18872 $j=28873$k should go from 0 to 28874 $k=08875 $k=18876 $k=28877$i=18878$j should go from 3 to 4, and $q should go from 3 to 48879 $j=38880 $q=38881 $q=48882 $j=48883 $q=38884 $q=48885$j should go from 0 to 28886 $j=08887 $j=18888 $j=28889$k should go from 0 to 28890 $k=08891 $k=18892 $k=28893$i=28894***********************8895*** Nested file include test ***8896<html>8897This is Finish.phtml. This file is supposed to be included8898from regression_test.phtml. This is normal HTML.8899and this is PHP code, 2+2=48900</html>8901********************************8902Tests completed.8903<html>8904<head>8905*** Testing assignments and variable aliasing: ***8906This should read "blah": blah8907This should read "this is nifty": this is nifty8908*************************************************8909*** Testing integer operators ***8910Correct result - 8: 88911Correct result - 8: 88912Correct result - 2: 28913Correct result - -2: -28914Correct result - 15: 158915Correct result - 15: 158916Correct result - 2: 28917Correct result - 3: 38918*********************************8919*** Testing real operators ***8920Correct result - 8: 88921Correct result - 8: 88922Correct result - 2: 28923Correct result - -2: -28924Correct result - 15: 158925Correct result - 15: 158926Correct result - 2: 28927Correct result - 3: 38928*********************************8929*** Testing if/elseif/else control ***8930This works8931this_still_works8932should_print8933*** Seriously nested if's test ***8934** spelling correction by kluzz **8935Only two lines of text should follow:8936this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=08937this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=489383 loop iterations should follow:89392 489403 489414 48942**********************************8943*** C-style else-if's ***8944This should be displayed8945*************************8946*** WHILE tests ***89470 is smaller than 2089481 is smaller than 2089492 is smaller than 2089503 is smaller than 2089514 is smaller than 2089525 is smaller than 2089536 is smaller than 2089547 is smaller than 2089558 is smaller than 2089569 is smaller than 20895710 is smaller than 20895811 is smaller than 20895912 is smaller than 20896013 is smaller than 20896114 is smaller than 20896215 is smaller than 20896316 is smaller than 20896417 is smaller than 20896518 is smaller than 20896619 is smaller than 20896720 equals 20896821 is greater than 20896922 is greater than 20897023 is greater than 20897124 is greater than 20897225 is greater than 20897326 is greater than 20897427 is greater than 20897528 is greater than 20897629 is greater than 20897730 is greater than 20897831 is greater than 20897932 is greater than 20898033 is greater than 20898134 is greater than 20898235 is greater than 20898336 is greater than 20898437 is greater than 20898538 is greater than 20898639 is greater than 208987*******************8988*** Nested WHILEs ***8989Each array variable should be equal to the sum of its indices:8990${test00}[0] = 08991${test00}[1] = 18992${test00}[2] = 28993${test01}[0] = 18994${test01}[1] = 28995${test01}[2] = 38996${test02}[0] = 28997${test02}[1] = 38998${test02}[2] = 48999${test10}[0] = 19000${test10}[1] = 29001${test10}[2] = 39002${test11}[0] = 29003${test11}[1] = 39004${test11}[2] = 49005${test12}[0] = 39006${test12}[1] = 49007${test12}[2] = 59008${test20}[0] = 29009${test20}[1] = 39010${test20}[2] = 49011${test21}[0] = 39012${test21}[1] = 49013${test21}[2] = 59014${test22}[0] = 49015${test22}[1] = 59016${test22}[2] = 69017*********************9018*** hash test... ***9019commented out...9020**************************9021*** Hash resizing test ***9022ba9023baa9024baaa9025baaaa9026baaaaa9027baaaaaa9028baaaaaaa9029baaaaaaaa9030baaaaaaaaa9031baaaaaaaaaa9032ba9033109034baa903599036baaa903789038baaaa903979040baaaaa904169042baaaaaa904359044baaaaaaa904549046baaaaaaaa904739048baaaaaaaaa904929050baaaaaaaaaa905119052**************************9053*** break/continue test ***9054$i should go from 0 to 29055$j should go from 3 to 4, and $q should go from 3 to 49056 $j=39057 $q=39058 $q=49059 $j=49060 $q=39061 $q=49062$j should go from 0 to 29063 $j=09064 $j=19065 $j=29066$k should go from 0 to 29067 $k=09068 $k=19069 $k=29070$i=09071$j should go from 3 to 4, and $q should go from 3 to 49072 $j=39073 $q=39074 $q=49075 $j=49076 $q=39077 $q=49078$j should go from 0 to 29079 $j=09080 $j=19081 $j=29082$k should go from 0 to 29083 $k=09084 $k=19085 $k=29086$i=19087$j should go from 3 to 4, and $q should go from 3 to 49088 $j=39089 $q=39090 $q=49091 $j=49092 $q=39093 $q=49094$j should go from 0 to 29095 $j=09096 $j=19097 $j=29098$k should go from 0 to 29099 $k=09100 $k=19101 $k=29102$i=29103***********************9104*** Nested file include test ***9105<html>9106This is Finish.phtml. This file is supposed to be included9107from regression_test.phtml. This is normal HTML.9108and this is PHP code, 2+2=49109</html>9110********************************9111Tests completed.9112<html>9113<head>9114*** Testing assignments and variable aliasing: ***9115This should read "blah": blah9116This should read "this is nifty": this is nifty9117*************************************************9118*** Testing integer operators ***9119Correct result - 8: 89120Correct result - 8: 89121Correct result - 2: 29122Correct result - -2: -29123Correct result - 15: 159124Correct result - 15: 159125Correct result - 2: 29126Correct result - 3: 39127*********************************9128*** Testing real operators ***9129Correct result - 8: 89130Correct result - 8: 89131Correct result - 2: 29132Correct result - -2: -29133Correct result - 15: 159134Correct result - 15: 159135Correct result - 2: 29136Correct result - 3: 39137*********************************9138*** Testing if/elseif/else control ***9139This works9140this_still_works9141should_print9142*** Seriously nested if's test ***9143** spelling correction by kluzz **9144Only two lines of text should follow:9145this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=09146this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=491473 loop iterations should follow:91482 491493 491504 49151**********************************9152*** C-style else-if's ***9153This should be displayed9154*************************9155*** WHILE tests ***91560 is smaller than 2091571 is smaller than 2091582 is smaller than 2091593 is smaller than 2091604 is smaller than 2091615 is smaller than 2091626 is smaller than 2091637 is smaller than 2091648 is smaller than 2091659 is smaller than 20916610 is smaller than 20916711 is smaller than 20916812 is smaller than 20916913 is smaller than 20917014 is smaller than 20917115 is smaller than 20917216 is smaller than 20917317 is smaller than 20917418 is smaller than 20917519 is smaller than 20917620 equals 20917721 is greater than 20917822 is greater than 20917923 is greater than 20918024 is greater than 20918125 is greater than 20918226 is greater than 20918327 is greater than 20918428 is greater than 20918529 is greater than 20918630 is greater than 20918731 is greater than 20918832 is greater than 20918933 is greater than 20919034 is greater than 20919135 is greater than 20919236 is greater than 20919337 is greater than 20919438 is greater than 20919539 is greater than 209196*******************9197*** Nested WHILEs ***9198Each array variable should be equal to the sum of its indices:9199${test00}[0] = 09200${test00}[1] = 19201${test00}[2] = 29202${test01}[0] = 19203${test01}[1] = 29204${test01}[2] = 39205${test02}[0] = 29206${test02}[1] = 39207${test02}[2] = 49208${test10}[0] = 19209${test10}[1] = 29210${test10}[2] = 39211${test11}[0] = 29212${test11}[1] = 39213${test11}[2] = 49214${test12}[0] = 39215${test12}[1] = 49216${test12}[2] = 59217${test20}[0] = 29218${test20}[1] = 39219${test20}[2] = 49220${test21}[0] = 39221${test21}[1] = 49222${test21}[2] = 59223${test22}[0] = 49224${test22}[1] = 59225${test22}[2] = 69226*********************9227*** hash test... ***9228commented out...9229**************************9230*** Hash resizing test ***9231ba9232baa9233baaa9234baaaa9235baaaaa9236baaaaaa9237baaaaaaa9238baaaaaaaa9239baaaaaaaaa9240baaaaaaaaaa9241ba9242109243baa924499245baaa924689247baaaa924879249baaaaa925069251baaaaaa925259253baaaaaaa925449255baaaaaaaa925639257baaaaaaaaa925829259baaaaaaaaaa926019261**************************9262*** break/continue test ***9263$i should go from 0 to 29264$j should go from 3 to 4, and $q should go from 3 to 49265 $j=39266 $q=39267 $q=49268 $j=49269 $q=39270 $q=49271$j should go from 0 to 29272 $j=09273 $j=19274 $j=29275$k should go from 0 to 29276 $k=09277 $k=19278 $k=29279$i=09280$j should go from 3 to 4, and $q should go from 3 to 49281 $j=39282 $q=39283 $q=49284 $j=49285 $q=39286 $q=49287$j should go from 0 to 29288 $j=09289 $j=19290 $j=29291$k should go from 0 to 29292 $k=09293 $k=19294 $k=29295$i=19296$j should go from 3 to 4, and $q should go from 3 to 49297 $j=39298 $q=39299 $q=49300 $j=49301 $q=39302 $q=49303$j should go from 0 to 29304 $j=09305 $j=19306 $j=29307$k should go from 0 to 29308 $k=09309 $k=19310 $k=29311$i=29312***********************9313*** Nested file include test ***9314<html>9315This is Finish.phtml. This file is supposed to be included9316from regression_test.phtml. This is normal HTML.9317and this is PHP code, 2+2=49318</html>9319********************************9320Tests completed.9321<html>9322<head>9323*** Testing assignments and variable aliasing: ***9324This should read "blah": blah9325This should read "this is nifty": this is nifty9326*************************************************9327*** Testing integer operators ***9328Correct result - 8: 89329Correct result - 8: 89330Correct result - 2: 29331Correct result - -2: -29332Correct result - 15: 159333Correct result - 15: 159334Correct result - 2: 29335Correct result - 3: 39336*********************************9337*** Testing real operators ***9338Correct result - 8: 89339Correct result - 8: 89340Correct result - 2: 29341Correct result - -2: -29342Correct result - 15: 159343Correct result - 15: 159344Correct result - 2: 29345Correct result - 3: 39346*********************************9347*** Testing if/elseif/else control ***9348This works9349this_still_works9350should_print9351*** Seriously nested if's test ***9352** spelling correction by kluzz **9353Only two lines of text should follow:9354this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=09355this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=493563 loop iterations should follow:93572 493583 493594 49360**********************************9361*** C-style else-if's ***9362This should be displayed9363*************************9364*** WHILE tests ***93650 is smaller than 2093661 is smaller than 2093672 is smaller than 2093683 is smaller than 2093694 is smaller than 2093705 is smaller than 2093716 is smaller than 2093727 is smaller than 2093738 is smaller than 2093749 is smaller than 20937510 is smaller than 20937611 is smaller than 20937712 is smaller than 20937813 is smaller than 20937914 is smaller than 20938015 is smaller than 20938116 is smaller than 20938217 is smaller than 20938318 is smaller than 20938419 is smaller than 20938520 equals 20938621 is greater than 20938722 is greater than 20938823 is greater than 20938924 is greater than 20939025 is greater than 20939126 is greater than 20939227 is greater than 20939328 is greater than 20939429 is greater than 20939530 is greater than 20939631 is greater than 20939732 is greater than 20939833 is greater than 20939934 is greater than 20940035 is greater than 20940136 is greater than 20940237 is greater than 20940338 is greater than 20940439 is greater than 209405*******************9406*** Nested WHILEs ***9407Each array variable should be equal to the sum of its indices:9408${test00}[0] = 09409${test00}[1] = 19410${test00}[2] = 29411${test01}[0] = 19412${test01}[1] = 29413${test01}[2] = 39414${test02}[0] = 29415${test02}[1] = 39416${test02}[2] = 49417${test10}[0] = 19418${test10}[1] = 29419${test10}[2] = 39420${test11}[0] = 29421${test11}[1] = 39422${test11}[2] = 49423${test12}[0] = 39424${test12}[1] = 49425${test12}[2] = 59426${test20}[0] = 29427${test20}[1] = 39428${test20}[2] = 49429${test21}[0] = 39430${test21}[1] = 49431${test21}[2] = 59432${test22}[0] = 49433${test22}[1] = 59434${test22}[2] = 69435*********************9436*** hash test... ***9437commented out...9438**************************9439*** Hash resizing test ***9440ba9441baa9442baaa9443baaaa9444baaaaa9445baaaaaa9446baaaaaaa9447baaaaaaaa9448baaaaaaaaa9449baaaaaaaaaa9450ba9451109452baa945399454baaa945589456baaaa945779458baaaaa945969460baaaaaa946159462baaaaaaa946349464baaaaaaaa946539466baaaaaaaaa946729468baaaaaaaaaa946919470**************************9471*** break/continue test ***9472$i should go from 0 to 29473$j should go from 3 to 4, and $q should go from 3 to 49474 $j=39475 $q=39476 $q=49477 $j=49478 $q=39479 $q=49480$j should go from 0 to 29481 $j=09482 $j=19483 $j=29484$k should go from 0 to 29485 $k=09486 $k=19487 $k=29488$i=09489$j should go from 3 to 4, and $q should go from 3 to 49490 $j=39491 $q=39492 $q=49493 $j=49494 $q=39495 $q=49496$j should go from 0 to 29497 $j=09498 $j=19499 $j=29500$k should go from 0 to 29501 $k=09502 $k=19503 $k=29504$i=19505$j should go from 3 to 4, and $q should go from 3 to 49506 $j=39507 $q=39508 $q=49509 $j=49510 $q=39511 $q=49512$j should go from 0 to 29513 $j=09514 $j=19515 $j=29516$k should go from 0 to 29517 $k=09518 $k=19519 $k=29520$i=29521***********************9522*** Nested file include test ***9523<html>9524This is Finish.phtml. This file is supposed to be included9525from regression_test.phtml. This is normal HTML.9526and this is PHP code, 2+2=49527</html>9528********************************9529Tests completed.9530<html>9531<head>9532*** Testing assignments and variable aliasing: ***9533This should read "blah": blah9534This should read "this is nifty": this is nifty9535*************************************************9536*** Testing integer operators ***9537Correct result - 8: 89538Correct result - 8: 89539Correct result - 2: 29540Correct result - -2: -29541Correct result - 15: 159542Correct result - 15: 159543Correct result - 2: 29544Correct result - 3: 39545*********************************9546*** Testing real operators ***9547Correct result - 8: 89548Correct result - 8: 89549Correct result - 2: 29550Correct result - -2: -29551Correct result - 15: 159552Correct result - 15: 159553Correct result - 2: 29554Correct result - 3: 39555*********************************9556*** Testing if/elseif/else control ***9557This works9558this_still_works9559should_print9560*** Seriously nested if's test ***9561** spelling correction by kluzz **9562Only two lines of text should follow:9563this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=09564this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=495653 loop iterations should follow:95662 495673 495684 49569**********************************9570*** C-style else-if's ***9571This should be displayed9572*************************9573*** WHILE tests ***95740 is smaller than 2095751 is smaller than 2095762 is smaller than 2095773 is smaller than 2095784 is smaller than 2095795 is smaller than 2095806 is smaller than 2095817 is smaller than 2095828 is smaller than 2095839 is smaller than 20958410 is smaller than 20958511 is smaller than 20958612 is smaller than 20958713 is smaller than 20958814 is smaller than 20958915 is smaller than 20959016 is smaller than 20959117 is smaller than 20959218 is smaller than 20959319 is smaller than 20959420 equals 20959521 is greater than 20959622 is greater than 20959723 is greater than 20959824 is greater than 20959925 is greater than 20960026 is greater than 20960127 is greater than 20960228 is greater than 20960329 is greater than 20960430 is greater than 20960531 is greater than 20960632 is greater than 20960733 is greater than 20960834 is greater than 20960935 is greater than 20961036 is greater than 20961137 is greater than 20961238 is greater than 20961339 is greater than 209614*******************9615*** Nested WHILEs ***9616Each array variable should be equal to the sum of its indices:9617${test00}[0] = 09618${test00}[1] = 19619${test00}[2] = 29620${test01}[0] = 19621${test01}[1] = 29622${test01}[2] = 39623${test02}[0] = 29624${test02}[1] = 39625${test02}[2] = 49626${test10}[0] = 19627${test10}[1] = 29628${test10}[2] = 39629${test11}[0] = 29630${test11}[1] = 39631${test11}[2] = 49632${test12}[0] = 39633${test12}[1] = 49634${test12}[2] = 59635${test20}[0] = 29636${test20}[1] = 39637${test20}[2] = 49638${test21}[0] = 39639${test21}[1] = 49640${test21}[2] = 59641${test22}[0] = 49642${test22}[1] = 59643${test22}[2] = 69644*********************9645*** hash test... ***9646commented out...9647**************************9648*** Hash resizing test ***9649ba9650baa9651baaa9652baaaa9653baaaaa9654baaaaaa9655baaaaaaa9656baaaaaaaa9657baaaaaaaaa9658baaaaaaaaaa9659ba9660109661baa966299663baaa966489665baaaa966679667baaaaa966869669baaaaaa967059671baaaaaaa967249673baaaaaaaa967439675baaaaaaaaa967629677baaaaaaaaaa967819679**************************9680*** break/continue test ***9681$i should go from 0 to 29682$j should go from 3 to 4, and $q should go from 3 to 49683 $j=39684 $q=39685 $q=49686 $j=49687 $q=39688 $q=49689$j should go from 0 to 29690 $j=09691 $j=19692 $j=29693$k should go from 0 to 29694 $k=09695 $k=19696 $k=29697$i=09698$j should go from 3 to 4, and $q should go from 3 to 49699 $j=39700 $q=39701 $q=49702 $j=49703 $q=39704 $q=49705$j should go from 0 to 29706 $j=09707 $j=19708 $j=29709$k should go from 0 to 29710 $k=09711 $k=19712 $k=29713$i=19714$j should go from 3 to 4, and $q should go from 3 to 49715 $j=39716 $q=39717 $q=49718 $j=49719 $q=39720 $q=49721$j should go from 0 to 29722 $j=09723 $j=19724 $j=29725$k should go from 0 to 29726 $k=09727 $k=19728 $k=29729$i=29730***********************9731*** Nested file include test ***9732<html>9733This is Finish.phtml. This file is supposed to be included9734from regression_test.phtml. This is normal HTML.9735and this is PHP code, 2+2=49736</html>9737********************************9738Tests completed.9739<html>9740<head>9741*** Testing assignments and variable aliasing: ***9742This should read "blah": blah9743This should read "this is nifty": this is nifty9744*************************************************9745*** Testing integer operators ***9746Correct result - 8: 89747Correct result - 8: 89748Correct result - 2: 29749Correct result - -2: -29750Correct result - 15: 159751Correct result - 15: 159752Correct result - 2: 29753Correct result - 3: 39754*********************************9755*** Testing real operators ***9756Correct result - 8: 89757Correct result - 8: 89758Correct result - 2: 29759Correct result - -2: -29760Correct result - 15: 159761Correct result - 15: 159762Correct result - 2: 29763Correct result - 3: 39764*********************************9765*** Testing if/elseif/else control ***9766This works9767this_still_works9768should_print9769*** Seriously nested if's test ***9770** spelling correction by kluzz **9771Only two lines of text should follow:9772this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=09773this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=497743 loop iterations should follow:97752 497763 497774 49778**********************************9779*** C-style else-if's ***9780This should be displayed9781*************************9782*** WHILE tests ***97830 is smaller than 2097841 is smaller than 2097852 is smaller than 2097863 is smaller than 2097874 is smaller than 2097885 is smaller than 2097896 is smaller than 2097907 is smaller than 2097918 is smaller than 2097929 is smaller than 20979310 is smaller than 20979411 is smaller than 20979512 is smaller than 20979613 is smaller than 20979714 is smaller than 20979815 is smaller than 20979916 is smaller than 20980017 is smaller than 20980118 is smaller than 20980219 is smaller than 20980320 equals 20980421 is greater than 20980522 is greater than 20980623 is greater than 20980724 is greater than 20980825 is greater than 20980926 is greater than 20981027 is greater than 20981128 is greater than 20981229 is greater than 20981330 is greater than 20981431 is greater than 20981532 is greater than 20981633 is greater than 20981734 is greater than 20981835 is greater than 20981936 is greater than 20982037 is greater than 20982138 is greater than 20982239 is greater than 209823*******************9824*** Nested WHILEs ***9825Each array variable should be equal to the sum of its indices:9826${test00}[0] = 09827${test00}[1] = 19828${test00}[2] = 29829${test01}[0] = 19830${test01}[1] = 29831${test01}[2] = 39832${test02}[0] = 29833${test02}[1] = 39834${test02}[2] = 49835${test10}[0] = 19836${test10}[1] = 29837${test10}[2] = 39838${test11}[0] = 29839${test11}[1] = 39840${test11}[2] = 49841${test12}[0] = 39842${test12}[1] = 49843${test12}[2] = 59844${test20}[0] = 29845${test20}[1] = 39846${test20}[2] = 49847${test21}[0] = 39848${test21}[1] = 49849${test21}[2] = 59850${test22}[0] = 49851${test22}[1] = 59852${test22}[2] = 69853*********************9854*** hash test... ***9855commented out...9856**************************9857*** Hash resizing test ***9858ba9859baa9860baaa9861baaaa9862baaaaa9863baaaaaa9864baaaaaaa9865baaaaaaaa9866baaaaaaaaa9867baaaaaaaaaa9868ba9869109870baa987199872baaa987389874baaaa987579876baaaaa987769878baaaaaa987959880baaaaaaa988149882baaaaaaaa988339884baaaaaaaaa988529886baaaaaaaaaa988719888**************************9889*** break/continue test ***9890$i should go from 0 to 29891$j should go from 3 to 4, and $q should go from 3 to 49892 $j=39893 $q=39894 $q=49895 $j=49896 $q=39897 $q=49898$j should go from 0 to 29899 $j=09900 $j=19901 $j=29902$k should go from 0 to 29903 $k=09904 $k=19905 $k=29906$i=09907$j should go from 3 to 4, and $q should go from 3 to 49908 $j=39909 $q=39910 $q=49911 $j=49912 $q=39913 $q=49914$j should go from 0 to 29915 $j=09916 $j=19917 $j=29918$k should go from 0 to 29919 $k=09920 $k=19921 $k=29922$i=19923$j should go from 3 to 4, and $q should go from 3 to 49924 $j=39925 $q=39926 $q=49927 $j=49928 $q=39929 $q=49930$j should go from 0 to 29931 $j=09932 $j=19933 $j=29934$k should go from 0 to 29935 $k=09936 $k=19937 $k=29938$i=29939***********************9940*** Nested file include test ***9941<html>9942This is Finish.phtml. This file is supposed to be included9943from regression_test.phtml. This is normal HTML.9944and this is PHP code, 2+2=49945</html>9946********************************9947Tests completed.9948<html>9949<head>9950*** Testing assignments and variable aliasing: ***9951This should read "blah": blah9952This should read "this is nifty": this is nifty9953*************************************************9954*** Testing integer operators ***9955Correct result - 8: 89956Correct result - 8: 89957Correct result - 2: 29958Correct result - -2: -29959Correct result - 15: 159960Correct result - 15: 159961Correct result - 2: 29962Correct result - 3: 39963*********************************9964*** Testing real operators ***9965Correct result - 8: 89966Correct result - 8: 89967Correct result - 2: 29968Correct result - -2: -29969Correct result - 15: 159970Correct result - 15: 159971Correct result - 2: 29972Correct result - 3: 39973*********************************9974*** Testing if/elseif/else control ***9975This works9976this_still_works9977should_print9978*** Seriously nested if's test ***9979** spelling correction by kluzz **9980Only two lines of text should follow:9981this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=09982this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=499833 loop iterations should follow:99842 499853 499864 49987**********************************9988*** C-style else-if's ***9989This should be displayed9990*************************9991*** WHILE tests ***99920 is smaller than 2099931 is smaller than 2099942 is smaller than 2099953 is smaller than 2099964 is smaller than 2099975 is smaller than 2099986 is smaller than 2099997 is smaller than 20100008 is smaller than 20100019 is smaller than 201000210 is smaller than 201000311 is smaller than 201000412 is smaller than 201000513 is smaller than 201000614 is smaller than 201000715 is smaller than 201000816 is smaller than 201000917 is smaller than 201001018 is smaller than 201001119 is smaller than 201001220 equals 201001321 is greater than 201001422 is greater than 201001523 is greater than 201001624 is greater than 201001725 is greater than 201001826 is greater than 201001927 is greater than 201002028 is greater than 201002129 is greater than 201002230 is greater than 201002331 is greater than 201002432 is greater than 201002533 is greater than 201002634 is greater than 201002735 is greater than 201002836 is greater than 201002937 is greater than 201003038 is greater than 201003139 is greater than 2010032*******************10033*** Nested WHILEs ***10034Each array variable should be equal to the sum of its indices:10035${test00}[0] = 010036${test00}[1] = 110037${test00}[2] = 210038${test01}[0] = 110039${test01}[1] = 210040${test01}[2] = 310041${test02}[0] = 210042${test02}[1] = 310043${test02}[2] = 410044${test10}[0] = 110045${test10}[1] = 210046${test10}[2] = 310047${test11}[0] = 210048${test11}[1] = 310049${test11}[2] = 410050${test12}[0] = 310051${test12}[1] = 410052${test12}[2] = 510053${test20}[0] = 210054${test20}[1] = 310055${test20}[2] = 410056${test21}[0] = 310057${test21}[1] = 410058${test21}[2] = 510059${test22}[0] = 410060${test22}[1] = 510061${test22}[2] = 610062*********************10063*** hash test... ***10064commented out...10065**************************10066*** Hash resizing test ***10067ba10068baa10069baaa10070baaaa10071baaaaa10072baaaaaa10073baaaaaaa10074baaaaaaaa10075baaaaaaaaa10076baaaaaaaaaa10077ba100781010079baa10080910081baaa10082810083baaaa10084710085baaaaa10086610087baaaaaa10088510089baaaaaaa10090410091baaaaaaaa10092310093baaaaaaaaa10094210095baaaaaaaaaa10096110097**************************10098*** break/continue test ***10099$i should go from 0 to 210100$j should go from 3 to 4, and $q should go from 3 to 410101 $j=310102 $q=310103 $q=410104 $j=410105 $q=310106 $q=410107$j should go from 0 to 210108 $j=010109 $j=110110 $j=210111$k should go from 0 to 210112 $k=010113 $k=110114 $k=210115$i=010116$j should go from 3 to 4, and $q should go from 3 to 410117 $j=310118 $q=310119 $q=410120 $j=410121 $q=310122 $q=410123$j should go from 0 to 210124 $j=010125 $j=110126 $j=210127$k should go from 0 to 210128 $k=010129 $k=110130 $k=210131$i=110132$j should go from 3 to 4, and $q should go from 3 to 410133 $j=310134 $q=310135 $q=410136 $j=410137 $q=310138 $q=410139$j should go from 0 to 210140 $j=010141 $j=110142 $j=210143$k should go from 0 to 210144 $k=010145 $k=110146 $k=210147$i=210148***********************10149*** Nested file include test ***10150<html>10151This is Finish.phtml. This file is supposed to be included10152from regression_test.phtml. This is normal HTML.10153and this is PHP code, 2+2=410154</html>10155********************************10156Tests completed.10157<html>10158<head>10159*** Testing assignments and variable aliasing: ***10160This should read "blah": blah10161This should read "this is nifty": this is nifty10162*************************************************10163*** Testing integer operators ***10164Correct result - 8: 810165Correct result - 8: 810166Correct result - 2: 210167Correct result - -2: -210168Correct result - 15: 1510169Correct result - 15: 1510170Correct result - 2: 210171Correct result - 3: 310172*********************************10173*** Testing real operators ***10174Correct result - 8: 810175Correct result - 8: 810176Correct result - 2: 210177Correct result - -2: -210178Correct result - 15: 1510179Correct result - 15: 1510180Correct result - 2: 210181Correct result - 3: 310182*********************************10183*** Testing if/elseif/else control ***10184This works10185this_still_works10186should_print10187*** Seriously nested if's test ***10188** spelling correction by kluzz **10189Only two lines of text should follow:10190this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=010191this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=4101923 loop iterations should follow:101932 4101943 4101954 410196**********************************10197*** C-style else-if's ***10198This should be displayed10199*************************10200*** WHILE tests ***102010 is smaller than 20102021 is smaller than 20102032 is smaller than 20102043 is smaller than 20102054 is smaller than 20102065 is smaller than 20102076 is smaller than 20102087 is smaller than 20102098 is smaller than 20102109 is smaller than 201021110 is smaller than 201021211 is smaller than 201021312 is smaller than 201021413 is smaller than 201021514 is smaller than 201021615 is smaller than 201021716 is smaller than 201021817 is smaller than 201021918 is smaller than 201022019 is smaller than 201022120 equals 201022221 is greater than 201022322 is greater than 201022423 is greater than 201022524 is greater than 201022625 is greater than 201022726 is greater than 201022827 is greater than 201022928 is greater than 201023029 is greater than 201023130 is greater than 201023231 is greater than 201023332 is greater than 201023433 is greater than 201023534 is greater than 201023635 is greater than 201023736 is greater than 201023837 is greater than 201023938 is greater than 201024039 is greater than 2010241*******************10242*** Nested WHILEs ***10243Each array variable should be equal to the sum of its indices:10244${test00}[0] = 010245${test00}[1] = 110246${test00}[2] = 210247${test01}[0] = 110248${test01}[1] = 210249${test01}[2] = 310250${test02}[0] = 210251${test02}[1] = 310252${test02}[2] = 410253${test10}[0] = 110254${test10}[1] = 210255${test10}[2] = 310256${test11}[0] = 210257${test11}[1] = 310258${test11}[2] = 410259${test12}[0] = 310260${test12}[1] = 410261${test12}[2] = 510262${test20}[0] = 210263${test20}[1] = 310264${test20}[2] = 410265${test21}[0] = 310266${test21}[1] = 410267${test21}[2] = 510268${test22}[0] = 410269${test22}[1] = 510270${test22}[2] = 610271*********************10272*** hash test... ***10273commented out...10274**************************10275*** Hash resizing test ***10276ba10277baa10278baaa10279baaaa10280baaaaa10281baaaaaa10282baaaaaaa10283baaaaaaaa10284baaaaaaaaa10285baaaaaaaaaa10286ba102871010288baa10289910290baaa10291810292baaaa10293710294baaaaa10295610296baaaaaa10297510298baaaaaaa10299410300baaaaaaaa10301310302baaaaaaaaa10303210304baaaaaaaaaa10305110306**************************10307*** break/continue test ***10308$i should go from 0 to 210309$j should go from 3 to 4, and $q should go from 3 to 410310 $j=310311 $q=310312 $q=410313 $j=410314 $q=310315 $q=410316$j should go from 0 to 210317 $j=010318 $j=110319 $j=210320$k should go from 0 to 210321 $k=010322 $k=110323 $k=210324$i=010325$j should go from 3 to 4, and $q should go from 3 to 410326 $j=310327 $q=310328 $q=410329 $j=410330 $q=310331 $q=410332$j should go from 0 to 210333 $j=010334 $j=110335 $j=210336$k should go from 0 to 210337 $k=010338 $k=110339 $k=210340$i=110341$j should go from 3 to 4, and $q should go from 3 to 410342 $j=310343 $q=310344 $q=410345 $j=410346 $q=310347 $q=410348$j should go from 0 to 210349 $j=010350 $j=110351 $j=210352$k should go from 0 to 210353 $k=010354 $k=110355 $k=210356$i=210357***********************10358*** Nested file include test ***10359<html>10360This is Finish.phtml. This file is supposed to be included10361from regression_test.phtml. This is normal HTML.10362and this is PHP code, 2+2=410363</html>10364********************************10365Tests completed.10366<html>10367<head>10368*** Testing assignments and variable aliasing: ***10369This should read "blah": blah10370This should read "this is nifty": this is nifty10371*************************************************10372*** Testing integer operators ***10373Correct result - 8: 810374Correct result - 8: 810375Correct result - 2: 210376Correct result - -2: -210377Correct result - 15: 1510378Correct result - 15: 1510379Correct result - 2: 210380Correct result - 3: 310381*********************************10382*** Testing real operators ***10383Correct result - 8: 810384Correct result - 8: 810385Correct result - 2: 210386Correct result - -2: -210387Correct result - 15: 1510388Correct result - 15: 1510389Correct result - 2: 210390Correct result - 3: 310391*********************************10392*** Testing if/elseif/else control ***10393This works10394this_still_works10395should_print10396*** Seriously nested if's test ***10397** spelling correction by kluzz **10398Only two lines of text should follow:10399this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=010400this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=4104013 loop iterations should follow:104022 4104033 4104044 410405**********************************10406*** C-style else-if's ***10407This should be displayed10408*************************10409*** WHILE tests ***104100 is smaller than 20104111 is smaller than 20104122 is smaller than 20104133 is smaller than 20104144 is smaller than 20104155 is smaller than 20104166 is smaller than 20104177 is smaller than 20104188 is smaller than 20104199 is smaller than 201042010 is smaller than 201042111 is smaller than 201042212 is smaller than 201042313 is smaller than 201042414 is smaller than 201042515 is smaller than 201042616 is smaller than 201042717 is smaller than 201042818 is smaller than 201042919 is smaller than 201043020 equals 201043121 is greater than 201043222 is greater than 201043323 is greater than 201043424 is greater than 201043525 is greater than 201043626 is greater than 201043727 is greater than 201043828 is greater than 201043929 is greater than 201044030 is greater than 201044131 is greater than 201044232 is greater than 201044333 is greater than 201044434 is greater than 201044535 is greater than 201044636 is greater than 201044737 is greater than 201044838 is greater than 201044939 is greater than 2010450*******************10451*** Nested WHILEs ***10452Each array variable should be equal to the sum of its indices:10453${test00}[0] = 010454${test00}[1] = 110455${test00}[2] = 210456${test01}[0] = 110457${test01}[1] = 210458${test01}[2] = 310459${test02}[0] = 210460${test02}[1] = 310461${test02}[2] = 410462${test10}[0] = 110463${test10}[1] = 210464${test10}[2] = 310465${test11}[0] = 210466${test11}[1] = 310467${test11}[2] = 410468${test12}[0] = 310469${test12}[1] = 410470${test12}[2] = 510471${test20}[0] = 210472${test20}[1] = 310473${test20}[2] = 410474${test21}[0] = 310475${test21}[1] = 410476${test21}[2] = 510477${test22}[0] = 410478${test22}[1] = 510479${test22}[2] = 610480*********************10481*** hash test... ***10482commented out...10483**************************10484*** Hash resizing test ***10485ba10486baa10487baaa10488baaaa10489baaaaa10490baaaaaa10491baaaaaaa10492baaaaaaaa10493baaaaaaaaa10494baaaaaaaaaa10495ba104961010497baa10498910499baaa10500810501baaaa10502710503baaaaa10504610505baaaaaa10506510507baaaaaaa10508410509baaaaaaaa10510310511baaaaaaaaa10512210513baaaaaaaaaa10514110515**************************10516*** break/continue test ***10517$i should go from 0 to 210518$j should go from 3 to 4, and $q should go from 3 to 410519 $j=310520 $q=310521 $q=410522 $j=410523 $q=310524 $q=410525$j should go from 0 to 210526 $j=010527 $j=110528 $j=210529$k should go from 0 to 210530 $k=010531 $k=110532 $k=210533$i=010534$j should go from 3 to 4, and $q should go from 3 to 410535 $j=310536 $q=310537 $q=410538 $j=410539 $q=310540 $q=410541$j should go from 0 to 210542 $j=010543 $j=110544 $j=210545$k should go from 0 to 210546 $k=010547 $k=110548 $k=210549$i=110550$j should go from 3 to 4, and $q should go from 3 to 410551 $j=310552 $q=310553 $q=410554 $j=410555 $q=310556 $q=410557$j should go from 0 to 210558 $j=010559 $j=110560 $j=210561$k should go from 0 to 210562 $k=010563 $k=110564 $k=210565$i=210566***********************10567*** Nested file include test ***10568<html>10569This is Finish.phtml. This file is supposed to be included10570from regression_test.phtml. This is normal HTML.10571and this is PHP code, 2+2=410572</html>10573********************************10574Tests completed.10575<html>10576<head>10577*** Testing assignments and variable aliasing: ***10578This should read "blah": blah10579This should read "this is nifty": this is nifty10580*************************************************10581*** Testing integer operators ***10582Correct result - 8: 810583Correct result - 8: 810584Correct result - 2: 210585Correct result - -2: -210586Correct result - 15: 1510587Correct result - 15: 1510588Correct result - 2: 210589Correct result - 3: 310590*********************************10591*** Testing real operators ***10592Correct result - 8: 810593Correct result - 8: 810594Correct result - 2: 210595Correct result - -2: -210596Correct result - 15: 1510597Correct result - 15: 1510598Correct result - 2: 210599Correct result - 3: 310600*********************************10601*** Testing if/elseif/else control ***10602This works10603this_still_works10604should_print10605*** Seriously nested if's test ***10606** spelling correction by kluzz **10607Only two lines of text should follow:10608this should be displayed. should be: $i=1, $j=0. is: $i=1, $j=010609this is supposed to be displayed. should be: $i=2, $j=4. is: $i=2, $j=4106103 loop iterations should follow:106112 4106123 4106134 410614**********************************10615*** C-style else-if's ***10616This should be displayed10617*************************10618*** WHILE tests ***106190 is smaller than 20106201 is smaller than 20106212 is smaller than 20106223 is smaller than 20106234 is smaller than 20106245 is smaller than 20106256 is smaller than 20106267 is smaller than 20106278 is smaller than 20106289 is smaller than 201062910 is smaller than 201063011 is smaller than 201063112 is smaller than 201063213 is smaller than 201063314 is smaller than 201063415 is smaller than 201063516 is smaller than 201063617 is smaller than 201063718 is smaller than 201063819 is smaller than 201063920 equals 201064021 is greater than 201064122 is greater than 201064223 is greater than 201064324 is greater than 201064425 is greater than 201064526 is greater than 201064627 is greater than 201064728 is greater than 201064829 is greater than 201064930 is greater than 201065031 is greater than 201065132 is greater than 201065233 is greater than 201065334 is greater than 201065435 is greater than 201065536 is greater than 201065637 is greater than 201065738 is greater than 201065839 is greater than 2010659*******************10660*** Nested WHILEs ***10661Each array variable should be equal to the sum of its indices:10662${test00}[0] = 010663${test00}[1] = 110664${test00}[2] = 210665${test01}[0] = 110666${test01}[1] = 210667${test01}[2] = 310668${test02}[0] = 210669${test02}[1] = 310670${test02}[2] = 410671${test10}[0] = 110672${test10}[1] = 210673${test10}[2] = 310674${test11}[0] = 210675${test11}[1] = 310676${test11}[2] = 410677${test12}[0] = 310678${test12}[1] = 410679${test12}[2] = 510680${test20}[0] = 210681${test20}[1] = 310682${test20}[2] = 410683${test21}[0] = 310684${test21}[1] = 410685${test21}[2] = 510686${test22}[0] = 410687${test22}[1] = 510688${test22}[2] = 610689*********************10690*** hash test... ***10691commented out...10692**************************10693*** Hash resizing test ***10694ba10695baa10696baaa10697baaaa10698baaaaa10699baaaaaa10700baaaaaaa10701baaaaaaaa10702baaaaaaaaa10703baaaaaaaaaa10704ba107051010706baa10707910708baaa10709810710baaaa10711710712baaaaa10713610714baaaaaa10715510716baaaaaaa10717410718baaaaaaaa10719310720baaaaaaaaa10721210722baaaaaaaaaa10723110724**************************10725*** break/continue test ***10726$i should go from 0 to 210727$j should go from 3 to 4, and $q should go from 3 to 410728 $j=310729 $q=310730 $q=410731 $j=410732 $q=310733 $q=410734$j should go from 0 to 210735 $j=010736 $j=110737 $j=210738$k should go from 0 to 210739 $k=010740 $k=110741 $k=210742$i=010743$j should go from 3 to 4, and $q should go from 3 to 410744 $j=310745 $q=310746 $q=410747 $j=410748 $q=310749 $q=410750$j should go from 0 to 210751 $j=010752 $j=110753 $j=210754$k should go from 0 to 210755 $k=010756 $k=110757 $k=210758$i=110759$j should go from 3 to 4, and $q should go from 3 to 410760 $j=310761 $q=310762 $q=410763 $j=410764 $q=310765 $q=410766$j should go from 0 to 210767 $j=010768 $j=110769 $j=210770$k should go from 0 to 210771 $k=010772 $k=110773 $k=210774$i=210775***********************10776*** Nested file include test ***10777<html>10778This is Finish.phtml. This file is supposed to be included10779from regression_test.phtml. This is normal HTML.10780and this is PHP code, 2+2=410781</html>10782********************************10783Tests completed....

Full Screen

Full Screen

baked_in.go

Source:baked_in.go Github

copy

Full Screen

...42 utf8HexComma: {},43 utf8Pipe: {},44 noStructLevelTag: {},45 requiredTag: {},46 isdefault: {},47 }48 // BakedInAliasValidators is a default mapping of a single validation tag that49 // defines a common or complex set of validation(s) to simplify50 // adding validation to structs.51 bakedInAliases = map[string]string{52 "iscolor": "hexcolor|rgb|rgba|hsl|hsla",53 }54 // BakedInValidators is the default map of ValidationFunc55 // you can add, remove or even replace items to suite your needs,56 // or even disregard and use your own map if so desired.57 bakedInValidators = map[string]Func{58 "required": hasValue,59 "required_with": requiredWith,60 "required_with_all": requiredWithAll,61 "required_without": requiredWithout,62 "required_without_all": requiredWithoutAll,63 "isdefault": isDefault,64 "len": hasLengthOf,65 "min": hasMinOf,66 "max": hasMaxOf,67 "eq": isEq,68 "ne": isNe,69 "lt": isLt,70 "lte": isLte,71 "gt": isGt,72 "gte": isGte,73 "eqfield": isEqField,74 "eqcsfield": isEqCrossStructField,75 "necsfield": isNeCrossStructField,76 "gtcsfield": isGtCrossStructField,77 "gtecsfield": isGteCrossStructField,78 "ltcsfield": isLtCrossStructField,79 "ltecsfield": isLteCrossStructField,80 "nefield": isNeField,81 "gtefield": isGteField,82 "gtfield": isGtField,83 "ltefield": isLteField,84 "ltfield": isLtField,85 "fieldcontains": fieldContains,86 "fieldexcludes": fieldExcludes,87 "alpha": isAlpha,88 "alphanum": isAlphanum,89 "alphaunicode": isAlphaUnicode,90 "alphanumunicode": isAlphanumUnicode,91 "numeric": isNumeric,92 "number": isNumber,93 "hexadecimal": isHexadecimal,94 "hexcolor": isHEXColor,95 "rgb": isRGB,96 "rgba": isRGBA,97 "hsl": isHSL,98 "hsla": isHSLA,99 "e164": isE164,100 "email": isEmail,101 "url": isURL,102 "uri": isURI,103 "urn_rfc2141": isUrnRFC2141, // RFC 2141104 "file": isFile,105 "base64": isBase64,106 "base64url": isBase64URL,107 "contains": contains,108 "containsany": containsAny,109 "containsrune": containsRune,110 "excludes": excludes,111 "excludesall": excludesAll,112 "excludesrune": excludesRune,113 "startswith": startsWith,114 "endswith": endsWith,115 "isbn": isISBN,116 "isbn10": isISBN10,117 "isbn13": isISBN13,118 "eth_addr": isEthereumAddress,119 "btc_addr": isBitcoinAddress,120 "btc_addr_bech32": isBitcoinBech32Address,121 "uuid": isUUID,122 "uuid3": isUUID3,123 "uuid4": isUUID4,124 "uuid5": isUUID5,125 "uuid_rfc4122": isUUIDRFC4122,126 "uuid3_rfc4122": isUUID3RFC4122,127 "uuid4_rfc4122": isUUID4RFC4122,128 "uuid5_rfc4122": isUUID5RFC4122,129 "ascii": isASCII,130 "printascii": isPrintableASCII,131 "multibyte": hasMultiByteCharacter,132 "datauri": isDataURI,133 "latitude": isLatitude,134 "longitude": isLongitude,135 "ssn": isSSN,136 "ipv4": isIPv4,137 "ipv6": isIPv6,138 "ip": isIP,139 "cidrv4": isCIDRv4,140 "cidrv6": isCIDRv6,141 "cidr": isCIDR,142 "tcp4_addr": isTCP4AddrResolvable,143 "tcp6_addr": isTCP6AddrResolvable,144 "tcp_addr": isTCPAddrResolvable,145 "udp4_addr": isUDP4AddrResolvable,146 "udp6_addr": isUDP6AddrResolvable,147 "udp_addr": isUDPAddrResolvable,148 "ip4_addr": isIP4AddrResolvable,149 "ip6_addr": isIP6AddrResolvable,150 "ip_addr": isIPAddrResolvable,151 "unix_addr": isUnixAddrResolvable,152 "mac": isMAC,153 "hostname": isHostnameRFC952, // RFC 952154 "hostname_rfc1123": isHostnameRFC1123, // RFC 1123155 "fqdn": isFQDN,156 "unique": isUnique,157 "oneof": isOneOf,158 "html": isHTML,159 "html_encoded": isHTMLEncoded,160 "url_encoded": isURLEncoded,161 "dir": isDir,162 "json": isJSON,163 "hostname_port": isHostnamePort,164 "lowercase": isLowercase,165 "uppercase": isUppercase,166 "datetime": isDatetime,167 }168)169var oneofValsCache = map[string][]string{}170var oneofValsCacheRWLock = sync.RWMutex{}171func parseOneOfParam2(s string) []string {172 oneofValsCacheRWLock.RLock()173 vals, ok := oneofValsCache[s]174 oneofValsCacheRWLock.RUnlock()175 if !ok {176 oneofValsCacheRWLock.Lock()177 vals = splitParamsRegex.FindAllString(s, -1)178 for i := 0; i < len(vals); i++ {179 vals[i] = strings.Replace(vals[i], "'", "", -1)180 }181 oneofValsCache[s] = vals182 oneofValsCacheRWLock.Unlock()183 }184 return vals185}186func isURLEncoded(fl FieldLevel) bool {187 return uRLEncodedRegex.MatchString(fl.Field().String())188}189func isHTMLEncoded(fl FieldLevel) bool {190 return hTMLEncodedRegex.MatchString(fl.Field().String())191}192func isHTML(fl FieldLevel) bool {193 return hTMLRegex.MatchString(fl.Field().String())194}195func isOneOf(fl FieldLevel) bool {196 vals := parseOneOfParam2(fl.Param())197 field := fl.Field()198 var v string199 switch field.Kind() {200 case reflect.String:201 v = field.String()202 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:203 v = strconv.FormatInt(field.Int(), 10)204 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:205 v = strconv.FormatUint(field.Uint(), 10)206 default:207 panic(fmt.Sprintf("Bad field type %T", field.Interface()))208 }209 for i := 0; i < len(vals); i++ {210 if vals[i] == v {211 return true212 }213 }214 return false215}216// isUnique is the validation function for validating if each array|slice|map value is unique217func isUnique(fl FieldLevel) bool {218 field := fl.Field()219 param := fl.Param()220 v := reflect.ValueOf(struct{}{})221 switch field.Kind() {222 case reflect.Slice, reflect.Array:223 if param == "" {224 m := reflect.MakeMap(reflect.MapOf(field.Type().Elem(), v.Type()))225 for i := 0; i < field.Len(); i++ {226 m.SetMapIndex(field.Index(i), v)227 }228 return field.Len() == m.Len()229 }230 sf, ok := field.Type().Elem().FieldByName(param)231 if !ok {232 panic(fmt.Sprintf("Bad field name %s", param))233 }234 m := reflect.MakeMap(reflect.MapOf(sf.Type, v.Type()))235 for i := 0; i < field.Len(); i++ {236 m.SetMapIndex(field.Index(i).FieldByName(param), v)237 }238 return field.Len() == m.Len()239 case reflect.Map:240 m := reflect.MakeMap(reflect.MapOf(field.Type().Elem(), v.Type()))241 for _, k := range field.MapKeys() {242 m.SetMapIndex(field.MapIndex(k), v)243 }244 return field.Len() == m.Len()245 default:246 panic(fmt.Sprintf("Bad field type %T", field.Interface()))247 }248}249// IsMAC is the validation function for validating if the field's value is a valid MAC address.250func isMAC(fl FieldLevel) bool {251 _, err := net.ParseMAC(fl.Field().String())252 return err == nil253}254// IsCIDRv4 is the validation function for validating if the field's value is a valid v4 CIDR address.255func isCIDRv4(fl FieldLevel) bool {256 ip, _, err := net.ParseCIDR(fl.Field().String())257 return err == nil && ip.To4() != nil258}259// IsCIDRv6 is the validation function for validating if the field's value is a valid v6 CIDR address.260func isCIDRv6(fl FieldLevel) bool {261 ip, _, err := net.ParseCIDR(fl.Field().String())262 return err == nil && ip.To4() == nil263}264// IsCIDR is the validation function for validating if the field's value is a valid v4 or v6 CIDR address.265func isCIDR(fl FieldLevel) bool {266 _, _, err := net.ParseCIDR(fl.Field().String())267 return err == nil268}269// IsIPv4 is the validation function for validating if a value is a valid v4 IP address.270func isIPv4(fl FieldLevel) bool {271 ip := net.ParseIP(fl.Field().String())272 return ip != nil && ip.To4() != nil273}274// IsIPv6 is the validation function for validating if the field's value is a valid v6 IP address.275func isIPv6(fl FieldLevel) bool {276 ip := net.ParseIP(fl.Field().String())277 return ip != nil && ip.To4() == nil278}279// IsIP is the validation function for validating if the field's value is a valid v4 or v6 IP address.280func isIP(fl FieldLevel) bool {281 ip := net.ParseIP(fl.Field().String())282 return ip != nil283}284// IsSSN is the validation function for validating if the field's value is a valid SSN.285func isSSN(fl FieldLevel) bool {286 field := fl.Field()287 if field.Len() != 11 {288 return false289 }290 return sSNRegex.MatchString(field.String())291}292// IsLongitude is the validation function for validating if the field's value is a valid longitude coordinate.293func isLongitude(fl FieldLevel) bool {294 field := fl.Field()295 var v string296 switch field.Kind() {297 case reflect.String:298 v = field.String()299 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:300 v = strconv.FormatInt(field.Int(), 10)301 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:302 v = strconv.FormatUint(field.Uint(), 10)303 case reflect.Float32:304 v = strconv.FormatFloat(field.Float(), 'f', -1, 32)305 case reflect.Float64:306 v = strconv.FormatFloat(field.Float(), 'f', -1, 64)307 default:308 panic(fmt.Sprintf("Bad field type %T", field.Interface()))309 }310 return longitudeRegex.MatchString(v)311}312// IsLatitude is the validation function for validating if the field's value is a valid latitude coordinate.313func isLatitude(fl FieldLevel) bool {314 field := fl.Field()315 var v string316 switch field.Kind() {317 case reflect.String:318 v = field.String()319 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:320 v = strconv.FormatInt(field.Int(), 10)321 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:322 v = strconv.FormatUint(field.Uint(), 10)323 case reflect.Float32:324 v = strconv.FormatFloat(field.Float(), 'f', -1, 32)325 case reflect.Float64:326 v = strconv.FormatFloat(field.Float(), 'f', -1, 64)327 default:328 panic(fmt.Sprintf("Bad field type %T", field.Interface()))329 }330 return latitudeRegex.MatchString(v)331}332// IsDataURI is the validation function for validating if the field's value is a valid data URI.333func isDataURI(fl FieldLevel) bool {334 uri := strings.SplitN(fl.Field().String(), ",", 2)335 if len(uri) != 2 {336 return false337 }338 if !dataURIRegex.MatchString(uri[0]) {339 return false340 }341 return base64Regex.MatchString(uri[1])342}343// HasMultiByteCharacter is the validation function for validating if the field's value has a multi byte character.344func hasMultiByteCharacter(fl FieldLevel) bool {345 field := fl.Field()346 if field.Len() == 0 {347 return true348 }349 return multibyteRegex.MatchString(field.String())350}351// IsPrintableASCII is the validation function for validating if the field's value is a valid printable ASCII character.352func isPrintableASCII(fl FieldLevel) bool {353 return printableASCIIRegex.MatchString(fl.Field().String())354}355// IsASCII is the validation function for validating if the field's value is a valid ASCII character.356func isASCII(fl FieldLevel) bool {357 return aSCIIRegex.MatchString(fl.Field().String())358}359// IsUUID5 is the validation function for validating if the field's value is a valid v5 UUID.360func isUUID5(fl FieldLevel) bool {361 return uUID5Regex.MatchString(fl.Field().String())362}363// IsUUID4 is the validation function for validating if the field's value is a valid v4 UUID.364func isUUID4(fl FieldLevel) bool {365 return uUID4Regex.MatchString(fl.Field().String())366}367// IsUUID3 is the validation function for validating if the field's value is a valid v3 UUID.368func isUUID3(fl FieldLevel) bool {369 return uUID3Regex.MatchString(fl.Field().String())370}371// IsUUID is the validation function for validating if the field's value is a valid UUID of any version.372func isUUID(fl FieldLevel) bool {373 return uUIDRegex.MatchString(fl.Field().String())374}375// IsUUID5RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v5 UUID.376func isUUID5RFC4122(fl FieldLevel) bool {377 return uUID5RFC4122Regex.MatchString(fl.Field().String())378}379// IsUUID4RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v4 UUID.380func isUUID4RFC4122(fl FieldLevel) bool {381 return uUID4RFC4122Regex.MatchString(fl.Field().String())382}383// IsUUID3RFC4122 is the validation function for validating if the field's value is a valid RFC4122 v3 UUID.384func isUUID3RFC4122(fl FieldLevel) bool {385 return uUID3RFC4122Regex.MatchString(fl.Field().String())386}387// IsUUIDRFC4122 is the validation function for validating if the field's value is a valid RFC4122 UUID of any version.388func isUUIDRFC4122(fl FieldLevel) bool {389 return uUIDRFC4122Regex.MatchString(fl.Field().String())390}391// IsISBN is the validation function for validating if the field's value is a valid v10 or v13 ISBN.392func isISBN(fl FieldLevel) bool {393 return isISBN10(fl) || isISBN13(fl)394}395// IsISBN13 is the validation function for validating if the field's value is a valid v13 ISBN.396func isISBN13(fl FieldLevel) bool {397 s := strings.Replace(strings.Replace(fl.Field().String(), "-", "", 4), " ", "", 4)398 if !iSBN13Regex.MatchString(s) {399 return false400 }401 var checksum int32402 var i int32403 factor := []int32{1, 3}404 for i = 0; i < 12; i++ {405 checksum += factor[i%2] * int32(s[i]-'0')406 }407 return (int32(s[12]-'0'))-((10-(checksum%10))%10) == 0408}409// IsISBN10 is the validation function for validating if the field's value is a valid v10 ISBN.410func isISBN10(fl FieldLevel) bool {411 s := strings.Replace(strings.Replace(fl.Field().String(), "-", "", 3), " ", "", 3)412 if !iSBN10Regex.MatchString(s) {413 return false414 }415 var checksum int32416 var i int32417 for i = 0; i < 9; i++ {418 checksum += (i + 1) * int32(s[i]-'0')419 }420 if s[9] == 'X' {421 checksum += 10 * 10422 } else {423 checksum += 10 * int32(s[9]-'0')424 }425 return checksum%11 == 0426}427// IsEthereumAddress is the validation function for validating if the field's value is a valid ethereum address based currently only on the format428func isEthereumAddress(fl FieldLevel) bool {429 address := fl.Field().String()430 if !ethAddressRegex.MatchString(address) {431 return false432 }433 if ethaddressRegexUpper.MatchString(address) || ethAddressRegexLower.MatchString(address) {434 return true435 }436 // checksum validation is blocked by https://github.com/golang/crypto/pull/28437 return true438}439// IsBitcoinAddress is the validation function for validating if the field's value is a valid btc address440func isBitcoinAddress(fl FieldLevel) bool {441 address := fl.Field().String()442 if !btcAddressRegex.MatchString(address) {443 return false444 }445 alphabet := []byte("123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz")446 decode := [25]byte{}447 for _, n := range []byte(address) {448 d := bytes.IndexByte(alphabet, n)449 for i := 24; i >= 0; i-- {450 d += 58 * int(decode[i])451 decode[i] = byte(d % 256)452 d /= 256453 }454 }455 h := sha256.New()456 _, _ = h.Write(decode[:21])457 d := h.Sum([]byte{})458 h = sha256.New()459 _, _ = h.Write(d)460 validchecksum := [4]byte{}461 computedchecksum := [4]byte{}462 copy(computedchecksum[:], h.Sum(d[:0]))463 copy(validchecksum[:], decode[21:])464 return validchecksum == computedchecksum465}466// IsBitcoinBech32Address is the validation function for validating if the field's value is a valid bech32 btc address467func isBitcoinBech32Address(fl FieldLevel) bool {468 address := fl.Field().String()469 if !btcLowerAddressRegexBech32.MatchString(address) && !btcUpperAddressRegexBech32.MatchString(address) {470 return false471 }472 am := len(address) % 8473 if am == 0 || am == 3 || am == 5 {474 return false475 }476 address = strings.ToLower(address)477 alphabet := "qpzry9x8gf2tvdw0s3jn54khce6mua7l"478 hr := []int{3, 3, 0, 2, 3} // the human readable part will always be bc479 addr := address[3:]480 dp := make([]int, 0, len(addr))481 for _, c := range addr {482 dp = append(dp, strings.IndexRune(alphabet, c))483 }484 ver := dp[0]485 if ver < 0 || ver > 16 {486 return false487 }488 if ver == 0 {489 if len(address) != 42 && len(address) != 62 {490 return false491 }492 }493 values := append(hr, dp...)494 GEN := []int{0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3}495 p := 1496 for _, v := range values {497 b := p >> 25498 p = (p&0x1ffffff)<<5 ^ v499 for i := 0; i < 5; i++ {500 if (b>>uint(i))&1 == 1 {501 p ^= GEN[i]502 }503 }504 }505 if p != 1 {506 return false507 }508 b := uint(0)509 acc := 0510 mv := (1 << 5) - 1511 var sw []int512 for _, v := range dp[1 : len(dp)-6] {513 acc = (acc << 5) | v514 b += 5515 for b >= 8 {516 b -= 8517 sw = append(sw, (acc>>b)&mv)518 }519 }520 if len(sw) < 2 || len(sw) > 40 {521 return false522 }523 return true524}525// ExcludesRune is the validation function for validating that the field's value does not contain the rune specified within the param.526func excludesRune(fl FieldLevel) bool {527 return !containsRune(fl)528}529// ExcludesAll is the validation function for validating that the field's value does not contain any of the characters specified within the param.530func excludesAll(fl FieldLevel) bool {531 return !containsAny(fl)532}533// Excludes is the validation function for validating that the field's value does not contain the text specified within the param.534func excludes(fl FieldLevel) bool {535 return !contains(fl)536}537// ContainsRune is the validation function for validating that the field's value contains the rune specified within the param.538func containsRune(fl FieldLevel) bool {539 r, _ := utf8.DecodeRuneInString(fl.Param())540 return strings.ContainsRune(fl.Field().String(), r)541}542// ContainsAny is the validation function for validating that the field's value contains any of the characters specified within the param.543func containsAny(fl FieldLevel) bool {544 return strings.ContainsAny(fl.Field().String(), fl.Param())545}546// Contains is the validation function for validating that the field's value contains the text specified within the param.547func contains(fl FieldLevel) bool {548 return strings.Contains(fl.Field().String(), fl.Param())549}550// StartsWith is the validation function for validating that the field's value starts with the text specified within the param.551func startsWith(fl FieldLevel) bool {552 return strings.HasPrefix(fl.Field().String(), fl.Param())553}554// EndsWith is the validation function for validating that the field's value ends with the text specified within the param.555func endsWith(fl FieldLevel) bool {556 return strings.HasSuffix(fl.Field().String(), fl.Param())557}558// FieldContains is the validation function for validating if the current field's value contains the field specified by the param's value.559func fieldContains(fl FieldLevel) bool {560 field := fl.Field()561 currentField, _, ok := fl.GetStructFieldOK()562 if !ok {563 return false564 }565 return strings.Contains(field.String(), currentField.String())566}567// FieldExcludes is the validation function for validating if the current field's value excludes the field specified by the param's value.568func fieldExcludes(fl FieldLevel) bool {569 field := fl.Field()570 currentField, _, ok := fl.GetStructFieldOK()571 if !ok {572 return true573 }574 return !strings.Contains(field.String(), currentField.String())575}576// IsNeField is the validation function for validating if the current field's value is not equal to the field specified by the param's value.577func isNeField(fl FieldLevel) bool {578 field := fl.Field()579 kind := field.Kind()580 currentField, currentKind, ok := fl.GetStructFieldOK()581 if !ok || currentKind != kind {582 return true583 }584 switch kind {585 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:586 return field.Int() != currentField.Int()587 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:588 return field.Uint() != currentField.Uint()589 case reflect.Float32, reflect.Float64:590 return field.Float() != currentField.Float()591 case reflect.Slice, reflect.Map, reflect.Array:592 return int64(field.Len()) != int64(currentField.Len())593 case reflect.Struct:594 fieldType := field.Type()595 // Not Same underlying type i.e. struct and time596 if fieldType != currentField.Type() {597 return true598 }599 if fieldType == timeType {600 t := currentField.Interface().(time.Time)601 fieldTime := field.Interface().(time.Time)602 return !fieldTime.Equal(t)603 }604 }605 // default reflect.String:606 return field.String() != currentField.String()607}608// IsNe is the validation function for validating that the field's value does not equal the provided param value.609func isNe(fl FieldLevel) bool {610 return !isEq(fl)611}612// IsLteCrossStructField is the validation function for validating if the current field's value is less than or equal to the field, within a separate struct, specified by the param's value.613func isLteCrossStructField(fl FieldLevel) bool {614 field := fl.Field()615 kind := field.Kind()616 topField, topKind, ok := fl.GetStructFieldOK()617 if !ok || topKind != kind {618 return false619 }620 switch kind {621 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:622 return field.Int() <= topField.Int()623 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:624 return field.Uint() <= topField.Uint()625 case reflect.Float32, reflect.Float64:626 return field.Float() <= topField.Float()627 case reflect.Slice, reflect.Map, reflect.Array:628 return int64(field.Len()) <= int64(topField.Len())629 case reflect.Struct:630 fieldType := field.Type()631 // Not Same underlying type i.e. struct and time632 if fieldType != topField.Type() {633 return false634 }635 if fieldType == timeType {636 fieldTime := field.Interface().(time.Time)637 topTime := topField.Interface().(time.Time)638 return fieldTime.Before(topTime) || fieldTime.Equal(topTime)639 }640 }641 // default reflect.String:642 return field.String() <= topField.String()643}644// IsLtCrossStructField is the validation function for validating if the current field's value is less than the field, within a separate struct, specified by the param's value.645// NOTE: This is exposed for use within your own custom functions and not intended to be called directly.646func isLtCrossStructField(fl FieldLevel) bool {647 field := fl.Field()648 kind := field.Kind()649 topField, topKind, ok := fl.GetStructFieldOK()650 if !ok || topKind != kind {651 return false652 }653 switch kind {654 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:655 return field.Int() < topField.Int()656 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:657 return field.Uint() < topField.Uint()658 case reflect.Float32, reflect.Float64:659 return field.Float() < topField.Float()660 case reflect.Slice, reflect.Map, reflect.Array:661 return int64(field.Len()) < int64(topField.Len())662 case reflect.Struct:663 fieldType := field.Type()664 // Not Same underlying type i.e. struct and time665 if fieldType != topField.Type() {666 return false667 }668 if fieldType == timeType {669 fieldTime := field.Interface().(time.Time)670 topTime := topField.Interface().(time.Time)671 return fieldTime.Before(topTime)672 }673 }674 // default reflect.String:675 return field.String() < topField.String()676}677// IsGteCrossStructField is the validation function for validating if the current field's value is greater than or equal to the field, within a separate struct, specified by the param's value.678func isGteCrossStructField(fl FieldLevel) bool {679 field := fl.Field()680 kind := field.Kind()681 topField, topKind, ok := fl.GetStructFieldOK()682 if !ok || topKind != kind {683 return false684 }685 switch kind {686 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:687 return field.Int() >= topField.Int()688 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:689 return field.Uint() >= topField.Uint()690 case reflect.Float32, reflect.Float64:691 return field.Float() >= topField.Float()692 case reflect.Slice, reflect.Map, reflect.Array:693 return int64(field.Len()) >= int64(topField.Len())694 case reflect.Struct:695 fieldType := field.Type()696 // Not Same underlying type i.e. struct and time697 if fieldType != topField.Type() {698 return false699 }700 if fieldType == timeType {701 fieldTime := field.Interface().(time.Time)702 topTime := topField.Interface().(time.Time)703 return fieldTime.After(topTime) || fieldTime.Equal(topTime)704 }705 }706 // default reflect.String:707 return field.String() >= topField.String()708}709// IsGtCrossStructField is the validation function for validating if the current field's value is greater than the field, within a separate struct, specified by the param's value.710func isGtCrossStructField(fl FieldLevel) bool {711 field := fl.Field()712 kind := field.Kind()713 topField, topKind, ok := fl.GetStructFieldOK()714 if !ok || topKind != kind {715 return false716 }717 switch kind {718 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:719 return field.Int() > topField.Int()720 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:721 return field.Uint() > topField.Uint()722 case reflect.Float32, reflect.Float64:723 return field.Float() > topField.Float()724 case reflect.Slice, reflect.Map, reflect.Array:725 return int64(field.Len()) > int64(topField.Len())726 case reflect.Struct:727 fieldType := field.Type()728 // Not Same underlying type i.e. struct and time729 if fieldType != topField.Type() {730 return false731 }732 if fieldType == timeType {733 fieldTime := field.Interface().(time.Time)734 topTime := topField.Interface().(time.Time)735 return fieldTime.After(topTime)736 }737 }738 // default reflect.String:739 return field.String() > topField.String()740}741// IsNeCrossStructField is the validation function for validating that the current field's value is not equal to the field, within a separate struct, specified by the param's value.742func isNeCrossStructField(fl FieldLevel) bool {743 field := fl.Field()744 kind := field.Kind()745 topField, currentKind, ok := fl.GetStructFieldOK()746 if !ok || currentKind != kind {747 return true748 }749 switch kind {750 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:751 return topField.Int() != field.Int()752 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:753 return topField.Uint() != field.Uint()754 case reflect.Float32, reflect.Float64:755 return topField.Float() != field.Float()756 case reflect.Slice, reflect.Map, reflect.Array:757 return int64(topField.Len()) != int64(field.Len())758 case reflect.Struct:759 fieldType := field.Type()760 // Not Same underlying type i.e. struct and time761 if fieldType != topField.Type() {762 return true763 }764 if fieldType == timeType {765 t := field.Interface().(time.Time)766 fieldTime := topField.Interface().(time.Time)767 return !fieldTime.Equal(t)768 }769 }770 // default reflect.String:771 return topField.String() != field.String()772}773// IsEqCrossStructField is the validation function for validating that the current field's value is equal to the field, within a separate struct, specified by the param's value.774func isEqCrossStructField(fl FieldLevel) bool {775 field := fl.Field()776 kind := field.Kind()777 topField, topKind, ok := fl.GetStructFieldOK()778 if !ok || topKind != kind {779 return false780 }781 switch kind {782 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:783 return topField.Int() == field.Int()784 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:785 return topField.Uint() == field.Uint()786 case reflect.Float32, reflect.Float64:787 return topField.Float() == field.Float()788 case reflect.Slice, reflect.Map, reflect.Array:789 return int64(topField.Len()) == int64(field.Len())790 case reflect.Struct:791 fieldType := field.Type()792 // Not Same underlying type i.e. struct and time793 if fieldType != topField.Type() {794 return false795 }796 if fieldType == timeType {797 t := field.Interface().(time.Time)798 fieldTime := topField.Interface().(time.Time)799 return fieldTime.Equal(t)800 }801 }802 // default reflect.String:803 return topField.String() == field.String()804}805// IsEqField is the validation function for validating if the current field's value is equal to the field specified by the param's value.806func isEqField(fl FieldLevel) bool {807 field := fl.Field()808 kind := field.Kind()809 currentField, currentKind, ok := fl.GetStructFieldOK()810 if !ok || currentKind != kind {811 return false812 }813 switch kind {814 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:815 return field.Int() == currentField.Int()816 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:817 return field.Uint() == currentField.Uint()818 case reflect.Float32, reflect.Float64:819 return field.Float() == currentField.Float()820 case reflect.Slice, reflect.Map, reflect.Array:821 return int64(field.Len()) == int64(currentField.Len())822 case reflect.Struct:823 fieldType := field.Type()824 // Not Same underlying type i.e. struct and time825 if fieldType != currentField.Type() {826 return false827 }828 if fieldType == timeType {829 t := currentField.Interface().(time.Time)830 fieldTime := field.Interface().(time.Time)831 return fieldTime.Equal(t)832 }833 }834 // default reflect.String:835 return field.String() == currentField.String()836}837// IsEq is the validation function for validating if the current field's value is equal to the param's value.838func isEq(fl FieldLevel) bool {839 field := fl.Field()840 param := fl.Param()841 switch field.Kind() {842 case reflect.String:843 return field.String() == param844 case reflect.Slice, reflect.Map, reflect.Array:845 p := asInt(param)846 return int64(field.Len()) == p847 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:848 p := asInt(param)849 return field.Int() == p850 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:851 p := asUint(param)852 return field.Uint() == p853 case reflect.Float32, reflect.Float64:854 p := asFloat(param)855 return field.Float() == p856 case reflect.Bool:857 p := asBool(param)858 return field.Bool() == p859 }860 panic(fmt.Sprintf("Bad field type %T", field.Interface()))861}862// IsBase64 is the validation function for validating if the current field's value is a valid base 64.863func isBase64(fl FieldLevel) bool {864 return base64Regex.MatchString(fl.Field().String())865}866// IsBase64URL is the validation function for validating if the current field's value is a valid base64 URL safe string.867func isBase64URL(fl FieldLevel) bool {868 return base64URLRegex.MatchString(fl.Field().String())869}870// IsURI is the validation function for validating if the current field's value is a valid URI.871func isURI(fl FieldLevel) bool {872 field := fl.Field()873 switch field.Kind() {874 case reflect.String:875 s := field.String()876 // checks needed as of Go 1.6 because of change https://github.com/golang/go/commit/617c93ce740c3c3cc28cdd1a0d712be183d0b328#diff-6c2d018290e298803c0c9419d8739885L195877 // emulate browser and strip the '#' suffix prior to validation. see issue-#237878 if i := strings.Index(s, "#"); i > -1 {879 s = s[:i]880 }881 if len(s) == 0 {882 return false883 }884 _, err := url.ParseRequestURI(s)885 return err == nil886 }887 panic(fmt.Sprintf("Bad field type %T", field.Interface()))888}889// IsURL is the validation function for validating if the current field's value is a valid URL.890func isURL(fl FieldLevel) bool {891 field := fl.Field()892 switch field.Kind() {893 case reflect.String:894 var i int895 s := field.String()896 // checks needed as of Go 1.6 because of change https://github.com/golang/go/commit/617c93ce740c3c3cc28cdd1a0d712be183d0b328#diff-6c2d018290e298803c0c9419d8739885L195897 // emulate browser and strip the '#' suffix prior to validation. see issue-#237898 if i = strings.Index(s, "#"); i > -1 {899 s = s[:i]900 }901 if len(s) == 0 {902 return false903 }904 url, err := url.ParseRequestURI(s)905 if err != nil || url.Scheme == "" {906 return false907 }908 return true909 }910 panic(fmt.Sprintf("Bad field type %T", field.Interface()))911}912// isUrnRFC2141 is the validation function for validating if the current field's value is a valid URN as per RFC 2141.913func isUrnRFC2141(fl FieldLevel) bool {914 field := fl.Field()915 switch field.Kind() {916 case reflect.String:917 str := field.String()918 _, match := urn.Parse([]byte(str))919 return match920 }921 panic(fmt.Sprintf("Bad field type %T", field.Interface()))922}923// IsFile is the validation function for validating if the current field's value is a valid file path.924func isFile(fl FieldLevel) bool {925 field := fl.Field()926 switch field.Kind() {927 case reflect.String:928 fileInfo, err := os.Stat(field.String())929 if err != nil {930 return false931 }932 return !fileInfo.IsDir()933 }934 panic(fmt.Sprintf("Bad field type %T", field.Interface()))935}936// IsE164 is the validation function for validating if the current field's value is a valid e.164 formatted phone number.937func isE164(fl FieldLevel) bool {938 return e164Regex.MatchString(fl.Field().String())939}940// IsEmail is the validation function for validating if the current field's value is a valid email address.941func isEmail(fl FieldLevel) bool {942 return emailRegex.MatchString(fl.Field().String())943}944// IsHSLA is the validation function for validating if the current field's value is a valid HSLA color.945func isHSLA(fl FieldLevel) bool {946 return hslaRegex.MatchString(fl.Field().String())947}948// IsHSL is the validation function for validating if the current field's value is a valid HSL color.949func isHSL(fl FieldLevel) bool {950 return hslRegex.MatchString(fl.Field().String())951}952// IsRGBA is the validation function for validating if the current field's value is a valid RGBA color.953func isRGBA(fl FieldLevel) bool {954 return rgbaRegex.MatchString(fl.Field().String())955}956// IsRGB is the validation function for validating if the current field's value is a valid RGB color.957func isRGB(fl FieldLevel) bool {958 return rgbRegex.MatchString(fl.Field().String())959}960// IsHEXColor is the validation function for validating if the current field's value is a valid HEX color.961func isHEXColor(fl FieldLevel) bool {962 return hexcolorRegex.MatchString(fl.Field().String())963}964// IsHexadecimal is the validation function for validating if the current field's value is a valid hexadecimal.965func isHexadecimal(fl FieldLevel) bool {966 return hexadecimalRegex.MatchString(fl.Field().String())967}968// IsNumber is the validation function for validating if the current field's value is a valid number.969func isNumber(fl FieldLevel) bool {970 switch fl.Field().Kind() {971 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.Float32, reflect.Float64:972 return true973 default:974 return numberRegex.MatchString(fl.Field().String())975 }976}977// IsNumeric is the validation function for validating if the current field's value is a valid numeric value.978func isNumeric(fl FieldLevel) bool {979 switch fl.Field().Kind() {980 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, reflect.Float32, reflect.Float64:981 return true982 default:983 return numericRegex.MatchString(fl.Field().String())984 }985}986// IsAlphanum is the validation function for validating if the current field's value is a valid alphanumeric value.987func isAlphanum(fl FieldLevel) bool {988 return alphaNumericRegex.MatchString(fl.Field().String())989}990// IsAlpha is the validation function for validating if the current field's value is a valid alpha value.991func isAlpha(fl FieldLevel) bool {992 return alphaRegex.MatchString(fl.Field().String())993}994// IsAlphanumUnicode is the validation function for validating if the current field's value is a valid alphanumeric unicode value.995func isAlphanumUnicode(fl FieldLevel) bool {996 return alphaUnicodeNumericRegex.MatchString(fl.Field().String())997}998// IsAlphaUnicode is the validation function for validating if the current field's value is a valid alpha unicode value.999func isAlphaUnicode(fl FieldLevel) bool {1000 return alphaUnicodeRegex.MatchString(fl.Field().String())1001}1002// isDefault is the opposite of required aka hasValue1003func isDefault(fl FieldLevel) bool {1004 return !hasValue(fl)1005}1006// HasValue is the validation function for validating if the current field's value is not the default static value.1007func hasValue(fl FieldLevel) bool {1008 field := fl.Field()1009 switch field.Kind() {1010 case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func:1011 return !field.IsNil()1012 default:1013 if fl.(*validate).fldIsPointer && field.Interface() != nil {1014 return true1015 }1016 return field.IsValid() && field.Interface() != reflect.Zero(field.Type()).Interface()1017 }1018}1019// requireCheckField is a func for check field kind1020func requireCheckFieldKind(fl FieldLevel, param string, defaultNotFoundValue bool) bool {1021 field := fl.Field()1022 kind := field.Kind()1023 var nullable, found bool1024 if len(param) > 0 {1025 field, kind, nullable, found = fl.GetStructFieldOKAdvanced2(fl.Parent(), param)1026 if !found {1027 return defaultNotFoundValue1028 }1029 }1030 switch kind {1031 case reflect.Invalid:1032 return defaultNotFoundValue1033 case reflect.Slice, reflect.Map, reflect.Ptr, reflect.Interface, reflect.Chan, reflect.Func:1034 return field.IsNil()1035 default:1036 if nullable && field.Interface() != nil {1037 return false1038 }1039 return field.IsValid() && field.Interface() == reflect.Zero(field.Type()).Interface()1040 }1041}1042// RequiredWith is the validation function1043// The field under validation must be present and not empty only if any of the other specified fields are present.1044func requiredWith(fl FieldLevel) bool {1045 params := parseOneOfParam2(fl.Param())1046 for _, param := range params {1047 if !requireCheckFieldKind(fl, param, true) {1048 return hasValue(fl)1049 }1050 }1051 return true1052}1053// RequiredWithAll is the validation function1054// The field under validation must be present and not empty only if all of the other specified fields are present.1055func requiredWithAll(fl FieldLevel) bool {1056 params := parseOneOfParam2(fl.Param())1057 for _, param := range params {1058 if requireCheckFieldKind(fl, param, true) {1059 return true1060 }1061 }1062 return hasValue(fl)1063}1064// RequiredWithout is the validation function1065// The field under validation must be present and not empty only when any of the other specified fields are not present.1066func requiredWithout(fl FieldLevel) bool {1067 if requireCheckFieldKind(fl, strings.TrimSpace(fl.Param()), true) {1068 return hasValue(fl)1069 }1070 return true1071}1072// RequiredWithoutAll is the validation function1073// The field under validation must be present and not empty only when all of the other specified fields are not present.1074func requiredWithoutAll(fl FieldLevel) bool {1075 params := parseOneOfParam2(fl.Param())1076 for _, param := range params {1077 if !requireCheckFieldKind(fl, param, true) {1078 return true1079 }1080 }1081 return hasValue(fl)1082}1083// IsGteField is the validation function for validating if the current field's value is greater than or equal to the field specified by the param's value.1084func isGteField(fl FieldLevel) bool {1085 field := fl.Field()1086 kind := field.Kind()1087 currentField, currentKind, ok := fl.GetStructFieldOK()1088 if !ok || currentKind != kind {1089 return false1090 }1091 switch kind {1092 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1093 return field.Int() >= currentField.Int()1094 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1095 return field.Uint() >= currentField.Uint()1096 case reflect.Float32, reflect.Float64:1097 return field.Float() >= currentField.Float()1098 case reflect.Struct:1099 fieldType := field.Type()1100 // Not Same underlying type i.e. struct and time1101 if fieldType != currentField.Type() {1102 return false1103 }1104 if fieldType == timeType {1105 t := currentField.Interface().(time.Time)1106 fieldTime := field.Interface().(time.Time)1107 return fieldTime.After(t) || fieldTime.Equal(t)1108 }1109 }1110 // default reflect.String1111 return len(field.String()) >= len(currentField.String())1112}1113// IsGtField is the validation function for validating if the current field's value is greater than the field specified by the param's value.1114func isGtField(fl FieldLevel) bool {1115 field := fl.Field()1116 kind := field.Kind()1117 currentField, currentKind, ok := fl.GetStructFieldOK()1118 if !ok || currentKind != kind {1119 return false1120 }1121 switch kind {1122 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1123 return field.Int() > currentField.Int()1124 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1125 return field.Uint() > currentField.Uint()1126 case reflect.Float32, reflect.Float64:1127 return field.Float() > currentField.Float()1128 case reflect.Struct:1129 fieldType := field.Type()1130 // Not Same underlying type i.e. struct and time1131 if fieldType != currentField.Type() {1132 return false1133 }1134 if fieldType == timeType {1135 t := currentField.Interface().(time.Time)1136 fieldTime := field.Interface().(time.Time)1137 return fieldTime.After(t)1138 }1139 }1140 // default reflect.String1141 return len(field.String()) > len(currentField.String())1142}1143// IsGte is the validation function for validating if the current field's value is greater than or equal to the param's value.1144func isGte(fl FieldLevel) bool {1145 field := fl.Field()1146 param := fl.Param()1147 switch field.Kind() {1148 case reflect.String:1149 p := asInt(param)1150 return int64(utf8.RuneCountInString(field.String())) >= p1151 case reflect.Slice, reflect.Map, reflect.Array:1152 p := asInt(param)1153 return int64(field.Len()) >= p1154 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1155 p := asInt(param)1156 return field.Int() >= p1157 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1158 p := asUint(param)1159 return field.Uint() >= p1160 case reflect.Float32, reflect.Float64:1161 p := asFloat(param)1162 return field.Float() >= p1163 case reflect.Struct:1164 if field.Type() == timeType {1165 now := time.Now().UTC()1166 t := field.Interface().(time.Time)1167 return t.After(now) || t.Equal(now)1168 }1169 }1170 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1171}1172// IsGt is the validation function for validating if the current field's value is greater than the param's value.1173func isGt(fl FieldLevel) bool {1174 field := fl.Field()1175 param := fl.Param()1176 switch field.Kind() {1177 case reflect.String:1178 p := asInt(param)1179 return int64(utf8.RuneCountInString(field.String())) > p1180 case reflect.Slice, reflect.Map, reflect.Array:1181 p := asInt(param)1182 return int64(field.Len()) > p1183 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1184 p := asInt(param)1185 return field.Int() > p1186 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1187 p := asUint(param)1188 return field.Uint() > p1189 case reflect.Float32, reflect.Float64:1190 p := asFloat(param)1191 return field.Float() > p1192 case reflect.Struct:1193 if field.Type() == timeType {1194 return field.Interface().(time.Time).After(time.Now().UTC())1195 }1196 }1197 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1198}1199// HasLengthOf is the validation function for validating if the current field's value is equal to the param's value.1200func hasLengthOf(fl FieldLevel) bool {1201 field := fl.Field()1202 param := fl.Param()1203 switch field.Kind() {1204 case reflect.String:1205 p := asInt(param)1206 return int64(utf8.RuneCountInString(field.String())) == p1207 case reflect.Slice, reflect.Map, reflect.Array:1208 p := asInt(param)1209 return int64(field.Len()) == p1210 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1211 p := asInt(param)1212 return field.Int() == p1213 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1214 p := asUint(param)1215 return field.Uint() == p1216 case reflect.Float32, reflect.Float64:1217 p := asFloat(param)1218 return field.Float() == p1219 }1220 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1221}1222// HasMinOf is the validation function for validating if the current field's value is greater than or equal to the param's value.1223func hasMinOf(fl FieldLevel) bool {1224 return isGte(fl)1225}1226// IsLteField is the validation function for validating if the current field's value is less than or equal to the field specified by the param's value.1227func isLteField(fl FieldLevel) bool {1228 field := fl.Field()1229 kind := field.Kind()1230 currentField, currentKind, ok := fl.GetStructFieldOK()1231 if !ok || currentKind != kind {1232 return false1233 }1234 switch kind {1235 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1236 return field.Int() <= currentField.Int()1237 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1238 return field.Uint() <= currentField.Uint()1239 case reflect.Float32, reflect.Float64:1240 return field.Float() <= currentField.Float()1241 case reflect.Struct:1242 fieldType := field.Type()1243 // Not Same underlying type i.e. struct and time1244 if fieldType != currentField.Type() {1245 return false1246 }1247 if fieldType == timeType {1248 t := currentField.Interface().(time.Time)1249 fieldTime := field.Interface().(time.Time)1250 return fieldTime.Before(t) || fieldTime.Equal(t)1251 }1252 }1253 // default reflect.String1254 return len(field.String()) <= len(currentField.String())1255}1256// IsLtField is the validation function for validating if the current field's value is less than the field specified by the param's value.1257func isLtField(fl FieldLevel) bool {1258 field := fl.Field()1259 kind := field.Kind()1260 currentField, currentKind, ok := fl.GetStructFieldOK()1261 if !ok || currentKind != kind {1262 return false1263 }1264 switch kind {1265 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1266 return field.Int() < currentField.Int()1267 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1268 return field.Uint() < currentField.Uint()1269 case reflect.Float32, reflect.Float64:1270 return field.Float() < currentField.Float()1271 case reflect.Struct:1272 fieldType := field.Type()1273 // Not Same underlying type i.e. struct and time1274 if fieldType != currentField.Type() {1275 return false1276 }1277 if fieldType == timeType {1278 t := currentField.Interface().(time.Time)1279 fieldTime := field.Interface().(time.Time)1280 return fieldTime.Before(t)1281 }1282 }1283 // default reflect.String1284 return len(field.String()) < len(currentField.String())1285}1286// IsLte is the validation function for validating if the current field's value is less than or equal to the param's value.1287func isLte(fl FieldLevel) bool {1288 field := fl.Field()1289 param := fl.Param()1290 switch field.Kind() {1291 case reflect.String:1292 p := asInt(param)1293 return int64(utf8.RuneCountInString(field.String())) <= p1294 case reflect.Slice, reflect.Map, reflect.Array:1295 p := asInt(param)1296 return int64(field.Len()) <= p1297 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1298 p := asInt(param)1299 return field.Int() <= p1300 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1301 p := asUint(param)1302 return field.Uint() <= p1303 case reflect.Float32, reflect.Float64:1304 p := asFloat(param)1305 return field.Float() <= p1306 case reflect.Struct:1307 if field.Type() == timeType {1308 now := time.Now().UTC()1309 t := field.Interface().(time.Time)1310 return t.Before(now) || t.Equal(now)1311 }1312 }1313 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1314}1315// IsLt is the validation function for validating if the current field's value is less than the param's value.1316func isLt(fl FieldLevel) bool {1317 field := fl.Field()1318 param := fl.Param()1319 switch field.Kind() {1320 case reflect.String:1321 p := asInt(param)1322 return int64(utf8.RuneCountInString(field.String())) < p1323 case reflect.Slice, reflect.Map, reflect.Array:1324 p := asInt(param)1325 return int64(field.Len()) < p1326 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:1327 p := asInt(param)1328 return field.Int() < p1329 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:1330 p := asUint(param)1331 return field.Uint() < p1332 case reflect.Float32, reflect.Float64:1333 p := asFloat(param)1334 return field.Float() < p1335 case reflect.Struct:1336 if field.Type() == timeType {1337 return field.Interface().(time.Time).Before(time.Now().UTC())1338 }1339 }1340 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1341}1342// HasMaxOf is the validation function for validating if the current field's value is less than or equal to the param's value.1343func hasMaxOf(fl FieldLevel) bool {1344 return isLte(fl)1345}1346// IsTCP4AddrResolvable is the validation function for validating if the field's value is a resolvable tcp4 address.1347func isTCP4AddrResolvable(fl FieldLevel) bool {1348 if !isIP4Addr(fl) {1349 return false1350 }1351 _, err := net.ResolveTCPAddr("tcp4", fl.Field().String())1352 return err == nil1353}1354// IsTCP6AddrResolvable is the validation function for validating if the field's value is a resolvable tcp6 address.1355func isTCP6AddrResolvable(fl FieldLevel) bool {1356 if !isIP6Addr(fl) {1357 return false1358 }1359 _, err := net.ResolveTCPAddr("tcp6", fl.Field().String())1360 return err == nil1361}1362// IsTCPAddrResolvable is the validation function for validating if the field's value is a resolvable tcp address.1363func isTCPAddrResolvable(fl FieldLevel) bool {1364 if !isIP4Addr(fl) && !isIP6Addr(fl) {1365 return false1366 }1367 _, err := net.ResolveTCPAddr("tcp", fl.Field().String())1368 return err == nil1369}1370// IsUDP4AddrResolvable is the validation function for validating if the field's value is a resolvable udp4 address.1371func isUDP4AddrResolvable(fl FieldLevel) bool {1372 if !isIP4Addr(fl) {1373 return false1374 }1375 _, err := net.ResolveUDPAddr("udp4", fl.Field().String())1376 return err == nil1377}1378// IsUDP6AddrResolvable is the validation function for validating if the field's value is a resolvable udp6 address.1379func isUDP6AddrResolvable(fl FieldLevel) bool {1380 if !isIP6Addr(fl) {1381 return false1382 }1383 _, err := net.ResolveUDPAddr("udp6", fl.Field().String())1384 return err == nil1385}1386// IsUDPAddrResolvable is the validation function for validating if the field's value is a resolvable udp address.1387func isUDPAddrResolvable(fl FieldLevel) bool {1388 if !isIP4Addr(fl) && !isIP6Addr(fl) {1389 return false1390 }1391 _, err := net.ResolveUDPAddr("udp", fl.Field().String())1392 return err == nil1393}1394// IsIP4AddrResolvable is the validation function for validating if the field's value is a resolvable ip4 address.1395func isIP4AddrResolvable(fl FieldLevel) bool {1396 if !isIPv4(fl) {1397 return false1398 }1399 _, err := net.ResolveIPAddr("ip4", fl.Field().String())1400 return err == nil1401}1402// IsIP6AddrResolvable is the validation function for validating if the field's value is a resolvable ip6 address.1403func isIP6AddrResolvable(fl FieldLevel) bool {1404 if !isIPv6(fl) {1405 return false1406 }1407 _, err := net.ResolveIPAddr("ip6", fl.Field().String())1408 return err == nil1409}1410// IsIPAddrResolvable is the validation function for validating if the field's value is a resolvable ip address.1411func isIPAddrResolvable(fl FieldLevel) bool {1412 if !isIP(fl) {1413 return false1414 }1415 _, err := net.ResolveIPAddr("ip", fl.Field().String())1416 return err == nil1417}1418// IsUnixAddrResolvable is the validation function for validating if the field's value is a resolvable unix address.1419func isUnixAddrResolvable(fl FieldLevel) bool {1420 _, err := net.ResolveUnixAddr("unix", fl.Field().String())1421 return err == nil1422}1423func isIP4Addr(fl FieldLevel) bool {1424 val := fl.Field().String()1425 if idx := strings.LastIndex(val, ":"); idx != -1 {1426 val = val[0:idx]1427 }1428 ip := net.ParseIP(val)1429 return ip != nil && ip.To4() != nil1430}1431func isIP6Addr(fl FieldLevel) bool {1432 val := fl.Field().String()1433 if idx := strings.LastIndex(val, ":"); idx != -1 {1434 if idx != 0 && val[idx-1:idx] == "]" {1435 val = val[1 : idx-1]1436 }1437 }1438 ip := net.ParseIP(val)1439 return ip != nil && ip.To4() == nil1440}1441func isHostnameRFC952(fl FieldLevel) bool {1442 return hostnameRegexRFC952.MatchString(fl.Field().String())1443}1444func isHostnameRFC1123(fl FieldLevel) bool {1445 return hostnameRegexRFC1123.MatchString(fl.Field().String())1446}1447func isFQDN(fl FieldLevel) bool {1448 val := fl.Field().String()1449 if val == "" {1450 return false1451 }1452 if val[len(val)-1] == '.' {1453 val = val[0 : len(val)-1]1454 }1455 return strings.ContainsAny(val, ".") &&1456 hostnameRegexRFC952.MatchString(val)1457}1458// IsDir is the validation function for validating if the current field's value is a valid directory.1459func isDir(fl FieldLevel) bool {1460 field := fl.Field()1461 if field.Kind() == reflect.String {1462 fileInfo, err := os.Stat(field.String())1463 if err != nil {1464 return false1465 }1466 return fileInfo.IsDir()1467 }1468 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1469}1470// isJSON is the validation function for validating if the current field's value is a valid json string.1471func isJSON(fl FieldLevel) bool {1472 field := fl.Field()1473 if field.Kind() == reflect.String {1474 val := field.String()1475 return json.Valid([]byte(val))1476 }1477 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1478}1479// isHostnamePort validates a <dns>:<port> combination for fields typically used for socket address.1480func isHostnamePort(fl FieldLevel) bool {1481 val := fl.Field().String()1482 host, port, err := net.SplitHostPort(val)1483 if err != nil {1484 return false1485 }1486 // Port must be a iny <= 65535.1487 if portNum, err := strconv.ParseInt(port, 10, 32); err != nil || portNum > 65535 || portNum < 1 {1488 return false1489 }1490 // If host is specified, it should match a DNS name1491 if host != "" {1492 return hostnameRegexRFC1123.MatchString(host)1493 }1494 return true1495}1496// isLowercase is the validation function for validating if the current field's value is a lowercase string.1497func isLowercase(fl FieldLevel) bool {1498 field := fl.Field()1499 if field.Kind() == reflect.String {1500 if field.String() == "" {1501 return false1502 }1503 return field.String() == strings.ToLower(field.String())1504 }1505 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1506}1507// isUppercase is the validation function for validating if the current field's value is an uppercase string.1508func isUppercase(fl FieldLevel) bool {1509 field := fl.Field()1510 if field.Kind() == reflect.String {1511 if field.String() == "" {1512 return false1513 }1514 return field.String() == strings.ToUpper(field.String())1515 }1516 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1517}1518// isDatetime is the validation function for validating if the current field's value is a valid datetime string.1519func isDatetime(fl FieldLevel) bool {1520 field := fl.Field()1521 param := fl.Param()1522 if field.Kind() == reflect.String {1523 _, err := time.Parse(param, field.String())1524 if err != nil {1525 return false1526 }1527 return true1528 }1529 panic(fmt.Sprintf("Bad field type %T", field.Interface()))1530}...

Full Screen

Full Screen

is_IS.go

Source:is_IS.go Github

copy

Full Screen

1package is_IS2import (3 "math"4 "strconv"5 "time"6 "github.com/go-playground/locales"7 "github.com/go-playground/locales/currency"8)9type is_IS struct {10 locale string11 pluralsCardinal []locales.PluralRule12 pluralsOrdinal []locales.PluralRule13 pluralsRange []locales.PluralRule14 decimal string15 group string16 minus string17 percent string18 perMille string19 timeSeparator string20 inifinity string21 currencies []string // idx = enum of currency code22 currencyPositiveSuffix string23 currencyNegativeSuffix string24 monthsAbbreviated []string25 monthsNarrow []string26 monthsWide []string27 daysAbbreviated []string28 daysNarrow []string29 daysShort []string30 daysWide []string31 periodsAbbreviated []string32 periodsNarrow []string33 periodsShort []string34 periodsWide []string35 erasAbbreviated []string36 erasNarrow []string37 erasWide []string38 timezones map[string]string39}40// New returns a new instance of translator for the 'is_IS' locale41func New() locales.Translator {42 return &is_IS{43 locale: "is_IS",44 pluralsCardinal: []locales.PluralRule{2, 6},45 pluralsOrdinal: []locales.PluralRule{6},46 pluralsRange: []locales.PluralRule{2, 6},47 decimal: ",",48 group: ".",49 minus: "-",50 percent: "%",51 perMille: "‰",52 timeSeparator: ":",53 inifinity: "∞",54 currencies: []string{"ADP", "AED", "AFA", "AFN", "ALK", "ALL", "AMD", "ANG", "AOA", "AOK", "AON", "AOR", "ARA", "ARL", "ARM", "ARP", "ARS", "ATS", "AUD", "AWG", "AZM", "AZN", "BAD", "BAM", "BAN", "BBD", "BDT", "BEC", "BEF", "BEL", "BGL", "BGM", "BGN", "BGO", "BHD", "BIF", "BMD", "BND", "BOB", "BOL", "BOP", "BOV", "BRB", "BRC", "BRE", "BRL", "BRN", "BRR", "BRZ", "BSD", "BTN", "BUK", "BWP", "BYB", "BYN", "BYR", "BZD", "CAD", "CDF", "CHE", "CHF", "CHW", "CLE", "CLF", "CLP", "CNH", "CNX", "CNY", "COP", "COU", "CRC", "CSD", "CSK", "CUC", "CUP", "CVE", "CYP", "CZK", "DDM", "DEM", "DJF", "DKK", "DOP", "DZD", "ECS", "ECV", "EEK", "EGP", "ERN", "ESA", "ESB", "ESP", "ETB", "EUR", "FIM", "FJD", "FKP", "FRF", "GBP", "GEK", "GEL", "GHC", "GHS", "GIP", "GMD", "GNF", "GNS", "GQE", "GRD", "GTQ", "GWE", "GWP", "GYD", "HKD", "HNL", "HRD", "HRK", "HTG", "HUF", "IDR", "IEP", "ILP", "ILR", "ILS", "INR", "IQD", "IRR", "ISJ", "ISK", "ITL", "JMD", "JOD", "JPY", "KES", "KGS", "KHR", "KMF", "KPW", "KRH", "KRO", "KRW", "KWD", "KYD", "KZT", "LAK", "LBP", "LKR", "LRD", "LSL", "LTL", "LTT", "LUC", "LUF", "LUL", "LVL", "LVR", "LYD", "MAD", "MAF", "MCF", "MDC", "MDL", "MGA", "MGF", "MKD", "MKN", "MLF", "MMK", "MNT", "MOP", "MRO", "MTL", "MTP", "MUR", "MVP", "MVR", "MWK", "MXN", "MXP", "MXV", "MYR", "MZE", "MZM", "MZN", "NAD", "NGN", "NIC", "NIO", "NLG", "NOK", "NPR", "NZD", "OMR", "PAB", "PEI", "PEN", "PES", "PGK", "PHP", "PKR", "PLN", "PLZ", "PTE", "PYG", "QAR", "RHD", "ROL", "RON", "RSD", "RUB", "RUR", "RWF", "SAR", "SBD", "SCR", "SDD", "SDG", "SDP", "SEK", "SGD", "SHP", "SIT", "SKK", "SLL", "SOS", "SRD", "SRG", "SSP", "STD", "STN", "SUR", "SVC", "SYP", "SZL", "THB", "TJR", "TJS", "TMM", "TMT", "TND", "TOP", "TPE", "TRL", "TRY", "TTD", "TWD", "TZS", "UAH", "UAK", "UGS", "UGX", "USD", "USN", "USS", "UYI", "UYP", "UYU", "UZS", "VEB", "VEF", "VND", "VNN", "VUV", "WST", "XAF", "XAG", "XAU", "XBA", "XBB", "XBC", "XBD", "XCD", "XDR", "XEU", "XFO", "XFU", "XOF", "XPD", "XPF", "XPT", "XRE", "XSU", "XTS", "XUA", "XXX", "YDD", "YER", "YUD", "YUM", "YUN", "YUR", "ZAL", "ZAR", "ZMK", "ZMW", "ZRN", "ZRZ", "ZWD", "ZWL", "ZWR"},55 currencyPositiveSuffix: " ",56 currencyNegativeSuffix: " ",57 monthsAbbreviated: []string{"", "jan.", "feb.", "mar.", "apr.", "maí", "jún.", "júl.", "ágú.", "sep.", "okt.", "nóv.", "des."},58 monthsNarrow: []string{"", "J", "F", "M", "A", "M", "J", "J", "Á", "S", "O", "N", "D"},59 monthsWide: []string{"", "janúar", "febrúar", "mars", "apríl", "maí", "júní", "júlí", "ágúst", "september", "október", "nóvember", "desember"},60 daysAbbreviated: []string{"sun.", "mán.", "þri.", "mið.", "fim.", "fös.", "lau."},61 daysNarrow: []string{"S", "M", "Þ", "M", "F", "F", "L"},62 daysShort: []string{"su.", "má.", "þr.", "mi.", "fi.", "fö.", "la."},63 daysWide: []string{"sunnudagur", "mánudagur", "þriðjudagur", "miðvikudagur", "fimmtudagur", "föstudagur", "laugardagur"},64 periodsAbbreviated: []string{"f.h.", "e.h."},65 periodsNarrow: []string{"f.", "e."},66 periodsWide: []string{"f.h.", "e.h."},67 erasAbbreviated: []string{"f.Kr.", "e.Kr."},68 erasNarrow: []string{"f.k.", "e.k."},69 erasWide: []string{"fyrir Krist", "eftir Krist"},70 timezones: map[string]string{"CAT": "Mið-Afríkutími", "∅∅∅": "Sumartími á Amasónsvæðinu", "CDT": "Sumartími í miðhluta Bandaríkjanna og Kanada", "HNOG": "Staðaltími á Vestur-Grænlandi", "LHDT": "Sumartími á Lord Howe-eyju", "MESZ": "Sumartími í Mið-Evrópu", "WITA": "Mið-Indónesíutími", "CLST": "Sumartími í Síle", "GMT": "Greenwich-staðaltími", "HNPMX": "Staðaltími í Mexíkó á Kyrrahafssvæðinu", "SAST": "Suður-Afríkutími", "JST": "Staðaltími í Japan", "HKT": "Staðaltími í Hong Kong", "PST": "Staðaltími á Kyrrahafssvæðinu", "HEEG": "Sumartími á Austur-Grænlandi", "WART": "Staðaltími í Vestur-Argentínu", "HNPM": "Staðaltími á Sankti Pierre og Miquelon", "MST": "MST", "CLT": "Staðaltími í Síle", "HNCU": "Staðaltími á Kúbu", "EST": "Staðaltími í austurhluta Bandaríkjanna og Kanada", "WARST": "Sumartími í Vestur-Argentínu", "WIB": "Vestur-Indónesíutími", "JDT": "Sumartími í Japan", "COST": "Sumartími í Kólumbíu", "ART": "Staðaltími í Argentínu", "ARST": "Sumartími í Argentínu", "GYT": "Gvæjanatími", "CHADT": "Sumartími í Chatham", "AEDT": "Sumartími í Austur-Ástralíu", "HEPM": "Sumartími á Sankti Pierre og Miquelon", "HEPMX": "Sumartími í Mexíkó á Kyrrahafssvæðinu", "AST": "Staðaltími á Atlantshafssvæðinu", "MYT": "Malasíutími", "ECT": "Ekvadortími", "ACWDT": "Sumartími í miðvesturhluta Ástralíu", "TMST": "Sumartími í Túrkmenistan", "HEOG": "Sumartími á Vestur-Grænlandi", "IST": "Indlandstími", "HENOMX": "Sumartími í Norðvestur-Mexíkó", "MDT": "MDT", "AEST": "Staðaltími í Austur-Ástralíu", "BT": "Bútantími", "WIT": "Austur-Indónesíutími", "EAT": "Austur-Afríkutími", "ChST": "Chamorro-staðaltími", "AKST": "Staðaltími í Alaska", "ACDT": "Sumartími í Mið-Ástralíu", "VET": "Venesúelatími", "SRT": "Súrinamtími", "CHAST": "Staðaltími í Chatham", "HECU": "Sumartími á Kúbu", "CST": "Staðaltími í miðhluta Bandaríkjanna og Kanada", "ADT": "Sumartími á Atlantshafssvæðinu", "WAST": "Sumartími í Vestur-Afríku", "COT": "Staðaltími í Kólumbíu", "PDT": "Sumartími á Kyrrahafssvæðinu", "SGT": "Singapúrtími", "ACWST": "Staðaltími í miðvesturhluta Ástralíu", "HNNOMX": "Staðaltími í Norðvestur-Mexíkó", "HKST": "Sumartími í Hong Kong", "LHST": "Staðaltími á Lord Howe-eyju", "HADT": "Sumartími á Havaí og Aleúta", "UYST": "Sumartími í Úrúgvæ", "AWST": "Staðaltími í Vestur-Ástralíu", "GFT": "Tími í Frönsku Gvæjana", "NZST": "Staðaltími á Nýja-Sjálandi", "NZDT": "Sumartími á Nýja-Sjálandi", "HNT": "Staðaltími á Nýfundnalandi", "WAT": "Staðaltími í Vestur-Afríku", "WESZ": "Sumartími í Vestur-Evrópu", "EDT": "Sumartími í austurhluta Bandaríkjanna og Kanada", "HAT": "Sumartími á Nýfundnalandi", "HNEG": "Staðaltími á Austur-Grænlandi", "ACST": "Staðaltími í Mið-Ástralíu", "TMT": "Staðaltími í Túrkmenistan", "OESZ": "Sumartími í Austur-Evrópu", "HAST": "Staðaltími á Havaí og Aleúta", "WEZ": "Staðaltími í Vestur-Evrópu", "BOT": "Bólivíutími", "AKDT": "Sumartími í Alaska", "MEZ": "Staðaltími í Mið-Evrópu", "OEZ": "Staðaltími í Austur-Evrópu", "UYT": "Staðaltími í Úrúgvæ", "AWDT": "Sumartími í Vestur-Ástralíu"},71 }72}73// Locale returns the current translators string locale74func (is *is_IS) Locale() string {75 return is.locale76}77// PluralsCardinal returns the list of cardinal plural rules associated with 'is_IS'78func (is *is_IS) PluralsCardinal() []locales.PluralRule {79 return is.pluralsCardinal80}81// PluralsOrdinal returns the list of ordinal plural rules associated with 'is_IS'82func (is *is_IS) PluralsOrdinal() []locales.PluralRule {83 return is.pluralsOrdinal84}85// PluralsRange returns the list of range plural rules associated with 'is_IS'86func (is *is_IS) PluralsRange() []locales.PluralRule {87 return is.pluralsRange88}89// CardinalPluralRule returns the cardinal PluralRule given 'num' and digits/precision of 'v' for 'is_IS'90func (is *is_IS) CardinalPluralRule(num float64, v uint64) locales.PluralRule {91 n := math.Abs(num)92 i := int64(n)93 t := locales.T(n, v)94 iMod10 := i % 1095 iMod100 := i % 10096 if (t == 0 && iMod10 == 1 && iMod100 != 11) || (t != 0) {97 return locales.PluralRuleOne98 }99 return locales.PluralRuleOther100}101// OrdinalPluralRule returns the ordinal PluralRule given 'num' and digits/precision of 'v' for 'is_IS'102func (is *is_IS) OrdinalPluralRule(num float64, v uint64) locales.PluralRule {103 return locales.PluralRuleOther104}105// RangePluralRule returns the ordinal PluralRule given 'num1', 'num2' and digits/precision of 'v1' and 'v2' for 'is_IS'106func (is *is_IS) RangePluralRule(num1 float64, v1 uint64, num2 float64, v2 uint64) locales.PluralRule {107 start := is.CardinalPluralRule(num1, v1)108 end := is.CardinalPluralRule(num2, v2)109 if start == locales.PluralRuleOne && end == locales.PluralRuleOne {110 return locales.PluralRuleOne111 } else if start == locales.PluralRuleOne && end == locales.PluralRuleOther {112 return locales.PluralRuleOther113 } else if start == locales.PluralRuleOther && end == locales.PluralRuleOne {114 return locales.PluralRuleOne115 }116 return locales.PluralRuleOther117}118// MonthAbbreviated returns the locales abbreviated month given the 'month' provided119func (is *is_IS) MonthAbbreviated(month time.Month) string {120 return is.monthsAbbreviated[month]121}122// MonthsAbbreviated returns the locales abbreviated months123func (is *is_IS) MonthsAbbreviated() []string {124 return is.monthsAbbreviated[1:]125}126// MonthNarrow returns the locales narrow month given the 'month' provided127func (is *is_IS) MonthNarrow(month time.Month) string {128 return is.monthsNarrow[month]129}130// MonthsNarrow returns the locales narrow months131func (is *is_IS) MonthsNarrow() []string {132 return is.monthsNarrow[1:]133}134// MonthWide returns the locales wide month given the 'month' provided135func (is *is_IS) MonthWide(month time.Month) string {136 return is.monthsWide[month]137}138// MonthsWide returns the locales wide months139func (is *is_IS) MonthsWide() []string {140 return is.monthsWide[1:]141}142// WeekdayAbbreviated returns the locales abbreviated weekday given the 'weekday' provided143func (is *is_IS) WeekdayAbbreviated(weekday time.Weekday) string {144 return is.daysAbbreviated[weekday]145}146// WeekdaysAbbreviated returns the locales abbreviated weekdays147func (is *is_IS) WeekdaysAbbreviated() []string {148 return is.daysAbbreviated149}150// WeekdayNarrow returns the locales narrow weekday given the 'weekday' provided151func (is *is_IS) WeekdayNarrow(weekday time.Weekday) string {152 return is.daysNarrow[weekday]153}154// WeekdaysNarrow returns the locales narrow weekdays155func (is *is_IS) WeekdaysNarrow() []string {156 return is.daysNarrow157}158// WeekdayShort returns the locales short weekday given the 'weekday' provided159func (is *is_IS) WeekdayShort(weekday time.Weekday) string {160 return is.daysShort[weekday]161}162// WeekdaysShort returns the locales short weekdays163func (is *is_IS) WeekdaysShort() []string {164 return is.daysShort165}166// WeekdayWide returns the locales wide weekday given the 'weekday' provided167func (is *is_IS) WeekdayWide(weekday time.Weekday) string {168 return is.daysWide[weekday]169}170// WeekdaysWide returns the locales wide weekdays171func (is *is_IS) WeekdaysWide() []string {172 return is.daysWide173}174// Decimal returns the decimal point of number175func (is *is_IS) Decimal() string {176 return is.decimal177}178// Group returns the group of number179func (is *is_IS) Group() string {180 return is.group181}182// Group returns the minus sign of number183func (is *is_IS) Minus() string {184 return is.minus185}186// FmtNumber returns 'num' with digits/precision of 'v' for 'is_IS' and handles both Whole and Real numbers based on 'v'187func (is *is_IS) FmtNumber(num float64, v uint64) string {188 s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)189 l := len(s) + 2 + 1*len(s[:len(s)-int(v)-1])/3190 count := 0191 inWhole := v == 0192 b := make([]byte, 0, l)193 for i := len(s) - 1; i >= 0; i-- {194 if s[i] == '.' {195 b = append(b, is.decimal[0])196 inWhole = true197 continue198 }199 if inWhole {200 if count == 3 {201 b = append(b, is.group[0])202 count = 1203 } else {204 count++205 }206 }207 b = append(b, s[i])208 }209 if num < 0 {210 b = append(b, is.minus[0])211 }212 // reverse213 for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {214 b[i], b[j] = b[j], b[i]215 }216 return string(b)217}218// FmtPercent returns 'num' with digits/precision of 'v' for 'is_IS' and handles both Whole and Real numbers based on 'v'219// NOTE: 'num' passed into FmtPercent is assumed to be in percent already220func (is *is_IS) FmtPercent(num float64, v uint64) string {221 s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)222 l := len(s) + 3223 b := make([]byte, 0, l)224 for i := len(s) - 1; i >= 0; i-- {225 if s[i] == '.' {226 b = append(b, is.decimal[0])227 continue228 }229 b = append(b, s[i])230 }231 if num < 0 {232 b = append(b, is.minus[0])233 }234 // reverse235 for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {236 b[i], b[j] = b[j], b[i]237 }238 b = append(b, is.percent...)239 return string(b)240}241// FmtCurrency returns the currency representation of 'num' with digits/precision of 'v' for 'is_IS'242func (is *is_IS) FmtCurrency(num float64, v uint64, currency currency.Type) string {243 s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)244 symbol := is.currencies[currency]245 l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3246 count := 0247 inWhole := v == 0248 b := make([]byte, 0, l)249 for i := len(s) - 1; i >= 0; i-- {250 if s[i] == '.' {251 b = append(b, is.decimal[0])252 inWhole = true253 continue254 }255 if inWhole {256 if count == 3 {257 b = append(b, is.group[0])258 count = 1259 } else {260 count++261 }262 }263 b = append(b, s[i])264 }265 if num < 0 {266 b = append(b, is.minus[0])267 }268 // reverse269 for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {270 b[i], b[j] = b[j], b[i]271 }272 if int(v) < 2 {273 if v == 0 {274 b = append(b, is.decimal...)275 }276 for i := 0; i < 2-int(v); i++ {277 b = append(b, '0')278 }279 }280 b = append(b, is.currencyPositiveSuffix...)281 b = append(b, symbol...)282 return string(b)283}284// FmtAccounting returns the currency representation of 'num' with digits/precision of 'v' for 'is_IS'285// in accounting notation.286func (is *is_IS) FmtAccounting(num float64, v uint64, currency currency.Type) string {287 s := strconv.FormatFloat(math.Abs(num), 'f', int(v), 64)288 symbol := is.currencies[currency]289 l := len(s) + len(symbol) + 4 + 1*len(s[:len(s)-int(v)-1])/3290 count := 0291 inWhole := v == 0292 b := make([]byte, 0, l)293 for i := len(s) - 1; i >= 0; i-- {294 if s[i] == '.' {295 b = append(b, is.decimal[0])296 inWhole = true297 continue298 }299 if inWhole {300 if count == 3 {301 b = append(b, is.group[0])302 count = 1303 } else {304 count++305 }306 }307 b = append(b, s[i])308 }309 if num < 0 {310 b = append(b, is.minus[0])311 }312 // reverse313 for i, j := 0, len(b)-1; i < j; i, j = i+1, j-1 {314 b[i], b[j] = b[j], b[i]315 }316 if int(v) < 2 {317 if v == 0 {318 b = append(b, is.decimal...)319 }320 for i := 0; i < 2-int(v); i++ {321 b = append(b, '0')322 }323 }324 if num < 0 {325 b = append(b, is.currencyNegativeSuffix...)326 b = append(b, symbol...)327 } else {328 b = append(b, is.currencyPositiveSuffix...)329 b = append(b, symbol...)330 }331 return string(b)332}333// FmtDateShort returns the short date representation of 't' for 'is_IS'334func (is *is_IS) FmtDateShort(t time.Time) string {335 b := make([]byte, 0, 32)336 b = strconv.AppendInt(b, int64(t.Day()), 10)337 b = append(b, []byte{0x2e}...)338 b = strconv.AppendInt(b, int64(t.Month()), 10)339 b = append(b, []byte{0x2e}...)340 if t.Year() > 0 {341 b = strconv.AppendInt(b, int64(t.Year()), 10)342 } else {343 b = strconv.AppendInt(b, int64(-t.Year()), 10)344 }345 return string(b)346}347// FmtDateMedium returns the medium date representation of 't' for 'is_IS'348func (is *is_IS) FmtDateMedium(t time.Time) string {349 b := make([]byte, 0, 32)350 b = strconv.AppendInt(b, int64(t.Day()), 10)351 b = append(b, []byte{0x2e, 0x20}...)352 b = append(b, is.monthsAbbreviated[t.Month()]...)353 b = append(b, []byte{0x20}...)354 if t.Year() > 0 {355 b = strconv.AppendInt(b, int64(t.Year()), 10)356 } else {357 b = strconv.AppendInt(b, int64(-t.Year()), 10)358 }359 return string(b)360}361// FmtDateLong returns the long date representation of 't' for 'is_IS'362func (is *is_IS) FmtDateLong(t time.Time) string {363 b := make([]byte, 0, 32)364 b = strconv.AppendInt(b, int64(t.Day()), 10)365 b = append(b, []byte{0x2e, 0x20}...)366 b = append(b, is.monthsWide[t.Month()]...)367 b = append(b, []byte{0x20}...)368 if t.Year() > 0 {369 b = strconv.AppendInt(b, int64(t.Year()), 10)370 } else {371 b = strconv.AppendInt(b, int64(-t.Year()), 10)372 }373 return string(b)374}375// FmtDateFull returns the full date representation of 't' for 'is_IS'376func (is *is_IS) FmtDateFull(t time.Time) string {377 b := make([]byte, 0, 32)378 b = append(b, is.daysWide[t.Weekday()]...)379 b = append(b, []byte{0x2c, 0x20}...)380 b = strconv.AppendInt(b, int64(t.Day()), 10)381 b = append(b, []byte{0x2e, 0x20}...)382 b = append(b, is.monthsWide[t.Month()]...)383 b = append(b, []byte{0x20}...)384 if t.Year() > 0 {385 b = strconv.AppendInt(b, int64(t.Year()), 10)386 } else {387 b = strconv.AppendInt(b, int64(-t.Year()), 10)388 }389 return string(b)390}391// FmtTimeShort returns the short time representation of 't' for 'is_IS'392func (is *is_IS) FmtTimeShort(t time.Time) string {393 b := make([]byte, 0, 32)394 if t.Hour() < 10 {395 b = append(b, '0')396 }397 b = strconv.AppendInt(b, int64(t.Hour()), 10)398 b = append(b, is.timeSeparator...)399 if t.Minute() < 10 {400 b = append(b, '0')401 }402 b = strconv.AppendInt(b, int64(t.Minute()), 10)403 return string(b)404}405// FmtTimeMedium returns the medium time representation of 't' for 'is_IS'406func (is *is_IS) FmtTimeMedium(t time.Time) string {407 b := make([]byte, 0, 32)408 if t.Hour() < 10 {409 b = append(b, '0')410 }411 b = strconv.AppendInt(b, int64(t.Hour()), 10)412 b = append(b, is.timeSeparator...)413 if t.Minute() < 10 {414 b = append(b, '0')415 }416 b = strconv.AppendInt(b, int64(t.Minute()), 10)417 b = append(b, is.timeSeparator...)418 if t.Second() < 10 {419 b = append(b, '0')420 }421 b = strconv.AppendInt(b, int64(t.Second()), 10)422 return string(b)423}424// FmtTimeLong returns the long time representation of 't' for 'is_IS'425func (is *is_IS) FmtTimeLong(t time.Time) string {426 b := make([]byte, 0, 32)427 if t.Hour() < 10 {428 b = append(b, '0')429 }430 b = strconv.AppendInt(b, int64(t.Hour()), 10)431 b = append(b, is.timeSeparator...)432 if t.Minute() < 10 {433 b = append(b, '0')434 }435 b = strconv.AppendInt(b, int64(t.Minute()), 10)436 b = append(b, is.timeSeparator...)437 if t.Second() < 10 {438 b = append(b, '0')439 }440 b = strconv.AppendInt(b, int64(t.Second()), 10)441 b = append(b, []byte{0x20}...)442 tz, _ := t.Zone()443 b = append(b, tz...)444 return string(b)445}446// FmtTimeFull returns the full time representation of 't' for 'is_IS'447func (is *is_IS) FmtTimeFull(t time.Time) string {448 b := make([]byte, 0, 32)449 if t.Hour() < 10 {450 b = append(b, '0')451 }452 b = strconv.AppendInt(b, int64(t.Hour()), 10)453 b = append(b, is.timeSeparator...)454 if t.Minute() < 10 {455 b = append(b, '0')456 }457 b = strconv.AppendInt(b, int64(t.Minute()), 10)458 b = append(b, is.timeSeparator...)459 if t.Second() < 10 {460 b = append(b, '0')461 }462 b = strconv.AppendInt(b, int64(t.Second()), 10)463 b = append(b, []byte{0x20}...)464 tz, _ := t.Zone()465 if btz, ok := is.timezones[tz]; ok {466 b = append(b, btz...)467 } else {468 b = append(b, tz...)469 }470 return string(b)471}...

Full Screen

Full Screen

is_a.phpt

Source:is_a.phpt Github

copy

Full Screen

1--TEST--2is_a and is_subclass_of behaviour (with and without autoload)3--FILE--4<?php5interface if_a {6 function f_a();7}8interface if_b extends if_a {9 function f_b();10}11class base {12 function _is_a($sub) {13 echo "\n>>> With Defined class\n";14 echo str_pad('is_a( OBJECT:'.get_class($this).', '.$sub.') = ', 60) . (is_a($this, $sub) ? 'yes' : 'no')."\n";15 echo str_pad('is_a( STRING:'.get_class($this).', '.$sub.') = ', 60). (is_a(get_class($this), $sub) ? 'yes' : 'no')."\n";16 echo str_pad('is_a( STRING:'.get_class($this).', '.$sub.', true) = ', 60). (is_a(get_class($this), $sub, true) ? 'yes' : 'no')."\n";17 echo str_pad('is_subclass_of( OBJECT:'.get_class($this).', '.$sub.') = ', 60). (is_subclass_of($this, $sub) ? 'yes' : 'no')."\n";18 echo str_pad('is_subclass_of( STRING:'.get_class($this).', '.$sub.') = ', 60). (is_subclass_of(get_class($this), $sub) ? 'yes' : 'no')."\n";19 echo str_pad('is_subclass_of( STRING:'.get_class($this).', '.$sub.',false) = ', 60). (is_subclass_of(get_class($this), $sub , false) ? 'yes' : 'no')."\n";20 // with autoload options..21 echo ">>> With Undefined\n";22 echo str_pad('is_a( STRING:undefB, '.$sub.',true) = ', 60). (is_a('undefB', $sub, true) ? 'yes' : 'no')."\n";23 echo str_pad('is_a( STRING:undefB, '.$sub.') = ', 60). (is_a('undefB', $sub) ? 'yes' : 'no')."\n";24 echo str_pad('is_subclass_of( STRING:undefB, '.$sub.',false) = ', 60). (is_subclass_of('undefB', $sub, false) ? 'yes' : 'no')."\n";25 echo str_pad('is_subclass_of( STRING:undefB, '.$sub.') = ', 60). (is_subclass_of('undefB', $sub) ? 'yes' : 'no')."\n";26 }27 function test() {28 echo $this->_is_a('base');29 echo $this->_is_a('derived_a');30 echo $this->_is_a('if_a');31 echo $this->_is_a('undefA');32 echo "\n";33 }34}35class derived_a extends base implements if_a {36 function f_a() {}37}38class derived_b extends base implements if_a, if_b {39 function f_a() {}40 function f_b() {}41}42class derived_c extends derived_a implements if_b {43 function f_b() {}44}45class derived_d extends derived_c {46}47$t = new base();48$t->test();49$t = new derived_a();50$t->test();51spl_autoload_register(function ($name) {52 echo ">>>> In autoload: ";53 var_dump($name);54});55echo "NOW WITH AUTOLOAD\n\n";56$t = new base();57$t->test();58$t = new derived_a();59$t->test();60$t = new derived_b();61$t->test();62?>63--EXPECT--64>>> With Defined class65is_a( OBJECT:base, base) = yes66is_a( STRING:base, base) = no67is_a( STRING:base, base, true) = yes68is_subclass_of( OBJECT:base, base) = no69is_subclass_of( STRING:base, base) = no70is_subclass_of( STRING:base, base,false) = no71>>> With Undefined72is_a( STRING:undefB, base,true) = no73is_a( STRING:undefB, base) = no74is_subclass_of( STRING:undefB, base,false) = no75is_subclass_of( STRING:undefB, base) = no76>>> With Defined class77is_a( OBJECT:base, derived_a) = no78is_a( STRING:base, derived_a) = no79is_a( STRING:base, derived_a, true) = no80is_subclass_of( OBJECT:base, derived_a) = no81is_subclass_of( STRING:base, derived_a) = no82is_subclass_of( STRING:base, derived_a,false) = no83>>> With Undefined84is_a( STRING:undefB, derived_a,true) = no85is_a( STRING:undefB, derived_a) = no86is_subclass_of( STRING:undefB, derived_a,false) = no87is_subclass_of( STRING:undefB, derived_a) = no88>>> With Defined class89is_a( OBJECT:base, if_a) = no90is_a( STRING:base, if_a) = no91is_a( STRING:base, if_a, true) = no92is_subclass_of( OBJECT:base, if_a) = no93is_subclass_of( STRING:base, if_a) = no94is_subclass_of( STRING:base, if_a,false) = no95>>> With Undefined96is_a( STRING:undefB, if_a,true) = no97is_a( STRING:undefB, if_a) = no98is_subclass_of( STRING:undefB, if_a,false) = no99is_subclass_of( STRING:undefB, if_a) = no100>>> With Defined class101is_a( OBJECT:base, undefA) = no102is_a( STRING:base, undefA) = no103is_a( STRING:base, undefA, true) = no104is_subclass_of( OBJECT:base, undefA) = no105is_subclass_of( STRING:base, undefA) = no106is_subclass_of( STRING:base, undefA,false) = no107>>> With Undefined108is_a( STRING:undefB, undefA,true) = no109is_a( STRING:undefB, undefA) = no110is_subclass_of( STRING:undefB, undefA,false) = no111is_subclass_of( STRING:undefB, undefA) = no112>>> With Defined class113is_a( OBJECT:derived_a, base) = yes114is_a( STRING:derived_a, base) = no115is_a( STRING:derived_a, base, true) = yes116is_subclass_of( OBJECT:derived_a, base) = yes117is_subclass_of( STRING:derived_a, base) = yes118is_subclass_of( STRING:derived_a, base,false) = no119>>> With Undefined120is_a( STRING:undefB, base,true) = no121is_a( STRING:undefB, base) = no122is_subclass_of( STRING:undefB, base,false) = no123is_subclass_of( STRING:undefB, base) = no124>>> With Defined class125is_a( OBJECT:derived_a, derived_a) = yes126is_a( STRING:derived_a, derived_a) = no127is_a( STRING:derived_a, derived_a, true) = yes128is_subclass_of( OBJECT:derived_a, derived_a) = no129is_subclass_of( STRING:derived_a, derived_a) = no130is_subclass_of( STRING:derived_a, derived_a,false) = no131>>> With Undefined132is_a( STRING:undefB, derived_a,true) = no133is_a( STRING:undefB, derived_a) = no134is_subclass_of( STRING:undefB, derived_a,false) = no135is_subclass_of( STRING:undefB, derived_a) = no136>>> With Defined class137is_a( OBJECT:derived_a, if_a) = yes138is_a( STRING:derived_a, if_a) = no139is_a( STRING:derived_a, if_a, true) = yes140is_subclass_of( OBJECT:derived_a, if_a) = yes141is_subclass_of( STRING:derived_a, if_a) = yes142is_subclass_of( STRING:derived_a, if_a,false) = no143>>> With Undefined144is_a( STRING:undefB, if_a,true) = no145is_a( STRING:undefB, if_a) = no146is_subclass_of( STRING:undefB, if_a,false) = no147is_subclass_of( STRING:undefB, if_a) = no148>>> With Defined class149is_a( OBJECT:derived_a, undefA) = no150is_a( STRING:derived_a, undefA) = no151is_a( STRING:derived_a, undefA, true) = no152is_subclass_of( OBJECT:derived_a, undefA) = no153is_subclass_of( STRING:derived_a, undefA) = no154is_subclass_of( STRING:derived_a, undefA,false) = no155>>> With Undefined156is_a( STRING:undefB, undefA,true) = no157is_a( STRING:undefB, undefA) = no158is_subclass_of( STRING:undefB, undefA,false) = no159is_subclass_of( STRING:undefB, undefA) = no160NOW WITH AUTOLOAD161>>> With Defined class162is_a( OBJECT:base, base) = yes163is_a( STRING:base, base) = no164is_a( STRING:base, base, true) = yes165is_subclass_of( OBJECT:base, base) = no166is_subclass_of( STRING:base, base) = no167is_subclass_of( STRING:base, base,false) = no168>>> With Undefined169>>>> In autoload: string(6) "undefB"170is_a( STRING:undefB, base,true) = no171is_a( STRING:undefB, base) = no172is_subclass_of( STRING:undefB, base,false) = no173>>>> In autoload: string(6) "undefB"174is_subclass_of( STRING:undefB, base) = no175>>> With Defined class176is_a( OBJECT:base, derived_a) = no177is_a( STRING:base, derived_a) = no178is_a( STRING:base, derived_a, true) = no179is_subclass_of( OBJECT:base, derived_a) = no180is_subclass_of( STRING:base, derived_a) = no181is_subclass_of( STRING:base, derived_a,false) = no182>>> With Undefined183>>>> In autoload: string(6) "undefB"184is_a( STRING:undefB, derived_a,true) = no185is_a( STRING:undefB, derived_a) = no186is_subclass_of( STRING:undefB, derived_a,false) = no187>>>> In autoload: string(6) "undefB"188is_subclass_of( STRING:undefB, derived_a) = no189>>> With Defined class190is_a( OBJECT:base, if_a) = no191is_a( STRING:base, if_a) = no192is_a( STRING:base, if_a, true) = no193is_subclass_of( OBJECT:base, if_a) = no194is_subclass_of( STRING:base, if_a) = no195is_subclass_of( STRING:base, if_a,false) = no196>>> With Undefined197>>>> In autoload: string(6) "undefB"198is_a( STRING:undefB, if_a,true) = no199is_a( STRING:undefB, if_a) = no200is_subclass_of( STRING:undefB, if_a,false) = no201>>>> In autoload: string(6) "undefB"202is_subclass_of( STRING:undefB, if_a) = no203>>> With Defined class204is_a( OBJECT:base, undefA) = no205is_a( STRING:base, undefA) = no206is_a( STRING:base, undefA, true) = no207is_subclass_of( OBJECT:base, undefA) = no208is_subclass_of( STRING:base, undefA) = no209is_subclass_of( STRING:base, undefA,false) = no210>>> With Undefined211>>>> In autoload: string(6) "undefB"212is_a( STRING:undefB, undefA,true) = no213is_a( STRING:undefB, undefA) = no214is_subclass_of( STRING:undefB, undefA,false) = no215>>>> In autoload: string(6) "undefB"216is_subclass_of( STRING:undefB, undefA) = no217>>> With Defined class218is_a( OBJECT:derived_a, base) = yes219is_a( STRING:derived_a, base) = no220is_a( STRING:derived_a, base, true) = yes221is_subclass_of( OBJECT:derived_a, base) = yes222is_subclass_of( STRING:derived_a, base) = yes223is_subclass_of( STRING:derived_a, base,false) = no224>>> With Undefined225>>>> In autoload: string(6) "undefB"226is_a( STRING:undefB, base,true) = no227is_a( STRING:undefB, base) = no228is_subclass_of( STRING:undefB, base,false) = no229>>>> In autoload: string(6) "undefB"230is_subclass_of( STRING:undefB, base) = no231>>> With Defined class232is_a( OBJECT:derived_a, derived_a) = yes233is_a( STRING:derived_a, derived_a) = no234is_a( STRING:derived_a, derived_a, true) = yes235is_subclass_of( OBJECT:derived_a, derived_a) = no236is_subclass_of( STRING:derived_a, derived_a) = no237is_subclass_of( STRING:derived_a, derived_a,false) = no238>>> With Undefined239>>>> In autoload: string(6) "undefB"240is_a( STRING:undefB, derived_a,true) = no241is_a( STRING:undefB, derived_a) = no242is_subclass_of( STRING:undefB, derived_a,false) = no243>>>> In autoload: string(6) "undefB"244is_subclass_of( STRING:undefB, derived_a) = no245>>> With Defined class246is_a( OBJECT:derived_a, if_a) = yes247is_a( STRING:derived_a, if_a) = no248is_a( STRING:derived_a, if_a, true) = yes249is_subclass_of( OBJECT:derived_a, if_a) = yes250is_subclass_of( STRING:derived_a, if_a) = yes251is_subclass_of( STRING:derived_a, if_a,false) = no252>>> With Undefined253>>>> In autoload: string(6) "undefB"254is_a( STRING:undefB, if_a,true) = no255is_a( STRING:undefB, if_a) = no256is_subclass_of( STRING:undefB, if_a,false) = no257>>>> In autoload: string(6) "undefB"258is_subclass_of( STRING:undefB, if_a) = no259>>> With Defined class260is_a( OBJECT:derived_a, undefA) = no261is_a( STRING:derived_a, undefA) = no262is_a( STRING:derived_a, undefA, true) = no263is_subclass_of( OBJECT:derived_a, undefA) = no264is_subclass_of( STRING:derived_a, undefA) = no265is_subclass_of( STRING:derived_a, undefA,false) = no266>>> With Undefined267>>>> In autoload: string(6) "undefB"268is_a( STRING:undefB, undefA,true) = no269is_a( STRING:undefB, undefA) = no270is_subclass_of( STRING:undefB, undefA,false) = no271>>>> In autoload: string(6) "undefB"272is_subclass_of( STRING:undefB, undefA) = no273>>> With Defined class274is_a( OBJECT:derived_b, base) = yes275is_a( STRING:derived_b, base) = no276is_a( STRING:derived_b, base, true) = yes277is_subclass_of( OBJECT:derived_b, base) = yes278is_subclass_of( STRING:derived_b, base) = yes279is_subclass_of( STRING:derived_b, base,false) = no280>>> With Undefined281>>>> In autoload: string(6) "undefB"282is_a( STRING:undefB, base,true) = no283is_a( STRING:undefB, base) = no284is_subclass_of( STRING:undefB, base,false) = no285>>>> In autoload: string(6) "undefB"286is_subclass_of( STRING:undefB, base) = no287>>> With Defined class288is_a( OBJECT:derived_b, derived_a) = no289is_a( STRING:derived_b, derived_a) = no290is_a( STRING:derived_b, derived_a, true) = no291is_subclass_of( OBJECT:derived_b, derived_a) = no292is_subclass_of( STRING:derived_b, derived_a) = no293is_subclass_of( STRING:derived_b, derived_a,false) = no294>>> With Undefined295>>>> In autoload: string(6) "undefB"296is_a( STRING:undefB, derived_a,true) = no297is_a( STRING:undefB, derived_a) = no298is_subclass_of( STRING:undefB, derived_a,false) = no299>>>> In autoload: string(6) "undefB"300is_subclass_of( STRING:undefB, derived_a) = no301>>> With Defined class302is_a( OBJECT:derived_b, if_a) = yes303is_a( STRING:derived_b, if_a) = no304is_a( STRING:derived_b, if_a, true) = yes305is_subclass_of( OBJECT:derived_b, if_a) = yes306is_subclass_of( STRING:derived_b, if_a) = yes307is_subclass_of( STRING:derived_b, if_a,false) = no308>>> With Undefined309>>>> In autoload: string(6) "undefB"310is_a( STRING:undefB, if_a,true) = no311is_a( STRING:undefB, if_a) = no312is_subclass_of( STRING:undefB, if_a,false) = no313>>>> In autoload: string(6) "undefB"314is_subclass_of( STRING:undefB, if_a) = no315>>> With Defined class316is_a( OBJECT:derived_b, undefA) = no317is_a( STRING:derived_b, undefA) = no318is_a( STRING:derived_b, undefA, true) = no319is_subclass_of( OBJECT:derived_b, undefA) = no320is_subclass_of( STRING:derived_b, undefA) = no321is_subclass_of( STRING:derived_b, undefA,false) = no322>>> With Undefined323>>>> In autoload: string(6) "undefB"324is_a( STRING:undefB, undefA,true) = no325is_a( STRING:undefB, undefA) = no326is_subclass_of( STRING:undefB, undefA,false) = no327>>>> In autoload: string(6) "undefB"328is_subclass_of( STRING:undefB, undefA) = no...

Full Screen

Full Screen

AFError+AlamofireTests.swift

Source:AFError+AlamofireTests.swift Github

copy

Full Screen

2// AFError+AlamofireTests.swift3//4// Copyright (c) 2014-2018 Alamofire Software Foundation (http://alamofire.org/)5//6// Permission is hereby granted, free of charge, to any person obtaining a copy7// of this software and associated documentation files (the "Software"), to deal8// in the Software without restriction, including without limitation the rights9// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell10// copies of the Software, and to permit persons to whom the Software is11// furnished to do so, subject to the following conditions:12//13// The above copyright notice and this permission notice shall be included in14// all copies or substantial portions of the Software.15//16// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR17// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,18// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE19// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER20// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,21// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN22// THE SOFTWARE.23//24import Alamofire25extension AFError {26 // ParameterEncodingFailureReason27 var isMissingURLFailed: Bool {28 if case let .parameterEncodingFailed(reason) = self, reason.isMissingURL { return true }29 return false30 }31 var isJSONEncodingFailed: Bool {32 if case let .parameterEncodingFailed(reason) = self, reason.isJSONEncodingFailed { return true }33 return false34 }35 // MultipartEncodingFailureReason36 var isBodyPartURLInvalid: Bool {37 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartURLInvalid { return true }38 return false39 }40 var isBodyPartFilenameInvalid: Bool {41 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFilenameInvalid { return true }42 return false43 }44 var isBodyPartFileNotReachable: Bool {45 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileNotReachable { return true }46 return false47 }48 var isBodyPartFileNotReachableWithError: Bool {49 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileNotReachableWithError { return true }50 return false51 }52 var isBodyPartFileIsDirectory: Bool {53 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileIsDirectory { return true }54 return false55 }56 var isBodyPartFileSizeNotAvailable: Bool {57 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileSizeNotAvailable { return true }58 return false59 }60 var isBodyPartFileSizeQueryFailedWithError: Bool {61 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileSizeQueryFailedWithError { return true }62 return false63 }64 var isBodyPartInputStreamCreationFailed: Bool {65 if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartInputStreamCreationFailed { return true }66 return false67 }68 var isOutputStreamCreationFailed: Bool {69 if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamCreationFailed { return true }70 return false71 }72 var isOutputStreamFileAlreadyExists: Bool {73 if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamFileAlreadyExists { return true }74 return false75 }76 var isOutputStreamURLInvalid: Bool {77 if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamURLInvalid { return true }78 return false79 }80 var isOutputStreamWriteFailed: Bool {81 if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamWriteFailed { return true }82 return false83 }84 var isInputStreamReadFailed: Bool {85 if case let .multipartEncodingFailed(reason) = self, reason.isInputStreamReadFailed { return true }86 return false87 }88 // ResponseSerializationFailureReason89 var isInputDataNilOrZeroLength: Bool {90 if case let .responseSerializationFailed(reason) = self, reason.isInputDataNilOrZeroLength { return true }91 return false92 }93 var isInputFileNil: Bool {94 if case let .responseSerializationFailed(reason) = self, reason.isInputFileNil { return true }95 return false96 }97 var isInputFileReadFailed: Bool {98 if case let .responseSerializationFailed(reason) = self, reason.isInputFileReadFailed { return true }99 return false100 }101 var isStringSerializationFailed: Bool {102 if case let .responseSerializationFailed(reason) = self, reason.isStringSerializationFailed { return true }103 return false104 }105 var isJSONSerializationFailed: Bool {106 if case let .responseSerializationFailed(reason) = self, reason.isJSONSerializationFailed { return true }107 return false108 }109 var isJSONDecodingFailed: Bool {110 if case let .responseSerializationFailed(reason) = self, reason.isDecodingFailed { return true }111 return false112 }113 // ResponseValidationFailureReason114 var isDataFileNil: Bool {115 if case let .responseValidationFailed(reason) = self, reason.isDataFileNil { return true }116 return false117 }118 var isDataFileReadFailed: Bool {119 if case let .responseValidationFailed(reason) = self, reason.isDataFileReadFailed { return true }120 return false121 }122 var isMissingContentType: Bool {123 if case let .responseValidationFailed(reason) = self, reason.isMissingContentType { return true }124 return false125 }126 var isUnacceptableContentType: Bool {127 if case let .responseValidationFailed(reason) = self, reason.isUnacceptableContentType { return true }128 return false129 }130 var isUnacceptableStatusCode: Bool {131 if case let .responseValidationFailed(reason) = self, reason.isUnacceptableStatusCode { return true }132 return false133 }134}135// MARK: -136extension AFError.ParameterEncodingFailureReason {137 var isMissingURL: Bool {138 if case .missingURL = self { return true }139 return false140 }141 var isJSONEncodingFailed: Bool {142 if case .jsonEncodingFailed = self { return true }143 return false144 }145}146// MARK: -147extension AFError.MultipartEncodingFailureReason {148 var isBodyPartURLInvalid: Bool {149 if case .bodyPartURLInvalid = self { return true }150 return false151 }152 var isBodyPartFilenameInvalid: Bool {153 if case .bodyPartFilenameInvalid = self { return true }154 return false155 }156 var isBodyPartFileNotReachable: Bool {157 if case .bodyPartFileNotReachable = self { return true }158 return false159 }160 var isBodyPartFileNotReachableWithError: Bool {161 if case .bodyPartFileNotReachableWithError = self { return true }162 return false163 }164 var isBodyPartFileIsDirectory: Bool {165 if case .bodyPartFileIsDirectory = self { return true }166 return false167 }168 var isBodyPartFileSizeNotAvailable: Bool {169 if case .bodyPartFileSizeNotAvailable = self { return true }170 return false171 }172 var isBodyPartFileSizeQueryFailedWithError: Bool {173 if case .bodyPartFileSizeQueryFailedWithError = self { return true }174 return false175 }176 var isBodyPartInputStreamCreationFailed: Bool {177 if case .bodyPartInputStreamCreationFailed = self { return true }178 return false179 }180 var isOutputStreamCreationFailed: Bool {181 if case .outputStreamCreationFailed = self { return true }182 return false183 }184 var isOutputStreamFileAlreadyExists: Bool {185 if case .outputStreamFileAlreadyExists = self { return true }186 return false187 }188 var isOutputStreamURLInvalid: Bool {189 if case .outputStreamURLInvalid = self { return true }190 return false191 }192 var isOutputStreamWriteFailed: Bool {193 if case .outputStreamWriteFailed = self { return true }194 return false195 }196 var isInputStreamReadFailed: Bool {197 if case .inputStreamReadFailed = self { return true }198 return false199 }200}201// MARK: -202extension AFError.ResponseSerializationFailureReason {203 var isInputDataNilOrZeroLength: Bool {204 if case .inputDataNilOrZeroLength = self { return true }205 return false206 }207 var isInputFileNil: Bool {208 if case .inputFileNil = self { return true }209 return false210 }211 var isInputFileReadFailed: Bool {212 if case .inputFileReadFailed = self { return true }213 return false214 }215 var isStringSerializationFailed: Bool {216 if case .stringSerializationFailed = self { return true }217 return false218 }219 var isJSONSerializationFailed: Bool {220 if case .jsonSerializationFailed = self { return true }221 return false222 }223 var isDecodingFailed: Bool {224 if case .decodingFailed = self { return true }225 return false226 }227}228// MARK: -229extension AFError.ResponseValidationFailureReason {230 var isDataFileNil: Bool {231 if case .dataFileNil = self { return true }232 return false233 }234 var isDataFileReadFailed: Bool {235 if case .dataFileReadFailed = self { return true }236 return false237 }238 var isMissingContentType: Bool {239 if case .missingContentType = self { return true }240 return false241 }242 var isUnacceptableContentType: Bool {243 if case .unacceptableContentType = self { return true }244 return false245 }246 var isUnacceptableStatusCode: Bool {247 if case .unacceptableStatusCode = self { return true }248 return false249 }250}251// MARK: -252extension AFError.ServerTrustFailureReason {253 var isNoRequiredEvaluator: Bool {254 if case .noRequiredEvaluator = self { return true }255 return false256 }257 var isNoCertificatesFound: Bool {258 if case .noCertificatesFound = self { return true }259 return false260 }261 var isNoPublicKeysFound: Bool {262 if case .noPublicKeysFound = self { return true }263 return false264 }265 var isPolicyApplicationFailed: Bool {266 if case .policyApplicationFailed = self { return true }267 return false268 }269 var isRevocationPolicyCreationFailed: Bool {270 if case .revocationPolicyCreationFailed = self { return true }271 return false272 }273 var isDefaultEvaluationFailed: Bool {274 if case .defaultEvaluationFailed = self { return true }275 return false276 }277 var isHostValidationFailed: Bool {278 if case .hostValidationFailed = self { return true }279 return false280 }281 var isRevocationCheckFailed: Bool {282 if case .revocationCheckFailed = self { return true }283 return false284 }285 var isCertificatePinningFailed: Bool {286 if case .certificatePinningFailed = self { return true }287 return false288 }289 var isPublicKeyPinningFailed: Bool {290 if case .publicKeyPinningFailed = self { return true }291 return false292 }293}...

Full Screen

Full Screen

ReflectionMethod_basic1.phpt

Source:ReflectionMethod_basic1.phpt Github

copy

Full Screen

...5function reflectMethod($class, $method) {6 $methodInfo = new ReflectionMethod($class, $method);7 echo "**********************************\n";8 echo "Reflecting on method $class::$method()\n\n";9 echo "\nisFinal():\n";10 var_dump($methodInfo->isFinal());11 echo "\nisAbstract():\n";12 var_dump($methodInfo->isAbstract());13 echo "\nisPublic():\n";14 var_dump($methodInfo->isPublic());15 echo "\nisPrivate():\n";16 var_dump($methodInfo->isPrivate());17 echo "\nisProtected():\n";18 var_dump($methodInfo->isProtected());19 echo "\nisStatic():\n";20 var_dump($methodInfo->isStatic());21 echo "\nisConstructor():\n";22 var_dump($methodInfo->isConstructor());23 echo "\nisDestructor():\n";24 var_dump($methodInfo->isDestructor());25 echo "\n**********************************\n";26}27class TestClass28{29 public function foo() {30 echo "Called foo()\n";31 }32 static function stat() {33 echo "Called stat()\n";34 }35 private function priv() {36 echo "Called priv()\n";37 }38 protected function prot() {}39 public function __destruct() {}40}41class DerivedClass extends TestClass {}42interface TestInterface {43 public function int();44 public function __construct($arg);45 public function __destruct();46}47trait TestTrait {48 public abstract function __construct();49 public function __destruct() {50 }51}52reflectMethod("DerivedClass", "foo");53reflectMethod("TestClass", "stat");54reflectMethod("TestClass", "priv");55reflectMethod("TestClass", "prot");56reflectMethod("DerivedClass", "prot");57reflectMethod("TestInterface", "int");58reflectMethod("ReflectionProperty", "__construct");59reflectMethod("TestClass", "__destruct");60reflectMethod("TestInterface", "__construct");61reflectMethod("TestInterface", "__destruct");62reflectMethod("TestTrait", "__construct");63reflectMethod("TestTrait", "__destruct");64?>65--EXPECT--66**********************************67Reflecting on method DerivedClass::foo()68isFinal():69bool(false)70isAbstract():71bool(false)72isPublic():73bool(true)74isPrivate():75bool(false)76isProtected():77bool(false)78isStatic():79bool(false)80isConstructor():81bool(false)82isDestructor():83bool(false)84**********************************85**********************************86Reflecting on method TestClass::stat()87isFinal():88bool(false)89isAbstract():90bool(false)91isPublic():92bool(true)93isPrivate():94bool(false)95isProtected():96bool(false)97isStatic():98bool(true)99isConstructor():100bool(false)101isDestructor():102bool(false)103**********************************104**********************************105Reflecting on method TestClass::priv()106isFinal():107bool(false)108isAbstract():109bool(false)110isPublic():111bool(false)112isPrivate():113bool(true)114isProtected():115bool(false)116isStatic():117bool(false)118isConstructor():119bool(false)120isDestructor():121bool(false)122**********************************123**********************************124Reflecting on method TestClass::prot()125isFinal():126bool(false)127isAbstract():128bool(false)129isPublic():130bool(false)131isPrivate():132bool(false)133isProtected():134bool(true)135isStatic():136bool(false)137isConstructor():138bool(false)139isDestructor():140bool(false)141**********************************142**********************************143Reflecting on method DerivedClass::prot()144isFinal():145bool(false)146isAbstract():147bool(false)148isPublic():149bool(false)150isPrivate():151bool(false)152isProtected():153bool(true)154isStatic():155bool(false)156isConstructor():157bool(false)158isDestructor():159bool(false)160**********************************161**********************************162Reflecting on method TestInterface::int()163isFinal():164bool(false)165isAbstract():166bool(true)167isPublic():168bool(true)169isPrivate():170bool(false)171isProtected():172bool(false)173isStatic():174bool(false)175isConstructor():176bool(false)177isDestructor():178bool(false)179**********************************180**********************************181Reflecting on method ReflectionProperty::__construct()182isFinal():183bool(false)184isAbstract():185bool(false)186isPublic():187bool(true)188isPrivate():189bool(false)190isProtected():191bool(false)192isStatic():193bool(false)194isConstructor():195bool(true)196isDestructor():197bool(false)198**********************************199**********************************200Reflecting on method TestClass::__destruct()201isFinal():202bool(false)203isAbstract():204bool(false)205isPublic():206bool(true)207isPrivate():208bool(false)209isProtected():210bool(false)211isStatic():212bool(false)213isConstructor():214bool(false)215isDestructor():216bool(true)217**********************************218**********************************219Reflecting on method TestInterface::__construct()220isFinal():221bool(false)222isAbstract():223bool(true)224isPublic():225bool(true)226isPrivate():227bool(false)228isProtected():229bool(false)230isStatic():231bool(false)232isConstructor():233bool(true)234isDestructor():235bool(false)236**********************************237**********************************238Reflecting on method TestInterface::__destruct()239isFinal():240bool(false)241isAbstract():242bool(true)243isPublic():244bool(true)245isPrivate():246bool(false)247isProtected():248bool(false)249isStatic():250bool(false)251isConstructor():252bool(false)253isDestructor():254bool(true)255**********************************256**********************************257Reflecting on method TestTrait::__construct()258isFinal():259bool(false)260isAbstract():261bool(true)262isPublic():263bool(true)264isPrivate():265bool(false)266isProtected():267bool(false)268isStatic():269bool(false)270isConstructor():271bool(true)272isDestructor():273bool(false)274**********************************275**********************************276Reflecting on method TestTrait::__destruct()277isFinal():278bool(false)279isAbstract():280bool(false)281isPublic():282bool(true)283isPrivate():284bool(false)285isProtected():286bool(false)287isStatic():288bool(false)289isConstructor():290bool(false)291isDestructor():292bool(true)293**********************************...

Full Screen

Full Screen

named.go

Source:named.go Github

copy

Full Screen

1// run2// Copyright 2009 The Go Authors. All rights reserved.3// Use of this source code is governed by a BSD-style4// license that can be found in the LICENSE file.5// Test that basic operations on named types are valid6// and preserve the type.7package main8type Array [10]byte9type Bool bool10type Chan chan int11type Float float3212type Int int13type Map map[int]byte14type Slice []byte15type String string16// Calling these functions checks at compile time that the argument17// can be converted implicitly to (used as) the given type.18func asArray(Array) {}19func asBool(Bool) {}20func asChan(Chan) {}21func asFloat(Float) {}22func asInt(Int) {}23func asMap(Map) {}24func asSlice(Slice) {}25func asString(String) {}26func (Map) M() {}27// These functions check at run time that the default type28// (in the absence of any implicit conversion hints)29// is the given type.30func isArray(x interface{}) { _ = x.(Array) }31func isBool(x interface{}) { _ = x.(Bool) }32func isChan(x interface{}) { _ = x.(Chan) }33func isFloat(x interface{}) { _ = x.(Float) }34func isInt(x interface{}) { _ = x.(Int) }35func isMap(x interface{}) { _ = x.(Map) }36func isSlice(x interface{}) { _ = x.(Slice) }37func isString(x interface{}) { _ = x.(String) }38func main() {39 var (40 a Array41 b Bool = true42 c Chan = make(Chan)43 f Float = 144 i Int = 145 m Map = make(Map)46 slice Slice = make(Slice, 10)47 str String = "hello"48 )49 asArray(a)50 isArray(a)51 asArray(*&a)52 isArray(*&a)53 asArray(Array{})54 isArray(Array{})55 asBool(b)56 isBool(b)57 asBool(!b)58 isBool(!b)59 asBool(true)60 asBool(*&b)61 isBool(*&b)62 asBool(Bool(true))63 isBool(Bool(true))64 asChan(c)65 isChan(c)66 asChan(make(Chan))67 isChan(make(Chan))68 asChan(*&c)69 isChan(*&c)70 asChan(Chan(nil))71 isChan(Chan(nil))72 asFloat(f)73 isFloat(f)74 asFloat(-f)75 isFloat(-f)76 asFloat(+f)77 isFloat(+f)78 asFloat(f + 1)79 isFloat(f + 1)80 asFloat(1 + f)81 isFloat(1 + f)82 asFloat(f + f)83 isFloat(f + f)84 f++85 f += 286 asFloat(f - 1)87 isFloat(f - 1)88 asFloat(1 - f)89 isFloat(1 - f)90 asFloat(f - f)91 isFloat(f - f)92 f--93 f -= 294 asFloat(f * 2.5)95 isFloat(f * 2.5)96 asFloat(2.5 * f)97 isFloat(2.5 * f)98 asFloat(f * f)99 isFloat(f * f)100 f *= 4101 asFloat(f / 2.5)102 isFloat(f / 2.5)103 asFloat(2.5 / f)104 isFloat(2.5 / f)105 asFloat(f / f)106 isFloat(f / f)107 f /= 4108 asFloat(f)109 isFloat(f)110 f = 5111 asFloat(*&f)112 isFloat(*&f)113 asFloat(234)114 asFloat(Float(234))115 isFloat(Float(234))116 asFloat(1.2)117 asFloat(Float(i))118 isFloat(Float(i))119 asInt(i)120 isInt(i)121 asInt(-i)122 isInt(-i)123 asInt(^i)124 isInt(^i)125 asInt(+i)126 isInt(+i)127 asInt(i + 1)128 isInt(i + 1)129 asInt(1 + i)130 isInt(1 + i)131 asInt(i + i)132 isInt(i + i)133 i++134 i += 1135 asInt(i - 1)136 isInt(i - 1)137 asInt(1 - i)138 isInt(1 - i)139 asInt(i - i)140 isInt(i - i)141 i--142 i -= 1143 asInt(i * 2)144 isInt(i * 2)145 asInt(2 * i)146 isInt(2 * i)147 asInt(i * i)148 isInt(i * i)149 i *= 2150 asInt(i / 5)151 isInt(i / 5)152 asInt(5 / i)153 isInt(5 / i)154 asInt(i / i)155 isInt(i / i)156 i /= 2157 asInt(i % 5)158 isInt(i % 5)159 asInt(5 % i)160 isInt(5 % i)161 asInt(i % i)162 isInt(i % i)163 i %= 2164 asInt(i & 5)165 isInt(i & 5)166 asInt(5 & i)167 isInt(5 & i)168 asInt(i & i)169 isInt(i & i)170 i &= 2171 asInt(i &^ 5)172 isInt(i &^ 5)173 asInt(5 &^ i)174 isInt(5 &^ i)175 asInt(i &^ i)176 isInt(i &^ i)177 i &^= 2178 asInt(i | 5)179 isInt(i | 5)180 asInt(5 | i)181 isInt(5 | i)182 asInt(i | i)183 isInt(i | i)184 i |= 2185 asInt(i ^ 5)186 isInt(i ^ 5)187 asInt(5 ^ i)188 isInt(5 ^ i)189 asInt(i ^ i)190 isInt(i ^ i)191 i ^= 2192 asInt(i << 4)193 isInt(i << 4)194 i <<= 2195 asInt(i >> 4)196 isInt(i >> 4)197 i >>= 2198 asInt(i)199 isInt(i)200 asInt(0)201 asInt(Int(0))202 isInt(Int(0))203 i = 10204 asInt(*&i)205 isInt(*&i)206 asInt(23)207 asInt(Int(f))208 isInt(Int(f))209 asMap(m)210 isMap(m)211 asMap(nil)212 m = nil213 asMap(make(Map))214 isMap(make(Map))215 asMap(*&m)216 isMap(*&m)217 asMap(Map(nil))218 isMap(Map(nil))219 asMap(Map{})220 isMap(Map{})221 asSlice(slice)222 isSlice(slice)223 asSlice(make(Slice, 5))224 isSlice(make(Slice, 5))225 asSlice([]byte{1, 2, 3})226 asSlice([]byte{1, 2, 3}[0:2])227 asSlice(slice[0:4])228 isSlice(slice[0:4])229 asSlice(slice[3:8])230 isSlice(slice[3:8])231 asSlice(nil)232 asSlice(Slice(nil))233 isSlice(Slice(nil))234 slice = nil235 asSlice(Slice{1, 2, 3})236 isSlice(Slice{1, 2, 3})237 asSlice(Slice{})238 isSlice(Slice{})239 asSlice(*&slice)240 isSlice(*&slice)241 asString(str)242 isString(str)243 asString(str + "a")244 isString(str + "a")245 asString("a" + str)246 isString("a" + str)247 asString(str + str)248 isString(str + str)249 str += "a"250 str += str251 asString(String('a'))252 isString(String('a'))253 asString(String([]byte(slice)))254 isString(String([]byte(slice)))255 asString(String([]byte(nil)))256 isString(String([]byte(nil)))257 asString("hello")258 asString(String("hello"))259 isString(String("hello"))260 str = "hello"261 isString(str)262 asString(*&str)263 isString(*&str)264}...

Full Screen

Full Screen

WaterViewController.swift

Source:WaterViewController.swift Github

copy

Full Screen

...47 removeglassfunc()48 }49 50 private func removeglassfunc(){51 cup1.isHidden = true;52 53 }54 55 56 @IBOutlet weak var number: UILabel!57 override func viewDidLoad() {58 super.viewDidLoad()59 cup1.isHidden = true;60 cup2.isHidden = true;61 cup3.isHidden = true;62 cup4.isHidden = true;63 cup5.isHidden = true;64 cup6.isHidden = true;65 cup7.isHidden = true;66 cup9.isHidden = true;67 number.isHidden = true;68 removeoutlet.isHidden = true;69 }70 private func addWater(){71 if (number.text == "0") {72 cup1.isHidden = false;73 number.text="1";74 removeoutlet.isHidden = false75 }76 else if (number.text == "1") {77 cup2.isHidden = false;78 number.text="2";79 removeoutlet.isHidden = false80 }81 82 else if (number.text == "2") {83 cup3.isHidden = false;84 number.text="3";85 }86 else if (number.text == "3") {87 cup4.isHidden = false;88 number.text="4";89 }90 else if (number.text == "4") {91 cup5.isHidden = false;92 number.text="5";93 }94 else if (number.text == "5") {95 cup6.isHidden = false;96 number.text="6";97 }98 else if (number.text == "6") {99 cup7.isHidden = false;100 number.text="7";101 }102 else {103 cup9.isHidden = false;104 number.isHidden = false;105 number.text="Congratulations you made it";106 }107 108 109 }110 111 112 override func didReceiveMemoryWarning() {113 super.didReceiveMemoryWarning()114 // Dispose of any resources that can be recreated.115 }116 117 118 119 120}...

Full Screen

Full Screen

is

Using AI Code Generation

copy

Full Screen

1import Foundation2print("Hello, World!")3let quickSort = QuickSort()4quickSort.sort()5let mergeSort = MergeSort()6mergeSort.sort()7let bubbleSort = BubbleSort()8bubbleSort.sort()9let insertionSort = InsertionSort()10insertionSort.sort()11let selectionSort = SelectionSort()12selectionSort.sort()

Full Screen

Full Screen

is

Using AI Code Generation

copy

Full Screen

1import Foundation2class QuickSort {3 func sort(_ array: [Int]) -> [Int] {4 if array.count <= 1 {5 }6 let less = array.filter { $0 < pivot }7 let equal = array.filter { $0 == pivot }8 let greater = array.filter { $0 > pivot }9 return sort(less) + equal + sort(greater)10 }11}12import Foundation13class QuickSort {14 func sort(_ array: [Int]) -> [Int] {15 if array.count <= 1 {16 }17 let less = array.filter { $0 < pivot }18 let equal = array.filter { $0 == pivot }19 let greater = array.filter { $0 > pivot }20 return sort(less) + equal + sort(greater)21 }22}23import Foundation24class QuickSort {25 func sort(_ array: [Int]) -> [Int] {26 if array.count <= 1 {27 }28 let less = array.filter { $0 < pivot }29 let equal = array.filter { $0 == pivot }30 let greater = array.filter { $0 > pivot }31 return sort(less) + equal + sort(greater)32 }33}

Full Screen

Full Screen

is

Using AI Code Generation

copy

Full Screen

1func quickSort(a: [Int]) -> [Int] {2 if a.count < 2 {3 }4 let less = a.filter { $0 < pivot }5 let equal = a.filter { $0 == pivot }6 let greater = a.filter { $0 > pivot }7 return quickSort(less) + equal + quickSort(greater)8}9func quickSort(a: [Int]) -> [Int] {10 if a.count < 2 {11 }12 let less = a.filter { $0 < pivot }13 let equal = a.filter { $0 == pivot }14 let greater = a.filter { $0 > pivot }15 return quickSort(less) + equal + quickSort(greater)16}17func quickSort(a: [Int]) -> [Int] {18 if a.count < 2 {19 }20 let less = a.filter { $0 < pivot }21 let equal = a.filter { $0 == pivot }22 let greater = a.filter { $0 > pivot }23 return quickSort(less) + equal + quickSort(greater)24}25func quickSort(a: [Int]) -> [Int] {26 if a.count < 2 {27 }28 let less = a.filter { $0 < pivot }29 let equal = a.filter { $0 == pivot }30 let greater = a.filter { $0 > pivot }31 return quickSort(less) + equal + quickSort(greater)32}33func quickSort(a: [Int]) -> [Int] {34 if a.count < 2 {35 }

Full Screen

Full Screen

is

Using AI Code Generation

copy

Full Screen

1QuickSort.sort(&a)2print(a)3QuickSort.sort(&a)4print(a)5QuickSort.sort(&a)6print(a)7QuickSort.sort(&a)8print(a)9QuickSort.sort(&a)10print(a)11QuickSort.sort(&a)12print(a)13QuickSort.sort(&a)14print(a)15QuickSort.sort(&a)16print(a)17QuickSort.sort(&a)18print(a)19QuickSort.sort(&a)20print(a)21QuickSort.sort(&a)

Full Screen

Full Screen

is

Using AI Code Generation

copy

Full Screen

1var quickSort = QuickSort()2quickSort.sort(&arrayToSort)3var quickSort = QuickSort()4quickSort.sort(&arrayToSort)5var quickSort = QuickSort()6quickSort.sort(&arrayToSort)7var quickSort = QuickSort()8quickSort.sort(&arrayToSort)9var quickSort = QuickSort()10quickSort.sort(&arrayToSort)11var quickSort = QuickSort()12quickSort.sort(&arrayToSort)13var quickSort = QuickSort()14quickSort.sort(&arrayToSort)15var quickSort = QuickSort()16quickSort.sort(&arrayToSort)17var quickSort = QuickSort()18quickSort.sort(&arrayToSort)19var quickSort = QuickSort()20quickSort.sort(&arrayToSort)21var quickSort = QuickSort()

Full Screen

Full Screen

is

Using AI Code Generation

copy

Full Screen

1let quick = QuickSort()2quick.sort(array: array)3let heap = HeapSort()4heap.sort(array: array)5let merge = MergeSort()6merge.sort(array: array)7let insertion = InsertionSort()8insertion.sort(array: array)9let selection = SelectionSort()10selection.sort(array: array)11let bubble = BubbleSort()12bubble.sort(array: array)13let counting = CountingSort()14counting.sort(array: array)

Full Screen

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run Quick automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Most used methods in is

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful