| ofs | hex dump | ascii | 
|---|
| 0000 | 3c 3f 70 68 70 0a 50 68 61 72 3a 3a 6d 61 70 50    68 61 72 28 27 67 65 6e 65 72 61 74 65 2d 70 68 | <?php.Phar::mapPhar('generate-ph | 
| 0020 | 70 74 2e 70 68 61 72 27 29 3b 0a 72 65 71 75 69    72 65 20 27 70 68 61 72 3a 2f 2f 67 65 6e 65 72 | pt.phar');.require.'phar://gener | 
| 0040 | 61 74 65 2d 70 68 70 74 2e 70 68 61 72 2f 67 65    6e 65 72 61 74 65 2d 70 68 70 74 2e 70 68 70 27 | ate-phpt.phar/generate-phpt.php' | 
| 0060 | 3b 0a 5f 5f 48 41 4c 54 5f 43 4f 4d 50 49 4c 45    52 28 29 3b 20 3f 3e 0d 0a 0a 0d 00 00 3a 00 00 | ;.__HALT_COMPILER();.?>......:.. | 
| 0080 | 00 11 00 00 00 01 00 00 00 00 00 00 00 00 00 11    00 00 00 67 65 6e 65 72 61 74 65 2d 70 68 70 74 | ...................generate-phpt | 
| 00a0 | 2e 70 68 70 35 0b 00 00 a5 9e 02 4a 35 0b 00 00    c1 3b da f3 b6 01 00 00 00 00 00 00 0e 00 00 00 | .php5......J5....;.............. | 
| 00c0 | 67 74 46 75 6e 63 74 69 6f 6e 2e 70 68 70 9f 03    00 00 a5 9e 02 4a 9f 03 00 00 65 ec 47 68 b6 01 | gtFunction.php.......J....e.Gh.. | 
| 00e0 | 00 00 00 00 00 00 0a 00 00 00 67 74 54 65 78 74    2e 70 68 70 aa 01 00 00 a5 9e 02 4a aa 01 00 00 | ..........gtText.php.......J.... | 
| 0100 | a1 d3 59 a4 b6 01 00 00 00 00 00 00 0e 00 00 00    67 74 43 6c 61 73 73 4d 61 70 2e 70 68 70 ff 09 | ..Y.............gtClassMap.php.. | 
| 0120 | 00 00 a5 9e 02 4a ff 09 00 00 42 fc c1 b4 b6 01    00 00 00 00 00 00 17 00 00 00 74 65 78 74 73 2f | .....J....B...............texts/ | 
| 0140 | 75 6e 6b 6e 6f 77 6e 4d 65 74 68 6f 64 2e 74 78    74 6c 00 00 00 a5 9e 02 4a 6c 00 00 00 e9 32 8b | unknownMethod.txtl......Jl....2. | 
| 0160 | 5f b6 01 00 00 00 00 00 00 16 00 00 00 74 65 78    74 73 2f 75 6e 6b 6e 6f 77 6e 43 6c 61 73 73 2e | _............texts/unknownClass. | 
| 0180 | 74 78 74 69 00 00 00 a5 9e 02 4a 69 00 00 00 6f    ea 70 8c b6 01 00 00 00 00 00 00 1e 00 00 00 74 | txti......Ji...o.p.............t | 
| 01a0 | 65 78 74 73 2f 74 65 73 74 54 79 70 65 4e 6f 74    53 70 65 63 69 66 69 65 64 2e 74 78 74 32 00 00 | exts/testTypeNotSpecified.txt2.. | 
| 01c0 | 00 a5 9e 02 4a 32 00 00 00 ec 3f 94 1f b6 01 00    00 00 00 00 00 0e 00 00 00 74 65 78 74 73 2f 68 | ....J2....?..............texts/h | 
| 01e0 | 65 6c 70 2e 74 78 74 3f 03 00 00 a5 9e 02 4a 3f    03 00 00 6f 04 8f 92 b6 01 00 00 00 00 00 00 1c | elp.txt?......J?...o............ | 
| 0200 | 00 00 00 74 65 78 74 73 2f 6d 65 74 68 6f 64 4e    6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 74 63 | ...texts/methodNotSpecified.txtc | 
| 0220 | 00 00 00 a5 9e 02 4a 63 00 00 00 01 2a 80 6c b6    01 00 00 00 00 00 00 26 00 00 00 74 65 78 74 73 | ......Jc....*.l........&...texts | 
| 0240 | 2f 66 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f    64 4e 6f 74 53 70 65 63 69 66 69 65 64 2e 74 78 | /functionOrMethodNotSpecified.tx | 
| 0260 | 74 38 00 00 00 a5 9e 02 4a 38 00 00 00 14 a2 81    ab b6 01 00 00 00 00 00 00 19 00 00 00 74 65 78 | t8......J8...................tex | 
| 0280 | 74 73 2f 75 6e 6b 6e 6f 77 6e 46 75 6e 63 74 69    6f 6e 2e 74 78 74 72 00 00 00 a5 9e 02 4a 72 00 | ts/unknownFunction.txtr......Jr. | 
| 02a0 | 00 00 13 1c c8 99 b6 01 00 00 00 00 00 00 11 00    00 00 67 74 43 6f 64 65 53 6e 69 70 70 65 74 2e | ..................gtCodeSnippet. | 
| 02c0 | 70 68 70 71 05 00 00 a5 9e 02 4a 71 05 00 00 d7    3e e3 31 b6 01 00 00 00 00 00 00 0e 00 00 00 67 | phpq......Jq....>.1............g | 
| 02e0 | 74 41 75 74 6f 6c 6f 61 64 2e 70 68 70 37 04 00    00 a5 9e 02 4a 37 04 00 00 c1 8a 06 cb b6 01 00 | tAutoload.php7......J7.......... | 
| 0300 | 00 00 00 00 00 1e 00 00 00 73 65 74 75 70 2f 67    74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 | .........setup/gtCommandLineOpti | 
| 0320 | 6f 6e 73 2e 70 68 70 29 07 00 00 a5 9e 02 4a 29    07 00 00 f6 da 7b eb b6 01 00 00 00 00 00 00 29 | ons.php)......J).....{.........) | 
| 0340 | 00 00 00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64    69 74 69 6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 | ...setup/preconditions/gtIsValid | 
| 0360 | 46 75 6e 63 74 69 6f 6e 2e 70 68 70 df 01 00 00    a5 9e 02 4a df 01 00 00 c8 ef fc 74 b6 01 00 00 | Function.php.......J.......t.... | 
| 0380 | 00 00 00 00 2d 00 00 00 73 65 74 75 70 2f 70 72    65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 | ....-...setup/preconditions/gtIs | 
| 03a0 | 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 70    65 2e 70 68 70 70 01 00 00 a5 9e 02 4a 70 01 00 | SpecifiedTestType.phpp......Jp.. | 
| 03c0 | 00 3f a9 53 dc b6 01 00 00 00 00 00 00 2a 00 00    00 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 | .?.S.........*...setup/precondit | 
| 03e0 | 69 6f 6e 73 2f 67 74 49 66 43 6c 61 73 73 48 61    73 4d 65 74 68 6f 64 2e 70 68 70 90 01 00 00 a5 | ions/gtIfClassHasMethod.php..... | 
| 0400 | 9e 02 4a 90 01 00 00 35 81 0a 09 b6 01 00 00 00    00 00 00 35 00 00 00 73 65 74 75 70 2f 70 72 65 | ..J....5...........5...setup/pre | 
| 0420 | 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 53    70 65 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e | conditions/gtIsSpecifiedFunction | 
| 0440 | 4f 72 4d 65 74 68 6f 64 2e 70 68 70 7f 01 00 00    a5 9e 02 4a 7f 01 00 00 0d 6d ea 03 b6 01 00 00 | OrMethod.php.......J.....m...... | 
| 0460 | 00 00 00 00 27 00 00 00 73 65 74 75 70 2f 70 72    65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 73 | ....'...setup/preconditions/gtIs | 
| 0480 | 56 61 6c 69 64 4d 65 74 68 6f 64 2e 70 68 70 32    02 00 00 a5 9e 02 4a 32 02 00 00 b7 8a d0 1b b6 | ValidMethod.php2......J2........ | 
| 04a0 | 01 00 00 00 00 00 00 26 00 00 00 73 65 74 75 70    2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 | .......&...setup/preconditions/g | 
| 04c0 | 74 49 73 56 61 6c 69 64 43 6c 61 73 73 2e 70 68    70 ac 01 00 00 a5 9e 02 4a ac 01 00 00 db a7 71 | tIsValidClass.php.......J......q | 
| 04e0 | b7 b6 01 00 00 00 00 00 00 1c 00 00 00 73 65 74    75 70 2f 67 74 50 72 65 43 6f 6e 64 69 74 69 6f | .............setup/gtPreConditio | 
| 0500 | 6e 4c 69 73 74 2e 70 68 70 72 02 00 00 a5 9e 02    4a 72 02 00 00 1d a3 fb 49 b6 01 00 00 00 00 00 | nList.phpr......Jr......I....... | 
| 0520 | 00 1c 00 00 00 73 65 74 75 70 2f 67 74 4f 70 74    69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2e 70 68 | .....setup/gtOptionalSections.ph | 
| 0540 | 70 81 06 00 00 a5 9e 02 4a 81 06 00 00 91 61 3f    d0 b6 01 00 00 00 00 00 00 2f 00 00 00 73 65 74 | p.......J.....a?........./...set | 
| 0560 | 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74    4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 | up/exceptions/gtMissingArgumentE | 
| 0580 | 78 63 65 70 74 69 6f 6e 2e 70 68 70 4f 00 00 00    a5 9e 02 4a 4f 00 00 00 c2 b4 9f 6b b6 01 00 00 | xception.phpO......JO......k.... | 
| 05a0 | 00 00 00 00 2e 00 00 00 73 65 74 75 70 2f 65 78    63 65 70 74 69 6f 6e 73 2f 67 74 55 6e 6b 6e 6f | ........setup/exceptions/gtUnkno | 
| 05c0 | 77 6e 53 65 63 74 69 6f 6e 45 78 63 65 70 74 69    6f 6e 2e 70 68 70 4a 00 00 00 a5 9e 02 4a 4a 00 | wnSectionException.phpJ......JJ. | 
| 05e0 | 00 00 b0 06 85 00 b6 01 00 00 00 00 00 00 2d 00    00 00 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f | ..............-...setup/exceptio | 
| 0600 | 6e 73 2f 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69    6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 4d | ns/gtUnknownOptionException.phpM | 
| 0620 | 00 00 00 a5 9e 02 4a 4d 00 00 00 9b aa 79 cb b6    01 00 00 00 00 00 00 2e 00 00 00 73 65 74 75 70 | ......JM.....y.............setup | 
| 0640 | 2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69    73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 | /exceptions/gtMissingOptionsExce | 
| 0660 | 70 74 69 6f 6e 2e 70 68 70 4c 00 00 00 a5 9e 02    4a 4c 00 00 00 39 ef 6f 1c b6 01 00 00 00 00 00 | ption.phpL......JL...9.o........ | 
| 0680 | 00 18 00 00 00 73 65 74 75 70 2f 67 74 50 72 65    43 6f 6e 64 69 74 69 6f 6e 2e 70 68 70 b4 00 00 | .....setup/gtPreCondition.php... | 
| 06a0 | 00 a5 9e 02 4a b4 00 00 00 11 41 79 ab b6 01 00    00 00 00 00 00 14 00 00 00 67 74 54 65 73 74 43 | ....J.....Ay.............gtTestC | 
| 06c0 | 61 73 65 57 72 69 74 65 72 2e 70 68 70 da 01 00    00 a5 9e 02 4a da 01 00 00 c3 8b 68 53 b6 01 00 | aseWriter.php.......J......hS... | 
| 06e0 | 00 00 00 00 00 0c 00 00 00 67 74 4d 65 74 68 6f    64 2e 70 68 70 9b 0c 00 00 a5 9e 02 4a 9b 0c 00 | .........gtMethod.php.......J... | 
| 0700 | 00 67 a5 b8 8b b6 01 00 00 00 00 00 00 1b 00 00    00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 63 6f | .g...............codeSnippets/co | 
| 0720 | 6d 6d 65 6e 74 45 6e 64 2e 74 78 74 06 00 00 00    a5 9e 02 4a 06 00 00 00 c5 c4 55 ae b6 01 00 00 | mmentEnd.txt.......J......U..... | 
| 0740 | 00 00 00 00 1a 00 00 00 63 6f 64 65 53 6e 69 70    70 65 74 73 2f 73 6b 69 70 69 66 77 69 6e 2e 74 | ........codeSnippets/skipifwin.t | 
| 0760 | 78 74 57 00 00 00 a5 9e 02 4a 57 00 00 00 3f 80    99 12 b6 01 00 00 00 00 00 00 1d 00 00 00 63 6f | xtW......JW...?...............co | 
| 0780 | 64 65 53 6e 69 70 70 65 74 73 2f 63 6f 6d 6d 65    6e 74 53 74 61 72 74 2e 74 78 74 06 00 00 00 a5 | deSnippets/commentStart.txt..... | 
| 07a0 | 9e 02 4a 06 00 00 00 1d 06 6e 40 b6 01 00 00 00    00 00 00 16 00 00 00 63 6f 64 65 53 6e 69 70 70 | ..J......n@............codeSnipp | 
| 07c0 | 65 74 73 2f 66 6c 6f 61 74 2e 74 78 74 c6 00 00    00 a5 9e 02 4a c6 00 00 00 14 43 30 f8 b6 01 00 | ets/float.txt.......J.....C0.... | 
| 07e0 | 00 00 00 00 00 17 00 00 00 63 6f 64 65 53 6e 69    70 70 65 74 73 2f 73 74 72 69 6e 67 2e 74 78 74 | .........codeSnippets/string.txt | 
| 0800 | b4 00 00 00 a5 9e 02 4a b4 00 00 00 06 31 cb e8    b6 01 00 00 00 00 00 00 1a 00 00 00 63 6f 64 65 | .......J.....1..............code | 
| 0820 | 53 6e 69 70 70 65 74 73 2f 6c 6f 6f 70 53 74 61    72 74 2e 74 78 74 26 00 00 00 a5 9e 02 4a 26 00 | Snippets/loopStart.txt&......J&. | 
| 0840 | 00 00 b0 dc ca 95 b6 01 00 00 00 00 00 00 1d 00    00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 | ..................codeSnippets/s | 
| 0860 | 6b 69 70 69 66 6e 6f 74 77 69 6e 2e 74 78 74 58    00 00 00 a5 9e 02 4a 58 00 00 00 a6 35 59 6e b6 | kipifnotwin.txtX......JX....5Yn. | 
| 0880 | 01 00 00 00 00 00 00 16 00 00 00 63 6f 64 65 53    6e 69 70 70 65 74 73 2f 61 72 72 61 79 2e 74 78 | ...........codeSnippets/array.tx | 
| 08a0 | 74 15 01 00 00 a5 9e 02 4a 15 01 00 00 85 47 a3    4a b6 01 00 00 00 00 00 00 1a 00 00 00 63 6f 64 | t.......J.....G.J............cod | 
| 08c0 | 65 53 6e 69 70 70 65 74 73 2f 6c 6f 6f 70 43 6c    6f 73 65 2e 74 78 74 01 00 00 00 a5 9e 02 4a 01 | eSnippets/loopClose.txt.......J. | 
| 08e0 | 00 00 00 0c e2 b6 fc b6 01 00 00 00 00 00 00 18    00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 73 2f | ...................codeSnippets/ | 
| 0900 | 62 6f 6f 6c 65 61 6e 2e 74 78 74 8f 00 00 00 a5    9e 02 4a 8f 00 00 00 7f c5 3f e6 b6 01 00 00 00 | boolean.txt.......J......?...... | 
| 0920 | 00 00 00 1d 00 00 00 63 6f 64 65 53 6e 69 70 70    65 74 73 2f 73 6b 69 70 69 66 6e 6f 74 36 34 62 | .......codeSnippets/skipifnot64b | 
| 0940 | 2e 74 78 74 4a 00 00 00 a5 9e 02 4a 4a 00 00 00    16 d6 70 c5 b6 01 00 00 00 00 00 00 19 00 00 00 | .txtJ......JJ.....p............. | 
| 0960 | 63 6f 64 65 53 6e 69 70 70 65 74 73 2f 73 6b 69    70 69 66 36 34 62 74 78 74 4a 00 00 00 a5 9e 02 | codeSnippets/skipif64btxtJ...... | 
| 0980 | 4a 4a 00 00 00 7c b4 22 cb b6 01 00 00 00 00 00    00 24 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 | JJ...|.".........$...codeSnippet | 
| 09a0 | 73 2f 65 6d 70 74 79 55 6e 73 65 74 55 6e 64 65    66 4e 75 6c 6c 2e 74 78 74 f6 00 00 00 a5 9e 02 | s/emptyUnsetUndefNull.txt....... | 
| 09c0 | 4a f6 00 00 00 21 f7 8c 0e b6 01 00 00 00 00 00    00 17 00 00 00 63 6f 64 65 53 6e 69 70 70 65 74 | J....!...............codeSnippet | 
| 09e0 | 73 2f 6f 62 6a 65 63 74 2e 74 78 74 59 02 00 00    a5 9e 02 4a 59 02 00 00 fb 05 82 7c b6 01 00 00 | s/object.txtY......JY......|.... | 
| 0a00 | 00 00 00 00 14 00 00 00 63 6f 64 65 53 6e 69 70    70 65 74 73 2f 69 6e 74 2e 74 78 74 7a 00 00 00 | ........codeSnippets/int.txtz... | 
| 0a20 | a5 9e 02 4a 7a 00 00 00 9f 08 e8 42 b6 01 00 00    00 00 00 00 11 00 00 00 67 74 54 65 73 74 53 75 | ...Jz......B............gtTestSu | 
| 0a40 | 62 6a 65 63 74 2e 70 68 70 11 11 00 00 a5 9e 02    4a 11 11 00 00 50 b3 02 65 b6 01 00 00 00 00 00 | bject.php.......J....P..e....... | 
| 0a60 | 00 27 00 00 00 74 65 73 74 63 61 73 65 2f 67 74    56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e | .'...testcase/gtVariationContain | 
| 0a80 | 65 72 4d 65 74 68 6f 64 2e 70 68 70 33 04 00 00    a5 9e 02 4a 33 04 00 00 ea 1c 1a 78 b6 01 00 00 | erMethod.php3......J3......x.... | 
| 0aa0 | 00 00 00 00 22 00 00 00 74 65 73 74 63 61 73 65    2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 | ...."...testcase/gtBasicTestCase | 
| 0ac0 | 4d 65 74 68 6f 64 2e 70 68 70 e1 04 00 00 a5 9e    02 4a e1 04 00 00 f6 4f 87 13 b6 01 00 00 00 00 | Method.php.......J.....O........ | 
| 0ae0 | 00 00 1c 00 00 00 74 65 73 74 63 61 73 65 2f 67    74 45 72 72 6f 72 54 65 73 74 43 61 73 65 2e 70 | ......testcase/gtErrorTestCase.p | 
| 0b00 | 68 70 c8 04 00 00 a5 9e 02 4a c8 04 00 00 c5 00    d8 f1 b6 01 00 00 00 00 00 00 17 00 00 00 74 65 | hp.......J....................te | 
| 0b20 | 73 74 63 61 73 65 2f 67 74 54 65 73 74 43 61 73    65 2e 70 68 70 bc 12 00 00 a5 9e 02 4a bc 12 00 | stcase/gtTestCase.php.......J... | 
| 0b40 | 00 b8 ca 22 40 b6 01 00 00 00 00 00 00 24 00 00    00 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69 | ..."@........$...testcase/gtBasi | 
| 0b60 | 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f    6e 2e 70 68 70 48 05 00 00 a5 9e 02 4a 48 05 00 | cTestCaseFunction.phpH......JH.. | 
| 0b80 | 00 78 a4 25 a2 b6 01 00 00 00 00 00 00 24 00 00    00 74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f | .x.%.........$...testcase/gtErro | 
| 0ba0 | 72 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f    6e 2e 70 68 70 a1 05 00 00 a5 9e 02 4a a1 05 00 | rTestCaseFunction.php.......J... | 
| 0bc0 | 00 d8 31 a8 01 b6 01 00 00 00 00 00 00 28 00 00    00 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 | ..1..........(...testcase/gtVari | 
| 0be0 | 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e    63 74 69 6f 6e 2e 70 68 70 b0 06 00 00 a5 9e 02 | ationTestCaseFunction.php....... | 
| 0c00 | 4a b0 06 00 00 d1 35 5f b5 b6 01 00 00 00 00 00    00 29 00 00 00 74 65 73 74 63 61 73 65 2f 67 74 | J.....5_.........)...testcase/gt | 
| 0c20 | 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e    65 72 46 75 6e 63 74 69 6f 6e 2e 70 68 70 3b 04 | VariationContainerFunction.php;. | 
| 0c40 | 00 00 a5 9e 02 4a 3b 04 00 00 de c3 cd 61 b6 01    00 00 00 00 00 00 22 00 00 00 74 65 73 74 63 61 | .....J;......a........"...testca | 
| 0c60 | 73 65 2f 67 74 45 72 72 6f 72 54 65 73 74 43 61    73 65 4d 65 74 68 6f 64 2e 70 68 70 cd 05 00 00 | se/gtErrorTestCaseMethod.php.... | 
| 0c80 | a5 9e 02 4a cd 05 00 00 82 c8 f1 22 b6 01 00 00    00 00 00 00 1c 00 00 00 74 65 73 74 63 61 73 65 | ...J......."............testcase | 
| 0ca0 | 2f 67 74 42 61 73 69 63 54 65 73 74 43 61 73 65    2e 70 68 70 75 03 00 00 a5 9e 02 4a 75 03 00 00 | /gtBasicTestCase.phpu......Ju... | 
| 0cc0 | 8a 55 4b 25 b6 01 00 00 00 00 00 00 21 00 00 00    74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69 61 | .UK%........!...testcase/gtVaria | 
| 0ce0 | 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 2e 70 68    70 87 04 00 00 a5 9e 02 4a 87 04 00 00 28 3d c1 | tionContainer.php.......J....(=. | 
| 0d00 | 3b b6 01 00 00 00 00 00 00 20 00 00 00 74 65 73    74 63 61 73 65 2f 67 74 56 61 72 69 61 74 69 6f | ;............testcase/gtVariatio | 
| 0d20 | 6e 54 65 73 74 43 61 73 65 2e 70 68 70 ea 05 00    00 a5 9e 02 4a ea 05 00 00 fb cd c5 43 b6 01 00 | nTestCase.php.......J.......C... | 
| 0d40 | 00 00 00 00 00 26 00 00 00 74 65 73 74 63 61 73    65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 | .....&...testcase/gtVariationTes | 
| 0d60 | 74 43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 26    07 00 00 a5 9e 02 4a 26 07 00 00 fe 9d 6a 5c b6 | tCaseMethod.php&......J&.....j\. | 
| 0d80 | 01 00 00 00 00 00 00 3c 3f 70 68 70 0a 2f 2a 2a    0a 20 2a 20 4d 61 69 6e 20 63 6f 64 65 20 66 6f | .......<?php./**..*.Main.code.fo | 
| 0da0 | 72 20 74 65 73 74 20 63 61 73 65 20 67 65 6e 65    72 61 74 69 6f 6e 0a 20 2a 2f 0a 0a 72 65 71 75 | r.test.case.generation..*/..requ | 
| 0dc0 | 69 72 65 5f 6f 6e 63 65 20 64 69 72 6e 61 6d 65    28 5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 67 | ire_once.dirname(__FILE__)...'/g | 
| 0de0 | 74 41 75 74 6f 6c 6f 61 64 2e 70 68 70 27 3b 0a    0a 2f 2f 56 65 72 73 69 6f 6e 20 63 68 65 63 6b | tAutoload.php';..//Version.check | 
| 0e00 | 2e 20 57 69 6c 6c 20 6e 6f 74 20 72 75 6e 20 6f    6e 20 6c 65 73 73 20 74 68 61 6e 20 50 48 50 35 | ..Will.not.run.on.less.than.PHP5 | 
| 0e20 | 33 3b 0a 0a 6c 69 73 74 28 24 6d 61 6a 6f 72 2c    20 24 6d 69 6e 6f 72 2c 20 24 62 75 67 29 20 3d | 3;..list($major,.$minor,.$bug).= | 
| 0e40 | 20 65 78 70 6c 6f 64 65 28 22 2e 22 2c 20 70 68    70 76 65 72 73 69 6f 6e 28 29 2c 20 33 29 3b 0a | .explode(".",.phpversion(),.3);. | 
| 0e60 | 20 69 66 28 24 6d 61 6a 6f 72 20 3d 3d 20 35 29    20 7b 0a 20 20 20 20 20 20 20 69 66 28 24 6d 69 | .if($major.==.5).{........if($mi | 
| 0e80 | 6e 6f 72 20 3c 20 33 29 20 7b 20 64 69 65 28 22    53 6f 72 72 79 2c 20 79 6f 75 20 6e 65 65 64 20 | nor.<.3).{.die("Sorry,.you.need. | 
| 0ea0 | 50 48 50 20 76 65 72 73 69 6f 6e 20 35 2e 33 20    6f 72 20 67 72 65 61 74 65 72 20 74 6f 20 72 75 | PHP.version.5.3.or.greater.to.ru | 
| 0ec0 | 6e 20 74 68 69 73 2e 5c 6e 22 29 3b 20 7d 0a 20    20 20 7d 0a 20 20 20 69 66 20 28 24 6d 61 6a 6f | n.this.\n");.}....}....if.($majo | 
| 0ee0 | 72 20 3c 20 35 29 20 7b 20 64 69 65 20 28 22 53    65 72 69 6f 75 73 6c 79 2c 20 79 6f 75 20 6e 65 | r.<.5).{.die.("Seriously,.you.ne | 
| 0f00 | 65 64 20 74 6f 20 75 70 67 72 61 64 65 20 79 6f    75 20 50 48 50 20 6c 65 76 65 6c 5c 6e 22 29 3b | ed.to.upgrade.you.PHP.level\n"); | 
| 0f20 | 20 7d 0a 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20    6e 65 77 20 67 74 43 6f 6d 6d 61 6e 64 4c 69 6e | .}...$options.=.new.gtCommandLin | 
| 0f40 | 65 4f 70 74 69 6f 6e 73 28 29 3b 0a 24 6f 70 74    69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 | eOptions();.$optionalSections.=. | 
| 0f60 | 6e 65 77 20 67 74 4f 70 74 69 6f 6e 61 6c 53 65    63 74 69 6f 6e 73 28 29 3b 0a 0a 74 72 79 7b 0a | new.gtOptionalSections();..try{. | 
| 0f80 | 20 20 24 6f 70 74 69 6f 6e 73 2d 3e 70 61 72 73    65 28 24 61 72 67 76 29 3b 0a 7d 20 63 61 74 63 | ..$options->parse($argv);.}.catc | 
| 0fa0 | 68 20 28 65 78 63 65 70 74 69 6f 6e 20 24 65 29    20 7b 0a 20 20 65 63 68 6f 20 24 65 2d 3e 67 65 | h.(exception.$e).{...echo.$e->ge | 
| 0fc0 | 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 22 3b    0a 20 20 64 69 65 28 29 3b 0a 7d 0a 0a 69 66 28 | tMessage()."\n";...die();.}..if( | 
| 0fe0 | 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74    69 6f 6e 28 27 68 27 29 29 20 7b 0a 20 20 64 69 | $options->hasOption('h')).{...di | 
| 1000 | 65 28 67 74 54 65 78 74 3a 3a 67 65 74 28 27 68    65 6c 70 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b | e(gtText::get('help'));.}..try.{ | 
| 1020 | 0a 20 20 24 70 72 65 43 6f 6e 64 69 74 69 6f 6e    73 20 3d 20 6e 65 77 20 67 74 50 72 65 43 6f 6e | ...$preConditions.=.new.gtPreCon | 
| 1040 | 64 69 74 69 6f 6e 4c 69 73 74 28 29 3b 0a 20 20    24 70 72 65 43 6f 6e 64 69 74 69 6f 6e 73 2d 3e | ditionList();...$preConditions-> | 
| 1060 | 63 68 65 63 6b 28 24 6f 70 74 69 6f 6e 73 29 3b    0a 7d 20 63 61 74 63 68 20 28 65 78 63 65 70 74 | check($options);.}.catch.(except | 
| 1080 | 69 6f 6e 20 24 65 29 20 7b 0a 20 20 65 63 68 6f    20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 | ion.$e).{...echo.$e->getMessage( | 
| 10a0 | 29 2e 22 5c 6e 22 3b 0a 20 20 64 69 65 28 29 3b    0a 7d 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d | )."\n";...die();.}..if($options- | 
| 10c0 | 3e 68 61 73 4f 70 74 69 6f 6e 28 27 73 27 29 29    20 7b 0a 20 20 24 6f 70 74 69 6f 6e 61 6c 53 65 | >hasOption('s')).{...$optionalSe | 
| 10e0 | 63 74 69 6f 6e 73 2d 3e 73 65 74 4f 70 74 69 6f    6e 73 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a | ctions->setOptions($options);.}. | 
| 1100 | 20 20 0a 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73    2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 29 | .....if($options->hasOption('c') | 
| 1120 | 29 20 7b 0a 20 20 24 6e 61 6d 65 20 3d 20 24 6f    70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f | ).{...$name.=.$options->getOptio | 
| 1140 | 6e 28 27 63 27 29 2e 22 5f 22 2e 24 6f 70 74 69    6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 | n('c')."_".$options->getOption(' | 
| 1160 | 6d 27 29 3b 0a 20 20 24 6d 65 74 68 6f 64 20 3d    20 6e 65 77 20 67 74 4d 65 74 68 6f 64 28 24 6f | m');...$method.=.new.gtMethod($o | 
| 1180 | 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f    6e 28 27 63 27 29 2c 20 24 6f 70 74 69 6f 6e 73 | ptions->getOption('c'),.$options | 
| 11a0 | 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6d 27 29    29 3b 0a 20 20 0a 20 20 24 6d 65 74 68 6f 64 2d | ->getOption('m'));......$method- | 
| 11c0 | 3e 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65    73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e | >setArgumentNames();...$method-> | 
| 11e0 | 73 65 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 73    28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 | setArgumentLists();...$method->s | 
| 1200 | 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e    53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 | etInitialisationStatements();... | 
| 1220 | 0a 20 20 24 6d 65 74 68 6f 64 2d 3e 73 65 74 43    6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 | ...$method->setConstructorArgume | 
| 1240 | 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 6d 65    74 68 6f 64 2d 3e 73 65 74 43 6f 6e 73 74 72 75 | ntNames();...$method->setConstru | 
| 1260 | 63 74 6f 72 49 6e 69 74 53 74 61 74 65 6d 65 6e    74 73 28 29 3b 0a 20 20 24 6d 65 74 68 6f 64 2d | ctorInitStatements();...$method- | 
| 1280 | 3e 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41    72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 7d | >setConstructorArgumentList();.} | 
| 12a0 | 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68    61 73 4f 70 74 69 6f 6e 28 27 66 27 29 29 20 7b | ..if($options->hasOption('f')).{ | 
| 12c0 | 0a 20 20 24 6e 61 6d 65 20 3d 20 24 6f 70 74 69    6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 | ...$name.=.$options->getOption(' | 
| 12e0 | 66 27 29 3b 0a 20 20 24 66 75 6e 63 74 69 6f 6e    20 3d 20 6e 65 77 20 67 74 46 75 6e 63 74 69 6f | f');...$function.=.new.gtFunctio | 
| 1300 | 6e 28 24 6e 61 6d 65 29 3b 0a 20 20 24 66 75 6e    63 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 | n($name);...$function->setArgume | 
| 1320 | 6e 74 4e 61 6d 65 73 28 29 3b 0a 20 20 24 66 75    6e 63 74 69 6f 6e 2d 3e 73 65 74 41 72 67 75 6d | ntNames();...$function->setArgum | 
| 1340 | 65 6e 74 4c 69 73 74 73 28 29 3b 0a 20 20 24 66    75 6e 63 74 69 6f 6e 2d 3e 73 65 74 49 6e 69 74 | entLists();...$function->setInit | 
| 1360 | 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 65 6d    65 6e 74 73 28 29 3b 0a 7d 0a 0a 0a 69 66 28 24 | ialisationStatements();.}...if($ | 
| 1380 | 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74 69    6f 6e 28 27 62 27 29 29 20 7b 0a 20 20 69 66 28 | options->hasOption('b')).{...if( | 
| 13a0 | 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f 70 74    69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 20 20 | $options->hasOption('c')).{..... | 
| 13c0 | 24 74 65 73 74 43 61 73 65 20 3d 20 67 74 42 61    73 69 63 54 65 73 74 43 61 73 65 3a 3a 67 65 74 | $testCase.=.gtBasicTestCase::get | 
| 13e0 | 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69 6f 6e    61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d 65 74 | Instance($optionalSections,.'met | 
| 1400 | 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65 73 74    43 61 73 65 2d 3e 73 65 74 4d 65 74 68 6f 64 28 | hod');.....$testCase->setMethod( | 
| 1420 | 24 6d 65 74 68 6f 64 29 3b 0a 20 20 7d 20 65 6c    73 65 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 | $method);...}.else.{.....$testCa | 
| 1440 | 73 65 20 3d 20 67 74 42 61 73 69 63 54 65 73 74    43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63 | se.=.gtBasicTestCase::getInstanc | 
| 1460 | 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69    6f 6e 73 29 3b 0a 20 20 20 20 24 74 65 73 74 43 | e($optionalSections);.....$testC | 
| 1480 | 61 73 65 2d 3e 73 65 74 46 75 6e 63 74 69 6f 6e    28 24 66 75 6e 63 74 69 6f 6e 29 3b 0a 20 20 7d | ase->setFunction($function);...} | 
| 14a0 | 0a 0a 20 20 24 74 65 73 74 43 61 73 65 2d 3e 63    6f 6e 73 74 72 75 63 74 54 65 73 74 43 61 73 65 | ....$testCase->constructTestCase | 
| 14c0 | 28 29 3b 0a 20 20 67 74 54 65 73 74 43 61 73 65    57 72 69 74 65 72 3a 3a 77 72 69 74 65 28 24 6e | ();...gtTestCaseWriter::write($n | 
| 14e0 | 61 6d 65 2c 20 24 74 65 73 74 43 61 73 65 2d 3e    74 6f 53 74 72 69 6e 67 28 29 2c 20 27 62 27 29 | ame,.$testCase->toString(),.'b') | 
| 1500 | 3b 0a 7d 0a 0a 69 66 28 24 6f 70 74 69 6f 6e 73    2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 65 27 29 | ;.}..if($options->hasOption('e') | 
| 1520 | 29 20 7b 0a 20 20 69 66 28 24 6f 70 74 69 6f 6e    73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 63 27 | ).{...if($options->hasOption('c' | 
| 1540 | 29 29 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61    73 65 20 3d 20 67 74 45 72 72 6f 72 54 65 73 74 | )).{.....$testCase.=.gtErrorTest | 
| 1560 | 43 61 73 65 3a 3a 67 65 74 49 6e 73 74 61 6e 63    65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 | Case::getInstance($optionalSecti | 
| 1580 | 6f 6e 73 2c 20 27 6d 65 74 68 6f 64 27 29 3b 0a    20 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 | ons,.'method');.....$testCase->s | 
| 15a0 | 65 74 4d 65 74 68 6f 64 28 24 6d 65 74 68 6f 64    29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 | etMethod($method);...}.else.{... | 
| 15c0 | 20 20 24 74 65 73 74 43 61 73 65 20 3d 20 67 74    45 72 72 6f 72 54 65 73 74 43 61 73 65 3a 3a 67 | ..$testCase.=.gtErrorTestCase::g | 
| 15e0 | 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69    6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 | etInstance($optionalSections);.. | 
| 1600 | 20 20 20 24 74 65 73 74 43 61 73 65 2d 3e 73 65    74 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 | ...$testCase->setFunction($funct | 
| 1620 | 69 6f 6e 29 3b 0a 20 20 7d 0a 0a 20 20 24 74 65    73 74 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 | ion);...}....$testCase->construc | 
| 1640 | 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 67    74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 3a | tTestCase();...gtTestCaseWriter: | 
| 1660 | 3a 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24 74    65 73 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e | :write($name,.$testCase->toStrin | 
| 1680 | 67 28 29 2c 20 27 65 27 29 3b 0a 7d 0a 0a 0a 0a    69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 73 | g(),.'e');.}....if($options->has | 
| 16a0 | 4f 70 74 69 6f 6e 28 27 76 27 29 29 20 7b 0a 20    20 69 66 28 24 6f 70 74 69 6f 6e 73 2d 3e 68 61 | Option('v')).{...if($options->ha | 
| 16c0 | 73 4f 70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a    20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e | sOption('c')).{.....$testCaseCon | 
| 16e0 | 74 61 69 6e 65 72 20 3d 20 67 74 56 61 72 69 61    74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 3a 3a 67 | tainer.=.gtVariationContainer::g | 
| 1700 | 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 69    6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 27 6d | etInstance($optionalSections,.'m | 
| 1720 | 65 74 68 6f 64 27 29 3b 0a 20 20 20 20 24 74 65    73 74 43 61 73 65 43 6f 6e 74 61 69 6e 65 72 2d | ethod');.....$testCaseContainer- | 
| 1740 | 3e 73 65 74 4d 65 74 68 6f 64 28 24 6d 65 74 68    6f 64 29 3b 0a 20 20 7d 20 65 6c 73 65 20 7b 0a | >setMethod($method);...}.else.{. | 
| 1760 | 20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e    74 61 69 6e 65 72 20 3d 20 67 74 56 61 72 69 61 | ....$testCaseContainer.=.gtVaria | 
| 1780 | 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 3a 3a 67    65 74 49 6e 73 74 61 6e 63 65 20 28 24 6f 70 74 | tionContainer::getInstance.($opt | 
| 17a0 | 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a    20 20 20 20 24 74 65 73 74 43 61 73 65 43 6f 6e | ionalSections);.....$testCaseCon | 
| 17c0 | 74 61 69 6e 65 72 2d 3e 73 65 74 46 75 6e 63 74    69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29 3b 0a | tainer->setFunction($function);. | 
| 17e0 | 20 20 7d 0a 0a 20 20 24 74 65 73 74 43 61 73 65    43 6f 6e 74 61 69 6e 65 72 2d 3e 63 6f 6e 73 74 | ..}....$testCaseContainer->const | 
| 1800 | 72 75 63 74 41 6c 6c 28 29 3b 0a 0a 20 20 24 74    65 73 74 73 20 3d 20 24 74 65 73 74 43 61 73 65 | ructAll();....$tests.=.$testCase | 
| 1820 | 43 6f 6e 74 61 69 6e 65 72 2d 3e 67 65 74 56 61    72 69 61 74 69 6f 6e 54 65 73 74 73 28 29 3b 0a | Container->getVariationTests();. | 
| 1840 | 0a 20 20 24 63 6f 75 6e 74 20 3d 20 31 3b 0a 20    20 66 6f 72 65 61 63 68 28 24 74 65 73 74 73 20 | ...$count.=.1;...foreach($tests. | 
| 1860 | 61 73 20 24 74 65 73 74 29 20 7b 0a 20 20 20 20    67 74 54 65 73 74 43 61 73 65 57 72 69 74 65 72 | as.$test).{.....gtTestCaseWriter | 
| 1880 | 3a 3a 77 72 69 74 65 28 24 6e 61 6d 65 2c 20 24    74 65 73 74 2c 20 27 76 27 2c 20 24 63 6f 75 6e | ::write($name,.$test,.'v',.$coun | 
| 18a0 | 74 29 3b 0a 20 20 20 20 24 63 6f 75 6e 74 2b 2b    3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e 0a 3c 3f 70 68 | t);.....$count++;...}..}.?>.<?ph | 
| 18c0 | 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20    72 65 70 65 72 65 73 65 6e 74 73 20 61 20 73 69 | p../**..*.Class.reperesents.a.si | 
| 18e0 | 6e 67 6c 65 20 50 48 50 20 66 75 6e 63 74 69 6f    6e 2e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 | ngle.PHP.function...*..*/.class. | 
| 1900 | 67 74 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 6e    64 73 20 67 74 54 65 73 74 53 75 62 6a 65 63 74 | gtFunction.extends.gtTestSubject | 
| 1920 | 20 7b 0a 0a 20 20 70 72 69 76 61 74 65 20 24 66    75 6e 63 74 69 6f 6e 4e 61 6d 65 3b 0a 20 20 0a | .{....private.$functionName;.... | 
| 1940 | 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74    68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 6e | ../**....*.Set.the.name.of.the.n | 
| 1960 | 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e 63 74    69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 | ame.of.the.function....*....*.@p | 
| 1980 | 61 72 61 6d 20 73 74 72 69 6e 67 20 24 66 75 6e    63 74 69 6f 6e 4e 61 6d 65 0a 20 20 20 2a 2f 0a | aram.string.$functionName....*/. | 
| 19a0 | 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f    6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 | ..public.function.__construct($f | 
| 19c0 | 75 6e 63 74 69 6f 6e 4e 61 6d 65 29 20 20 7b 0a    20 20 20 20 24 74 68 69 73 2d 3e 66 75 6e 63 74 | unctionName)..{.....$this->funct | 
| 19e0 | 69 6f 6e 4e 61 6d 65 20 3d 20 24 66 75 6e 63 74    69 6f 6e 4e 61 6d 65 3b 0a 20 20 7d 0a 0a 0a 20 | ionName.=.$functionName;...}.... | 
| 1a00 | 20 2f 2a 2a 0a 20 20 20 2a 20 47 65 74 20 74 68    65 20 6e 61 6d 65 73 20 6f 66 20 66 75 6e 63 74 | ./**....*.Get.the.names.of.funct | 
| 1a20 | 69 6f 6e 20 61 72 67 75 6d 65 6e 74 73 20 61 6e    64 20 69 6e 69 74 69 61 6c 69 73 65 20 6d 61 6e | ion.arguments.and.initialise.man | 
| 1a40 | 64 61 74 6f 72 79 20 61 6e 64 20 6f 70 74 69 6f    6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 61 72 72 | datory.and.optional.argument.arr | 
| 1a60 | 61 79 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20    20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e | ays....*....*/...public.function | 
| 1a80 | 20 73 65 74 41 72 67 75 6d 65 6e 74 4e 61 6d 65    73 28 29 20 7b 0a 20 20 20 20 24 66 75 6e 63 74 | .setArgumentNames().{.....$funct | 
| 1aa0 | 69 6f 6e 3d 20 6e 65 77 20 52 65 66 6c 65 63 74    69 6f 6e 46 75 6e 63 74 69 6f 6e 28 24 74 68 69 | ion=.new.ReflectionFunction($thi | 
| 1ac0 | 73 2d 3e 66 75 6e 63 74 69 6f 6e 4e 61 6d 65 29    3b 0a 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 | s->functionName);......foreach.( | 
| 1ae0 | 24 66 75 6e 63 74 69 6f 6e 2d 3e 67 65 74 50 61    72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24 69 | $function->getParameters().as.$i | 
| 1b00 | 20 3d 3e 20 24 70 61 72 61 6d 29 20 7b 0a 20 20    20 20 20 20 69 66 28 24 70 61 72 61 6d 2d 3e 69 | .=>.$param).{.......if($param->i | 
| 1b20 | 73 4f 70 74 69 6f 6e 61 6c 28 29 29 20 7b 0a 20    20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 | sOptional()).{.........$this->op | 
| 1b40 | 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61    6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e | tionalArgumentNames[].=.$param-> | 
| 1b60 | 67 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20    20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 | getName();.......}.else.{....... | 
| 1b80 | 20 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f    72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b | ..$this->mandatoryArgumentNames[ | 
| 1ba0 | 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e    61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 | ].=.$param->getName();.......}.. | 
| 1bc0 | 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a    0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 | ...}...}...../**....*.Return.the | 
| 1be0 | 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 66 75 6e    63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 | .name.of.the.function....*....*. | 
| 1c00 | 40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20    20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 | @return.string....*/...public.fu | 
| 1c20 | 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29    20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 | nction.getName().{.....return.$t | 
| 1c40 | 68 69 73 2d 3e 66 75 6e 63 74 69 6f 6e 4e 61 6d    65 3b 0a 20 20 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 | his->functionName;...}..}.?><?ph | 
| 1c60 | 70 0a 0a 2f 2a 2a 0a 20 2a 20 47 65 74 20 61 20    74 65 78 74 20 6d 65 73 73 61 67 65 0a 20 2a 0a | p../**..*.Get.a.text.message..*. | 
| 1c80 | 20 2a 2f 0a 63 6c 61 73 73 20 67 74 54 65 78 74    0a 7b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 47 | .*/.class.gtText.{..../**....*.G | 
| 1ca0 | 65 74 20 74 68 65 20 74 65 78 74 20 6d 65 73 73    61 67 65 20 61 6e 64 20 72 65 74 75 72 6e 20 69 | et.the.text.message.and.return.i | 
| 1cc0 | 74 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72    61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65 0a | t....*....*.@param.string.$name. | 
| 1ce0 | 20 20 20 2a 20 40 72 65 74 75 72 6e 20 73 74 72    69 6e 67 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c | ...*.@return.string....*/...publ | 
| 1d00 | 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69    6f 6e 20 67 65 74 28 24 6e 61 6d 65 29 20 7b 0a | ic.static.function.get($name).{. | 
| 1d20 | 20 20 20 20 24 66 69 6c 65 6e 61 6d 65 20 3d 20    64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f | ....$filename.=.dirname(__FILE__ | 
| 1d40 | 29 20 2e 20 27 2f 74 65 78 74 73 2f 27 20 2e 20    24 6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a | )...'/texts/'...$name...'.txt';. | 
| 1d60 | 0a 20 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65    78 69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 | .....if.(!file_exists($filename) | 
| 1d80 | 29 20 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20    6e 65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 | ).{.......throw.new.LogicExcepti | 
| 1da0 | 6f 6e 28 27 54 68 65 20 74 65 78 74 20 27 20 2e    20 24 6e 61 6d 65 20 2e 20 27 20 64 6f 65 73 20 | on('The.text.'...$name...'.does. | 
| 1dc0 | 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a 20 20 20    20 7d 0a 0a 20 20 20 20 72 65 74 75 72 6e 20 66 | not.exist');.....}......return.f | 
| 1de0 | 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73    28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 7d | ile_get_contents($filename);...} | 
| 1e00 | 0a 7d 0a 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 24 67    74 43 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 | .}..?><?php...$gtClassMap.=.arra | 
| 1e20 | 79 28 0a 20 0a 20 20 20 20 27 67 74 43 6f 64 65    53 6e 69 70 70 65 74 27 20 20 20 20 20 20 20 20 | y(.......'gtCodeSnippet'........ | 
| 1e40 | 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 43    6f 64 65 53 6e 69 70 70 65 74 2e 70 68 70 27 2c | .........=>.'gtCodeSnippet.php', | 
| 1e60 | 0a 20 20 20 20 27 67 74 54 65 73 74 53 75 62 6a    65 63 74 27 20 20 20 20 20 20 20 20 20 20 20 20 | .....'gtTestSubject'............ | 
| 1e80 | 20 20 20 20 20 3d 3e 20 27 67 74 54 65 73 74 53    75 62 6a 65 63 74 2e 70 68 70 27 2c 0a 20 20 20 | .....=>.'gtTestSubject.php',.... | 
| 1ea0 | 20 27 67 74 46 75 6e 63 74 69 6f 6e 27 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | .'gtFunction'................... | 
| 1ec0 | 20 3d 3e 20 27 67 74 46 75 6e 63 74 69 6f 6e 2e    70 68 70 27 2c 0a 20 20 20 20 27 67 74 4d 65 74 | .=>.'gtFunction.php',.....'gtMet | 
| 1ee0 | 68 6f 64 27 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 67 74 | hod'......................=>.'gt | 
| 1f00 | 4d 65 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20    20 27 67 74 54 65 73 74 43 61 73 65 57 72 69 74 | Method.php',.....'gtTestCaseWrit | 
| 1f20 | 65 72 27 20 20 20 20 20 20 20 20 20 20 20 20 20    20 3d 3e 20 27 67 74 54 65 73 74 43 61 73 65 57 | er'..............=>.'gtTestCaseW | 
| 1f40 | 72 69 74 65 72 2e 70 68 70 27 2c 0a 20 20 20 20    27 67 74 54 65 78 74 27 20 20 20 20 20 20 20 20 | riter.php',.....'gtText'........ | 
| 1f60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    3d 3e 20 27 67 74 54 65 78 74 2e 70 68 70 27 2c | ................=>.'gtText.php', | 
| 1f80 | 0a 20 0a 20 0a 20 0a 20 20 20 20 27 67 74 43 6f    6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 | ...........'gtCommandLineOptions | 
| 1fa0 | 27 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73    65 74 75 70 2f 67 74 43 6f 6d 6d 61 6e 64 4c 69 | '..........=>.'setup/gtCommandLi | 
| 1fc0 | 6e 65 4f 70 74 69 6f 6e 73 2e 70 68 70 27 2c 0a    20 20 20 20 27 67 74 4f 70 74 69 6f 6e 61 6c 53 | neOptions.php',.....'gtOptionalS | 
| 1fe0 | 65 63 74 69 6f 6e 73 27 20 20 20 20 20 20 20 20    20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 | ections'............=>.'setup/gt | 
| 2000 | 4f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73    2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 4d 69 | OptionalSections.php',.....'gtMi | 
| 2020 | 73 73 69 6e 67 41 72 67 75 6d 65 6e 74 45 78 63    65 70 74 69 6f 6e 27 20 20 20 20 3d 3e 20 27 73 | ssingArgumentException'....=>.'s | 
| 2040 | 65 74 75 70 2f 65 78 63 65 70 74 69 6f 6e 73 2f    67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 6e | etup/exceptions/gtMissingArgumen | 
| 2060 | 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c    0a 20 20 20 20 27 67 74 55 6e 6b 6e 6f 77 6e 4f | tException.php',.....'gtUnknownO | 
| 2080 | 70 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 27 20    20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 65 | ptionException'......=>.'setup/e | 
| 20a0 | 78 63 65 70 74 69 6f 6e 73 2f 67 74 55 6e 6b 6e    6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 69 | xceptions/gtUnknownOptionExcepti | 
| 20c0 | 6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74    55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e 45 78 | on.php',.....'gtUnknownSectionEx | 
| 20e0 | 63 65 70 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e    20 27 73 65 74 75 70 2f 65 78 63 65 70 74 69 6f | ception'......=>.'setup/exceptio | 
| 2100 | 6e 73 2f 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74    69 6f 6e 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 | ns/gtUnknownSectionException.php | 
| 2120 | 27 2c 0a 20 20 20 20 27 67 74 4d 69 73 73 69 6e    67 4f 70 74 69 6f 6e 73 45 78 63 65 70 74 69 6f | ',.....'gtMissingOptionsExceptio | 
| 2140 | 6e 27 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70    2f 65 78 63 65 70 74 69 6f 6e 73 2f 67 74 4d 69 | n'.....=>.'setup/exceptions/gtMi | 
| 2160 | 73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65    70 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 0a 20 20 | ssingOptionsException.php',..... | 
| 2180 | 20 20 27 67 74 50 72 65 43 6f 6e 64 69 74 69 6f    6e 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | ..'gtPreCondition'.............. | 
| 21a0 | 20 20 3d 3e 20 27 73 65 74 75 70 2f 67 74 50 72    65 43 6f 6e 64 69 74 69 6f 6e 2e 70 68 70 27 2c | ..=>.'setup/gtPreCondition.php', | 
| 21c0 | 0a 20 20 20 20 27 67 74 50 72 65 43 6f 6e 64 69    74 69 6f 6e 4c 69 73 74 27 20 20 20 20 20 20 20 | .....'gtPreConditionList'....... | 
| 21e0 | 20 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 67    74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 4c 69 73 | .....=>.'setup/gtPreConditionLis | 
| 2200 | 74 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49    73 53 70 65 63 69 66 69 65 64 54 65 73 74 54 79 | t.php',.....'gtIsSpecifiedTestTy | 
| 2220 | 70 65 27 20 20 20 20 20 20 20 20 20 3d 3e 20 27    73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 | pe'.........=>.'setup/preconditi | 
| 2240 | 6f 6e 73 2f 67 74 49 73 53 70 65 63 69 66 69 65    64 54 65 73 74 54 79 70 65 2e 70 68 70 27 2c 0a | ons/gtIsSpecifiedTestType.php',. | 
| 2260 | 20 20 20 20 27 67 74 49 66 43 6c 61 73 73 48 61    73 4d 65 74 68 6f 64 27 20 20 20 20 20 20 20 20 | ....'gtIfClassHasMethod'........ | 
| 2280 | 20 20 20 20 3d 3e 20 27 73 65 74 75 70 2f 70 72    65 63 6f 6e 64 69 74 69 6f 6e 73 2f 67 74 49 66 | ....=>.'setup/preconditions/gtIf | 
| 22a0 | 43 6c 61 73 73 48 61 73 4d 65 74 68 6f 64 2e 70    68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 53 70 | ClassHasMethod.php',.....'gtIsSp | 
| 22c0 | 65 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f    72 4d 65 74 68 6f 64 27 20 3d 3e 20 27 73 65 74 | ecifiedFunctionOrMethod'.=>.'set | 
| 22e0 | 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73    2f 67 74 49 73 53 70 65 63 69 66 69 65 64 46 75 | up/preconditions/gtIsSpecifiedFu | 
| 2300 | 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 2e 70    68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 56 61 | nctionOrMethod.php',.....'gtIsVa | 
| 2320 | 6c 69 64 43 6c 61 73 73 27 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65 74 | lidClass'................=>.'set | 
| 2340 | 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e 73    2f 67 74 49 73 56 61 6c 69 64 43 6c 61 73 73 2e | up/preconditions/gtIsValidClass. | 
| 2360 | 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 73 56    61 6c 69 64 4d 65 74 68 6f 64 27 20 20 20 20 20 | php',.....'gtIsValidMethod'..... | 
| 2380 | 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 73 65    74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69 6f 6e | ..........=>.'setup/precondition | 
| 23a0 | 73 2f 67 74 49 73 56 61 6c 69 64 4d 65 74 68 6f    64 2e 70 68 70 27 2c 0a 20 20 20 20 27 67 74 49 | s/gtIsValidMethod.php',.....'gtI | 
| 23c0 | 73 56 61 6c 69 64 46 75 6e 63 74 69 6f 6e 27 20    20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27 | sValidFunction'.............=>.' | 
| 23e0 | 73 65 74 75 70 2f 70 72 65 63 6f 6e 64 69 74 69    6f 6e 73 2f 67 74 49 73 56 61 6c 69 64 46 75 6e | setup/preconditions/gtIsValidFun | 
| 2400 | 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 0a 20 0a    20 20 20 20 20 27 67 74 54 65 73 74 43 61 73 65 | ction.php',..........'gtTestCase | 
| 2420 | 27 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 | '...................=>.'testcase | 
| 2440 | 2f 67 74 54 65 73 74 43 61 73 65 2e 70 68 70 27    2c 0a 20 20 20 20 20 27 67 74 56 61 72 69 61 74 | /gtTestCase.php',......'gtVariat | 
| 2460 | 69 6f 6e 54 65 73 74 43 61 73 65 27 20 20 20 20    20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 | ionTestCase'..........=>.'testca | 
| 2480 | 73 65 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65    73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 | se/gtVariationTestCase.php',.... | 
| 24a0 | 20 20 27 67 74 56 61 72 69 61 74 69 6f 6e 54 65    73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 27 20 | ..'gtVariationTestCaseFunction'. | 
| 24c0 | 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74    56 61 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 | .=>.'testcase/gtVariationTestCas | 
| 24e0 | 65 46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a    20 20 20 20 20 27 67 74 56 61 72 69 61 74 69 6f | eFunction.php',......'gtVariatio | 
| 2500 | 6e 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 27    20 20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 | nTestCaseMethod'....=>.'testcase | 
| 2520 | 2f 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74    43 61 73 65 4d 65 74 68 6f 64 2e 70 68 70 27 2c | /gtVariationTestCaseMethod.php', | 
| 2540 | 0a 20 0a 20 20 20 20 20 27 67 74 42 61 73 69 63    54 65 73 74 43 61 73 65 27 20 20 20 20 20 20 20 | ........'gtBasicTestCase'....... | 
| 2560 | 20 20 20 20 20 20 20 3d 3e 20 27 74 65 73 74 63    61 73 65 2f 67 74 42 61 73 69 63 54 65 73 74 43 | .......=>.'testcase/gtBasicTestC | 
| 2580 | 61 73 65 2e 70 68 70 27 2c 0a 20 20 20 20 20 27    67 74 42 61 73 69 63 54 65 73 74 43 61 73 65 46 | ase.php',......'gtBasicTestCaseF | 
| 25a0 | 75 6e 63 74 69 6f 6e 27 20 20 20 20 20 20 3d 3e    20 27 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 | unction'......=>.'testcase/gtBas | 
| 25c0 | 69 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69    6f 6e 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 | icTestCaseFunction.php',......'g | 
| 25e0 | 74 42 61 73 69 63 54 65 73 74 43 61 73 65 4d 65    74 68 6f 64 27 20 20 20 20 20 20 20 20 3d 3e 20 | tBasicTestCaseMethod'........=>. | 
| 2600 | 27 74 65 73 74 63 61 73 65 2f 67 74 42 61 73 69    63 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 2e | 'testcase/gtBasicTestCaseMethod. | 
| 2620 | 70 68 70 27 2c 0a 20 0a 20 20 20 20 20 27 67 74    45 72 72 6f 72 54 65 73 74 43 61 73 65 27 20 20 | php',........'gtErrorTestCase'.. | 
| 2640 | 20 20 20 20 20 20 20 20 20 20 20 20 3d 3e 20 27    74 65 73 74 63 61 73 65 2f 67 74 45 72 72 6f 72 | ............=>.'testcase/gtError | 
| 2660 | 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 20    20 20 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 | TestCase.php',......'gtErrorTest | 
| 2680 | 43 61 73 65 46 75 6e 63 74 69 6f 6e 27 20 20 20    20 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f | CaseFunction'......=>.'testcase/ | 
| 26a0 | 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 46    75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 20 | gtErrorTestCaseFunction.php',... | 
| 26c0 | 20 20 20 27 67 74 45 72 72 6f 72 54 65 73 74 43    61 73 65 4d 65 74 68 6f 64 27 20 20 20 20 20 20 | ...'gtErrorTestCaseMethod'...... | 
| 26e0 | 20 20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67    74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 | ..=>.'testcase/gtErrorTestCaseMe | 
| 2700 | 74 68 6f 64 2e 70 68 70 27 2c 0a 20 0a 20 20 20    20 20 27 67 74 56 61 72 69 61 74 69 6f 6e 43 6f | thod.php',........'gtVariationCo | 
| 2720 | 6e 74 61 69 6e 65 72 27 20 20 20 20 20 20 20 20    20 3d 3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 | ntainer'.........=>.'testcase/gt | 
| 2740 | 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e    65 72 2e 70 68 70 27 2c 0a 20 20 20 20 20 27 67 | VariationContainer.php',......'g | 
| 2760 | 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69    6e 65 72 4d 65 74 68 6f 64 27 20 20 20 3d 3e 20 | tVariationContainerMethod'...=>. | 
| 2780 | 27 74 65 73 74 63 61 73 65 2f 67 74 56 61 72 69    61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 4d 65 | 'testcase/gtVariationContainerMe | 
| 27a0 | 74 68 6f 64 2e 70 68 70 27 2c 0a 20 20 20 20 20    27 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e 74 | thod.php',......'gtVariationCont | 
| 27c0 | 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 27 20 3d    3e 20 27 74 65 73 74 63 61 73 65 2f 67 74 56 61 | ainerFunction'.=>.'testcase/gtVa | 
| 27e0 | 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 72    46 75 6e 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 20 | riationContainerFunction.php',.. | 
| 2800 | 29 3b 0a 3f 3e 0a 54 68 65 20 6d 65 74 68 6f 64    20 6e 61 6d 65 20 69 73 20 6e 6f 74 20 61 20 76 | );.?>.The.method.name.is.not.a.v | 
| 2820 | 61 6c 69 64 20 50 48 50 20 6d 65 74 68 6f 64 20    6e 61 6d 65 2e 0a 43 68 65 63 6b 20 74 68 61 74 | alid.PHP.method.name..Check.that | 
| 2840 | 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 63    6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 6d 65 | .the.extension.containing.the.me | 
| 2860 | 74 68 6f 64 20 69 73 20 6c 6f 61 64 65 64 2e 0a    0a 0a 54 68 65 20 63 6c 61 73 73 20 6e 61 6d 65 | thod.is.loaded....The.class.name | 
| 2880 | 20 69 73 20 6e 6f 74 20 61 20 76 61 6c 69 64 20    50 48 50 20 63 6c 61 73 73 20 6e 61 6d 65 2e 0a | .is.not.a.valid.PHP.class.name.. | 
| 28a0 | 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 65    78 74 65 6e 73 69 6f 6e 20 63 6f 6e 74 61 69 6e | Check.that.the.extension.contain | 
| 28c0 | 69 6e 67 20 74 68 65 20 63 6c 61 73 73 20 69 73    20 6c 6f 61 64 65 64 2e 0a 0a 0a 50 6c 65 61 73 | ing.the.class.is.loaded....Pleas | 
| 28e0 | 65 20 73 70 65 63 69 66 79 20 62 61 73 69 63 2c    20 65 72 72 6f 72 20 6f 72 20 76 61 72 69 61 74 | e.specify.basic,.error.or.variat | 
| 2900 | 69 6f 6e 20 74 65 73 74 73 2e 0a 0a 55 73 61 67    65 3a 0a 70 68 70 20 67 65 6e 65 72 61 74 65 2d | ion.tests...Usage:.php.generate- | 
| 2920 | 70 68 70 74 2e 70 68 70 20 20 2d 66 20 3c 66 75    6e 63 74 69 6f 6e 5f 6e 61 6d 65 3e 20 7c 2d 63 | phpt.php..-f.<function_name>.|-c | 
| 2940 | 20 3c 63 6c 61 73 73 5f 6e 61 6d 65 3e 20 2d 6d    20 3c 6d 65 74 68 6f 64 5f 6e 61 6d 65 3e 20 2d | .<class_name>.-m.<method_name>.- | 
| 2960 | 62 7c 65 7c 76 20 5b 2d 73 20 73 6b 69 70 69 66    3a 69 6e 69 3a 63 6c 65 61 6e 3a 64 6f 6e 65 5d | b|e|v.[-s.skipif:ini:clean:done] | 
| 2980 | 20 5b 2d 6b 20 77 69 6e 7c 6e 6f 74 77 69 6e 7c    36 34 62 7c 6e 6f 74 36 34 62 5d 20 5b 2d 78 20 | .[-k.win|notwin|64b|not64b].[-x. | 
| 29a0 | 65 78 74 5d 0a 0a 57 68 65 72 65 3a 0a 2d 66 20    66 75 6e 63 74 69 6f 6e 5f 6e 61 6d 65 20 2e 2e | ext]..Where:.-f.function_name... | 
| 29c0 | 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20    4e 61 6d 65 20 6f 66 20 50 48 50 20 66 75 6e 63 | ................Name.of.PHP.func | 
| 29e0 | 74 69 6f 6e 2c 20 65 67 20 63 6f 73 0a 2d 63 20    63 6c 61 73 73 20 6e 61 6d 65 20 2e 2e 2e 2e 2e | tion,.eg.cos.-c.class.name...... | 
| 2a00 | 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e    4e 61 6d 65 20 6f 66 20 63 6c 61 73 73 2c 20 65 | ................Name.of.class,.e | 
| 2a20 | 67 20 44 4f 4d 44 6f 63 75 6d 65 6e 74 0a 2d 6d    20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 2e 2e 2e | g.DOMDocument.-m.method.name.... | 
| 2a40 | 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e    2e 4e 61 6d 65 20 6f 66 20 6d 65 74 68 6f 64 2c | .................Name.of.method, | 
| 2a60 | 20 65 67 20 63 72 65 61 74 65 41 74 74 72 69 62    75 74 65 0a 2d 62 20 2e 2e 2e 2e 2e 2e 2e 2e 2e | .eg.createAttribute.-b.......... | 
| 2a80 | 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e    2e 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20 | .......................Generate. | 
| 2aa0 | 62 61 73 69 63 20 74 65 73 74 73 0a 2d 65 20 2e    2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e | basic.tests.-e.................. | 
| 2ac0 | 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 20 47    65 6e 65 72 61 74 65 20 65 72 72 6f 72 20 74 65 | ...............Generate.error.te | 
| 2ae0 | 73 74 73 0a 2d 76 20 2e 2e 2e 2e 2e 2e 2e 2e 2e    2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e | sts.-v.......................... | 
| 2b00 | 2e 2e 2e 2e 2e 2e 20 47 65 6e 65 72 61 74 65 20    76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 73 0a | .......Generate.variation.tests. | 
| 2b20 | 2d 73 20 73 65 63 74 69 6f 6e 73 2e 2e 2e 2e 2e    2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e | -s.sections..................... | 
| 2b40 | 2e 2e 20 43 72 65 61 74 65 20 6f 70 74 69 6f 6e    61 6c 20 73 65 63 74 69 6f 6e 73 2c 20 63 6f 6c | ...Create.optional.sections,.col | 
| 2b60 | 6f 6e 20 73 65 70 61 72 61 74 65 64 20 6c 69 73    74 0a 2d 6b 20 73 6b 69 70 69 66 20 6b 65 79 2e | on.separated.list.-k.skipif.key. | 
| 2b80 | 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e    2e 2e 2e 2e 20 53 6b 69 70 69 66 20 6f 70 74 69 | .....................Skipif.opti | 
| 2ba0 | 6f 6e 2c 20 6f 6e 6c 79 20 75 73 65 64 20 69 66    20 2d 73 20 73 6b 69 70 69 66 20 69 73 20 75 73 | on,.only.used.if.-s.skipif.is.us | 
| 2bc0 | 65 64 2e 0a 2d 78 20 65 78 74 65 6e 73 69 6f 6e    2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e | ed..-x.extension................ | 
| 2be0 | 2e 2e 2e 2e 2e 2e 2e 53 6b 69 70 69 66 20 6f 70    74 69 6f 6e 2c 20 73 70 65 63 69 66 79 20 65 78 | .......Skipif.option,.specify.ex | 
| 2c00 | 74 65 6e 73 69 6f 6e 20 74 6f 20 63 68 65 63 6b    20 66 6f 72 0a 2d 68 20 2e 2e 2e 2e 2e 2e 2e 2e | tension.to.check.for.-h......... | 
| 2c20 | 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e 2e    2e 2e 2e 2e 2e 2e 2e 20 50 72 69 6e 74 20 74 68 | ........................Print.th | 
| 2c40 | 69 73 20 6d 65 73 73 61 67 65 0a 0a 59 6f 75 20    68 61 76 65 20 67 69 76 65 6e 20 61 20 63 6c 61 | is.message..You.have.given.a.cla | 
| 2c60 | 73 73 20 6e 61 6d 65 20 62 75 74 20 6e 6f 74 20    73 75 70 70 6c 69 65 64 20 61 20 6d 65 74 68 6f | ss.name.but.not.supplied.a.metho | 
| 2c80 | 64 20 6e 61 6d 65 20 74 6f 20 74 65 73 74 2e 0a    54 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20 | d.name.to.test..The.method.name. | 
| 2ca0 | 69 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 0a 50    6c 65 61 73 65 20 73 75 70 70 6c 79 20 61 20 66 | is.required....Please.supply.a.f | 
| 2cc0 | 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f    64 20 6e 61 6d 65 20 74 6f 20 62 65 20 74 65 73 | unction.or.method.name.to.be.tes | 
| 2ce0 | 74 65 64 2e 0a 0a 0a 54 68 65 20 66 75 6e 63 74    69 6f 6e 20 6e 61 6d 65 20 69 73 20 6e 6f 74 20 | ted....The.function.name.is.not. | 
| 2d00 | 61 20 76 61 6c 69 64 20 50 48 50 20 66 75 6e 63    74 69 6f 6e 20 6e 61 6d 65 2e 0a 43 68 65 63 6b | a.valid.PHP.function.name..Check | 
| 2d20 | 20 74 68 61 74 20 74 68 65 20 65 78 74 65 6e 73    69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 | .that.the.extension.containing.t | 
| 2d40 | 68 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 6c    6f 61 64 65 64 2e 0a 0a 3c 3f 70 68 70 0a 0a 2f | he.function.is.loaded...<?php../ | 
| 2d60 | 2a 2a 0a 20 2a 20 52 65 74 72 69 65 76 65 73 20    63 6f 64 65 20 73 6e 69 70 70 65 74 73 20 66 6f | **..*.Retrieves.code.snippets.fo | 
| 2d80 | 72 20 61 64 64 69 6e 67 20 74 6f 20 74 65 73 74    20 63 61 73 65 73 0a 20 2a 20 0a 20 2a 2f 0a 63 | r.adding.to.test.cases..*...*/.c | 
| 2da0 | 6c 61 73 73 20 67 74 43 6f 64 65 53 6e 69 70 70    65 74 0a 7b 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a | lass.gtCodeSnippet.{..../**....* | 
| 2dc0 | 20 67 65 74 20 74 68 65 20 63 6f 64 65 20 73 6e    69 70 70 65 74 20 61 6e 64 20 69 6e 69 74 69 61 | .get.the.code.snippet.and.initia | 
| 2de0 | 6c 69 73 65 20 61 6e 20 61 72 72 61 79 20 77 69    74 68 20 69 74 0a 20 20 20 2a 0a 20 20 20 2a 20 | lise.an.array.with.it....*....*. | 
| 2e00 | 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 6e    61 6d 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e | @param.string.$name....*.@return | 
| 2e20 | 20 61 72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70    75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e | .array....*/...public.static.fun | 
| 2e40 | 63 74 69 6f 6e 20 67 65 74 28 24 6e 61 6d 65 29    20 7b 0a 20 20 20 20 0a 20 20 20 20 24 66 69 6c | ction.get($name).{..........$fil | 
| 2e60 | 65 6e 61 6d 65 20 3d 20 64 69 72 6e 61 6d 65 28    5f 5f 46 49 4c 45 5f 5f 29 20 2e 20 27 2f 63 6f | ename.=.dirname(__FILE__)...'/co | 
| 2e80 | 64 65 53 6e 69 70 70 65 74 73 2f 27 20 2e 20 24    6e 61 6d 65 20 2e 20 27 2e 74 78 74 27 3b 0a 0a | deSnippets/'...$name...'.txt';.. | 
| 2ea0 | 20 20 20 20 69 66 20 28 21 66 69 6c 65 5f 65 78    69 73 74 73 28 24 66 69 6c 65 6e 61 6d 65 29 29 | ....if.(!file_exists($filename)) | 
| 2ec0 | 20 7b 0a 20 20 20 20 20 20 74 68 72 6f 77 20 6e    65 77 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f | .{.......throw.new.LogicExceptio | 
| 2ee0 | 6e 28 27 54 68 65 20 63 6f 64 65 20 73 6e 69 70    70 65 74 20 27 20 2e 20 24 6e 61 6d 65 20 2e 20 | n('The.code.snippet.'...$name... | 
| 2f00 | 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74    27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a 20 | '.does.not.exist');.....}....... | 
| 2f20 | 20 20 20 24 6c 69 6e 65 73 20 3d 20 66 69 6c 65    28 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 20 20 20 | ...$lines.=.file($filename);.... | 
| 2f40 | 20 66 6f 72 65 61 63 68 28 24 6c 69 6e 65 73 20    61 73 20 24 6c 29 20 7b 0a 20 20 20 20 20 20 24 | .foreach($lines.as.$l).{.......$ | 
| 2f60 | 61 72 72 61 79 5b 5d 20 3d 20 72 74 72 69 6d 28    24 6c 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 | array[].=.rtrim($l);.....}.....r | 
| 2f80 | 65 74 75 72 6e 20 24 61 72 72 61 79 3b 0a 20 20    7d 0a 20 20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 | eturn.$array;...}........./**... | 
| 2fa0 | 20 2a 20 41 70 70 65 6e 64 20 74 68 65 20 63 6f    64 65 20 73 6e 69 70 70 65 74 20 6f 6e 20 74 6f | .*.Append.the.code.snippet.on.to | 
| 2fc0 | 20 61 6e 20 65 78 69 73 74 69 6e 67 20 61 72 72    61 79 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 | .an.existing.array....*....*.@pa | 
| 2fe0 | 72 61 6d 20 73 74 72 69 6e 67 20 24 6e 61 6d 65    0a 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 | ram.string.$name....*.@param.arr | 
| 3000 | 61 79 20 24 61 72 72 61 79 0a 20 20 20 2a 20 40    72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 | ay.$array....*.@return.array.... | 
| 3020 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74    69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 | */...public.static.function.appe | 
| 3040 | 6e 64 28 24 6e 61 6d 65 2c 20 24 61 72 72 61 79    29 20 7b 0a 20 20 20 20 24 66 69 6c 65 6e 61 6d | nd($name,.$array).{.....$filenam | 
| 3060 | 65 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 49    4c 45 5f 5f 29 20 2e 20 27 2f 63 6f 64 65 53 6e | e.=.dirname(__FILE__)...'/codeSn | 
| 3080 | 69 70 70 65 74 73 2f 27 20 2e 20 24 6e 61 6d 65    20 2e 20 27 2e 74 78 74 27 3b 0a 0a 20 20 20 20 | ippets/'...$name...'.txt';...... | 
| 30a0 | 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73    28 24 66 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 20 | if.(!file_exists($filename)).{.. | 
| 30c0 | 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 4c    6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 54 | .....throw.new.LogicException('T | 
| 30e0 | 68 65 20 63 6f 64 65 20 73 6e 69 70 70 65 74 20    27 20 2e 20 24 6e 61 6d 65 20 2e 20 27 20 64 6f | he.code.snippet.'...$name...'.do | 
| 3100 | 65 73 20 6e 6f 74 20 65 78 69 73 74 27 29 3b 0a    20 20 20 20 7d 0a 0a 20 20 20 20 24 74 65 78 74 | es.not.exist');.....}......$text | 
| 3120 | 20 3d 20 20 66 69 6c 65 28 24 66 69 6c 65 6e 61    6d 65 29 3b 0a 20 20 20 20 66 6f 72 65 61 63 68 | .=..file($filename);.....foreach | 
| 3140 | 20 28 24 74 65 78 74 20 61 73 20 24 74 29 20 7b    0a 20 20 20 20 20 20 24 61 72 72 61 79 5b 5d 20 | .($text.as.$t).{.......$array[]. | 
| 3160 | 3d 20 72 74 72 69 6d 28 24 74 29 3b 0a 20 20 20    20 7d 0a 20 20 20 20 0a 20 20 20 20 72 65 74 75 | =.rtrim($t);.....}..........retu | 
| 3180 | 72 6e 20 24 61 72 72 61 79 3b 0a 20 20 7d 0a 20    20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 | rn.$array;...}........./**....*. | 
| 31a0 | 41 70 70 65 6e 64 73 20 62 6c 61 6e 6b 20 65 6e    74 72 69 65 73 20 6f 6e 20 74 6f 20 61 6e 20 61 | Appends.blank.entries.on.to.an.a | 
| 31c0 | 72 72 61 79 0a 20 20 20 2a 0a 20 20 20 2a 20 40    70 61 72 61 6d 20 69 6e 74 20 24 6e 75 6d 62 65 | rray....*....*.@param.int.$numbe | 
| 31e0 | 72 4f 66 4c 69 6e 65 73 0a 20 20 20 2a 20 40 70    61 72 61 6d 20 61 72 72 61 79 20 24 61 72 72 61 | rOfLines....*.@param.array.$arra | 
| 3200 | 79 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61    72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 | y....*.@return.array....*/...pub | 
| 3220 | 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74    69 6f 6e 20 61 70 70 65 6e 64 42 6c 61 6e 6b 4c | lic.static.function.appendBlankL | 
| 3240 | 69 6e 65 73 28 24 6e 75 6d 62 65 72 4f 66 4c 69    6e 65 73 2c 20 24 61 72 72 61 79 29 20 7b 0a 0a | ines($numberOfLines,.$array).{.. | 
| 3260 | 20 20 20 20 66 6f 72 20 28 24 69 3d 30 3b 20 24    69 3c 20 24 6e 75 6d 62 65 72 4f 66 4c 69 6e 65 | ....for.($i=0;.$i<.$numberOfLine | 
| 3280 | 73 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20    20 24 61 72 72 61 79 5b 5d 20 3d 20 22 22 3b 0a | s;.$i++).{.......$array[].=."";. | 
| 32a0 | 20 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 72    65 74 75 72 6e 20 24 61 72 72 61 79 3b 0a 20 20 | ....}..........return.$array;... | 
| 32c0 | 7d 0a 20 20 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a    0a 67 74 41 75 74 6f 6c 6f 61 64 3a 3a 69 6e 69 | }....}.?><?php...gtAutoload::ini | 
| 32e0 | 74 28 29 3b 0a 0a 2f 2a 2a 0a 20 2a 20 41 75 74    6f 6c 6f 61 64 65 72 20 75 73 69 6e 67 20 61 20 | t();../**..*.Autoloader.using.a. | 
| 3300 | 6d 61 70 20 66 69 6c 65 20 28 67 74 43 6c 61 73    73 4d 61 70 2e 70 68 70 29 0a 20 2a 20 64 65 66 | map.file.(gtClassMap.php)..*.def | 
| 3320 | 69 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 20 74    6f 20 6c 6f 61 64 20 65 61 63 68 20 63 6c 61 73 | ining.the.file.to.load.each.clas | 
| 3340 | 73 20 66 72 6f 6d 2e 0a 20 2a 2f 0a 63 6c 61 73    73 20 67 74 41 75 74 6f 6c 6f 61 64 0a 7b 0a 20 | s.from...*/.class.gtAutoload.{.. | 
| 3360 | 20 2f 2a 2a 0a 20 20 20 2a 20 40 76 61 72 20 61    72 72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 72 6f | ./**....*.@var.array....*/...pro | 
| 3380 | 74 65 63 74 65 64 20 73 74 61 74 69 63 20 24 63    6c 61 73 73 4d 61 70 3b 0a 0a 20 20 2f 2a 2a 0a | tected.static.$classMap;..../**. | 
| 33a0 | 20 20 20 2a 20 40 76 61 72 20 73 74 72 69 6e 67    0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 65 63 74 | ...*.@var.string....*/...protect | 
| 33c0 | 65 64 20 73 74 61 74 69 63 20 24 63 6c 61 73 73    50 61 74 68 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 | ed.static.$classPath;...../**... | 
| 33e0 | 20 2a 20 49 6e 69 74 69 61 6c 69 7a 65 20 74 68    65 20 61 75 74 6f 6c 6f 61 64 65 72 0a 20 20 20 | .*.Initialize.the.autoloader.... | 
| 3400 | 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 6e    75 6c 6c 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c | *....*.@return.null....*/...publ | 
| 3420 | 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69    6f 6e 20 69 6e 69 74 28 29 0a 20 20 7b 0a 20 20 | ic.static.function.init()...{... | 
| 3440 | 20 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61    74 68 20 3d 20 64 69 72 6e 61 6d 65 28 5f 5f 46 | ..self::$classPath.=.dirname(__F | 
| 3460 | 49 4c 45 5f 5f 29 3b 0a 0a 20 20 20 20 69 66 20    28 73 75 62 73 74 72 28 73 65 6c 66 3a 3a 24 63 | ILE__);......if.(substr(self::$c | 
| 3480 | 6c 61 73 73 50 61 74 68 2c 20 2d 31 29 20 21 3d    20 27 2f 27 29 20 7b 0a 20 20 20 20 20 20 73 65 | lassPath,.-1).!=.'/').{.......se | 
| 34a0 | 6c 66 3a 3a 24 63 6c 61 73 73 50 61 74 68 20 2e    3d 20 27 2f 27 3b 0a 20 20 20 20 7d 0a 0a 20 20 | lf::$classPath..=.'/';.....}.... | 
| 34c0 | 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74    73 28 73 65 6c 66 3a 3a 24 63 6c 61 73 73 50 61 | ..if.(file_exists(self::$classPa | 
| 34e0 | 74 68 20 2e 20 27 67 74 43 6c 61 73 73 4d 61 70    2e 70 68 70 27 29 29 20 7b 0a 20 20 20 20 20 20 | th...'gtClassMap.php')).{....... | 
| 3500 | 69 6e 63 6c 75 64 65 20 73 65 6c 66 3a 3a 24 63    6c 61 73 73 50 61 74 68 20 2e 20 27 67 74 43 6c | include.self::$classPath...'gtCl | 
| 3520 | 61 73 73 4d 61 70 2e 70 68 70 27 3b 0a 20 20 20    20 20 20 73 65 6c 66 3a 3a 24 63 6c 61 73 73 4d | assMap.php';.......self::$classM | 
| 3540 | 61 70 20 3d 20 24 67 74 43 6c 61 73 73 4d 61 70    3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 20 | ap.=.$gtClassMap;.....}......if. | 
| 3560 | 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73    28 27 5f 5f 61 75 74 6f 6c 6f 61 64 27 29 29 20 | (function_exists('__autoload')). | 
| 3580 | 7b 0a 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f    6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 27 5f | {.......spl_autoload_register('_ | 
| 35a0 | 5f 61 75 74 6f 6c 6f 61 64 27 29 3b 0a 20 20 20    20 7d 0a 0a 20 20 20 20 73 70 6c 5f 61 75 74 6f | _autoload');.....}......spl_auto | 
| 35c0 | 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72    72 61 79 28 27 67 74 41 75 74 6f 6c 6f 61 64 27 | load_register(array('gtAutoload' | 
| 35e0 | 2c 20 27 61 75 74 6f 6c 6f 61 64 27 29 29 3b 0a    20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a | ,.'autoload'));...}...../**....* | 
| 3600 | 20 41 75 74 6f 6c 6f 61 64 20 6d 65 74 68 6f 64    0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 | .Autoload.method....*....*.@para | 
| 3620 | 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 73 73 20    43 6c 61 73 73 20 6e 61 6d 65 20 74 6f 20 61 75 | m.string.$class.Class.name.to.au | 
| 3640 | 74 6f 6c 6f 61 64 0a 20 20 20 2a 20 40 72 65 74    75 72 6e 20 6e 75 6c 6c 0a 20 20 20 2a 2f 0a 20 | toload....*.@return.null....*/.. | 
| 3660 | 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66    75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 | .public.static.function.autoload | 
| 3680 | 28 24 63 6c 61 73 73 29 0a 20 20 7b 0a 20 20 20    20 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a | ($class)...{.....if.(isset(self: | 
| 36a0 | 3a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73    73 5d 29 29 20 7b 0a 20 20 20 20 20 20 69 6e 63 | :$classMap[$class])).{.......inc | 
| 36c0 | 6c 75 64 65 20 73 65 6c 66 3a 3a 24 63 6c 61 73    73 50 61 74 68 20 2e 20 73 65 6c 66 3a 3a 24 63 | lude.self::$classPath...self::$c | 
| 36e0 | 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 3b    0a 20 20 20 20 7d 0a 20 20 7d 0a 7d 0a 0a 3f 3e | lassMap[$class];.....}...}.}..?> | 
| 3700 | 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 50 61    72 73 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 | <?php../**..*.Parse.command.line | 
| 3720 | 20 6f 70 74 69 6f 6e 73 0a 20 2a 0a 20 2a 2f 0a    63 6c 61 73 73 20 67 74 43 6f 6d 6d 61 6e 64 4c | .options..*..*/.class.gtCommandL | 
| 3740 | 69 6e 65 4f 70 74 69 6f 6e 73 20 7b 0a 0a 20 20    70 72 6f 74 65 63 74 65 64 20 24 73 68 6f 72 74 | ineOptions.{....protected.$short | 
| 3760 | 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28    0a 20 20 20 20 27 62 27 2c 0a 20 20 20 20 27 65 | Options.=.array(.....'b',.....'e | 
| 3780 | 27 2c 0a 20 20 20 20 27 76 27 2c 0a 20 20 20 20    27 68 27 2c 0a 20 20 29 3b 0a 0a 20 20 70 72 6f | ',.....'v',.....'h',...);....pro | 
| 37a0 | 74 65 63 74 65 64 20 24 73 68 6f 72 74 4f 70 74    69 6f 6e 73 57 69 74 68 41 72 67 73 20 3d 20 61 | tected.$shortOptionsWithArgs.=.a | 
| 37c0 | 72 72 61 79 28 0a 20 20 20 20 27 63 27 2c 0a 20    20 20 20 27 6d 27 2c 0a 20 20 20 20 27 66 27 2c | rray(.....'c',.....'m',.....'f', | 
| 37e0 | 0a 20 20 20 20 27 69 27 2c 0a 20 20 20 20 27 73    27 2c 0a 20 20 20 20 27 78 27 2c 0a 20 20 20 20 | .....'i',.....'s',.....'x',..... | 
| 3800 | 27 6b 27 2c 0a 20 20 29 3b 0a 20 20 0a 20 20 70    72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e | 'k',...);......protected.$option | 
| 3820 | 73 3b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20    66 75 6e 63 74 69 6f 6e 20 69 73 53 68 6f 72 74 | s;....protected.function.isShort | 
| 3840 | 4f 70 74 69 6f 6e 28 24 61 72 67 29 0a 20 20 7b    0a 20 20 20 20 72 65 74 75 72 6e 20 28 73 75 62 | Option($arg)...{.....return.(sub | 
| 3860 | 73 74 72 28 24 61 72 67 2c 20 30 2c 20 31 29 20    3d 3d 20 27 2d 27 29 20 26 26 20 28 73 75 62 73 | str($arg,.0,.1).==.'-').&&.(subs | 
| 3880 | 74 72 28 24 61 72 67 2c 20 31 2c 20 31 29 20 21    3d 20 27 2d 27 29 3b 0a 20 20 7d 0a 0a 20 20 70 | tr($arg,.1,.1).!=.'-');...}....p | 
| 38a0 | 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69    73 56 61 6c 69 64 4f 70 74 69 6f 6e 41 72 67 28 | ublic.function.isValidOptionArg( | 
| 38c0 | 24 61 72 72 61 79 2c 20 24 69 6e 64 65 78 29 20    7b 0a 20 20 20 20 69 66 20 28 21 69 73 73 65 74 | $array,.$index).{.....if.(!isset | 
| 38e0 | 28 24 61 72 72 61 79 5b 24 69 6e 64 65 78 5d 29    29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 72 65 | ($array[$index])).....{.......re | 
| 3900 | 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20    7d 0a 20 20 20 20 72 65 74 75 72 6e 20 73 75 62 | turn.false;.....}.....return.sub | 
| 3920 | 73 74 72 28 24 61 72 72 61 79 5b 24 69 6e 64 65    78 5d 2c 20 30 2c 20 31 29 20 21 3d 20 27 2d 27 | str($array[$index],.0,.1).!=.'-' | 
| 3940 | 3b 0a 20 20 7d 0a 0a 0a 20 20 70 75 62 6c 69 63    20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 | ;...}.....public.function.parse( | 
| 3960 | 24 61 72 67 76 29 0a 20 20 7b 0a 20 20 20 20 69    66 28 63 6f 75 6e 74 28 24 61 72 67 76 29 20 3c | $argv)...{.....if(count($argv).< | 
| 3980 | 20 32 29 20 7b 0a 20 20 20 20 20 20 74 68 72 6f    77 20 6e 65 77 20 67 74 4d 69 73 73 69 6e 67 4f | .2).{.......throw.new.gtMissingO | 
| 39a0 | 70 74 69 6f 6e 73 45 78 63 65 70 74 69 6f 6e 28    27 43 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f 70 | ptionsException('Command.line.op | 
| 39c0 | 74 69 6f 6e 73 20 61 72 65 20 72 65 71 75 69 72    65 64 27 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 | tions.are.required');.....}..... | 
| 39e0 | 0a 20 20 20 20 66 6f 72 20 28 24 69 3d 31 3b 20    24 69 3c 63 6f 75 6e 74 28 24 61 72 67 76 29 3b | .....for.($i=1;.$i<count($argv); | 
| 3a00 | 20 24 69 2b 2b 29 20 7b 0a 0a 20 20 20 20 20 20    69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 68 6f | .$i++).{........if.($this->isSho | 
| 3a20 | 72 74 4f 70 74 69 6f 6e 28 24 61 72 67 76 5b 24    69 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24 | rtOption($argv[$i])).{.........$ | 
| 3a40 | 6f 70 74 69 6f 6e 20 3d 20 73 75 62 73 74 72 28    24 61 72 67 76 5b 24 69 5d 2c 20 31 29 3b 0a 20 | option.=.substr($argv[$i],.1);.. | 
| 3a60 | 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20    20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20 | .....}.else.{.........throw.new. | 
| 3a80 | 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45    78 63 65 70 74 69 6f 6e 28 27 55 6e 72 65 63 6f | gtUnknownOptionException('Unreco | 
| 3aa0 | 67 6e 69 73 65 64 20 63 6f 6d 6d 61 6e 64 20 6c    69 6e 65 20 6f 70 74 69 6f 6e 20 27 20 2e 20 24 | gnised.command.line.option.'...$ | 
| 3ac0 | 61 72 67 76 5b 24 69 5d 29 3b 0a 20 20 20 20 20    20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 21 69 | argv[$i]);.......}........if.(!i | 
| 3ae0 | 6e 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 2c    20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 | n_array($option,.array_merge($th | 
| 3b00 | 69 73 2d 3e 73 68 6f 72 74 4f 70 74 69 6f 6e 73    2c 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 4f 70 | is->shortOptions,.$this->shortOp | 
| 3b20 | 74 69 6f 6e 73 57 69 74 68 41 72 67 73 29 29 29    0a 20 20 20 20 20 20 7b 0a 20 20 20 20 20 20 20 | tionsWithArgs))).......{........ | 
| 3b40 | 20 74 68 72 6f 77 20 6e 65 77 20 67 74 55 6e 6b    6e 6f 77 6e 4f 70 74 69 6f 6e 45 78 63 65 70 74 | .throw.new.gtUnknownOptionExcept | 
| 3b60 | 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 6f 70 74    69 6f 6e 20 27 20 2e 20 24 61 72 67 76 5b 24 69 | ion('Unknown.option.'...$argv[$i | 
| 3b80 | 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20 20 20    20 20 20 69 66 20 28 69 6e 5f 61 72 72 61 79 28 | ]);.......}........if.(in_array( | 
| 3ba0 | 24 6f 70 74 69 6f 6e 2c 20 24 74 68 69 73 2d 3e    73 68 6f 72 74 4f 70 74 69 6f 6e 73 29 29 20 7b | $option,.$this->shortOptions)).{ | 
| 3bc0 | 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e    6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d | .........$this->options[$option] | 
| 3be0 | 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20 20 20    20 63 6f 6e 74 69 6e 75 65 3b 0a 20 20 20 20 20 | .=.true;.........continue;...... | 
| 3c00 | 20 7d 0a 0a 20 20 20 20 20 20 69 66 20 28 21 24    74 68 69 73 2d 3e 69 73 56 61 6c 69 64 4f 70 74 | .}........if.(!$this->isValidOpt | 
| 3c20 | 69 6f 6e 41 72 67 28 24 61 72 67 76 2c 20 24 69    20 2b 20 31 29 29 0a 20 20 20 20 20 20 7b 0a 20 | ionArg($argv,.$i.+.1)).......{.. | 
| 3c40 | 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77    20 67 74 4d 69 73 73 69 6e 67 41 72 67 75 6d 65 | .......throw.new.gtMissingArgume | 
| 3c60 | 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73    73 69 6e 67 20 61 72 67 75 6d 65 6e 74 20 66 6f | ntException('Missing.argument.fo | 
| 3c80 | 72 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 6f    70 74 69 6f 6e 20 27 20 2e 20 24 61 72 67 76 5b | r.command.line.option.'...$argv[ | 
| 3ca0 | 24 69 5d 29 3b 0a 20 20 20 20 20 20 7d 0a 0a 20    20 20 20 20 20 24 69 2b 2b 3b 0a 20 20 20 20 20 | $i]);.......}........$i++;...... | 
| 3cc0 | 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b    24 6f 70 74 69 6f 6e 5d 20 3d 20 24 61 72 67 76 | .$this->options[$option].=.$argv | 
| 3ce0 | 5b 24 69 5d 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a    20 20 0a 20 2f 2a 2a 0a 20 20 20 2a 0a 20 20 20 | [$i];.....}...}...../**....*.... | 
| 3d00 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63    74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 28 24 | */...public.function.getOption($ | 
| 3d20 | 6f 70 74 69 6f 6e 29 0a 20 20 7b 0a 20 20 20 20    69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 | option)...{.....if.(!isset($this | 
| 3d40 | 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f    6e 5d 29 29 20 7b 0a 20 20 20 20 20 20 72 65 74 | ->options[$option])).{.......ret | 
| 3d60 | 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d    0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 | urn.false;.....}.....return.$thi | 
| 3d80 | 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69    6f 6e 5d 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a | s->options[$option];...}...../** | 
| 3da0 | 0a 20 20 20 2a 20 43 68 65 63 6b 20 77 68 65 74    68 65 72 20 61 6e 20 6f 70 74 69 6f 6e 20 65 78 | ....*.Check.whether.an.option.ex | 
| 3dc0 | 69 73 74 73 0a 20 20 20 2a 2f 0a 20 20 70 75 62    6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 | ists....*/...public.function.has | 
| 3de0 | 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 0a    20 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 69 | Option($option)...{.....return.i | 
| 3e00 | 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69    6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 3b 0a 20 | sset($this->options[$option]);.. | 
| 3e20 | 20 7d 0a 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a    2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 | .}...}.?><?php../**..*.Check.tha | 
| 3e40 | 74 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e    61 6d 65 20 69 73 20 76 61 6c 69 64 0a 20 2a 0a | t.the.function.name.is.valid..*. | 
| 3e60 | 20 2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 56 61    6c 69 64 46 75 6e 63 74 69 6f 6e 20 65 78 74 65 | .*/.class.gtIsValidFunction.exte | 
| 3e80 | 6e 64 73 20 67 74 50 72 65 43 6f 6e 64 69 74 69    6f 6e 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 | nds.gtPreCondition.{....public.f | 
| 3ea0 | 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 20 24    63 6c 6f 29 20 7b 0a 20 20 20 20 69 66 28 24 63 | unction.check(.$clo).{.....if($c | 
| 3ec0 | 6c 6f 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 66    27 29 20 29 20 7b 0a 20 20 20 20 20 20 24 66 75 | lo->hasOption('f').).{.......$fu | 
| 3ee0 | 6e 63 74 69 6f 6e 20 3d 20 24 63 6c 6f 2d 3e 67    65 74 4f 70 74 69 6f 6e 28 27 66 27 29 3b 0a 20 | nction.=.$clo->getOption('f');.. | 
| 3f00 | 20 20 20 20 20 24 66 75 6e 63 74 69 6f 6e 73 20    3d 20 67 65 74 5f 64 65 66 69 6e 65 64 5f 66 75 | .....$functions.=.get_defined_fu | 
| 3f20 | 6e 63 74 69 6f 6e 73 28 29 3b 0a 20 20 20 20 20    20 69 66 28 20 69 6e 5f 61 72 72 61 79 28 20 24 | nctions();.......if(.in_array(.$ | 
| 3f40 | 66 75 6e 63 74 69 6f 6e 2c 20 24 66 75 6e 63 74    69 6f 6e 73 5b 27 69 6e 74 65 72 6e 61 6c 27 5d | function,.$functions['internal'] | 
| 3f60 | 20 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 72    65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 | .).).{.........return.true;..... | 
| 3f80 | 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e    20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 | ..}.......return.false;.....}... | 
| 3fa0 | 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20    20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e | ..return.true;...}....public.fun | 
| 3fc0 | 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65    28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 | ction.getMessage().{.....return. | 
| 3fe0 | 67 74 54 65 78 74 3a 3a 67 65 74 28 27 75 6e 6b    6e 6f 77 6e 46 75 6e 63 74 69 6f 6e 27 29 3b 0a | gtText::get('unknownFunction');. | 
| 4000 | 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f    2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 | ..}.}.?><?php../**..*.Check.that | 
| 4020 | 20 62 7c 63 7c 76 20 69 73 20 73 70 65 63 69 66    69 65 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 | .b|c|v.is.specified..*..*/.class | 
| 4040 | 20 67 74 49 73 53 70 65 63 69 66 69 65 64 54 65    73 74 54 79 70 65 20 65 78 74 65 6e 64 73 20 67 | .gtIsSpecifiedTestType.extends.g | 
| 4060 | 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a    20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 | tPreCondition.{......public.func | 
| 4080 | 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f    29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d | tion.check(.$clo).{.....if($clo- | 
| 40a0 | 3e 68 61 73 4f 70 74 69 6f 6e 28 27 62 27 29 20    7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 | >hasOption('b').||.$clo->hasOpti | 
| 40c0 | 6f 6e 28 27 65 27 29 20 7c 7c 20 24 63 6c 6f 2d    3e 68 61 73 4f 70 74 69 6f 6e 28 27 76 27 29 20 | on('e').||.$clo->hasOption('v'). | 
| 40e0 | 29 20 7b 0a 20 20 20 20 0a 20 20 20 20 20 20 20    20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 | ).{..............return.true;... | 
| 4100 | 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72 6e    20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 0a 20 | ....}.....return.false;...}..... | 
| 4120 | 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e    20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b 0a | .public.function.getMessage().{. | 
| 4140 | 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 78    74 3a 3a 67 65 74 28 27 74 65 73 74 54 79 70 65 | ....return.gtText::get('testType | 
| 4160 | 4e 6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a    20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f | NotSpecified');...}.}.?><?php../ | 
| 4180 | 2a 2a 0a 20 2a 20 49 66 20 75 73 65 20 68 61 73    20 72 65 71 75 65 73 74 65 64 20 61 20 63 6c 61 | **..*.If.use.has.requested.a.cla | 
| 41a0 | 73 73 20 63 68 65 63 6b 20 74 68 61 74 20 6d 65    74 68 6f 64 20 69 73 20 73 70 65 63 69 66 69 65 | ss.check.that.method.is.specifie | 
| 41c0 | 64 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67    74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68 6f | d..*..*/.class.gtIfClassHasMetho | 
| 41e0 | 64 20 65 78 74 65 6e 64 73 20 67 74 50 72 65 43    6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 0a 20 20 | d.extends.gtPreCondition.{...... | 
| 4200 | 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20    63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a 20 | public.function.check(.$clo).{.. | 
| 4220 | 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 4f    70 74 69 6f 6e 28 27 63 27 29 29 20 7b 0a 20 20 | ...if($clo->hasOption('c')).{... | 
| 4240 | 20 20 20 20 69 66 28 21 24 63 6c 6f 2d 3e 68 61    73 4f 70 74 69 6f 6e 28 27 6d 27 29 29 20 7b 0a | ....if(!$clo->hasOption('m')).{. | 
| 4260 | 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 66    61 6c 73 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 | ........return.false;.......}... | 
| 4280 | 20 20 20 20 72 65 74 75 72 6e 20 20 74 72 75 65    3b 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 | ....return..true;.....}.....retu | 
| 42a0 | 72 6e 20 74 72 75 65 3b 0a 20 20 7d 0a 20 20 0a    20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f | rn.true;...}......public.functio | 
| 42c0 | 6e 20 67 65 74 4d 65 73 73 61 67 65 28 29 20 7b    0a 20 20 20 20 72 65 74 75 72 6e 20 67 74 54 65 | n.getMessage().{.....return.gtTe | 
| 42e0 | 78 74 3a 3a 67 65 74 28 27 6d 65 74 68 6f 64 4e    6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 | xt::get('methodNotSpecified');.. | 
| 4300 | 20 7d 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f    2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 | .}..}.?><?php../**..*.Check.that | 
| 4320 | 20 65 69 74 68 65 72 20 61 20 6d 65 74 68 6f 64    20 6f 72 20 61 20 66 75 6e 63 74 69 6f 6e 20 69 | .either.a.method.or.a.function.i | 
| 4340 | 73 20 73 70 65 63 69 66 69 65 64 0a 20 2a 0a 20    2a 2f 0a 63 6c 61 73 73 20 67 74 49 73 53 70 65 | s.specified..*..*/.class.gtIsSpe | 
| 4360 | 63 69 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72    4d 65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 | cifiedFunctionOrMethod.extends.g | 
| 4380 | 74 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a    20 20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 | tPreCondition.{......public.func | 
| 43a0 | 74 69 6f 6e 20 63 68 65 63 6b 28 20 24 63 6c 6f    29 20 7b 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d | tion.check(.$clo).{.....if($clo- | 
| 43c0 | 3e 68 61 73 4f 70 74 69 6f 6e 28 27 66 27 29 20    7c 7c 20 24 63 6c 6f 2d 3e 68 61 73 4f 70 74 69 | >hasOption('f').||.$clo->hasOpti | 
| 43e0 | 6f 6e 28 27 6d 27 29 29 20 7b 0a 20 20 20 20 0a    20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 | on('m')).{..............return.t | 
| 4400 | 72 75 65 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20    20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20 | rue;.......}.....return.false;.. | 
| 4420 | 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 66    75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 | .}......public.function.getMessa | 
| 4440 | 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72    6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 66 | ge().{.....return.gtText::get('f | 
| 4460 | 75 6e 63 74 69 6f 6e 4f 72 4d 65 74 68 6f 64 4e    6f 74 53 70 65 63 69 66 69 65 64 27 29 3b 0a 20 | unctionOrMethodNotSpecified');.. | 
| 4480 | 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a    2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61 74 20 | .}.}.?><?php../**..*.Check.that. | 
| 44a0 | 74 68 65 20 6d 65 74 68 6f 64 20 6e 61 6d 65 20    69 73 20 76 61 6c 69 64 0a 20 2a 0a 20 2a 2f 0a | the.method.name.is.valid..*..*/. | 
| 44c0 | 63 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 4d    65 74 68 6f 64 20 65 78 74 65 6e 64 73 20 67 74 | class.gtIsValidMethod.extends.gt | 
| 44e0 | 50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a    20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e | PreCondition.{...public.function | 
| 4500 | 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b 0a    20 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61 73 | .check(.$clo).{.....if($clo->has | 
| 4520 | 4f 70 74 69 6f 6e 28 27 6d 27 29 20 29 20 7b 0a    20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d 65 | Option('m').).{.......$className | 
| 4540 | 20 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69    6f 6e 28 27 63 27 29 3b 0a 20 20 20 20 20 20 24 | .=.$clo->getOption('c');.......$ | 
| 4560 | 63 6c 61 73 73 20 3d 20 6e 65 77 20 52 65 66 6c    65 63 74 69 6f 6e 43 6c 61 73 73 28 24 63 6c 61 | class.=.new.ReflectionClass($cla | 
| 4580 | 73 73 4e 61 6d 65 29 3b 0a 20 20 20 20 20 20 24    6d 65 74 68 6f 64 73 20 3d 20 24 63 6c 61 73 73 | ssName);.......$methods.=.$class | 
| 45a0 | 2d 3e 67 65 74 4d 65 74 68 6f 64 73 28 29 3b 0a    20 20 20 20 20 20 66 6f 72 65 61 63 68 28 24 6d | ->getMethods();.......foreach($m | 
| 45c0 | 65 74 68 6f 64 73 20 61 73 20 24 6d 65 74 68 6f    64 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 28 | ethods.as.$method).{.........if( | 
| 45e0 | 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 69 6f 6e 28    27 6d 27 29 20 3d 3d 20 24 6d 65 74 68 6f 64 2d | $clo->getOption('m').==.$method- | 
| 4600 | 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 20 20    20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 74 | >getName()).{...........return.t | 
| 4620 | 72 75 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20    20 20 20 20 20 7d 0a 20 20 20 20 20 20 72 65 74 | rue;.........}.......}.......ret | 
| 4640 | 75 72 6e 20 66 61 6c 73 65 3b 0a 20 20 20 20 7d    0a 20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 | urn.false;.....}.....return.true | 
| 4660 | 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20    66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 | ;...}....public.function.getMess | 
| 4680 | 61 67 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75    72 6e 20 67 74 54 65 78 74 3a 3a 67 65 74 28 27 | age().{.....return.gtText::get(' | 
| 46a0 | 75 6e 6b 6e 6f 77 6e 4d 65 74 68 6f 64 27 29 3b    0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a | unknownMethod');...}.}.?><?php.. | 
| 46c0 | 2f 2a 2a 0a 20 2a 20 43 68 65 63 6b 20 74 68 61    74 20 74 68 65 20 63 6c 61 73 73 20 6e 61 6d 65 | /**..*.Check.that.the.class.name | 
| 46e0 | 20 69 73 20 76 61 6c 69 64 0a 20 2a 0a 20 2a 2f    0a 63 6c 61 73 73 20 67 74 49 73 56 61 6c 69 64 | .is.valid..*..*/.class.gtIsValid | 
| 4700 | 43 6c 61 73 73 20 65 78 74 65 6e 64 73 20 67 74    50 72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 0a | Class.extends.gtPreCondition.{.. | 
| 4720 | 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f    6e 20 63 68 65 63 6b 28 20 24 63 6c 6f 29 20 7b | ..public.function.check(.$clo).{ | 
| 4740 | 0a 20 20 20 20 69 66 28 24 63 6c 6f 2d 3e 68 61    73 4f 70 74 69 6f 6e 28 27 63 27 29 20 29 20 7b | .....if($clo->hasOption('c').).{ | 
| 4760 | 0a 20 20 20 20 20 20 24 63 6c 61 73 73 4e 61 6d    65 20 3d 20 24 63 6c 6f 2d 3e 67 65 74 4f 70 74 | .......$className.=.$clo->getOpt | 
| 4780 | 69 6f 6e 28 27 63 27 29 3b 0a 20 20 20 20 20 20    69 66 28 20 69 6e 5f 61 72 72 61 79 28 20 24 63 | ion('c');.......if(.in_array(.$c | 
| 47a0 | 6c 61 73 73 4e 61 6d 65 2c 20 67 65 74 5f 64 65    63 6c 61 72 65 64 5f 63 6c 61 73 73 65 73 28 29 | lassName,.get_declared_classes() | 
| 47c0 | 20 29 20 29 20 7b 0a 20 20 20 20 20 20 20 20 72    65 74 75 72 6e 20 74 72 75 65 3b 0a 20 20 20 20 | .).).{.........return.true;..... | 
| 47e0 | 20 20 7d 0a 20 20 20 20 20 20 72 65 74 75 72 6e    20 66 61 6c 73 65 3b 0a 20 20 20 20 7d 0a 20 20 | ..}.......return.false;.....}... | 
| 4800 | 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 20    20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e | ..return.true;...}....public.fun | 
| 4820 | 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61 67 65    28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 | ction.getMessage().{.....return. | 
| 4840 | 67 74 54 65 78 74 3a 3a 67 65 74 28 27 75 6e 6b    6e 6f 77 6e 43 6c 61 73 73 27 29 3b 0a 20 20 7d | gtText::get('unknownClass');...} | 
| 4860 | 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a    20 2a 20 4c 69 73 74 20 6f 66 20 70 72 65 63 6f | .}.?><?php../**..*.List.of.preco | 
| 4880 | 6e 64 69 74 69 6f 6e 73 2e 0a 20 2a 0a 20 2a 2f    0a 63 6c 61 73 73 20 67 74 50 72 65 43 6f 6e 64 | nditions...*..*/.class.gtPreCond | 
| 48a0 | 69 74 69 6f 6e 4c 69 73 74 20 7b 0a 20 20 0a 20    20 70 72 69 76 61 74 65 20 24 70 72 65 43 6f 6e | itionList.{......private.$preCon | 
| 48c0 | 64 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28    0a 20 20 20 20 20 20 27 67 74 49 73 53 70 65 63 | ditions.=.array(.......'gtIsSpec | 
| 48e0 | 69 66 69 65 64 54 65 73 74 54 79 70 65 27 2c 0a    20 20 20 20 20 20 27 67 74 49 73 53 70 65 63 69 | ifiedTestType',.......'gtIsSpeci | 
| 4900 | 66 69 65 64 46 75 6e 63 74 69 6f 6e 4f 72 4d 65    74 68 6f 64 27 2c 20 20 0a 20 20 20 20 20 20 27 | fiedFunctionOrMethod',.........' | 
| 4920 | 67 74 49 66 43 6c 61 73 73 48 61 73 4d 65 74 68    6f 64 27 2c 0a 20 20 20 20 20 20 27 67 74 49 73 | gtIfClassHasMethod',.......'gtIs | 
| 4940 | 56 61 6c 69 64 43 6c 61 73 73 27 2c 0a 20 20 20    20 20 20 27 67 74 49 73 56 61 6c 69 64 46 75 6e | ValidClass',.......'gtIsValidFun | 
| 4960 | 63 74 69 6f 6e 27 2c 0a 20 20 20 20 20 20 27 67    74 49 73 56 61 6c 69 64 4d 65 74 68 6f 64 27 2c | ction',.......'gtIsValidMethod', | 
| 4980 | 0a 20 20 29 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20    20 2a 20 43 72 65 61 74 65 20 61 6e 20 69 6e 73 | ...);...../**....*.Create.an.ins | 
| 49a0 | 74 61 6e 63 65 20 6f 66 20 65 61 63 68 20 70 72    65 2d 63 6f 6e 64 69 74 69 6f 6e 20 61 6e 64 20 | tance.of.each.pre-condition.and. | 
| 49c0 | 72 75 6e 20 74 68 65 69 72 20 63 68 65 63 6b 20    6d 65 74 68 6f 64 73 0a 20 20 20 2a 0a 20 20 20 | run.their.check.methods....*.... | 
| 49e0 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63    74 69 6f 6e 20 63 68 65 63 6b 28 24 63 6c 6f 29 | */...public.function.check($clo) | 
| 4a00 | 20 7b 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28    24 74 68 69 73 2d 3e 70 72 65 43 6f 6e 64 69 74 | .{.....foreach.($this->preCondit | 
| 4a20 | 69 6f 6e 73 20 61 73 20 24 70 72 65 43 6f 6e 29    20 7b 0a 20 20 20 20 20 20 24 63 68 65 63 6b 54 | ions.as.$preCon).{.......$checkT | 
| 4a40 | 68 69 73 20 3d 20 6e 65 77 20 24 70 72 65 43 6f    6e 3b 0a 20 20 20 20 20 20 69 66 28 21 24 63 68 | his.=.new.$preCon;.......if(!$ch | 
| 4a60 | 65 63 6b 54 68 69 73 2d 3e 63 68 65 63 6b 28 24    63 6c 6f 29 29 20 7b 0a 20 20 20 20 20 20 20 20 | eckThis->check($clo)).{......... | 
| 4a80 | 65 63 68 6f 20 24 63 68 65 63 6b 54 68 69 73 2d    3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 20 | echo.$checkThis->getMessage();.. | 
| 4aa0 | 20 20 20 20 20 20 20 64 69 65 28 67 74 54 65 78    74 3a 3a 67 65 74 28 27 68 65 6c 70 27 29 29 3b | .......die(gtText::get('help')); | 
| 4ac0 | 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20    20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 63 6c 61 | .......}.....}...}.}.?><?php.cla | 
| 4ae0 | 73 73 20 67 74 4f 70 74 69 6f 6e 61 6c 53 65 63    74 69 6f 6e 73 20 7b 0a 0a 20 20 70 72 69 76 61 | ss.gtOptionalSections.{....priva | 
| 4b00 | 74 65 20 24 6f 70 74 53 65 63 74 69 6f 6e 73 20    3d 20 61 72 72 61 79 28 0a 20 20 20 20 27 73 6b | te.$optSections.=.array(.....'sk | 
| 4b20 | 69 70 69 66 27 20 3d 3e 20 66 61 6c 73 65 2c 0a    20 20 20 20 27 69 6e 69 27 20 20 20 20 3d 3e 20 | ipif'.=>.false,.....'ini'....=>. | 
| 4b40 | 66 61 6c 73 65 2c 0a 20 20 20 20 27 63 6c 65 61    6e 27 20 20 3d 3e 20 66 61 6c 73 65 2c 0a 20 20 | false,.....'clean'..=>.false,... | 
| 4b60 | 20 20 27 64 6f 6e 65 27 20 20 20 3d 3e 20 66 61    6c 73 65 2c 0a 20 20 29 3b 0a 0a 20 20 70 72 69 | ..'done'...=>.false,...);....pri | 
| 4b80 | 76 61 74 65 20 24 73 6b 69 70 69 66 4b 65 79 20    3d 20 27 27 3b 0a 20 20 70 72 69 76 61 74 65 20 | vate.$skipifKey.=.'';...private. | 
| 4ba0 | 24 73 6b 69 70 69 66 45 78 74 20 3d 20 27 27 3b    0a 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 | $skipifExt.=.'';.....public.func | 
| 4bc0 | 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 73 28    24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 | tion.setOptions($commandLineOpti | 
| 4be0 | 6f 6e 73 29 20 7b 0a 20 20 20 20 69 66 28 24 63    6f 6d 6d 61 6e 64 4c 69 6e 65 4f 70 74 69 6f 6e | ons).{.....if($commandLineOption | 
| 4c00 | 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 73 27    29 29 20 7b 0a 20 20 20 20 20 20 24 6f 70 74 69 | s->hasOption('s')).{.......$opti | 
| 4c20 | 6f 6e 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a    27 2c 20 24 63 6f 6d 6d 61 6e 64 4c 69 6e 65 4f | ons.=.explode(':',.$commandLineO | 
| 4c40 | 70 74 69 6f 6e 73 2d 3e 67 65 74 4f 70 74 69 6f    6e 28 27 73 27 29 29 3b 0a 0a 20 20 20 20 20 20 | ptions->getOption('s'));........ | 
| 4c60 | 66 6f 72 65 61 63 68 28 24 6f 70 74 69 6f 6e 73    20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 0a | foreach($options.as.$option).{.. | 
| 4c80 | 20 20 20 20 20 20 20 20 69 66 28 61 72 72 61 79    5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6f 70 74 | ........if(array_key_exists($opt | 
| 4ca0 | 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 74 53    65 63 74 69 6f 6e 73 20 29 29 20 7b 0a 20 20 20 | ion,.$this->optSections.)).{.... | 
| 4cc0 | 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f 70    74 53 65 63 74 69 6f 6e 73 5b 24 6f 70 74 69 6f | .......$this->optSections[$optio | 
| 4ce0 | 6e 5d 20 3d 20 74 72 75 65 3b 0a 20 20 20 20 20    20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 | n].=.true;.........}.else.{..... | 
| 4d00 | 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 77 20    67 74 55 6e 6b 6e 6f 77 6e 53 65 63 74 69 6f 6e | ......throw.new.gtUnknownSection | 
| 4d20 | 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 72 65 63    6f 67 6e 69 73 65 64 20 6f 70 74 69 6f 6e 61 6c | Exception('Unrecognised.optional | 
| 4d40 | 20 73 65 63 74 69 6f 6e 27 29 3b 0a 20 20 20 20    20 20 20 20 7d 0a 20 20 20 20 20 20 7d 0a 0a 20 | .section');.........}.......}... | 
| 4d60 | 20 20 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64    4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 68 61 73 | .....if($commandLineOptions->has | 
| 4d80 | 4f 70 74 69 6f 6e 28 27 6b 27 29 29 20 7b 0a 20    20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 6b | Option('k')).{.........$this->sk | 
| 4da0 | 69 70 69 66 4b 65 79 20 3d 20 24 63 6f 6d 6d 61    6e 64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 67 | ipifKey.=.$commandLineOptions->g | 
| 4dc0 | 65 74 4f 70 74 69 6f 6e 28 27 6b 27 29 3b 0a 20    20 20 20 20 20 7d 0a 20 20 20 20 20 20 0a 20 20 | etOption('k');.......}.......... | 
| 4de0 | 20 20 20 20 69 66 28 24 63 6f 6d 6d 61 6e 64 4c    69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 68 61 73 4f | ....if($commandLineOptions->hasO | 
| 4e00 | 70 74 69 6f 6e 28 27 78 27 29 29 20 7b 0a 20 20    20 20 20 20 20 20 24 74 68 69 73 2d 3e 73 6b 69 | ption('x')).{.........$this->ski | 
| 4e20 | 70 69 66 45 78 74 20 3d 20 24 63 6f 6d 6d 61 6e    64 4c 69 6e 65 4f 70 74 69 6f 6e 73 2d 3e 67 65 | pifExt.=.$commandLineOptions->ge | 
| 4e40 | 74 4f 70 74 69 6f 6e 28 27 78 27 29 3b 0a 20 20    20 20 20 20 7d 0a 20 20 20 20 20 20 0a 20 20 20 | tOption('x');.......}........... | 
| 4e60 | 20 7d 0a 20 20 7d 0a 0a 0a 0a 20 20 70 75 62 6c    69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f | .}...}......public.function.getO | 
| 4e80 | 70 74 69 6f 6e 73 28 29 20 7b 0a 20 20 20 20 72    65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 | ptions().{.....return.$this->opt | 
| 4ea0 | 53 65 63 74 69 6f 6e 73 3b 0a 20 20 7d 0a 0a 0a    20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f | Sections;...}.....public.functio | 
| 4ec0 | 6e 20 67 65 74 53 6b 69 70 69 66 4b 65 79 28 29    20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 | n.getSkipifKey().{.....return.$t | 
| 4ee0 | 68 69 73 2d 3e 73 6b 69 70 69 66 4b 65 79 3b 0a    20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63 20 | his->skipifKey;...}......public. | 
| 4f00 | 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6b 69 70    69 66 45 78 74 28 29 20 7b 0a 20 20 20 20 72 65 | function.getSkipifExt().{.....re | 
| 4f20 | 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6b 69 70    69 66 45 78 74 3b 0a 20 20 7d 0a 0a 20 20 70 75 | turn.$this->skipifExt;...}....pu | 
| 4f40 | 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61    73 53 6b 69 70 69 66 28 29 20 7b 0a 20 20 20 20 | blic.function.hasSkipif().{..... | 
| 4f60 | 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70    74 53 65 63 74 69 6f 6e 73 5b 27 73 6b 69 70 69 | return.$this->optSections['skipi | 
| 4f80 | 66 27 5d 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c    69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 | f'];...}....public.function.hasS | 
| 4fa0 | 6b 69 70 69 66 4b 65 79 28 29 20 7b 0a 20 20 20    20 69 66 28 24 74 68 69 73 2d 3e 73 6b 69 70 69 | kipifKey().{.....if($this->skipi | 
| 4fc0 | 66 4b 65 79 20 21 3d 20 27 27 29 20 7b 0a 20 20    20 20 20 20 72 65 74 75 72 6e 20 74 72 75 65 3b | fKey.!=.'').{.......return.true; | 
| 4fe0 | 0a 20 20 20 20 7d 0a 20 20 20 20 72 65 74 75 72    6e 20 66 61 6c 73 65 3b 0a 20 20 7d 0a 20 20 0a | .....}.....return.false;...}.... | 
| 5000 | 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f    6e 20 68 61 73 53 6b 69 70 69 66 45 78 74 28 29 | ..public.function.hasSkipifExt() | 
| 5020 | 20 7b 0a 20 20 20 20 69 66 28 24 74 68 69 73 2d    3e 73 6b 69 70 69 66 45 78 74 20 21 3d 20 27 27 | .{.....if($this->skipifExt.!=.'' | 
| 5040 | 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e    20 74 72 75 65 3b 0a 20 20 20 20 7d 0a 20 20 20 | ).{.......return.true;.....}.... | 
| 5060 | 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 20    20 7d 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 | .return.false;...}...public.func | 
| 5080 | 74 69 6f 6e 20 68 61 73 49 6e 69 28 29 20 7b 0a    20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 | tion.hasIni().{.....return.$this | 
| 50a0 | 2d 3e 6f 70 74 53 65 63 74 69 6f 6e 73 5b 27 69    6e 69 27 5d 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 | ->optSections['ini'];...}....pub | 
| 50c0 | 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73    43 6c 65 61 6e 28 29 20 7b 0a 20 20 20 20 72 65 | lic.function.hasClean().{.....re | 
| 50e0 | 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 53    65 63 74 69 6f 6e 73 5b 27 63 6c 65 61 6e 27 5d | turn.$this->optSections['clean'] | 
| 5100 | 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69    63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 44 6f | ;...}......public.function.hasDo | 
| 5120 | 6e 65 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72    6e 20 24 74 68 69 73 2d 3e 6f 70 74 53 65 63 74 | ne().{.....return.$this->optSect | 
| 5140 | 69 6f 6e 73 5b 27 64 6f 6e 65 27 5d 3b 0a 20 20    7d 0a 0a 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 20 | ions['done'];...}...}.?><?php... | 
| 5160 | 20 63 6c 61 73 73 20 67 74 4d 69 73 73 69 6e 67    41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f | .class.gtMissingArgumentExceptio | 
| 5180 | 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d    65 45 78 63 65 70 74 69 6f 6e 0a 20 20 7b 0a 20 | n.extends.RuntimeException...{.. | 
| 51a0 | 20 7d 0a 0a 3f 3e 0a 3c 3f 70 68 70 0a 0a 63 6c    61 73 73 20 67 74 55 6e 6b 6e 6f 77 6e 53 65 63 | .}..?>.<?php..class.gtUnknownSec | 
| 51c0 | 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 20 65 78    74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 | tionException.extends.RuntimeExc | 
| 51e0 | 65 70 74 69 6f 6e 0a 20 20 7b 0a 20 20 7d 0a 3f    3e 3c 3f 70 68 70 0a 0a 20 20 63 6c 61 73 73 20 | eption...{...}.?><?php....class. | 
| 5200 | 67 74 55 6e 6b 6e 6f 77 6e 4f 70 74 69 6f 6e 45    78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 | gtUnknownOptionException.extends | 
| 5220 | 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f    6e 0a 20 20 7b 0a 20 20 7d 0a 0a 3f 3e 0a 3c 3f | .RuntimeException...{...}..?>.<? | 
| 5240 | 70 68 70 0a 0a 20 63 6c 61 73 73 20 67 74 4d 69    73 73 69 6e 67 4f 70 74 69 6f 6e 73 45 78 63 65 | php...class.gtMissingOptionsExce | 
| 5260 | 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75    6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a 20 | ption.extends.RuntimeException.. | 
| 5280 | 20 7b 0a 20 20 7d 0a 0a 3f 3e 3c 3f 70 68 70 0a    0a 2f 2a 2a 0a 20 2a 20 70 61 72 65 6e 74 20 63 | .{...}..?><?php../**..*.parent.c | 
| 52a0 | 6c 61 73 73 20 66 6f 72 20 70 72 65 63 6f 6e 64    69 74 69 6f 6e 73 0a 20 2a 0a 20 2a 2f 0a 61 62 | lass.for.preconditions..*..*/.ab | 
| 52c0 | 73 74 72 61 63 74 20 63 6c 61 73 73 20 67 74 50    72 65 43 6f 6e 64 69 74 69 6f 6e 20 7b 0a 20 20 | stract.class.gtPreCondition.{... | 
| 52e0 | 0a 20 20 61 62 73 74 72 61 63 74 20 70 75 62 6c    69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 | ...abstract.public.function.chec | 
| 5300 | 6b 28 24 63 6c 6f 29 3b 20 0a 20 20 0a 20 20 61    62 73 74 72 61 63 74 20 70 75 62 6c 69 63 20 66 | k($clo);.......abstract.public.f | 
| 5320 | 75 6e 63 74 69 6f 6e 20 67 65 74 4d 65 73 73 61    67 65 28 29 3b 20 0a 20 20 0a 7d 0a 3f 3e 3c 3f | unction.getMessage();.....}.?><? | 
| 5340 | 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 57 72 69 74    65 73 20 61 20 73 69 6e 67 6c 65 20 74 65 73 74 | php../**..*.Writes.a.single.test | 
| 5360 | 20 63 61 73 65 20 74 6f 20 61 20 66 69 6c 65 0a    20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 54 | .case.to.a.file..*..*/.class.gtT | 
| 5380 | 65 73 74 43 61 73 65 57 72 69 74 65 72 20 7b 0a    20 20 0a 20 20 70 75 62 6c 69 63 20 73 74 61 74 | estCaseWriter.{......public.stat | 
| 53a0 | 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74    65 28 24 6e 61 6d 65 2c 20 24 73 74 72 69 6e 67 | ic.function.write($name,.$string | 
| 53c0 | 2c 20 24 74 79 70 65 2c 20 24 63 6f 75 6e 74 20    3d 20 30 29 20 7b 0a 20 20 20 20 69 66 20 28 24 | ,.$type,.$count.=.0).{.....if.($ | 
| 53e0 | 74 79 70 65 20 20 3d 3d 20 27 62 27 29 20 7b 0a    20 20 20 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 | type..==.'b').{.....$fileName.=. | 
| 5400 | 24 6e 61 6d 65 2e 22 5f 62 61 73 69 63 2e 70 68    70 74 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a | $name."_basic.phpt";.....}...... | 
| 5420 | 20 20 20 20 69 66 20 28 24 74 79 70 65 20 20 3d    3d 20 27 65 27 29 20 7b 0a 20 20 20 20 20 24 66 | ....if.($type..==.'e').{......$f | 
| 5440 | 69 6c 65 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 2e    22 5f 65 72 72 6f 72 2e 70 68 70 74 22 3b 0a 20 | ileName.=.$name."_error.phpt";.. | 
| 5460 | 20 20 20 7d 0a 20 20 20 20 0a 20 20 20 20 69 66    20 28 24 74 79 70 65 20 20 3d 3d 20 27 76 27 29 | ...}..........if.($type..==.'v') | 
| 5480 | 20 7b 0a 20 20 20 20 20 20 24 66 69 6c 65 4e 61    6d 65 20 3d 20 24 6e 61 6d 65 2e 22 5f 76 61 72 | .{.......$fileName.=.$name."_var | 
| 54a0 | 69 61 74 69 6f 6e 22 2e 24 63 6f 75 6e 74 2e 22    2e 70 68 70 74 22 3b 0a 20 20 20 20 7d 0a 20 20 | iation".$count.".phpt";.....}... | 
| 54c0 | 20 20 0a 20 20 20 20 24 66 68 20 3d 20 66 6f 70    65 6e 28 24 66 69 6c 65 4e 61 6d 65 2c 20 27 77 | .......$fh.=.fopen($fileName,.'w | 
| 54e0 | 27 29 3b 0a 20 20 20 20 66 77 72 69 74 65 20 28    24 66 68 2c 20 24 73 74 72 69 6e 67 29 3b 0a 20 | ');.....fwrite.($fh,.$string);.. | 
| 5500 | 20 20 20 66 63 6c 6f 73 65 28 24 66 68 29 3b 0a    20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f | ...fclose($fh);...}.}.?><?php../ | 
| 5520 | 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72 20    6d 65 74 68 6f 64 20 75 6e 64 65 72 20 74 65 73 | **..*.Class.for.method.under.tes | 
| 5540 | 74 20 28 73 65 65 20 67 74 46 75 6e 63 74 69 6f    6e 20 66 6f 72 20 6e 6f 6e 2d 4f 4f 20 74 65 73 | t.(see.gtFunction.for.non-OO.tes | 
| 5560 | 74 73 29 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74    4d 65 74 68 6f 64 20 20 65 78 74 65 6e 64 73 20 | ts)..*/.class.gtMethod..extends. | 
| 5580 | 67 74 54 65 73 74 53 75 62 6a 65 63 74 20 7b 0a    0a 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 | gtTestSubject.{....private.$clas | 
| 55a0 | 73 4e 61 6d 65 3b 0a 20 20 70 72 69 76 61 74 65    20 24 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 | sName;...private.$methodName;... | 
| 55c0 | 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 75    63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 | private.$constructorArgumentName | 
| 55e0 | 73 3b 0a 20 20 70 72 69 76 61 74 65 20 24 63 6f    6e 73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e | s;...private.$constructorArgumen | 
| 5600 | 74 4c 69 73 74 20 3d 20 27 27 3b 0a 20 20 70 72    69 76 61 74 65 20 24 63 6f 6e 73 74 72 75 63 74 | tList.=.'';...private.$construct | 
| 5620 | 6f 72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e    53 74 61 74 65 6d 65 6e 74 73 3b 0a 0a 0a 0a 20 | orInitialisationStatements;..... | 
| 5640 | 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72    75 63 74 20 67 74 4d 65 74 68 6f 64 20 6f 62 6a | ./**....*.Construct.gtMethod.obj | 
| 5660 | 65 63 74 20 66 72 6f 6d 20 74 68 65 20 63 6c 61    73 73 20 61 6e 64 20 6d 65 74 68 6f 64 20 6e 61 | ect.from.the.class.and.method.na | 
| 5680 | 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70    61 72 61 6d 20 73 74 72 69 6e 67 20 24 63 6c 61 | mes....*....*.@param.string.$cla | 
| 56a0 | 73 73 4e 61 6d 65 0a 20 20 20 2a 20 40 70 61 72    61 6d 20 73 74 72 69 6e 67 20 24 6d 65 74 68 6f | ssName....*.@param.string.$metho | 
| 56c0 | 64 4e 61 6d 65 0a 20 20 20 2a 2f 0a 20 20 70 75    62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f | dName....*/...public.function.__ | 
| 56e0 | 63 6f 6e 73 74 72 75 63 74 28 24 63 6c 61 73 73    4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d | construct($className,.$methodNam | 
| 5700 | 65 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e    63 6c 61 73 73 4e 61 6d 65 20 3d 20 24 63 6c 61 | e).{.....$this->className.=.$cla | 
| 5720 | 73 73 4e 61 6d 65 3b 0a 20 20 20 20 24 74 68 69    73 2d 3e 6d 65 74 68 6f 64 4e 61 6d 65 20 3d 20 | ssName;.....$this->methodName.=. | 
| 5740 | 24 6d 65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 7d    0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 | $methodName;...}...../**....*.Se | 
| 5760 | 74 20 74 68 65 20 6e 61 6d 65 73 20 6f 66 20 74    68 65 20 63 6c 61 73 73 20 63 6f 6e 73 74 72 75 | t.the.names.of.the.class.constru | 
| 5780 | 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 73 2e 20    54 61 6b 65 20 6f 6e 6c 79 20 6d 61 6e 64 61 74 | ctor.arguments..Take.only.mandat | 
| 57a0 | 6f 72 79 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d    65 73 2e 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 | ory.argument.names.....*....*/.. | 
| 57c0 | 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e    20 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 | .public.function.setConstructorA | 
| 57e0 | 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b    0a 20 20 20 20 24 72 65 66 6c 65 63 74 69 6f 6e | rgumentNames().{.....$reflection | 
| 5800 | 43 6c 61 73 73 20 3d 20 6e 65 77 20 52 65 66 6c    65 63 74 69 6f 6e 43 6c 61 73 73 28 24 74 68 69 | Class.=.new.ReflectionClass($thi | 
| 5820 | 73 2d 3e 63 6c 61 73 73 4e 61 6d 65 29 3b 0a 20    20 20 20 24 63 6f 6e 73 74 72 75 63 74 6f 72 20 | s->className);.....$constructor. | 
| 5840 | 3d 20 24 72 65 66 6c 65 63 74 69 6f 6e 43 6c 61    73 73 2d 3e 67 65 74 43 6f 6e 73 74 72 75 63 74 | =.$reflectionClass->getConstruct | 
| 5860 | 6f 72 28 29 3b 0a 20 20 20 20 66 6f 72 65 61 63    68 28 24 63 6f 6e 73 74 72 75 63 74 6f 72 2d 3e | or();.....foreach($constructor-> | 
| 5880 | 67 65 74 50 61 72 61 6d 65 74 65 72 73 28 29 20    61 73 20 24 69 20 3d 3e 20 24 70 61 72 61 6d 29 | getParameters().as.$i.=>.$param) | 
| 58a0 | 20 7b 0a 20 20 20 20 20 20 2f 2f 69 66 28 21 24    70 61 72 61 6d 2d 3e 69 73 4f 70 74 69 6f 6e 61 | .{.......//if(!$param->isOptiona | 
| 58c0 | 6c 28 29 29 20 7b 0a 20 20 20 20 20 20 20 20 24    74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f | l()).{.........$this->constructo | 
| 58e0 | 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 5d    20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 4e 61 | rArgumentNames[].=.$param->getNa | 
| 5900 | 6d 65 28 29 3b 0a 20 20 20 20 20 20 2f 2f 7d 0a    20 20 20 20 7d 0a 20 20 7d 0a 0a 20 20 0a 20 20 | me();.......//}.....}...}....... | 
| 5920 | 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65    20 6e 61 6d 65 73 20 6f 66 20 74 68 65 20 6d 61 | /**....*.Set.the.names.of.the.ma | 
| 5940 | 6e 64 61 74 6f 72 79 20 61 6e 64 20 6f 70 74 69    6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 73 20 74 | ndatory.and.optional.arguments.t | 
| 5960 | 6f 20 74 68 65 20 6d 65 74 68 6f 64 0a 20 20 20    2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 | o.the.method....*....*/...public | 
| 5980 | 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67    75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b 0a 0a | .function.setArgumentNames().{.. | 
| 59a0 | 20 20 20 20 24 6d 65 74 68 6f 64 43 6c 61 73 73    20 20 3d 20 6e 65 77 20 72 65 66 6c 65 63 74 69 | ....$methodClass..=.new.reflecti | 
| 59c0 | 6f 6e 4d 65 74 68 6f 64 28 24 74 68 69 73 2d 3e    63 6c 61 73 73 4e 61 6d 65 2c 20 24 74 68 69 73 | onMethod($this->className,.$this | 
| 59e0 | 2d 3e 6d 65 74 68 6f 64 4e 61 6d 65 29 3b 0a 20    20 20 20 24 70 61 72 61 6d 65 74 65 72 73 20 3d | ->methodName);.....$parameters.= | 
| 5a00 | 20 24 6d 65 74 68 6f 64 43 6c 61 73 73 2d 3e 67    65 74 50 61 72 61 6d 65 74 65 72 73 28 29 3b 0a | .$methodClass->getParameters();. | 
| 5a20 | 0a 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 6d    65 74 68 6f 64 43 6c 61 73 73 2d 3e 67 65 74 50 | .....foreach.($methodClass->getP | 
| 5a40 | 61 72 61 6d 65 74 65 72 73 28 29 20 61 73 20 24    69 20 3d 3e 20 24 70 61 72 61 6d 29 20 7b 0a 20 | arameters().as.$i.=>.$param).{.. | 
| 5a60 | 20 20 20 20 20 69 66 28 24 70 61 72 61 6d 2d 3e    69 73 4f 70 74 69 6f 6e 61 6c 28 29 29 20 7b 0a | .....if($param->isOptional()).{. | 
| 5a80 | 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 6f    70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e | ........$this->optionalArgumentN | 
| 5aa0 | 61 6d 65 73 5b 5d 20 3d 20 24 70 61 72 61 6d 2d    3e 67 65 74 4e 61 6d 65 28 29 3b 0a 20 20 20 20 | ames[].=.$param->getName();..... | 
| 5ac0 | 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20    20 20 20 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 | ..}.else.{.........$this->mandat | 
| 5ae0 | 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73    5b 5d 20 3d 20 24 70 61 72 61 6d 2d 3e 67 65 74 | oryArgumentNames[].=.$param->get | 
| 5b00 | 4e 61 6d 65 28 29 3b 0a 20 20 20 20 20 20 7d 0a    0a 20 20 20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f | Name();.......}......}...}...../ | 
| 5b20 | 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74    68 65 20 6c 69 73 74 20 6f 66 20 63 6f 6e 73 74 | **....*.Return.the.list.of.const | 
| 5b40 | 72 75 63 74 6f 72 20 61 72 67 75 6d 65 6e 74 20    6e 61 6d 65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 | ructor.argument.names....*....*. | 
| 5b60 | 40 72 65 74 75 72 6e 20 61 72 72 61 79 0a 20 20    20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e | @return.array....*/...public.fun | 
| 5b80 | 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 75    63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 | ction.getConstructorArgumentName | 
| 5ba0 | 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e    20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 | s().{.....return.$this->construc | 
| 5bc0 | 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73    3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 | torArgumentNames;...}..../**.... | 
| 5be0 | 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6e 61 6d    65 20 6f 66 20 74 68 65 20 6d 65 74 68 6f 64 0a | *.Return.the.name.of.the.method. | 
| 5c00 | 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72    6e 20 73 74 72 69 6e 67 0a 20 20 20 2a 2f 0a 20 | ...*....*.@return.string....*/.. | 
| 5c20 | 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e    20 67 65 74 4e 61 6d 65 28 29 20 7b 0a 20 20 20 | .public.function.getName().{.... | 
| 5c40 | 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d    65 74 68 6f 64 4e 61 6d 65 3b 0a 20 20 7d 0a 0a | .return.$this->methodName;...}.. | 
| 5c60 | 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75    72 6e 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 | .../**....*.Return.the.name.of.t | 
| 5c80 | 68 65 20 63 6c 61 73 73 0a 20 20 20 2a 0a 20 20    20 2a 20 40 72 65 74 75 72 6e 20 73 74 72 69 6e | he.class....*....*.@return.strin | 
| 5ca0 | 67 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63    20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 61 | g....*/...public.function.getCla | 
| 5cc0 | 73 73 4e 61 6d 65 28 29 20 7b 0a 20 20 20 20 72    65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 | ssName().{.....return.$this->cla | 
| 5ce0 | 73 73 4e 61 6d 65 3b 0a 20 20 7d 0a 20 20 0a 20    20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 | ssName;...}....../**....*.Set.th | 
| 5d00 | 65 20 6c 69 73 74 20 6f 66 20 61 72 67 75 6d 65    6e 74 73 20 74 6f 20 62 65 20 70 61 73 73 65 64 | e.list.of.arguments.to.be.passed | 
| 5d20 | 20 74 6f 20 74 68 65 20 63 6f 6e 73 74 72 75 63    74 6f 72 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 | .to.the.constructor....*....*/.. | 
| 5d40 | 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e    20 73 65 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 | .public.function.setConstructorA | 
| 5d60 | 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a    20 20 20 20 69 66 28 63 6f 75 6e 74 20 28 24 74 | rgumentList().{.....if(count.($t | 
| 5d80 | 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72    41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e | his->constructorArgumentNames).> | 
| 5da0 | 20 30 29 20 7b 0a 20 20 20 20 20 20 0a 20 20 20    20 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 | .0).{..............for(.$i.=.0;. | 
| 5dc0 | 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69    73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 | $i.<.count(.$this->constructorAr | 
| 5de0 | 67 75 6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24    69 2b 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 24 | gumentNames.);.$i++).{.........$ | 
| 5e00 | 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f    72 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 2e 3d | this->constructorArgumentList..= | 
| 5e20 | 20 22 5c 24 22 2e 24 74 68 69 73 2d 3e 63 6f 6e    73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 | ."\$".$this->constructorArgument | 
| 5e40 | 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20 22 3b 0a    20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 24 74 | Names[$i].",.";.......}.......$t | 
| 5e60 | 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72    41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 73 | his->constructorArgumentList.=.s | 
| 5e80 | 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 6f 6e    73 74 72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 | ubstr($this->constructorArgument | 
| 5ea0 | 4c 69 73 74 2c 20 30 2c 20 2d 32 29 3b 0a 20 20    20 20 7d 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a | List,.0,.-2);.....}...}...../**. | 
| 5ec0 | 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 20    6c 69 73 74 20 6f 66 20 74 68 65 20 61 72 67 75 | ...*.Return.the.list.of.the.argu | 
| 5ee0 | 6d 65 6e 74 73 20 74 6f 20 62 65 20 70 61 73 73    65 64 20 74 6f 20 74 68 65 20 63 6f 6e 73 74 72 | ments.to.be.passed.to.the.constr | 
| 5f00 | 75 63 74 6f 72 0a 20 20 20 2a 0a 20 20 20 2a 20    40 72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 | uctor....*....*.@return.string.. | 
| 5f20 | 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75    6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 | ..*/...public.function.getConstr | 
| 5f40 | 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73    74 28 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e | uctorArgumentList().{.....return | 
| 5f60 | 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63    74 6f 72 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b | .$this->constructorArgumentList; | 
| 5f80 | 0a 20 20 7d 0a 0a 20 20 0a 20 20 2f 2a 2a 0a 20    20 20 2a 20 53 65 74 20 75 70 20 74 68 65 20 73 | ...}......./**....*.Set.up.the.s | 
| 5fa0 | 6f 75 72 63 65 20 73 74 61 74 65 6d 65 6e 74 73    20 74 68 61 74 20 69 6e 69 74 69 61 6c 69 73 65 | ource.statements.that.initialise | 
| 5fc0 | 20 63 6f 6e 73 74 72 75 63 74 6f 72 20 61 72 67    75 6d 65 6e 74 73 3b 0a 20 20 20 2a 0a 20 20 20 | .constructor.arguments;....*.... | 
| 5fe0 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63    74 69 6f 6e 20 73 65 74 43 6f 6e 73 74 72 75 63 | */...public.function.setConstruc | 
| 6000 | 74 6f 72 49 6e 69 74 53 74 61 74 65 6d 65 6e 74    73 28 29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 | torInitStatements().{.....if(cou | 
| 6020 | 6e 74 20 28 24 74 68 69 73 2d 3e 63 6f 6e 73 74    72 75 63 74 6f 72 41 72 67 75 6d 65 6e 74 4e 61 | nt.($this->constructorArgumentNa | 
| 6040 | 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20    20 20 66 6f 72 65 61 63 68 28 20 24 74 68 69 73 | mes).>.0).{.......foreach(.$this | 
| 6060 | 2d 3e 63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67    75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24 6e | ->constructorArgumentNames.as.$n | 
| 6080 | 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 24    74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f | ame).{.........$this->constructo | 
| 60a0 | 72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53    74 61 74 65 6d 65 6e 74 73 5b 5d 20 3d 20 22 5c | rInitialisationStatements[].=."\ | 
| 60c0 | 24 22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a    20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 | $".$name.".=.";.......}.....}... | 
| 60e0 | 20 7d 0a 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20    2a 20 52 65 74 75 72 6e 20 74 68 65 20 63 6f 6e | .}......./**....*.Return.the.con | 
| 6100 | 73 74 72 75 63 74 6f 72 20 69 6e 69 74 69 61 6c    69 73 61 74 69 6f 6e 20 73 74 61 74 65 6d 65 6e | structor.initialisation.statemen | 
| 6120 | 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65    74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f | ts....*....*.@return.array....*/ | 
| 6140 | 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69    6f 6e 20 67 65 74 43 6f 6e 73 74 72 75 63 74 6f | ...public.function.getConstructo | 
| 6160 | 72 49 6e 69 74 53 74 61 74 65 6d 65 6e 74 73 28    29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24 | rInitStatements().{.....return.$ | 
| 6180 | 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 6f    72 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 | this->constructorInitialisationS | 
| 61a0 | 74 61 74 65 6d 65 6e 74 73 3b 0a 20 20 7d 0a 7d    0a 3f 3e 20 2a 0a 20 2a 2f 69 66 20 28 73 75 62 | tatements;...}.}.?>.*..*/if.(sub | 
| 61c0 | 73 74 72 28 50 48 50 5f 4f 53 2c 20 30 2c 20 33    29 20 3d 3d 20 27 57 49 4e 27 29 20 64 69 65 28 | str(PHP_OS,.0,.3).==.'WIN').die( | 
| 61e0 | 22 73 6b 69 70 20 74 68 69 73 20 74 65 73 74 20    69 73 20 6e 6f 74 20 66 6f 72 20 57 69 6e 64 6f | "skip.this.test.is.not.for.Windo | 
| 6200 | 77 73 20 70 6c 61 74 66 6f 72 6d 73 22 29 3b 0a    2f 2a 2a 0a 20 2a 24 76 61 72 69 61 74 69 6f 6e | ws.platforms");./**..*$variation | 
| 6220 | 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a    20 20 27 66 6c 6f 61 74 20 31 30 2e 35 27 20 3d | _array.=.array(...'float.10.5'.= | 
| 6240 | 3e 20 31 30 2e 35 2c 0a 20 20 27 66 6c 6f 61 74    20 2d 31 30 2e 35 27 20 3d 3e 20 2d 31 30 2e 35 | >.10.5,...'float.-10.5'.=>.-10.5 | 
| 6260 | 2c 0a 20 20 27 66 6c 6f 61 74 20 31 32 2e 33 34    35 36 37 38 39 30 30 30 65 31 30 27 20 3d 3e 20 | ,...'float.12.3456789000e10'.=>. | 
| 6280 | 31 32 2e 33 34 35 36 37 38 39 30 30 30 65 31 30    2c 0a 20 20 27 66 6c 6f 61 74 20 2d 31 32 2e 33 | 12.3456789000e10,...'float.-12.3 | 
| 62a0 | 34 35 36 37 38 39 30 30 30 65 31 30 27 20 3d 3e    20 2d 31 32 2e 33 34 35 36 37 38 39 30 30 30 65 | 456789000e10'.=>.-12.3456789000e | 
| 62c0 | 31 30 2c 0a 20 20 27 66 6c 6f 61 74 20 2e 35 27    20 3d 3e 20 2e 35 2c 0a 20 20 29 3b 24 68 65 72 | 10,...'float..5'.=>..5,...);$her | 
| 62e0 | 65 64 6f 63 20 3d 20 3c 3c 3c 45 4f 54 0a 68 65    6c 6c 6f 20 77 6f 72 6c 64 0a 45 4f 54 3b 0a 0a | edoc.=.<<<EOT.hello.world.EOT;.. | 
| 6300 | 24 76 61 72 69 61 74 69 6f 6e 5f 61 72 72 61 79    20 3d 20 61 72 72 61 79 28 0a 20 20 27 73 74 72 | $variation_array.=.array(...'str | 
| 6320 | 69 6e 67 20 44 51 27 20 3d 3e 20 22 73 74 72 69    6e 67 22 2c 0a 20 20 27 73 74 72 69 6e 67 20 53 | ing.DQ'.=>."string",...'string.S | 
| 6340 | 51 27 20 3d 3e 20 27 73 74 72 69 6e 67 27 2c 0a    20 20 27 6d 69 78 65 64 20 63 61 73 65 20 73 74 | Q'.=>.'string',...'mixed.case.st | 
| 6360 | 72 69 6e 67 27 20 3d 3e 20 22 73 54 72 49 6e 47    22 2c 0a 20 20 27 68 65 72 65 64 6f 63 27 20 3d | ring'.=>."sTrInG",...'heredoc'.= | 
| 6380 | 3e 20 24 68 65 72 65 64 6f 63 2c 0a 20 20 29 3b    66 6f 72 65 61 63 68 20 28 20 24 76 61 72 69 61 | >.$heredoc,...);foreach.(.$varia | 
| 63a0 | 74 69 6f 6e 5f 61 72 72 61 79 20 61 73 20 24 76    61 72 20 29 20 7b 69 66 20 28 73 75 62 73 74 72 | tion_array.as.$var.).{if.(substr | 
| 63c0 | 28 50 48 50 5f 4f 53 2c 20 30 2c 20 33 29 20 21    3d 20 27 57 49 4e 27 29 20 64 69 65 28 22 73 6b | (PHP_OS,.0,.3).!=.'WIN').die("sk | 
| 63e0 | 69 70 20 74 68 69 73 20 74 65 73 74 20 69 73 20    66 6f 72 20 57 69 6e 64 6f 77 73 20 70 6c 61 74 | ip.this.test.is.for.Windows.plat | 
| 6400 | 66 6f 72 6d 73 20 6f 6e 6c 79 22 29 3b 0a 24 69    6e 64 65 78 5f 61 72 72 61 79 20 3d 20 61 72 72 | forms.only");.$index_array.=.arr | 
| 6420 | 61 79 28 31 2c 20 32 2c 20 33 29 3b 0a 24 61 73    73 6f 63 5f 61 72 72 61 79 20 3d 20 61 72 72 61 | ay(1,.2,.3);.$assoc_array.=.arra | 
| 6440 | 79 28 31 20 3d 3e 20 27 6f 6e 65 27 2c 20 32 20    3d 3e 20 27 74 77 6f 27 29 3b 0a 0a 24 76 61 72 | y(1.=>.'one',.2.=>.'two');..$var | 
| 6460 | 69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61    72 72 61 79 28 0a 20 20 27 65 6d 70 74 79 20 61 | iation_array.=.array(...'empty.a | 
| 6480 | 72 72 61 79 27 20 3d 3e 20 61 72 72 61 79 28 29    2c 0a 20 20 27 69 6e 74 20 69 6e 64 65 78 65 64 | rray'.=>.array(),...'int.indexed | 
| 64a0 | 20 61 72 72 61 79 27 20 3d 3e 20 24 69 6e 64 65    78 5f 61 72 72 61 79 2c 0a 20 20 27 61 73 73 6f | .array'.=>.$index_array,...'asso | 
| 64c0 | 63 69 61 74 69 76 65 20 61 72 72 61 79 27 20 3d    3e 20 24 61 73 73 6f 63 5f 61 72 72 61 79 2c 0a | ciative.array'.=>.$assoc_array,. | 
| 64e0 | 20 20 27 6e 65 73 74 65 64 20 61 72 72 61 79 73    27 20 3d 3e 20 61 72 72 61 79 28 27 66 6f 6f 27 | ..'nested.arrays'.=>.array('foo' | 
| 6500 | 2c 20 24 69 6e 64 65 78 5f 61 72 72 61 79 2c 20    24 61 73 73 6f 63 5f 61 72 72 61 79 29 2c 0a 20 | ,.$index_array,.$assoc_array),.. | 
| 6520 | 20 29 3b 7d 24 76 61 72 69 61 74 69 6f 6e 5f 61    72 72 61 79 20 3d 20 61 72 72 61 79 28 0a 20 20 | .);}$variation_array.=.array(... | 
| 6540 | 27 6c 6f 77 65 72 63 61 73 65 20 74 72 75 65 27    20 3d 3e 20 74 72 75 65 2c 0a 20 20 27 6c 6f 77 | 'lowercase.true'.=>.true,...'low | 
| 6560 | 65 72 63 61 73 65 20 66 61 6c 73 65 27 20 3d 3e    66 61 6c 73 65 2c 0a 20 20 27 75 70 70 65 72 63 | ercase.false'.=>false,...'upperc | 
| 6580 | 61 73 65 20 54 52 55 45 27 20 3d 3e 54 52 55 45    2c 0a 20 20 27 75 70 70 65 72 63 61 73 65 20 46 | ase.TRUE'.=>TRUE,...'uppercase.F | 
| 65a0 | 41 4c 53 45 27 20 3d 3e 46 41 4c 53 45 2c 0a 20    20 29 3b 69 66 20 28 50 48 50 5f 49 4e 54 5f 53 | ALSE'.=>FALSE,...);if.(PHP_INT_S | 
| 65c0 | 49 5a 45 20 21 3d 20 38 29 20 64 69 65 28 22 73    6b 69 70 20 74 68 69 73 20 74 65 73 74 20 69 73 | IZE.!=.8).die("skip.this.test.is | 
| 65e0 | 20 66 6f 72 20 36 34 62 69 74 20 70 6c 61 74 66    6f 72 6d 73 20 6f 6e 6c 79 22 29 3b 0a 69 66 20 | .for.64bit.platforms.only");.if. | 
| 6600 | 28 50 48 50 5f 49 4e 54 5f 53 49 5a 45 20 21 3d    20 34 29 20 64 69 65 28 22 73 6b 69 70 20 74 68 | (PHP_INT_SIZE.!=.4).die("skip.th | 
| 6620 | 69 73 20 74 65 73 74 20 69 73 20 66 6f 72 20 33    32 62 69 74 20 70 6c 61 74 66 6f 72 6d 73 20 6f | is.test.is.for.32bit.platforms.o | 
| 6640 | 6e 6c 79 22 29 3b 0a 24 75 6e 73 65 74 5f 76 61    72 20 3d 20 31 30 3b 0a 75 6e 73 65 74 28 24 75 | nly");.$unset_var.=.10;.unset($u | 
| 6660 | 6e 73 65 74 5f 76 61 72 29 3b 0a 0a 24 76 61 72    69 61 74 69 6f 6e 5f 61 72 72 61 79 20 3d 20 61 | nset_var);..$variation_array.=.a | 
| 6680 | 72 72 61 79 28 0a 20 20 27 75 6e 73 65 74 20 76    61 72 27 20 3d 3e 20 40 24 75 6e 73 65 74 5f 76 | rray(...'unset.var'.=>.@$unset_v | 
| 66a0 | 61 72 2c 0a 20 20 27 75 6e 64 65 66 69 6e 65 64    20 76 61 72 27 20 3d 3e 20 40 24 75 6e 64 65 66 | ar,...'undefined.var'.=>.@$undef | 
| 66c0 | 69 6e 65 64 5f 76 61 72 2c 09 0a 20 20 27 65 6d    70 74 79 20 73 74 72 69 6e 67 20 44 51 27 20 3d | ined_var,....'empty.string.DQ'.= | 
| 66e0 | 3e 20 22 22 2c 0a 20 20 27 65 6d 70 74 79 20 73    74 72 69 6e 67 20 53 51 27 20 3d 3e 20 27 27 2c | >."",...'empty.string.SQ'.=>.'', | 
| 6700 | 0a 20 20 27 75 70 70 65 72 63 61 73 65 20 4e 55    4c 4c 27 20 3d 3e 20 4e 55 4c 4c 2c 0a 20 20 27 | ...'uppercase.NULL'.=>.NULL,...' | 
| 6720 | 6c 6f 77 65 72 63 61 73 65 20 6e 75 6c 6c 27 20    3d 3e 20 6e 75 6c 6c 2c 0a 20 20 29 3b 66 75 6e | lowercase.null'.=>.null,...);fun | 
| 6740 | 63 74 69 6f 6e 20 74 65 73 74 5f 65 72 72 6f 72    5f 68 61 6e 64 6c 65 72 28 24 65 72 72 5f 6e 6f | ction.test_error_handler($err_no | 
| 6760 | 2c 20 24 65 72 72 5f 6d 73 67 2c 20 24 66 69 6c    65 6e 61 6d 65 2c 20 24 6c 69 6e 65 6e 75 6d 2c | ,.$err_msg,.$filename,.$linenum, | 
| 6780 | 20 24 76 61 72 73 29 20 7b 0a 20 20 20 20 20 20    20 20 69 66 20 28 65 72 72 6f 72 5f 72 65 70 6f | .$vars).{.........if.(error_repo | 
| 67a0 | 72 74 69 6e 67 28 29 20 21 3d 20 30 29 20 7b 0a    20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 | rting().!=.0).{................. | 
| 67c0 | 2f 2f 20 72 65 70 6f 72 74 20 6e 6f 6e 2d 73 69    6c 65 6e 63 65 64 20 65 72 72 6f 72 73 0a 20 20 | //.report.non-silenced.errors... | 
| 67e0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 63    68 6f 20 22 45 72 72 6f 72 3a 20 24 65 72 72 5f | ..............echo."Error:.$err_ | 
| 6800 | 6e 6f 20 2d 20 24 65 72 72 5f 6d 73 67 2c 20 24    66 69 6c 65 6e 61 6d 65 28 24 6c 69 6e 65 6e 75 | no.-.$err_msg,.$filename($linenu | 
| 6820 | 6d 29 5c 6e 22 3b 0a 20 20 20 20 20 20 20 20 7d    0a 7d 0a 73 65 74 5f 65 72 72 6f 72 5f 68 61 6e | m)\n";.........}.}.set_error_han | 
| 6840 | 64 6c 65 72 28 27 74 65 73 74 5f 65 72 72 6f 72    5f 68 61 6e 64 6c 65 72 27 29 3b 0a 0a 0a 0a 63 | dler('test_error_handler');....c | 
| 6860 | 6c 61 73 73 20 63 6c 61 73 73 57 69 74 68 54 6f    53 74 72 69 6e 67 0a 7b 0a 20 20 20 20 20 20 20 | lass.classWithToString.{........ | 
| 6880 | 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e    20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 20 7b 0a | .public.function.__toString().{. | 
| 68a0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    72 65 74 75 72 6e 20 22 43 6c 61 73 73 20 41 20 | ................return."Class.A. | 
| 68c0 | 6f 62 6a 65 63 74 22 3b 0a 20 20 20 20 20 20 20    20 7d 0a 7d 0a 0a 63 6c 61 73 73 20 63 6c 61 73 | object";.........}.}..class.clas | 
| 68e0 | 73 57 69 74 68 6f 75 74 54 6f 53 74 72 69 6e 67    0a 7b 0a 7d 0a 0a 24 76 61 72 69 61 74 69 6f 6e | sWithoutToString.{.}..$variation | 
| 6900 | 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 28 0a    20 20 27 69 6e 73 74 61 6e 63 65 20 6f 66 20 63 | _array.=.array(...'instance.of.c | 
| 6920 | 6c 61 73 73 57 69 74 68 54 6f 53 74 72 69 6e 67    27 20 3d 3e 20 6e 65 77 20 63 6c 61 73 73 57 69 | lassWithToString'.=>.new.classWi | 
| 6940 | 74 68 54 6f 53 74 72 69 6e 67 28 29 2c 0a 20 20    27 69 6e 73 74 61 6e 63 65 20 6f 66 20 63 6c 61 | thToString(),...'instance.of.cla | 
| 6960 | 73 73 57 69 74 68 6f 75 74 54 6f 53 74 72 69 6e    67 27 20 3d 3e 20 6e 65 77 20 63 6c 61 73 73 57 | ssWithoutToString'.=>.new.classW | 
| 6980 | 69 74 68 6f 75 74 54 6f 53 74 72 69 6e 67 28 29    2c 0a 20 20 29 3b 24 76 61 72 69 61 74 69 6f 6e | ithoutToString(),...);$variation | 
| 69a0 | 5f 61 72 72 61 79 20 3d 20 61 72 72 61 79 20 28    0a 20 20 20 20 27 69 6e 74 20 30 27 20 3d 3e 20 | _array.=.array.(.....'int.0'.=>. | 
| 69c0 | 30 2c 0a 20 20 20 20 27 69 6e 74 20 31 27 20 3d    3e 20 31 2c 0a 20 20 20 20 27 69 6e 74 20 31 32 | 0,.....'int.1'.=>.1,.....'int.12 | 
| 69e0 | 33 34 35 27 20 3d 3e 20 31 32 33 34 35 2c 0a 20    20 20 20 27 69 6e 74 20 2d 31 32 33 34 35 27 20 | 345'.=>.12345,.....'int.-12345'. | 
| 6a00 | 3d 3e 20 2d 32 33 34 35 2c 0a 20 20 20 20 29 3b    3c 3f 70 68 70 0a 61 62 73 74 72 61 63 74 20 63 | =>.-2345,.....);<?php.abstract.c | 
| 6a20 | 6c 61 73 73 20 67 74 54 65 73 74 53 75 62 6a 65    63 74 20 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 | lass.gtTestSubject.{....protecte | 
| 6a40 | 64 20 24 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d    65 6e 74 4e 61 6d 65 73 3b 0a 20 20 70 72 6f 74 | d.$optionalArgumentNames;...prot | 
| 6a60 | 65 63 74 65 64 20 24 6d 61 6e 64 61 74 6f 72 79    41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b 0a 0a | ected.$mandatoryArgumentNames;.. | 
| 6a80 | 20 20 70 72 6f 74 65 63 74 65 64 20 24 65 78 74    72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 20 3d | ..protected.$extraArgumentList.= | 
| 6aa0 | 20 27 27 3b 0a 20 20 70 72 6f 74 65 63 74 65 64    20 24 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c | .'';...protected.$shortArgumentL | 
| 6ac0 | 69 73 74 20 3d 20 27 27 3b 0a 0a 20 20 70 72 6f    74 65 63 74 65 64 20 24 61 6c 6c 6f 77 65 64 41 | ist.=.'';....protected.$allowedA | 
| 6ae0 | 72 67 75 6d 65 6e 74 4c 69 73 74 73 3b 0a 0a 20    20 70 72 6f 74 65 63 74 65 64 20 24 6d 61 78 69 | rgumentLists;....protected.$maxi | 
| 6b00 | 6d 75 6d 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b    0a 20 20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 | mumArgumentList;......protected. | 
| 6b20 | 24 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53    74 61 74 65 6d 65 6e 74 73 3b 0a 0a 0a 20 20 2f | $initialisationStatements;...../ | 
| 6b40 | 2a 2a 20 52 65 74 75 72 6e 20 74 68 65 20 6c 69    73 74 20 6f 66 20 61 6c 6c 20 6d 61 6e 64 61 74 | **.Return.the.list.of.all.mandat | 
| 6b60 | 6f 72 79 20 61 72 67 75 6d 65 6e 74 20 6e 61 6d    65 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72 65 | ory.argument.names....*....*.@re | 
| 6b80 | 74 75 72 6e 20 61 72 72 61 79 0a 20 20 20 2a 2f    0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 | turn.array....*/...public.functi | 
| 6ba0 | 6f 6e 20 67 65 74 4d 61 6e 64 61 74 6f 72 79 41    72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 29 20 7b | on.getMandatoryArgumentNames().{ | 
| 6bc0 | 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69    73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 | .....return.$this->mandatoryArgu | 
| 6be0 | 6d 65 6e 74 4e 61 6d 65 73 3b 0a 20 20 7d 0a 0a    0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 | mentNames;...}...../**....*.Retu | 
| 6c00 | 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61    6c 6c 20 6f 70 74 69 6f 6e 61 6c 20 61 72 67 75 | rn.the.list.of.all.optional.argu | 
| 6c20 | 6d 65 6e 74 20 6e 61 6d 65 73 0a 20 20 20 2a 0a    20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72 | ment.names....*....*.@return.arr | 
| 6c40 | 61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69    63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 | ay....*/...public.function.getOp | 
| 6c60 | 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61    6d 65 73 28 29 20 7b 0a 20 20 20 20 72 65 74 75 | tionalArgumentNames().{.....retu | 
| 6c80 | 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e    61 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 3b | rn.$this->optionalArgumentNames; | 
| 6ca0 | 0a 20 20 7d 0a 20 20 0a 20 20 70 75 62 6c 69 63    20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 | ...}......public.function.setArg | 
| 6cc0 | 75 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b 0a 20    20 20 20 24 74 68 69 73 2d 3e 73 65 74 56 61 6c | umentLists().{.....$this->setVal | 
| 6ce0 | 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 28    29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 65 | idArgumentLists();.....$this->se | 
| 6d00 | 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c 69    73 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d | tExtraArgumentList();.....$this- | 
| 6d20 | 3e 73 65 74 53 68 6f 72 74 41 72 67 75 6d 65 6e    74 4c 69 73 74 28 29 3b 0a 20 20 7d 0a 0a 20 20 | >setShortArgumentList();...}.... | 
| 6d40 | 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65    20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 20 74 | /**....*.Set.the.argument.list.t | 
| 6d60 | 6f 20 63 61 6c 6c 20 74 68 65 20 73 75 62 6a 65    63 74 20 77 69 74 68 2e 20 41 64 64 73 20 6f 6e | o.call.the.subject.with..Adds.on | 
| 6d80 | 65 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74    2e 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 | e.extra.argument.....*....*/...p | 
| 6da0 | 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73    65 74 45 78 74 72 61 41 72 67 75 6d 65 6e 74 4c | ublic.function.setExtraArgumentL | 
| 6dc0 | 69 73 74 28 29 20 7b 0a 20 20 20 20 69 66 28 63    6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6d 61 6e | ist().{.....if(count.($this->man | 
| 6de0 | 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61    6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 | datoryArgumentNames).>.0).{..... | 
| 6e00 | 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24    69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 | ..for(.$i.=.0;.$i.<.count(.$this | 
| 6e20 | 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d    65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b | ->mandatoryArgumentNames.);.$i++ | 
| 6e40 | 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69    73 2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 | ).{.........$this->extraArgument | 
| 6e60 | 4c 69 73 74 20 2e 3d 20 22 5c 24 22 2e 24 74 68    69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 | List..=."\$".$this->mandatoryArg | 
| 6e80 | 75 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22    2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 | umentNames[$i].",.";.......}.... | 
| 6ea0 | 20 7d 0a 20 20 20 20 20 0a 20 20 20 20 69 66 28    63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e 6f 70 | .}...........if(count.($this->op | 
| 6ec0 | 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61    6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 20 20 | tionalArgumentNames).>.0).{..... | 
| 6ee0 | 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b 20 24    69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 69 73 | ..for(.$i.=.0;.$i.<.count(.$this | 
| 6f00 | 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65    6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 | ->optionalArgumentNames.);.$i++) | 
| 6f20 | 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73    2d 3e 65 78 74 72 61 41 72 67 75 6d 65 6e 74 4c | .{.........$this->extraArgumentL | 
| 6f40 | 69 73 74 20 2e 3d 20 20 22 5c 24 22 2e 24 74 68    69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 | ist..=.."\$".$this->optionalArgu | 
| 6f60 | 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c    20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 | mentNames[$i].",.";.......}..... | 
| 6f80 | 7d 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 65 78    74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 3d | }......$this->extraArgumentList= | 
| 6fa0 | 20 24 74 68 69 73 2d 3e 65 78 74 72 61 41 72 67    75 6d 65 6e 74 4c 69 73 74 2e 20 22 5c 24 65 78 | .$this->extraArgumentList.."\$ex | 
| 6fc0 | 74 72 61 5f 61 72 67 22 3b 0a 20 20 7d 0a 20 20    20 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 | tra_arg";...}......../**....*.Re | 
| 6fe0 | 74 75 72 6e 20 74 68 65 20 6c 69 73 74 20 6f 66    20 61 72 67 75 6d 65 6e 74 73 20 61 73 20 69 74 | turn.the.list.of.arguments.as.it | 
| 7000 | 20 61 70 70 65 61 72 73 20 69 6e 20 74 68 65 20    66 75 6e 63 74 69 6f 6e 20 63 61 6c 6c 0a 20 20 | .appears.in.the.function.call... | 
| 7020 | 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20    73 74 72 69 6e 67 20 2d 20 6c 69 73 74 20 6f 66 | .*....*.@return.string.-.list.of | 
| 7040 | 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 2f    0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 | .arguments....*/...public.functi | 
| 7060 | 6f 6e 20 67 65 74 45 78 74 72 61 41 72 67 75 6d    65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 20 | on.getExtraArgumentList().{..... | 
| 7080 | 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78    74 72 61 41 72 67 75 6d 65 6e 74 4c 69 73 74 3b | return.$this->extraArgumentList; | 
| 70a0 | 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20    2a 20 53 65 74 20 74 68 65 20 6c 69 73 74 20 6f | ...}...../**....*.Set.the.list.o | 
| 70c0 | 66 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d    65 6e 74 73 20 74 6f 20 62 65 20 6f 6e 65 20 6c | f.function.arguments.to.be.one.l | 
| 70e0 | 65 73 73 20 74 68 61 74 20 74 68 65 20 6e 75 6d    62 65 72 20 6f 66 20 6d 61 6e 64 61 74 6f 72 79 | ess.that.the.number.of.mandatory | 
| 7100 | 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a 0a    20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 | .arguments....*....*/...public.f | 
| 7120 | 75 6e 63 74 69 6f 6e 20 73 65 74 53 68 6f 72 74    41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b | unction.setShortArgumentList().{ | 
| 7140 | 0a 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 20 28    24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 | ......if(count.($this->mandatory | 
| 7160 | 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 20 3e    20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f 72 28 | ArgumentNames).>.0).{.......for( | 
| 7180 | 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 63 6f    75 6e 74 28 20 24 74 68 69 73 2d 3e 6d 61 6e 64 | .$i.=.0;.$i.<.count(.$this->mand | 
| 71a0 | 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d    65 73 20 29 20 2d 20 31 3b 20 24 69 2b 2b 29 20 | atoryArgumentNames.).-.1;.$i++). | 
| 71c0 | 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d    3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 | {.........$this->shortArgumentLi | 
| 71e0 | 73 74 20 2e 3d 20 22 5c 24 22 2e 24 74 68 69 73    2d 3e 6d 61 6e 64 61 74 6f 72 79 41 72 67 75 6d | st..=."\$".$this->mandatoryArgum | 
| 7200 | 65 6e 74 4e 61 6d 65 73 5b 24 69 5d 2e 22 2c 20    22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 20 | entNames[$i].",.";.......}...... | 
| 7220 | 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 41 72 67    75 6d 65 6e 74 4c 69 73 74 20 3d 20 73 75 62 73 | .$this->shortArgumentList.=.subs | 
| 7240 | 74 72 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 41    72 67 75 6d 65 6e 74 4c 69 73 74 2c 20 30 2c 20 | tr($this->shortArgumentList,.0,. | 
| 7260 | 2d 32 29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 0a    0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 | -2);.....}...}...../**....*.Retu | 
| 7280 | 72 6e 20 74 68 65 20 73 68 6f 72 74 20 6c 69 73    74 20 6f 66 20 61 72 67 75 6d 65 6e 74 73 0a 20 | rn.the.short.list.of.arguments.. | 
| 72a0 | 20 20 2a 0a 20 20 20 2a 20 40 72 65 74 75 72 6e    20 73 74 72 69 6e 67 20 2d 20 6c 69 73 74 20 6f | ..*....*.@return.string.-.list.o | 
| 72c0 | 66 20 61 72 67 75 6d 65 6e 74 73 0a 20 20 20 2a    2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 | f.arguments....*/...public.funct | 
| 72e0 | 69 6f 6e 20 67 65 74 53 68 6f 72 74 41 72 67 75    6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a 20 20 20 | ion.getShortArgumentList().{.... | 
| 7300 | 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73    68 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 | .return.$this->shortArgumentList | 
| 7320 | 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20    20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74 68 65 | ;...}...../**....*.Construct.the | 
| 7340 | 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 70 6f 73    73 69 62 6c 65 20 77 61 79 73 20 74 6f 20 63 61 | .list.of.all.possible.ways.to.ca | 
| 7360 | 6c 6c 20 74 68 65 20 73 75 62 6a 65 63 74 20 28    66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65 74 68 | ll.the.subject.(function.or.meth | 
| 7380 | 6f 64 29 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a 20    20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e | od)....*....*/...public.function | 
| 73a0 | 20 73 65 74 56 61 6c 69 64 41 72 67 75 6d 65 6e    74 4c 69 73 74 73 28 29 20 7b 0a 20 20 20 20 24 | .setValidArgumentLists().{.....$ | 
| 73c0 | 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67    75 6d 65 6e 74 4c 69 73 74 73 5b 30 5d 20 3d 20 | this->allowedArgumentLists[0].=. | 
| 73e0 | 27 27 3b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74    20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f | '';.....if(count.($this->mandato | 
| 7400 | 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29    20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f | ryArgumentNames).>.0).{.......fo | 
| 7420 | 72 28 20 24 69 20 3d 20 30 3b 20 24 69 20 3c 20    63 6f 75 6e 74 28 20 24 74 68 69 73 2d 3e 6d 61 | r(.$i.=.0;.$i.<.count(.$this->ma | 
| 7440 | 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e    61 6d 65 73 20 29 3b 20 24 69 2b 2b 29 20 7b 0a | ndatoryArgumentNames.);.$i++).{. | 
| 7460 | 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61    6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 | ........$this->allowedArgumentLi | 
| 7480 | 73 74 73 5b 30 5d 20 2e 3d 20 22 5c 24 22 2e 24    74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f 72 79 41 | sts[0]..=."\$".$this->mandatoryA | 
| 74a0 | 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 24 69 5d    2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 | rgumentNames[$i].",.";.......}.. | 
| 74c0 | 20 20 20 7d 0a 20 20 20 20 20 0a 20 20 20 20 69    66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 2d 3e | ...}...........if(count.($this-> | 
| 74e0 | 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74    4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a 20 20 | optionalArgumentNames).>.0).{... | 
| 7500 | 20 20 20 20 66 6f 72 28 20 24 69 20 3d 20 30 3b    20 24 69 20 3c 20 63 6f 75 6e 74 28 20 24 74 68 | ....for(.$i.=.0;.$i.<.count(.$th | 
| 7520 | 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75    6d 65 6e 74 4e 61 6d 65 73 20 29 3b 20 24 69 2b | is->optionalArgumentNames.);.$i+ | 
| 7540 | 2b 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68    69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d | +).{.........$this->allowedArgum | 
| 7560 | 65 6e 74 4c 69 73 74 73 5b 5d 20 3d 20 24 74 68    69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d | entLists[].=.$this->allowedArgum | 
| 7580 | 65 6e 74 4c 69 73 74 73 5b 24 69 5d 2e 22 5c 24    22 2e 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 | entLists[$i]."\$".$this->optiona | 
| 75a0 | 6c 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 5b 24    69 5d 2e 22 2c 20 22 3b 0a 20 20 20 20 20 20 20 | lArgumentNames[$i].",.";........ | 
| 75c0 | 20 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41    72 67 75 6d 65 6e 74 4c 69 73 74 73 5b 24 69 5d | .$this->allowedArgumentLists[$i] | 
| 75e0 | 20 3d 20 73 75 62 73 74 72 20 28 24 74 68 69 73    2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e | .=.substr.($this->allowedArgumen | 
| 7600 | 74 4c 69 73 74 73 5b 24 69 5d 2c 20 30 2c 20 2d    32 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 20 | tLists[$i],.0,.-2);.......}..... | 
| 7620 | 7d 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 6c    6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 | }......$this->allowedArgumentLis | 
| 7640 | 74 73 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e    61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c | ts[count($this->allowedArgumentL | 
| 7660 | 69 73 74 73 29 20 2d 31 20 5d 20 3d 20 73 75 62    73 74 72 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 | ists).-1.].=.substr($this->allow | 
| 7680 | 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 73 5b    63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 6c 6c | edArgumentLists[count($this->all | 
| 76a0 | 6f 77 65 64 41 72 67 75 6d 65 6e 74 4c 69 73 74    73 29 20 2d 31 20 5d 2c 20 30 2c 20 2d 32 29 3b | owedArgumentLists).-1.],.0,.-2); | 
| 76c0 | 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20    2a 20 52 65 74 75 72 6e 20 74 68 65 20 61 72 72 | ...}...../**....*.Return.the.arr | 
| 76e0 | 61 79 20 6f 66 20 61 6c 6c 20 70 6f 73 73 69 62    6c 65 20 73 65 74 73 20 6f 66 20 6d 65 74 68 6f | ay.of.all.possible.sets.of.metho | 
| 7700 | 64 2f 66 75 6e 63 74 69 6f 6e 20 61 72 67 75 6d    65 6e 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 | d/function.arguments....*....*.@ | 
| 7720 | 72 65 74 75 72 6e 20 75 6e 6b 6e 6f 77 6e 0a 20    20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 | return.unknown....*/...public.fu | 
| 7740 | 6e 63 74 69 6f 6e 20 67 65 74 56 61 6c 69 64 41    72 67 75 6d 65 6e 74 4c 69 73 74 73 28 29 20 7b | nction.getValidArgumentLists().{ | 
| 7760 | 0a 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69    73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67 75 6d 65 | .....return.$this->allowedArgume | 
| 7780 | 6e 74 4c 69 73 74 73 3b 0a 20 20 7d 0a 0a 0a 20    20 2f 2a 2a 0a 20 20 20 2a 20 52 65 74 75 72 6e | ntLists;...}...../**....*.Return | 
| 77a0 | 73 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c    69 73 74 20 77 69 74 68 20 74 68 65 20 67 72 65 | s.the.argument.list.with.the.gre | 
| 77c0 | 61 74 65 73 74 20 70 6f 73 73 69 62 6c 65 20 6e    75 6d 62 65 72 20 6f 66 20 61 72 67 75 6d 65 6e | atest.possible.number.of.argumen | 
| 77e0 | 74 73 2e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72    65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 | ts.....*....*.@return.string.... | 
| 7800 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63    74 69 6f 6e 20 67 65 74 4d 61 78 69 6d 75 6d 41 | */...public.function.getMaximumA | 
| 7820 | 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a    20 20 20 20 72 65 74 75 72 6e 20 65 6e 64 28 24 | rgumentList().{.....return.end($ | 
| 7840 | 74 68 69 73 2d 3e 61 6c 6c 6f 77 65 64 41 72 67    75 6d 65 6e 74 4c 69 73 74 73 29 3b 0a 20 20 7d | this->allowedArgumentLists);...} | 
| 7860 | 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 57 72    69 74 65 20 69 6e 69 74 69 61 6c 69 73 61 74 69 | ...../**....*.Write.initialisati | 
| 7880 | 6f 6e 20 73 74 61 74 65 6d 65 6e 73 74 20 66 6f    72 20 61 6c 6c 20 74 68 65 20 76 61 72 69 61 62 | on.statemenst.for.all.the.variab | 
| 78a0 | 6c 65 73 20 74 68 61 74 20 6d 69 67 68 74 20 62    65 20 75 73 65 64 0a 20 20 20 2a 0a 20 20 20 2a | les.that.might.be.used....*....* | 
| 78c0 | 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74    69 6f 6e 20 73 65 74 49 6e 69 74 69 61 6c 69 73 | /...public.function.setInitialis | 
| 78e0 | 61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 28    29 20 7b 0a 20 20 20 20 69 66 28 63 6f 75 6e 74 | ationStatements().{.....if(count | 
| 7900 | 20 28 24 74 68 69 73 2d 3e 6d 61 6e 64 61 74 6f    72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 29 | .($this->mandatoryArgumentNames) | 
| 7920 | 20 3e 20 30 29 20 7b 0a 20 20 20 20 20 20 66 6f    72 65 61 63 68 28 20 24 74 68 69 73 2d 3e 6d 61 | .>.0).{.......foreach(.$this->ma | 
| 7940 | 6e 64 61 74 6f 72 79 41 72 67 75 6d 65 6e 74 4e    61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b | ndatoryArgumentNames.as.$name).{ | 
| 7960 | 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e    69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 | .........$this->initialisationSt | 
| 7980 | 61 74 65 6d 65 6e 74 73 5b 5d 20 3d 20 22 5c 24    22 2e 24 6e 61 6d 65 2e 22 20 3d 20 22 3b 0a 20 | atements[].=."\$".$name.".=.";.. | 
| 79a0 | 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 20 20 20    20 69 66 28 63 6f 75 6e 74 20 28 24 74 68 69 73 | .....}.....}.....if(count.($this | 
| 79c0 | 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65    6e 74 4e 61 6d 65 73 29 20 3e 20 30 29 20 7b 0a | ->optionalArgumentNames).>.0).{. | 
| 79e0 | 20 20 20 20 20 20 66 6f 72 65 61 63 68 28 20 24    74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 41 72 | ......foreach(.$this->optionalAr | 
| 7a00 | 67 75 6d 65 6e 74 4e 61 6d 65 73 20 61 73 20 24    6e 61 6d 65 29 20 7b 0a 20 20 20 20 20 20 20 20 | gumentNames.as.$name).{......... | 
| 7a20 | 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 73    61 74 69 6f 6e 53 74 61 74 65 6d 65 6e 74 73 5b | $this->initialisationStatements[ | 
| 7a40 | 5d 20 3d 20 22 5c 24 22 2e 24 6e 61 6d 65 2e 22    20 3d 20 22 3b 0a 20 20 20 20 20 20 7d 0a 20 20 | ].=."\$".$name.".=.";.......}... | 
| 7a60 | 20 20 7d 0a 20 20 7d 0a 20 20 0a 20 20 2f 2a 2a    0a 20 20 20 2a 20 52 65 74 75 72 6e 20 74 68 65 | ..}...}....../**....*.Return.the | 
| 7a80 | 20 69 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 20    73 74 61 74 65 6d 65 6e 74 73 0a 20 20 20 2a 0a | .initialisation.statements....*. | 
| 7aa0 | 20 20 20 2a 20 40 72 65 74 75 72 6e 20 75 6e 6b    6e 6f 77 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 | ...*.@return.unknown....*/...pub | 
| 7ac0 | 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74    49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 | lic.function.getInitialisationSt | 
| 7ae0 | 61 74 65 6d 65 6e 74 73 28 29 20 7b 0a 20 20 20    20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 | atements().{.....return.$this->i | 
| 7b00 | 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61    74 65 6d 65 6e 74 73 3b 0a 20 20 7d 0a 7d 0a 3f | nitialisationStatements;...}.}.? | 
| 7b20 | 3e 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 43 6f    6e 74 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c 20 | ><?php./**..*.Container.for.all. | 
| 7b40 | 70 6f 73 73 69 62 6c 65 20 76 61 72 69 61 74 69    6f 6e 20 74 65 73 74 20 63 61 73 65 73 20 66 6f | possible.variation.test.cases.fo | 
| 7b60 | 72 20 61 20 6d 65 74 68 6f 64 0a 20 2a 2f 0a 63    6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e | r.a.method..*/.class.gtVariation | 
| 7b80 | 43 6f 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64 20    65 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 | ContainerMethod.extends.gtVariat | 
| 7ba0 | 69 6f 6e 43 6f 6e 74 61 69 6e 65 72 20 7b 0a 20    20 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6d | ionContainer.{......protected.$m | 
| 7bc0 | 65 74 68 6f 64 3b 0a 20 20 70 72 6f 74 65 63 74    65 64 20 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 | ethod;...protected.$optionalSect | 
| 7be0 | 69 6f 6e 73 3b 0a 20 20 0a 20 20 70 75 62 6c 69    63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e | ions;......public.function.__con | 
| 7c00 | 73 74 72 75 63 74 28 24 6f 73 6c 29 20 7b 0a 20    20 20 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e | struct($osl).{.....$this->option | 
| 7c20 | 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 24 6f 73    6c 3b 0a 20 20 7d 0a 20 20 0a 20 20 0a 20 20 2f | alSections.=.$osl;...}........./ | 
| 7c40 | 2a 2a 0a 20 20 20 2a 20 53 65 74 73 20 74 68 65    20 6d 65 74 68 6f 64 20 74 6f 20 62 65 20 74 65 | **....*.Sets.the.method.to.be.te | 
| 7c60 | 73 74 65 64 0a 20 20 20 2a 0a 20 20 20 2a 20 40    70 61 72 61 6d 20 67 74 4d 65 74 68 6f 64 20 24 | sted....*....*.@param.gtMethod.$ | 
| 7c80 | 6d 65 74 68 6f 64 0a 20 20 20 2a 2f 0a 20 20 70    75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 | method....*/...public.function.s | 
| 7ca0 | 65 74 4d 65 74 68 6f 64 28 67 74 4d 65 74 68 6f    64 20 24 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 | etMethod(gtMethod.$method).{.... | 
| 7cc0 | 20 24 74 68 69 73 2d 3e 6d 65 74 68 6f 64 20 3d    20 24 6d 65 74 68 6f 64 3b 0a 20 20 7d 0a 20 20 | .$this->method.=.$method;...}... | 
| 7ce0 | 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43    6f 6e 73 74 72 75 63 74 73 20 61 6c 6c 20 76 61 | ....../**....*.Constructs.all.va | 
| 7d00 | 72 69 61 74 69 6f 6e 20 74 65 73 74 73 20 69 6e    20 24 74 68 69 73 5f 76 61 72 69 61 74 69 6f 6e | riation.tests.in.$this_variation | 
| 7d20 | 54 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a 2f    0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 | Tests....*....*/...public.functi | 
| 7d40 | 6f 6e 20 63 6f 6e 73 74 72 75 63 74 41 6c 6c 28    29 20 7b 0a 20 20 20 20 0a 20 20 20 20 24 6e 75 | on.constructAll().{..........$nu | 
| 7d60 | 6d 62 65 72 4f 66 41 72 67 75 6d 65 6e 74 73 20    3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6d | mberOfArguments.=.count($this->m | 
| 7d80 | 65 74 68 6f 64 2d 3e 67 65 74 4d 61 6e 64 61 74    6f 72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 | ethod->getMandatoryArgumentNames | 
| 7da0 | 28 29 29 20 2b 20 63 6f 75 6e 74 28 24 74 68 69    73 2d 3e 6d 65 74 68 6f 64 2d 3e 67 65 74 4f 70 | ()).+.count($this->method->getOp | 
| 7dc0 | 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e 61    6d 65 73 28 29 29 3b 0a 20 20 20 20 0a 20 20 20 | tionalArgumentNames());......... | 
| 7de0 | 20 66 6f 72 28 24 69 20 3d 20 31 3b 20 24 69 20    3c 3d 20 24 6e 75 6d 62 65 72 4f 66 41 72 67 75 | .for($i.=.1;.$i.<=.$numberOfArgu | 
| 7e00 | 6d 65 6e 74 73 3b 20 24 69 2b 2b 29 20 7b 0a 20    20 20 20 20 20 0a 20 20 20 20 20 20 66 6f 72 65 | ments;.$i++).{..............fore | 
| 7e20 | 61 63 68 20 28 24 74 68 69 73 2d 3e 64 61 74 61    54 79 70 65 73 20 61 73 20 24 64 29 20 7b 0a 20 | ach.($this->dataTypes.as.$d).{.. | 
| 7e40 | 20 20 20 20 20 20 20 0a 20 20 20 20 20 20 20 20    24 74 65 73 74 43 61 73 65 20 3d 20 67 74 56 61 | ................$testCase.=.gtVa | 
| 7e60 | 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 3a    3a 67 65 74 49 6e 73 74 61 6e 63 65 28 24 74 68 | riationTestCase::getInstance($th | 
| 7e80 | 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74    69 6f 6e 73 2c 20 27 6d 65 74 68 6f 64 27 29 3b | is->optionalSections,.'method'); | 
| 7ea0 | 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 61    73 65 2d 3e 73 65 74 55 70 28 24 74 68 69 73 2d | .........$testCase->setUp($this- | 
| 7ec0 | 3e 6d 65 74 68 6f 64 2c 20 24 69 2c 20 24 64 29    3b 0a 20 20 20 20 20 20 20 20 24 74 65 73 74 43 | >method,.$i,.$d);.........$testC | 
| 7ee0 | 61 73 65 2d 3e 63 6f 6e 73 74 72 75 63 74 54 65    73 74 43 61 73 65 28 29 3b 0a 20 20 20 20 20 20 | ase->constructTestCase();....... | 
| 7f00 | 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 74 69    6f 6e 54 65 73 74 73 5b 5d 20 3d 20 24 74 65 73 | ..$this->variationTests[].=.$tes | 
| 7f20 | 74 43 61 73 65 2d 3e 74 6f 53 74 72 69 6e 67 28    29 3b 0a 20 20 20 20 20 20 20 20 0a 20 20 20 20 | tCase->toString();.............. | 
| 7f40 | 20 20 7d 0a 20 20 20 20 7d 0a 20 20 7d 20 20 0a    7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 | ..}.....}...}...}.?><?php../**.. | 
| 7f60 | 2a 20 43 6c 61 73 73 20 66 6f 72 20 62 61 73 69    63 20 74 65 73 74 20 63 61 73 65 20 63 6f 6e 73 | *.Class.for.basic.test.case.cons | 
| 7f80 | 74 72 75 63 74 69 6f 6e 20 66 6f 72 20 63 6c 61    73 73 20 6d 65 74 68 6f 64 73 0a 20 2a 2f 0a 63 | truction.for.class.methods..*/.c | 
| 7fa0 | 6c 61 73 73 20 67 74 42 61 73 69 63 54 65 73 74    43 61 73 65 4d 65 74 68 6f 64 20 65 78 74 65 6e | lass.gtBasicTestCaseMethod.exten | 
| 7fc0 | 64 73 20 67 74 42 61 73 69 63 54 65 73 74 43 61    73 65 20 7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 | ds.gtBasicTestCase.{....public.f | 
| 7fe0 | 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72    75 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 | unction.__construct($opt).{..... | 
| 8000 | 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53    65 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a | $this->optionalSections.=.$opt;. | 
| 8020 | 20 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20    53 65 74 20 74 68 65 20 6d 65 74 68 6f 64 20 0a | ..}..../**....*.Set.the.method.. | 
| 8040 | 20 20 20 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d    20 67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f | ...*....*.@param.gtMethod.$metho | 
| 8060 | 64 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63    20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 65 74 | d....*/...public.function.setMet | 
| 8080 | 68 6f 64 28 24 6d 65 74 68 6f 64 29 20 7b 0a 20    20 20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 | hod($method).{.....$this->subjec | 
| 80a0 | 74 20 3d 20 24 6d 65 74 68 6f 64 3b 0a 20 20 7d    0a 20 20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 | t.=.$method;...}....public.funct | 
| 80c0 | 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73    74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 | ion.constructTestCase().{.....$t | 
| 80e0 | 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f    6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 0a | his->constructCommonHeaders();.. | 
| 8100 | 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 42 61    73 69 63 45 63 68 6f 28 29 3b 0a 20 20 20 20 0a | ....$this->addBasicEcho();...... | 
| 8120 | 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74    72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 29 3b | ....$this->constructorArgInit(); | 
| 8140 | 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73    74 72 75 63 74 6f 72 43 72 65 61 74 65 49 6e 73 | .....$this->constructorCreateIns | 
| 8160 | 74 61 6e 63 65 28 29 3b 0a 20 20 20 20 0a 20 20    20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 | tance();..........$this->constru | 
| 8180 | 63 74 53 75 62 6a 65 63 74 43 61 6c 6c 73 28 29    3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 | ctSubjectCalls();..........$this | 
| 81a0 | 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d 6f    6e 43 6c 6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 | ->constructCommonClosing();..... | 
| 81c0 | 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66    75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 64 | ...}....public.function.testHead | 
| 81e0 | 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73    2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 | er().{.....$this->testCase[].=." | 
| 8200 | 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20 24    74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d | --TEST--";.....$this->testCase[] | 
| 8220 | 20 3d 20 22 54 65 73 74 20 63 6c 61 73 73 20 22    2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d | .=."Test.class.".$this->subject- | 
| 8240 | 3e 67 65 74 43 6c 61 73 73 4e 61 6d 65 28 29 2e    22 20 6d 65 74 68 6f 64 20 20 22 2e 24 74 68 69 | >getClassName().".method..".$thi | 
| 8260 | 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e    61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c | s->subject->getName()."().by.cal | 
| 8280 | 6c 69 6e 67 20 69 74 20 77 69 74 68 20 69 74 73    20 65 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 | ling.it.with.its.expected.argume | 
| 82a0 | 6e 74 73 22 3b 0a 20 20 20 20 0a 20 20 7d 0a 20    20 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 | nts";........}......public.funct | 
| 82c0 | 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73    28 29 20 7b 0a 20 20 20 20 24 6c 69 73 74 73 20 | ion.subjectCalls().{.....$lists. | 
| 82e0 | 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74    2d 3e 67 65 74 56 61 6c 69 64 41 72 67 75 6d 65 | =.$this->subject->getValidArgume | 
| 8300 | 6e 74 4c 69 73 74 73 28 29 3b 0a 0a 20 20 20 20    66 6f 72 65 61 63 68 28 24 6c 69 73 74 73 20 61 | ntLists();......foreach($lists.a | 
| 8320 | 73 20 24 6c 69 73 74 29 7b 0a 20 20 20 20 20 20    24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b | s.$list){.......$this->testCase[ | 
| 8340 | 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 20 5c    24 63 6c 61 73 73 2d 3e 22 2e 24 74 68 69 73 2d | ].=."var_dump(.\$class->".$this- | 
| 8360 | 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d    65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 | >subject->getName()."(.".$list." | 
| 8380 | 20 29 20 29 3b 22 3b 0a 20 20 20 20 20 20 24 74    68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 | .).);";.......$this->testCase.=. | 
| 83a0 | 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61    70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 | gtCodeSnippet::appendBlankLines( | 
| 83c0 | 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61    73 65 20 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 | 1,.$this->testCase.);.....}..... | 
| 83e0 | 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20    3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a | $this->testCase.=.gtCodeSnippet: | 
| 8400 | 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65    73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 | :appendBlankLines(2,.$this->test | 
| 8420 | 43 61 73 65 20 29 3b 20 20 20 20 0a 20 20 7d 0a    0a 7d 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a | Case.);.......}..}.?><?php../**. | 
| 8440 | 20 2a 20 43 6c 61 73 73 20 66 6f 72 20 73 69 6d    70 6c 65 20 65 72 72 6f 72 73 20 2d 20 6f 6e 65 | .*.Class.for.simple.errors.-.one | 
| 8460 | 20 74 6f 6f 20 6d 61 6e 79 20 61 72 67 73 20 61    6e 64 20 6f 6e 65 20 74 6f 6f 20 66 65 77 0a 20 | .too.many.args.and.one.too.few.. | 
| 8480 | 2a 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61    73 73 20 67 74 45 72 72 6f 72 54 65 73 74 43 61 | */..abstract.class.gtErrorTestCa | 
| 84a0 | 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 65 73    74 43 61 73 65 20 7b 0a 0a 20 20 70 72 6f 74 65 | se.extends.gtTestCase.{....prote | 
| 84c0 | 63 74 65 64 20 24 73 68 6f 72 74 41 72 67 75 6d    65 6e 74 4c 69 73 74 20 3d 20 27 27 3b 0a 20 20 | cted.$shortArgumentList.=.'';... | 
| 84e0 | 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 6e 67 41    72 67 75 6d 65 6e 74 4c 69 73 74 20 3d 20 27 27 | protected.$longArgumentList.=.'' | 
| 8500 | 3b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52    65 74 75 72 6e 20 69 6e 73 74 61 6e 63 65 20 6f | ;...../**....*.Return.instance.o | 
| 8520 | 66 20 65 69 74 68 65 72 20 6d 65 74 68 6f 64 20    6f 72 20 66 75 6e 63 74 69 6f 6e 20 65 72 72 6f | f.either.method.or.function.erro | 
| 8540 | 72 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a    0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 | r.test.case....*....*.@param.str | 
| 8560 | 69 6e 67 20 24 74 79 70 65 0a 20 20 20 2a 20 40    72 65 74 75 72 6e 20 74 65 73 74 20 63 61 73 65 | ing.$type....*.@return.test.case | 
| 8580 | 20 6f 62 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20    70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 | .object....*/...public.static.fu | 
| 85a0 | 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e    63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 | nction.getInstance($optionalSect | 
| 85c0 | 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66    75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 | ions,.$type.=.'function').{..... | 
| 85e0 | 20 0a 20 20 20 20 69 66 28 24 74 79 70 65 20 3d    3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a | ......if($type.==.'function').{. | 
| 8600 | 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77    20 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 | ......return.new.gtErrorTestCase | 
| 8620 | 46 75 6e 63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e    61 6c 53 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 | Function($optionalSections);.... | 
| 8640 | 20 7d 0a 20 20 20 20 69 66 28 24 74 79 70 65 20    3d 3d 27 6d 65 74 68 6f 64 27 29 20 7b 0a 20 20 | .}.....if($type.=='method').{... | 
| 8660 | 20 20 20 20 72 65 74 75 72 6e 20 6e 65 77 20 67    74 45 72 72 6f 72 54 65 73 74 43 61 73 65 4d 65 | ....return.new.gtErrorTestCaseMe | 
| 8680 | 74 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 65    63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 0a | thod($optionalSections);.....}.. | 
| 86a0 | 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 75    6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 41 | ..}....public.function.getShortA | 
| 86c0 | 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 20 7b 0a    20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 | rgumentList().{.....return.$this | 
| 86e0 | 2d 3e 73 68 6f 72 74 41 72 67 75 6d 65 6e 74 4c    69 73 74 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c | ->shortArgumentList;...}....publ | 
| 8700 | 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c    6f 6e 67 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 | ic.function.getLongArgumentList( | 
| 8720 | 29 20 7b 0a 20 20 20 20 72 65 74 75 72 6e 20 24    74 68 69 73 2d 3e 6c 6f 6e 67 41 72 67 75 6d 65 | ).{.....return.$this->longArgume | 
| 8740 | 6e 74 4c 69 73 74 3b 0a 20 20 7d 0a 20 20 0a 20    20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e | ntList;...}......public.function | 
| 8760 | 20 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63    74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20 24 | .constructSubjectCalls().{.....$ | 
| 8780 | 74 68 69 73 2d 3e 61 72 67 49 6e 69 74 28 29 3b    0a 20 20 20 20 0a 20 20 20 20 2f 2f 49 6e 69 74 | this->argInit();..........//Init | 
| 87a0 | 69 61 6c 69 73 65 20 74 68 65 20 61 64 64 69 74    69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 0a 20 | ialise.the.additional.argument.. | 
| 87c0 | 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61    73 65 5b 5d 20 3d 20 22 5c 24 65 78 74 72 61 5f | ...$this->testCase[].=."\$extra_ | 
| 87e0 | 61 72 67 20 3d 20 22 3b 0a 20 20 20 20 0a 20 20    20 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 | arg.=.";..........$this->subject | 
| 8800 | 43 61 6c 6c 73 28 29 3b 0a 20 20 7d 0a 20 20 0a    20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e | Calls();...}.....public.function | 
| 8820 | 20 61 64 64 45 72 72 6f 72 45 63 68 6f 28 29 20    7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 | .addErrorEcho().{.....$this->tes | 
| 8840 | 74 43 61 73 65 5b 5d 20 3d 20 22 65 63 68 6f 20    5c 22 2a 2a 2a 20 54 65 73 74 20 62 79 20 63 61 | tCase[].=."echo.\"***.Test.by.ca | 
| 8860 | 6c 6c 69 6e 67 20 6d 65 74 68 6f 64 20 6f 72 20    66 75 6e 63 74 69 6f 6e 20 77 69 74 68 20 69 6e | lling.method.or.function.with.in | 
| 8880 | 63 6f 72 72 65 63 74 20 6e 75 6d 62 65 72 73 20    6f 66 20 61 72 67 75 6d 65 6e 74 73 20 2a 2a 2a | correct.numbers.of.arguments.*** | 
| 88a0 | 5c 5c 6e 5c 22 22 3b 0a 20 20 20 20 24 74 68 69    73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 | \\n\"";.....$this->testCase.=.gt | 
| 88c0 | 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70    65 6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c | CodeSnippet::appendBlankLines(1, | 
| 88e0 | 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65    20 29 3b 0a 20 20 7d 0a 7d 0a 0a 3f 3e 3c 3f 70 | .$this->testCase.);...}.}..?><?p | 
| 8900 | 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73    20 66 6f 72 20 61 6c 6c 20 74 65 73 74 20 63 61 | hp../**..*.Class.for.all.test.ca | 
| 8920 | 73 65 73 0a 20 2a 2f 0a 61 62 73 74 72 61 63 74    20 63 6c 61 73 73 20 67 74 54 65 73 74 43 61 73 | ses..*/.abstract.class.gtTestCas | 
| 8940 | 65 20 7b 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a    20 54 68 65 20 73 75 62 6a 65 63 74 20 6f 66 20 | e.{...../**....*.The.subject.of. | 
| 8960 | 74 68 65 20 74 65 73 74 2c 20 6d 61 79 20 62 65    20 65 69 74 68 65 72 20 61 20 66 75 6e 63 74 69 | the.test,.may.be.either.a.functi | 
| 8980 | 6f 6e 20 28 67 74 46 75 6e 63 74 69 6f 6e 29 20    6f 72 20 61 20 6d 65 74 68 6f 64 20 28 67 74 4d | on.(gtFunction).or.a.method.(gtM | 
| 89a0 | 65 74 68 6f 64 29 0a 20 20 20 2a 0a 20 20 20 2a    20 40 76 61 72 20 67 74 4d 65 74 68 6f 64 20 6f | ethod)....*....*.@var.gtMethod.o | 
| 89c0 | 72 20 67 74 46 75 6e 63 74 69 6f 6e 0a 20 20 20    2a 2f 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 | r.gtFunction....*/...protected.$ | 
| 89e0 | 73 75 62 6a 65 63 74 3b 0a 0a 0a 20 20 2f 2a 2a    0a 20 20 20 2a 20 41 72 72 79 20 6f 66 20 73 74 | subject;...../**....*.Arry.of.st | 
| 8a00 | 72 69 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67    20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 | rings.containing.the.test.case.. | 
| 8a20 | 20 20 2a 0a 20 20 20 2a 20 40 76 61 72 20 61 72    72 61 79 0a 20 20 20 2a 2f 0a 20 20 70 72 6f 74 | ..*....*.@var.array....*/...prot | 
| 8a40 | 65 63 74 65 64 20 24 74 65 73 74 43 61 73 65 3b    0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 4f 62 | ected.$testCase;...../**....*.Ob | 
| 8a60 | 6a 65 63 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20    74 68 65 20 6f 6f 70 74 69 6f 6e 61 6c 20 73 65 | ject.containing.the.ooptional.se | 
| 8a80 | 63 74 69 6f 6e 73 20 74 68 61 74 20 6d 61 79 20    62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 | ctions.that.may.be.added.to.the. | 
| 8aa0 | 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20    20 20 2a 20 40 76 61 72 20 67 74 4f 70 74 69 6f | test.case....*....*.@var.gtOptio | 
| 8ac0 | 6e 61 6c 53 65 63 74 69 6f 6e 73 0a 20 20 20 2a    2f 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 6f | nalSections....*/...protected.$o | 
| 8ae0 | 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 3b    0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f | ptionalSections;...../**....*.Co | 
| 8b00 | 6e 76 65 72 74 20 74 65 73 74 20 63 61 73 65 20    66 72 6f 6d 20 61 72 72 61 79 20 74 6f 20 73 74 | nvert.test.case.from.array.to.st | 
| 8b20 | 72 69 6e 67 0a 20 20 20 2a 0a 20 20 20 2a 20 40    72 65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 | ring....*....*.@return.string... | 
| 8b40 | 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e    63 74 69 6f 6e 20 74 6f 53 74 72 69 6e 67 28 29 | .*/...public.function.toString() | 
| 8b60 | 20 7b 0a 20 20 20 20 24 74 65 73 74 43 61 73 65    53 74 72 69 6e 67 20 3d 20 22 22 3b 0a 20 20 20 | .{.....$testCaseString.=."";.... | 
| 8b80 | 20 66 6f 72 65 61 63 68 28 24 74 68 69 73 2d 3e    74 65 73 74 43 61 73 65 20 61 73 20 24 6c 69 6e | .foreach($this->testCase.as.$lin | 
| 8ba0 | 65 29 20 7b 0a 20 20 20 20 20 20 24 74 65 73 74    43 61 73 65 53 74 72 69 6e 67 20 2e 3d 20 24 6c | e).{.......$testCaseString..=.$l | 
| 8bc0 | 69 6e 65 2e 22 5c 6e 22 3b 0a 20 20 20 20 7d 0a    20 20 20 20 72 65 74 75 72 6e 20 24 74 65 73 74 | ine."\n";.....}.....return.$test | 
| 8be0 | 43 61 73 65 53 74 72 69 6e 67 3b 0a 20 20 7d 0a    0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 | CaseString;...}....../**....*.Re | 
| 8c00 | 74 75 72 6e 73 20 74 65 73 74 20 63 61 73 65 20    61 73 20 61 20 61 72 72 61 79 0a 20 20 20 2a 0a | turns.test.case.as.a.array....*. | 
| 8c20 | 20 20 20 2a 20 40 72 65 74 75 72 6e 20 61 72 72    61 79 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 | ...*.@return.array....*/...publi | 
| 8c40 | 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 65    73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 72 | c.function.getTestCase().{.....r | 
| 8c60 | 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 65 73    74 43 61 73 65 3b 0a 20 20 7d 0a 0a 0a 20 20 2f | eturn.$this->testCase;...}...../ | 
| 8c80 | 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63    74 20 74 68 65 20 63 6f 6d 6d 6f 6e 20 68 65 61 | **....*.Construct.the.common.hea | 
| 8ca0 | 64 65 72 73 20 28 74 69 74 6c 65 2c 20 66 69 6c    65 20 73 65 63 74 69 6f 6e 2e 2e 29 20 6f 66 20 | ders.(title,.file.section..).of. | 
| 8cc0 | 74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20    20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 | the.test.case....*....*/...publi | 
| 8ce0 | 63 20 66 75 6e 63 74 69 6f 6e 20 43 6f 6e 73 74    72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 | c.function.ConstructCommonHeader | 
| 8d00 | 73 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d    3e 74 65 73 74 48 65 61 64 65 72 28 29 3b 0a 0a | s().{.....$this->testHeader();.. | 
| 8d20 | 20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70    74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e | ....if($this->optionalSections-> | 
| 8d40 | 68 61 73 53 6b 69 70 69 66 28 29 29 20 7b 0a 20    20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 53 | hasSkipif()).{.......$this->addS | 
| 8d60 | 6b 69 70 69 66 28 29 3b 0a 20 20 20 20 7d 0a 0a    20 20 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 | kipif();.....}......if($this->op | 
| 8d80 | 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e    68 61 73 49 6e 69 28 29 29 20 7b 0a 20 20 20 20 | tionalSections->hasIni()).{..... | 
| 8da0 | 20 20 24 74 68 69 73 2d 3e 61 64 64 49 6e 69 28    29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 24 74 | ..$this->addIni();.....}......$t | 
| 8dc0 | 68 69 73 2d 3e 66 69 6c 65 4f 70 65 6e 69 6e 67    28 29 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a | his->fileOpening();...}...../**. | 
| 8de0 | 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 20 74    68 65 20 63 6f 6d 6d 6f 6e 20 63 6c 6f 73 69 6e | ...*.Construct.the.common.closin | 
| 8e00 | 67 20 73 74 61 74 65 6d 65 6e 74 73 20 28 63 6c    65 61 6e 2c 20 64 6f 6e 65 2c 20 45 58 50 45 43 | g.statements.(clean,.done,.EXPEC | 
| 8e20 | 54 46 2e 2e 2e 29 0a 20 20 20 2a 0a 20 20 20 2a    2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 | TF...)....*....*/...public.funct | 
| 8e40 | 69 6f 6e 20 43 6f 6e 73 74 72 75 63 74 43 6f 6d    6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 20 7b 0a 20 | ion.ConstructCommonClosing().{.. | 
| 8e60 | 20 20 20 24 74 68 69 73 2d 3e 66 69 6c 65 43 6c    6f 73 69 6e 67 28 29 3b 0a 20 20 20 20 20 0a 20 | ...$this->fileClosing();........ | 
| 8e80 | 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f 70    74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e | ...if.($this->optionalSections-> | 
| 8ea0 | 68 61 73 44 6f 6e 65 28 29 29 20 7b 0a 20 20 20    20 20 20 24 74 68 69 73 2d 3e 61 64 64 44 6f 6e | hasDone()).{.......$this->addDon | 
| 8ec0 | 65 28 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 20    0a 20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e | e();.....}...........if.($this-> | 
| 8ee0 | 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73    2d 3e 68 61 73 43 6c 65 61 6e 28 29 29 20 7b 0a | optionalSections->hasClean()).{. | 
| 8f00 | 20 20 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64    43 6c 65 61 6e 28 29 3b 0a 20 20 20 20 7d 0a 0a | ......$this->addClean();.....}.. | 
| 8f20 | 20 20 20 20 24 74 68 69 73 2d 3e 61 64 64 45 78    70 65 63 74 66 28 29 3b 0a 20 20 7d 0a 0a 20 20 | ....$this->addExpectf();...}.... | 
| 8f40 | 2f 2a 2a 0a 20 20 20 2a 20 53 74 61 72 74 20 74    68 65 20 46 49 4c 45 20 73 65 63 74 69 6f 6e 20 | /**....*.Start.the.FILE.section. | 
| 8f60 | 6f 66 20 74 68 65 20 74 65 73 74 0a 20 20 20 2a    0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 | of.the.test....*....*/...public. | 
| 8f80 | 66 75 6e 63 74 69 6f 6e 20 66 69 6c 65 4f 70 65    6e 69 6e 67 28 29 20 7b 0a 20 20 20 20 24 74 68 | function.fileOpening().{.....$th | 
| 8fa0 | 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d    20 22 2d 2d 46 49 4c 45 2d 2d 22 3b 0a 20 20 20 | is->testCase[].=."--FILE--";.... | 
| 8fc0 | 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65    5b 5d 20 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 | .$this->testCase[].=."<?php";... | 
| 8fe0 | 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73    65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 | ..$this->testCase.=.gtCodeSnippe | 
| 9000 | 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69    6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 | t::appendBlankLines(2,.$this->te | 
| 9020 | 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 0a    20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 63 | stCase.);...}...../**....*.Add.c | 
| 9040 | 6f 6e 73 74 72 75 63 74 6f 72 20 61 72 67 75 6d    65 6e 74 20 69 6e 69 74 69 61 6c 69 73 61 74 69 | onstructor.argument.initialisati | 
| 9060 | 6f 6e 20 74 6f 20 74 65 73 74 20 63 61 73 65 0a    20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 | on.to.test.case....*....*/...pub | 
| 9080 | 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e    73 74 72 75 63 74 6f 72 41 72 67 49 6e 69 74 28 | lic.function.constructorArgInit( | 
| 90a0 | 29 20 7b 0a 20 20 20 20 24 63 6f 6e 53 74 61 74    65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e | ).{.....$conStatements.=.$this-> | 
| 90c0 | 73 75 62 6a 65 63 74 2d 3e 67 65 74 43 6f 6e 73    74 72 75 63 74 6f 72 49 6e 69 74 53 74 61 74 65 | subject->getConstructorInitState | 
| 90e0 | 6d 65 6e 74 73 28 29 3b 0a 20 20 20 20 66 6f 72    65 61 63 68 28 24 63 6f 6e 53 74 61 74 65 6d 65 | ments();.....foreach($conStateme | 
| 9100 | 6e 74 73 20 61 73 20 24 73 74 61 74 65 6d 65 6e    74 29 20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 | nts.as.$statement).{.......$this | 
| 9120 | 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 24    73 74 61 74 65 6d 65 6e 74 3b 0a 20 20 20 20 7d | ->testCase[].=.$statement;.....} | 
| 9140 | 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20    2a 20 43 72 65 61 74 65 20 69 6e 73 74 61 6e 63 | ...}...../**....*.Create.instanc | 
| 9160 | 65 20 6f 66 20 63 6c 61 73 73 20 69 6e 20 74 68    65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a | e.of.class.in.the.test.case....* | 
| 9180 | 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20    66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 | ....*/...public.function.constru | 
| 91a0 | 63 74 6f 72 43 72 65 61 74 65 49 6e 73 74 61 6e    63 65 28 29 20 7b 0a 20 20 20 20 24 63 6f 6e 73 | ctorCreateInstance().{.....$cons | 
| 91c0 | 74 72 75 63 74 6f 72 4c 69 73 74 20 3d 20 24 74    68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 | tructorList.=.$this->subject->ge | 
| 91e0 | 74 43 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 75    6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 | tConstructorArgumentList();..... | 
| 9200 | 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b    5d 20 3d 20 22 5c 24 63 6c 61 73 73 20 3d 20 6e | $this->testCase[].=."\$class.=.n | 
| 9220 | 65 77 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a    65 63 74 2d 3e 67 65 74 43 6c 61 73 73 4e 61 6d | ew.".$this->subject->getClassNam | 
| 9240 | 65 28 29 2e 22 28 20 22 2e 24 63 6f 6e 73 74 72    75 63 74 6f 72 4c 69 73 74 2e 22 20 29 3b 22 3b | e()."(.".$constructorList.".);"; | 
| 9260 | 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74    43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 | .....$this->testCase.=.gtCodeSni | 
| 9280 | 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e    6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d | ppet::appendBlankLines(2,.$this- | 
| 92a0 | 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d    0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 | >testCase.);...}...../**....*.Ad | 
| 92c0 | 64 20 66 75 6e 63 74 69 6f 6e 20 6f 72 20 6d 65    74 68 6f 64 20 69 6e 69 74 69 6c 61 69 73 61 74 | d.function.or.method.initilaisat | 
| 92e0 | 69 6f 6e 20 73 74 61 74 65 6d 65 6e 74 73 20 74    6f 20 74 68 65 20 74 65 73 74 20 63 61 73 65 0a | ion.statements.to.the.test.case. | 
| 9300 | 20 20 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62    6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 | ...*....*/...public.function.arg | 
| 9320 | 49 6e 69 74 28 29 20 7b 0a 20 20 20 20 24 73 74    61 74 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 | Init().{.....$statements.=.$this | 
| 9340 | 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 49 6e    69 74 69 61 6c 69 73 61 74 69 6f 6e 53 74 61 74 | ->subject->getInitialisationStat | 
| 9360 | 65 6d 65 6e 74 73 28 29 3b 0a 20 20 20 20 66 6f    72 65 61 63 68 28 24 73 74 61 74 65 6d 65 6e 74 | ements();.....foreach($statement | 
| 9380 | 73 20 61 73 20 24 73 74 61 74 65 6d 65 6e 74 29    20 7b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e | s.as.$statement).{.......$this-> | 
| 93a0 | 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 24 73 74    61 74 65 6d 65 6e 74 3b 0a 20 20 20 20 7d 0a 20 | testCase[].=.$statement;.....}.. | 
| 93c0 | 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61    73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 | ...$this->testCase.=.gtCodeSnipp | 
| 93e0 | 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c    69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 | et::appendBlankLines(2,.$this->t | 
| 9400 | 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a    0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 | estCase.);...}...../**....*.Add. | 
| 9420 | 46 49 4c 45 20 73 65 63 74 69 6f 6e 20 63 6c 6f    73 69 6e 67 20 74 61 67 20 74 6f 20 74 68 65 20 | FILE.section.closing.tag.to.the. | 
| 9440 | 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a 20    20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 | test.case....*....*/...public.fu | 
| 9460 | 6e 63 74 69 6f 6e 20 66 69 6c 65 43 6c 6f 73 69    6e 67 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 | nction.fileClosing().{.....$this | 
| 9480 | 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22    3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a | ->testCase[].=."?>";...}...../** | 
| 94a0 | 0a 20 20 20 2a 20 41 64 64 20 61 20 73 6b 69 70    69 66 20 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 | ....*.Add.a.skipif.section.to.th | 
| 94c0 | 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a    0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 | e.test.case....*....*/...public. | 
| 94e0 | 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 6b 69 70    69 66 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 | function.addSkipif().{.....$this | 
| 9500 | 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22    2d 2d 53 4b 49 50 49 46 2d 2d 22 3b 0a 20 20 20 | ->testCase[].=."--SKIPIF--";.... | 
| 9520 | 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65    5b 5d 20 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 | .$this->testCase[].=."<?php";... | 
| 9540 | 20 20 69 66 28 24 74 68 69 73 2d 3e 6f 70 74 69    6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e 68 61 | ..if($this->optionalSections->ha | 
| 9560 | 73 53 6b 69 70 69 66 4b 65 79 28 29 29 20 7b 0a    20 20 20 20 20 20 24 6b 65 79 20 3d 20 24 74 68 | sSkipifKey()).{.......$key.=.$th | 
| 9580 | 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74    69 6f 6e 73 2d 3e 67 65 74 53 6b 69 70 69 66 4b | is->optionalSections->getSkipifK | 
| 95a0 | 65 79 28 29 3b 0a 20 20 20 20 20 20 2f 2f 74 65    73 74 20 73 74 61 6e 64 61 72 64 20 73 6b 69 70 | ey();.......//test.standard.skip | 
| 95c0 | 69 66 20 73 65 63 74 69 6f 6e 73 0a 20 20 20 20    20 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 77 69 | if.sections.......if($key.==.'wi | 
| 95e0 | 6e 27 29 20 7b 0a 20 20 20 20 20 20 20 20 24 74    68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d 20 | n').{.........$this->testCase.=. | 
| 9600 | 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61    70 70 65 6e 64 28 27 73 6b 69 70 69 66 77 69 6e | gtCodeSnippet::append('skipifwin | 
| 9620 | 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61    73 65 29 3b 0a 20 20 20 20 20 20 7d 0a 20 20 20 | ',.$this->testCase);.......}.... | 
| 9640 | 20 20 20 69 66 28 24 6b 65 79 20 3d 3d 20 27 6e    6f 74 77 69 6e 27 20 29 20 7b 0a 20 20 20 20 20 | ...if($key.==.'notwin'.).{...... | 
| 9660 | 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61    73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 | ...$this->testCase.=.gtCodeSnipp | 
| 9680 | 65 74 3a 3a 61 70 70 65 6e 64 28 27 73 6b 69 70    69 66 6e 6f 74 77 69 6e 27 2c 20 24 74 68 69 73 | et::append('skipifnotwin',.$this | 
| 96a0 | 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 20    20 20 20 7d 0a 0a 20 20 20 20 20 20 69 66 28 24 | ->testCase);.......}........if($ | 
| 96c0 | 6b 65 79 20 3d 3d 20 27 36 34 62 27 20 29 20 7b    0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e | key.==.'64b'.).{.........$this-> | 
| 96e0 | 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64    65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 | testCase.=.gtCodeSnippet::append | 
| 9700 | 28 27 73 6b 69 70 69 66 36 34 62 27 2c 20 24 74    68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a | ('skipif64b',.$this->testCase);. | 
| 9720 | 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 69    66 28 24 6b 65 79 20 3d 3d 20 27 6e 6f 74 36 34 | ......}........if($key.==.'not64 | 
| 9740 | 62 27 20 29 20 7b 0a 20 20 20 20 20 20 20 20 24    74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 3d | b'.).{.........$this->testCase.= | 
| 9760 | 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a 3a    61 70 70 65 6e 64 28 27 73 6b 69 70 69 66 6e 6f | .gtCodeSnippet::append('skipifno | 
| 9780 | 74 36 34 62 27 2c 20 24 74 68 69 73 2d 3e 74 65    73 74 43 61 73 65 29 3b 0a 20 20 20 20 20 20 7d | t64b',.$this->testCase);.......} | 
| 97a0 | 0a 20 20 20 20 7d 0a 0a 20 20 20 20 69 66 28 24    74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 | .....}......if($this->optionalSe | 
| 97c0 | 63 74 69 6f 6e 73 2d 3e 68 61 73 53 6b 69 70 69    66 45 78 74 28 29 29 20 7b 0a 20 20 20 20 20 20 | ctions->hasSkipifExt()).{....... | 
| 97e0 | 24 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6f 70    74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d 3e | $ext.=.$this->optionalSections-> | 
| 9800 | 67 65 74 53 6b 69 70 69 66 45 78 74 28 29 3b 0a    20 20 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 | getSkipifExt();.......$this->tes | 
| 9820 | 74 43 61 73 65 5b 5d 20 3d 20 22 69 66 20 28 21    65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 | tCase[].=."if.(!extension_loaded | 
| 9840 | 28 27 24 65 78 74 27 29 29 20 64 69 65 20 28 27    73 6b 69 70 20 24 65 78 74 20 65 78 74 65 6e 73 | ('$ext')).die.('skip.$ext.extens | 
| 9860 | 69 6f 6e 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c    65 20 69 6e 20 74 68 69 73 20 62 75 69 6c 64 27 | ion.not.available.in.this.build' | 
| 9880 | 29 3b 22 3b 0a 20 20 20 20 7d 0a 20 20 20 20 24    74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d | );";.....}.....$this->testCase[] | 
| 98a0 | 20 3d 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20    20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 6e | .=."?>";...}...../**....*.Add.an | 
| 98c0 | 20 49 4e 49 20 73 65 63 74 69 6f 6e 20 74 6f 20    74 68 65 20 74 65 73 74 20 63 61 73 65 0a 20 20 | .INI.section.to.the.test.case... | 
| 98e0 | 20 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69    63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 49 6e | .*....*/...public.function.addIn | 
| 9900 | 69 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d    3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d | i().{.....$this->testCase[].=."- | 
| 9920 | 2d 49 4e 49 2d 2d 22 3b 0a 20 20 20 20 24 74 68    69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d | -INI--";.....$this->testCase[].= | 
| 9940 | 20 22 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a    0a 20 20 20 2a 20 41 64 64 20 61 20 63 6c 65 61 | ."";...}...../**....*.Add.a.clea | 
| 9960 | 6e 20 73 65 63 74 69 6f 6e 20 74 6f 20 74 68 65    20 74 65 73 74 20 63 61 73 65 0a 20 20 20 2a 0a | n.section.to.the.test.case....*. | 
| 9980 | 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66    75 6e 63 74 69 6f 6e 20 61 64 64 43 6c 65 61 6e | ...*/...public.function.addClean | 
| 99a0 | 28 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e    74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 2d 2d | ().{.....$this->testCase[].=."-- | 
| 99c0 | 43 4c 45 41 4e 2d 2d 22 3b 0a 20 20 20 20 24 74    68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 | CLEAN--";.....$this->testCase[]. | 
| 99e0 | 3d 20 22 3c 3f 70 68 70 22 3b 0a 20 20 20 20 24    74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d | =."<?php";.....$this->testCase[] | 
| 9a00 | 20 3d 20 22 3f 3e 22 3b 0a 20 20 7d 0a 0a 0a 20    20 2f 2a 2a 0a 20 20 20 2a 20 41 64 64 20 61 20 | .=."?>";...}...../**....*.Add.a. | 
| 9a20 | 3d 3d 3d 44 4f 4e 45 3d 3d 3d 20 73 74 61 74 65    6d 65 6e 74 20 74 6f 20 74 68 65 20 74 65 73 74 | ===DONE===.statement.to.the.test | 
| 9a40 | 20 63 61 73 65 0a 20 20 20 2a 0a 20 20 20 2a 2f    0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 | .case....*....*/...public.functi | 
| 9a60 | 6f 6e 20 61 64 64 44 6f 6e 65 28 29 20 7b 0a 20    20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 | on.addDone().{.....$this->testCa | 
| 9a80 | 73 65 5b 5d 20 3d 20 22 3d 3d 3d 44 4f 4e 45 3d    3d 3d 22 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a | se[].=."===DONE===";...}...../** | 
| 9aa0 | 0a 20 20 20 2a 20 41 64 64 20 61 6e 20 45 58 50    45 43 54 46 20 73 65 63 74 69 6f 6e 0a 20 20 20 | ....*.Add.an.EXPECTF.section.... | 
| 9ac0 | 2a 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63    20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 78 70 | *....*/...public.function.addExp | 
| 9ae0 | 65 63 74 66 28 29 20 7b 0a 20 20 20 20 24 74 68    69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d | ectf().{.....$this->testCase[].= | 
| 9b00 | 20 22 2d 2d 45 58 50 45 43 54 46 2d 2d 22 3b 0a    20 20 20 20 69 66 20 28 24 74 68 69 73 2d 3e 6f | ."--EXPECTF--";.....if.($this->o | 
| 9b20 | 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2d    3e 68 61 73 44 6f 6e 65 28 29 20 29 7b 0a 20 20 | ptionalSections->hasDone().){... | 
| 9b40 | 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43    61 73 65 5b 5d 20 3d 20 27 3d 3d 3d 44 4f 4e 45 | ....$this->testCase[].=.'===DONE | 
| 9b60 | 3d 3d 3d 27 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a    0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 | ===';.....}...}....public.functi | 
| 9b80 | 6f 6e 20 67 65 74 4f 70 74 28 29 20 7b 0a 20 20    20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e | on.getOpt().{.....return.$this-> | 
| 9ba0 | 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73    3b 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 70 0a | optionalSections;...}.}.?><?php. | 
| 9bc0 | 0a 2f 2a 2a 0a 20 2a 20 42 61 73 69 63 20 74 65    73 74 20 63 61 73 65 20 66 6f 72 20 61 20 50 48 | ./**..*.Basic.test.case.for.a.PH | 
| 9be0 | 50 20 66 75 6e 63 74 69 6f 6e 0a 20 2a 0a 20 2a    2f 0a 63 6c 61 73 73 20 67 74 42 61 73 69 63 54 | P.function..*..*/.class.gtBasicT | 
| 9c00 | 65 73 74 43 61 73 65 46 75 6e 63 74 69 6f 6e 20    65 78 74 65 6e 64 73 20 67 74 42 61 73 69 63 54 | estCaseFunction.extends.gtBasicT | 
| 9c20 | 65 73 74 43 61 73 65 20 7b 0a 0a 0a 20 20 70 75    62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f | estCase.{.....public.function.__ | 
| 9c40 | 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20    7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74 | construct($opt).{.....$this->opt | 
| 9c60 | 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20    24 6f 70 74 3b 0a 20 20 7d 0a 0a 20 20 2f 2a 2a | ionalSections.=.$opt;...}..../** | 
| 9c80 | 0a 20 20 20 2a 20 53 65 74 20 74 68 65 20 66 75    6e 63 74 69 6f 6e 20 6e 61 6d 65 0a 20 20 20 2a | ....*.Set.the.function.name....* | 
| 9ca0 | 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 46    75 6e 63 74 69 6f 6e 20 24 66 75 6e 63 74 69 6f | ....*.@param.gtFunction.$functio | 
| 9cc0 | 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63    20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 75 6e | n....*/...public.function.setFun | 
| 9ce0 | 63 74 69 6f 6e 28 24 66 75 6e 63 74 69 6f 6e 29    20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 73 75 | ction($function).{.....$this->su | 
| 9d00 | 62 6a 65 63 74 20 3d 20 24 66 75 6e 63 74 69 6f    6e 3b 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 | bject.=.$function;...}....public | 
| 9d20 | 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72    75 63 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a | .function.constructTestCase().{. | 
| 9d40 | 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74    72 75 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 | ....$this->constructCommonHeader | 
| 9d60 | 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74    68 69 73 2d 3e 61 64 64 42 61 73 69 63 45 63 68 | s();..........$this->addBasicEch | 
| 9d80 | 6f 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74    68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 | o();..........$this->constructSu | 
| 9da0 | 62 6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20    20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f | bjectCalls();..........$this->co | 
| 9dc0 | 6e 73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f    73 69 6e 67 28 29 3b 0a 20 20 20 0a 20 20 7d 0a | nstructCommonClosing();.......}. | 
| 9de0 | 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e    73 74 72 75 63 74 20 74 65 73 74 20 63 61 73 65 | ..../**....*.Construct.test.case | 
| 9e00 | 20 68 65 61 64 65 72 0a 20 20 20 2a 0a 20 20 20    2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 | .header....*....*/...public.func | 
| 9e20 | 74 69 6f 6e 20 74 65 73 74 48 65 61 64 65 72 28    29 20 7b 0a 20 20 20 20 2f 2f 4f 70 65 6e 69 6e | tion.testHeader().{.....//Openin | 
| 9e40 | 67 20 73 65 63 74 69 6f 6e 20 61 6e 64 20 73 74    61 72 74 20 6f 66 20 74 65 73 74 20 63 61 73 65 | g.section.and.start.of.test.case | 
| 9e60 | 20 61 72 72 61 79 2e 0a 20 20 20 20 24 74 68 69    73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 | .array......$this->testCase[].=. | 
| 9e80 | 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20    24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b | "--TEST--";.....$this->testCase[ | 
| 9ea0 | 5d 20 3d 20 22 54 65 73 74 20 66 75 6e 63 74 69    6f 6e 20 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a | ].=."Test.function.".$this->subj | 
| 9ec0 | 65 63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22    28 29 20 62 79 20 63 61 6c 6c 69 6e 67 20 69 74 | ect->getName()."().by.calling.it | 
| 9ee0 | 20 77 69 74 68 20 69 74 73 20 65 78 70 65 63 74    65 64 20 61 72 67 75 6d 65 6e 74 73 22 3b 0a 20 | .with.its.expected.arguments";.. | 
| 9f00 | 20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 41    64 64 20 74 68 65 20 74 65 73 74 20 73 65 63 74 | .}..../**....*.Add.the.test.sect | 
| 9f20 | 69 6f 6e 20 74 6f 20 63 61 6c 6c 20 74 68 65 20    66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a 0a 20 20 | ion.to.call.the.function....*... | 
| 9f40 | 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e    63 74 69 6f 6e 20 73 75 62 6a 65 63 74 43 61 6c | .*/...public.function.subjectCal | 
| 9f60 | 6c 73 28 29 20 7b 0a 20 20 20 20 2f 2f 20 43 6f    6e 73 74 72 75 63 74 20 74 68 65 20 61 72 67 75 | ls().{.....//.Construct.the.argu | 
| 9f80 | 6d 65 6e 74 20 6c 69 73 74 20 74 6f 20 70 61 73    73 20 74 6f 20 74 68 65 20 66 75 6e 63 74 69 6f | ment.list.to.pass.to.the.functio | 
| 9fa0 | 6e 20 62 65 69 6e 67 20 74 65 73 74 65 64 0a 20    20 20 20 24 6c 69 73 74 73 20 3d 20 24 74 68 69 | n.being.tested.....$lists.=.$thi | 
| 9fc0 | 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 56    61 6c 69 64 41 72 67 75 6d 65 6e 74 4c 69 73 74 | s->subject->getValidArgumentList | 
| 9fe0 | 73 28 29 3b 0a 0a 20 20 20 20 66 6f 72 65 61 63    68 28 24 6c 69 73 74 73 20 61 73 20 24 6c 69 73 | s();......foreach($lists.as.$lis | 
| a000 | 74 29 7b 0a 0a 20 20 20 20 20 20 24 74 68 69 73    2d 3e 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 | t){........$this->testCase.=.gtC | 
| a020 | 6f 64 65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65    6e 64 42 6c 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 | odeSnippet::appendBlankLines(1,. | 
| a040 | 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20    29 3b 0a 20 20 20 20 20 20 24 74 68 69 73 2d 3e | $this->testCase.);.......$this-> | 
| a060 | 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 76 61    72 5f 64 75 6d 70 28 22 2e 24 74 68 69 73 2d 3e | testCase[].=."var_dump(".$this-> | 
| a080 | 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e 61 6d 65    28 29 2e 22 28 20 22 2e 24 6c 69 73 74 2e 22 20 | subject->getName()."(.".$list.". | 
| a0a0 | 29 20 29 3b 22 3b 0a 20 20 20 20 7d 0a 20 20 20    20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 | ).);";.....}.....$this->testCase | 
| a0c0 | 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74    3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e | .=.gtCodeSnippet::appendBlankLin | 
| a0e0 | 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65 73    74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d 0a | es(2,.$this->testCase.);...}..}. | 
| a100 | 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20    45 72 72 6f 72 20 74 65 73 74 20 63 61 73 65 20 | ?><?php../**..*.Error.test.case. | 
| a120 | 66 6f 72 20 61 20 50 48 50 20 66 75 6e 63 74 69    6f 6e 0a 20 2a 0a 20 2a 2f 0a 63 6c 61 73 73 20 | for.a.PHP.function..*..*/.class. | 
| a140 | 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 46    75 6e 63 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 | gtErrorTestCaseFunction.extends. | 
| a160 | 67 74 45 72 72 6f 72 54 65 73 74 43 61 73 65 20    7b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 | gtErrorTestCase.{....public.func | 
| a180 | 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74    28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 68 | tion.__construct($opt).{.....$th | 
| a1a0 | 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74    69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 7d | is->optionalSections.=.$opt;...} | 
| a1c0 | 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74    20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 6e 61 | ..../**....*.Set.the.function.na | 
| a1e0 | 6d 65 0a 20 20 20 2a 0a 20 20 20 2a 20 40 70 61    72 61 6d 20 73 74 72 69 6e 67 20 24 66 75 6e 63 | me....*....*.@param.string.$func | 
| a200 | 74 69 6f 6e 0a 20 20 20 2a 2f 0a 20 20 70 75 62    6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 | tion....*/...public.function.set | 
| a220 | 46 75 6e 63 74 69 6f 6e 28 24 66 75 6e 63 74 69    6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d | Function($function).{.....$this- | 
| a240 | 3e 73 75 62 6a 65 63 74 20 3d 20 24 66 75 6e 63    74 69 6f 6e 3b 0a 20 20 7d 0a 0a 0a 20 20 2f 2a | >subject.=.$function;...}...../* | 
| a260 | 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74    20 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 | *....*.Construct.the.test.case.a | 
| a280 | 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 73 74    72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f | s.an.array.of.strings....*....*/ | 
| a2a0 | 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69    6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 | ...public.function.constructTest | 
| a2c0 | 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68    69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d | Case().{.....$this->constructCom | 
| a2e0 | 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a 20 20    20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 64 | monHeaders();..........$this->ad | 
| a300 | 64 45 72 72 6f 72 45 63 68 6f 28 29 3b 0a 20 20    20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e | dErrorEcho();............$this-> | 
| a320 | 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74    43 61 6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 | constructSubjectCalls();........ | 
| a340 | 20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75    63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 | ..$this->constructCommonClosing( | 
| a360 | 29 3b 0a 20 20 20 20 0a 20 20 7d 0a 0a 0a 20 20    70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 | );........}.....public.function. | 
| a380 | 74 65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20    20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 | testHeader().{.....$this->testCa | 
| a3a0 | 73 65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d    22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 | se[].=."--TEST--";.....$this->te | 
| a3c0 | 73 74 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74    20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 68 69 | stCase[].=."Test.function.".$thi | 
| a3e0 | 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e    61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c | s->subject->getName()."().by.cal | 
| a400 | 6c 69 6e 67 20 69 74 20 6d 6f 72 65 20 74 68 61    6e 20 6f 72 20 6c 65 73 73 20 74 68 61 6e 20 69 | ling.it.more.than.or.less.than.i | 
| a420 | 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75    6d 65 6e 74 73 22 3b 0a 20 20 7d 0a 0a 20 20 70 | ts.expected.arguments";...}....p | 
| a440 | 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73    75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a | ublic.function.subjectCalls().{. | 
| a460 | 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74    20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 | ....//.Construct.the.argument.li | 
| a480 | 73 74 73 20 74 6f 20 70 61 73 73 20 74 6f 20 74    68 65 20 66 75 6e 63 74 69 6f 6e 20 62 65 69 6e | sts.to.pass.to.the.function.bein | 
| a4a0 | 67 20 74 65 73 74 65 64 0a 20 20 20 20 24 6c 69    73 74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a | g.tested.....$list.=.$this->subj | 
| a4c0 | 65 63 74 2d 3e 67 65 74 45 78 74 72 61 41 72 67    75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 | ect->getExtraArgumentList();.... | 
| a4e0 | 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65    20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 | .$this->testCase.=.gtCodeSnippet | 
| a500 | 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e    65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 | ::appendBlankLines(1,.$this->tes | 
| a520 | 74 43 61 73 65 20 29 3b 0a 20 20 20 20 24 74 68    69 73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d | tCase.);.....$this->testCase[].= | 
| a540 | 20 22 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68    69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 | ."var_dump(".$this->subject->get | 
| a560 | 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73    74 2e 22 20 29 20 29 3b 22 3b 0a 0a 20 20 20 20 | Name()."(.".$list.".).);";...... | 
| a580 | 24 6c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 73    75 62 6a 65 63 74 2d 3e 67 65 74 53 68 6f 72 74 | $list.=.$this->subject->getShort | 
| a5a0 | 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 3b 0a    20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 | ArgumentList();.....$this->testC | 
| a5c0 | 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70    70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b | ase.=.gtCodeSnippet::appendBlank | 
| a5e0 | 4c 69 6e 65 73 28 31 2c 20 24 74 68 69 73 2d 3e    74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 20 20 | Lines(1,.$this->testCase.);..... | 
| a600 | 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b    5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 28 22 2e | $this->testCase[].=."var_dump(". | 
| a620 | 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e    67 65 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 | $this->subject->getName()."(.".$ | 
| a640 | 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20    20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 | list.".).);";.....$this->testCas | 
| a660 | 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65    74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 | e.=.gtCodeSnippet::appendBlankLi | 
| a680 | 6e 65 73 28 32 2c 20 24 74 68 69 73 2d 3e 74 65    73 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d | nes(2,.$this->testCase.);...}..} | 
| a6a0 | 0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a    20 43 6c 61 73 73 20 66 6f 72 20 76 61 72 69 61 | .?><?php../**..*.Class.for.varia | 
| a6c0 | 74 69 6f 6e 20 74 65 73 74 73 20 66 6f 72 20 61    20 50 48 50 20 66 75 6e 63 74 69 6f 6e 0a 20 2a | tion.tests.for.a.PHP.function..* | 
| a6e0 | 2f 0a 63 6c 61 73 73 20 67 74 56 61 72 69 61 74    69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e 63 74 | /.class.gtVariationTestCaseFunct | 
| a700 | 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 56 61    72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 20 | ion.extends.gtVariationTestCase. | 
| a720 | 7b 0a 0a 20 20 70 72 6f 74 65 63 74 65 64 20 24    61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a | {....protected.$argumentNumber;. | 
| a740 | 20 20 70 72 6f 74 65 63 74 65 64 20 24 76 61 72    69 61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 70 72 | ..protected.$variationData;...pr | 
| a760 | 6f 74 65 63 74 65 64 20 24 74 65 73 74 43 61 73    65 3b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e | otected.$testCase;....public.fun | 
| a780 | 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63    74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24 74 | ction.__construct($opt).{.....$t | 
| a7a0 | 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 63    74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20 20 | his->optionalSections.=.$opt;... | 
| a7c0 | 7d 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74    20 64 61 74 61 20 6e 65 65 64 65 20 74 6f 20 63 | }.../**....*.Set.data.neede.to.c | 
| a7e0 | 6f 6e 73 74 72 75 63 74 20 76 61 72 69 61 74 69    6f 6e 20 74 65 73 74 73 0a 20 20 20 2a 0a 20 20 | onstruct.variation.tests....*... | 
| a800 | 20 2a 20 40 70 61 72 61 6d 20 67 74 66 75 6e 63    74 69 6f 6e 20 24 66 75 6e 63 74 69 6f 6e 0a 20 | .*.@param.gtfunction.$function.. | 
| a820 | 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e    67 20 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 | ..*.@param.string.$argumentNumbe | 
| a840 | 72 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74    72 69 6e 67 20 24 76 61 72 69 61 74 69 6f 6e 44 | r....*.@param.string.$variationD | 
| a860 | 61 74 61 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c    69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 | ata....*/...public.function.setU | 
| a880 | 70 28 67 74 66 75 6e 63 74 69 6f 6e 20 24 66 75    6e 63 74 69 6f 6e 2c 20 24 61 72 67 75 6d 65 6e | p(gtfunction.$function,.$argumen | 
| a8a0 | 74 4e 75 6d 62 65 72 2c 20 24 76 61 72 69 61 74    69 6f 6e 44 61 74 61 29 20 7b 0a 20 20 20 20 24 | tNumber,.$variationData).{.....$ | 
| a8c0 | 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20    24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 20 20 24 | this->subject.=.$function;.....$ | 
| a8e0 | 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75    6d 62 65 72 20 3d 20 24 61 72 67 75 6d 65 6e 74 | this->argumentNumber.=.$argument | 
| a900 | 4e 75 6d 62 65 72 3b 0a 20 20 20 20 24 74 68 69    73 2d 3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 | Number;.....$this->variationData | 
| a920 | 20 3d 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74    61 3b 0a 0a 20 20 7d 0a 0a 0a 20 20 2f 2a 2a 0a | .=.$variationData;....}...../**. | 
| a940 | 20 20 20 2a 20 43 6f 6e 73 74 72 75 63 74 73 20    20 74 68 65 20 74 65 73 74 20 63 61 73 65 20 61 | ...*.Constructs..the.test.case.a | 
| a960 | 73 20 61 20 61 72 72 61 79 20 6f 66 20 73 74 72    69 6e 67 73 0a 20 20 20 2a 0a 20 20 20 2a 2f 0a | s.a.array.of.strings....*....*/. | 
| a980 | 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f    6e 20 63 6f 6e 73 74 72 75 63 74 54 65 73 74 43 | ..public.function.constructTestC | 
| a9a0 | 61 73 65 28 29 20 7b 0a 20 20 20 20 24 74 68 69    73 2d 3e 63 6f 6e 73 74 72 75 63 74 43 6f 6d 6d | ase().{.....$this->constructComm | 
| a9c0 | 6f 6e 48 65 61 64 65 72 73 28 29 3b 20 0a 20 20    20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e | onHeaders();.............$this-> | 
| a9e0 | 61 64 64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f    28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 | addVariationEcho();..........$th | 
| aa00 | 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 62    6a 65 63 74 43 61 6c 6c 73 28 29 3b 0a 20 20 20 | is->constructSubjectCalls();.... | 
| aa20 | 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f 6e    73 74 72 75 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 | ......$this->constructCommonClos | 
| aa40 | 69 6e 67 28 29 3b 0a 20 20 20 20 0a 20 20 7d 0a    20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f | ing();........}...public.functio | 
| aa60 | 6e 20 74 65 73 74 48 65 61 64 65 72 28 29 20 7b    0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 | n.testHeader().{.....$this->test | 
| aa80 | 43 61 73 65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54    2d 2d 22 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e | Case[].=."--TEST--";.....$this-> | 
| aaa0 | 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 54 65    73 74 20 66 75 6e 63 74 69 6f 6e 20 22 2e 24 74 | testCase[].=."Test.function.".$t | 
| aac0 | 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65    74 4e 61 6d 65 28 29 2e 22 28 29 20 62 79 20 73 | his->subject->getName()."().by.s | 
| aae0 | 75 62 73 74 69 74 75 74 69 6e 67 20 61 72 67 75    6d 65 6e 74 20 22 2e 24 74 68 69 73 2d 3e 61 72 | ubstituting.argument.".$this->ar | 
| ab00 | 67 75 6d 65 6e 74 4e 75 6d 62 65 72 2e 22 20 77    69 74 68 20 22 2e 24 74 68 69 73 2d 3e 76 61 72 | gumentNumber.".with.".$this->var | 
| ab20 | 69 61 74 69 6f 6e 44 61 74 61 2e 22 20 76 61 6c    75 65 73 2e 22 3b 0a 20 20 7d 0a 0a 20 20 0a 20 | iationData.".values.";...}...... | 
| ab40 | 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e    20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 | .public.function.subjectCalls(). | 
| ab60 | 7b 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65    73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 | {......$this->testCase.=.gtCodeS | 
| ab80 | 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27    6c 6f 6f 70 53 74 61 72 74 27 2c 20 24 74 68 69 | nippet::append('loopStart',.$thi | 
| aba0 | 73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 0a 20    20 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 | s->testCase);......//.Construct. | 
| abc0 | 74 68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73    74 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 | the.argument.list.to.pass.to.the | 
| abe0 | 20 66 75 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20    74 65 73 74 65 64 0a 20 20 20 20 24 61 72 67 75 | .function.being.tested.....$argu | 
| ac00 | 6d 65 6e 74 4c 69 73 74 20 3d 20 65 78 70 6c 6f    64 65 28 22 2c 22 2c 20 24 74 68 69 73 2d 3e 73 | mentList.=.explode(",",.$this->s | 
| ac20 | 75 62 6a 65 63 74 2d 3e 67 65 74 4d 61 78 69 6d    75 6d 41 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 | ubject->getMaximumArgumentList() | 
| ac40 | 29 3b 0a 20 20 20 20 24 61 72 67 75 6d 65 6e 74    4c 69 73 74 5b 24 74 68 69 73 2d 3e 61 72 67 75 | );.....$argumentList[$this->argu | 
| ac60 | 6d 65 6e 74 4e 75 6d 62 65 72 20 2d 31 20 5d 20    3d 20 22 5c 24 76 61 72 20 22 3b 0a 20 20 20 20 | mentNumber.-1.].=."\$var.";..... | 
| ac80 | 24 6c 69 73 74 20 3d 20 69 6d 70 6c 6f 64 65 28    22 2c 20 22 2c 20 24 61 72 67 75 6d 65 6e 74 4c | $list.=.implode(",.",.$argumentL | 
| aca0 | 69 73 74 29 3b 0a 0a 0a 20 20 20 20 24 74 68 69    73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 | ist);.......$this->testCase[].=. | 
| acc0 | 22 20 20 76 61 72 5f 64 75 6d 70 28 22 2e 24 74    68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 | "..var_dump(".$this->subject->ge | 
| ace0 | 74 4e 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69    73 74 2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 | tName()."(.".$list.".).);";..... | 
| ad00 | 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20    3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a | $this->testCase.=.gtCodeSnippet: | 
| ad20 | 3a 61 70 70 65 6e 64 28 27 6c 6f 6f 70 43 6c 6f    73 65 27 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 | :append('loopClose',.$this->test | 
| ad40 | 43 61 73 65 29 3b 0a 20 20 7d 0a 20 20 20 0a 7d    0a 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a | Case);...}.....}.?><?php../**..* | 
| ad60 | 20 43 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 61    6c 6c 20 70 6f 73 73 69 62 6c 65 20 76 61 72 69 | .Container.for.all.possible.vari | 
| ad80 | 61 74 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73    20 6f 66 20 66 75 6e 63 74 69 6f 6e 73 0a 20 2a | ation.test.cases.of.functions..* | 
| ada0 | 2f 0a 63 6c 61 73 73 20 67 74 56 61 72 69 61 74    69 6f 6e 43 6f 6e 74 61 69 6e 65 72 46 75 6e 63 | /.class.gtVariationContainerFunc | 
| adc0 | 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 67 74 56    61 72 69 61 74 69 6f 6e 43 6f 6e 74 61 69 6e 65 | tion.extends.gtVariationContaine | 
| ade0 | 72 20 7b 0a 20 20 0a 20 20 70 72 6f 74 65 63 74    65 64 20 24 66 75 6e 63 74 69 6f 6e 3b 0a 20 20 | r.{......protected.$function;... | 
| ae00 | 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f    6e 61 6c 53 65 63 74 69 6f 6e 73 3b 0a 20 20 0a | protected.$optionalSections;.... | 
| ae20 | 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f    6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f | ..public.function.__construct($o | 
| ae40 | 73 6c 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d    3e 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e | sl).{.....$this->optionalSection | 
| ae60 | 73 20 3d 20 24 6f 73 6c 3b 0a 20 20 7d 0a 20 20    0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 73 | s.=.$osl;...}....../**....*.Sets | 
| ae80 | 20 66 75 6e 63 74 69 6f 6e 20 62 65 69 6e 67 20    74 65 73 74 65 64 0a 20 20 20 2a 0a 20 20 20 2a | .function.being.tested....*....* | 
| aea0 | 20 40 70 61 72 61 6d 20 67 74 46 75 6e 63 74 69    6f 6e 20 24 66 75 6e 63 74 69 6f 6e 0a 20 20 20 | .@param.gtFunction.$function.... | 
| aec0 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63    74 69 6f 6e 20 73 65 74 46 75 6e 63 74 69 6f 6e | */...public.function.setFunction | 
| aee0 | 28 67 74 46 75 6e 63 74 69 6f 6e 20 24 66 75 6e    63 74 69 6f 6e 29 20 7b 0a 20 20 20 20 24 74 68 | (gtFunction.$function).{.....$th | 
| af00 | 69 73 2d 3e 66 75 6e 63 74 69 6f 6e 20 3d 20 24    66 75 6e 63 74 69 6f 6e 3b 0a 20 20 7d 0a 20 20 | is->function.=.$function;...}... | 
| af20 | 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 63    6f 6e 73 74 72 75 63 74 73 20 61 6c 6c 20 70 6f | ....../**....*.constructs.all.po | 
| af40 | 73 73 69 62 6c 65 20 76 61 72 69 61 74 69 6f 6e    20 74 65 73 74 63 61 73 65 73 20 69 6e 20 61 72 | ssible.variation.testcases.in.ar | 
| af60 | 72 61 79 20 24 74 68 69 73 2d 3e 76 61 72 69 61    74 69 6f 6e 54 65 73 74 73 0a 20 20 20 2a 0a 20 | ray.$this->variationTests....*.. | 
| af80 | 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75    6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 | ..*/...public.function.construct | 
| afa0 | 41 6c 6c 28 29 20 7b 0a 20 20 20 20 0a 20 20 20    20 20 20 20 20 0a 20 20 20 20 24 6e 75 6d 62 65 | All().{...................$numbe | 
| afc0 | 72 4f 66 41 72 67 75 6d 65 6e 74 73 20 3d 20 63    6f 75 6e 74 28 24 74 68 69 73 2d 3e 66 75 6e 63 | rOfArguments.=.count($this->func | 
| afe0 | 74 69 6f 6e 2d 3e 67 65 74 4d 61 6e 64 61 74 6f    72 79 41 72 67 75 6d 65 6e 74 4e 61 6d 65 73 28 | tion->getMandatoryArgumentNames( | 
| b000 | 29 29 20 2b 20 63 6f 75 6e 74 28 24 74 68 69 73    2d 3e 66 75 6e 63 74 69 6f 6e 2d 3e 67 65 74 4f | )).+.count($this->function->getO | 
| b020 | 70 74 69 6f 6e 61 6c 41 72 67 75 6d 65 6e 74 4e    61 6d 65 73 28 29 29 3b 0a 20 20 20 20 66 6f 72 | ptionalArgumentNames());.....for | 
| b040 | 28 24 69 20 3d 20 31 3b 20 24 69 20 3c 3d 20 24    6e 75 6d 62 65 72 4f 66 41 72 67 75 6d 65 6e 74 | ($i.=.1;.$i.<=.$numberOfArgument | 
| b060 | 73 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20    20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d | s;.$i++).{.......foreach.($this- | 
| b080 | 3e 64 61 74 61 54 79 70 65 73 20 61 73 20 24 64    29 20 7b 0a 20 20 20 20 20 20 20 20 24 74 65 73 | >dataTypes.as.$d).{.........$tes | 
| b0a0 | 74 43 61 73 65 20 3d 20 67 74 56 61 72 69 61 74    69 6f 6e 54 65 73 74 43 61 73 65 3a 3a 67 65 74 | tCase.=.gtVariationTestCase::get | 
| b0c0 | 49 6e 73 74 61 6e 63 65 28 24 74 68 69 73 2d 3e    6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 | Instance($this->optionalSections | 
| b0e0 | 29 3b 0a 20 20 20 20 20 20 20 20 24 74 65 73 74    43 61 73 65 2d 3e 73 65 74 55 70 28 24 74 68 69 | );.........$testCase->setUp($thi | 
| b100 | 73 2d 3e 66 75 6e 63 74 69 6f 6e 2c 20 24 69 2c    20 24 64 29 3b 0a 20 20 20 20 20 20 20 20 24 74 | s->function,.$i,.$d);.........$t | 
| b120 | 65 73 74 43 61 73 65 2d 3e 63 6f 6e 73 74 72 75    63 74 54 65 73 74 43 61 73 65 28 29 3b 0a 20 20 | estCase->constructTestCase();... | 
| b140 | 20 20 20 20 20 20 24 74 68 69 73 2d 3e 76 61 72    69 61 74 69 6f 6e 54 65 73 74 73 5b 5d 20 3d 20 | ......$this->variationTests[].=. | 
| b160 | 24 74 65 73 74 43 61 73 65 2d 3e 74 6f 53 74 72    69 6e 67 28 29 3b 0a 20 20 20 20 20 20 7d 0a 20 | $testCase->toString();.......}.. | 
| b180 | 20 20 20 7d 0a 20 20 7d 20 20 0a 7d 0a 3f 3e 3c    3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 45 72 72 | ...}...}...}.?><?php../**..*.Err | 
| b1a0 | 6f 72 20 74 65 73 74 20 63 61 73 65 20 66 6f 72    20 61 20 50 48 50 20 6d 65 74 68 6f 64 0a 20 2a | or.test.case.for.a.PHP.method..* | 
| b1c0 | 0a 20 2a 2f 0a 63 6c 61 73 73 20 67 74 45 72 72    6f 72 54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 | ..*/.class.gtErrorTestCaseMethod | 
| b1e0 | 20 65 78 74 65 6e 64 73 20 67 74 45 72 72 6f 72    54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 75 | .extends.gtErrorTestCase.{....pu | 
| b200 | 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f    63 6f 6e 73 74 72 75 63 74 28 24 6f 70 74 29 20 | blic.function.__construct($opt). | 
| b220 | 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 6f 70 74    69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 20 3d 20 | {.....$this->optionalSections.=. | 
| b240 | 24 6f 70 74 3b 0a 20 20 7d 0a 20 20 70 72 69 76    61 74 65 20 24 6d 65 74 68 6f 64 3b 0a 0a 20 20 | $opt;...}...private.$method;.... | 
| b260 | 2f 2a 2a 0a 20 20 20 2a 20 53 65 74 20 74 68 65    20 6d 65 74 68 6f 64 20 6e 61 6d 65 0a 20 20 20 | /**....*.Set.the.method.name.... | 
| b280 | 2a 0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74    72 69 6e 67 20 24 6d 65 74 68 6f 64 0a 20 20 20 | *....*.@param.string.$method.... | 
| b2a0 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63    74 69 6f 6e 20 73 65 74 4d 65 74 68 6f 64 28 24 | */...public.function.setMethod($ | 
| b2c0 | 6d 65 74 68 6f 64 29 20 7b 0a 20 20 20 20 24 74    68 69 73 2d 3e 73 75 62 6a 65 63 74 20 3d 20 24 | method).{.....$this->subject.=.$ | 
| b2e0 | 6d 65 74 68 6f 64 3b 0a 20 20 7d 0a 0a 0a 20 20    2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73 74 72 75 | method;...}...../**....*.Constru | 
| b300 | 63 74 20 74 68 65 20 74 65 73 74 20 63 61 73 65    20 61 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 | ct.the.test.case.as.an.array.of. | 
| b320 | 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a 20 20 20    2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 | strings....*....*/...public.func | 
| b340 | 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 54 65    73 74 43 61 73 65 28 29 20 7b 0a 20 20 20 20 24 | tion.constructTestCase().{.....$ | 
| b360 | 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 43    6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28 29 3b 0a | this->constructCommonHeaders();. | 
| b380 | 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e    61 64 64 45 72 72 6f 72 45 63 68 6f 28 29 3b 0a | .........$this->addErrorEcho();. | 
| b3a0 | 20 20 20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e    63 6f 6e 73 74 72 75 63 74 6f 72 41 72 67 49 6e | .........$this->constructorArgIn | 
| b3c0 | 69 74 28 29 3b 0a 20 20 20 20 24 74 68 69 73 2d    3e 63 6f 6e 73 74 72 75 63 74 6f 72 43 72 65 61 | it();.....$this->constructorCrea | 
| b3e0 | 74 65 49 6e 73 74 61 6e 63 65 28 29 3b 0a 20 20    20 20 0a 20 20 20 20 24 74 68 69 73 2d 3e 63 6f | teInstance();..........$this->co | 
| b400 | 6e 73 74 72 75 63 74 53 75 62 6a 65 63 74 43 61    6c 6c 73 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 | nstructSubjectCalls();.......... | 
| b420 | 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74    43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28 29 3b | $this->constructCommonClosing(); | 
| b440 | 0a 20 20 7d 0a 20 0a 20 20 70 75 62 6c 69 63 20    66 75 6e 63 74 69 6f 6e 20 74 65 73 74 48 65 61 | ...}.....public.function.testHea | 
| b460 | 64 65 72 28 29 20 7b 0a 20 20 20 20 24 74 68 69    73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 | der().{.....$this->testCase[].=. | 
| b480 | 22 2d 2d 54 45 53 54 2d 2d 22 3b 0a 20 20 20 20    24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 5b | "--TEST--";.....$this->testCase[ | 
| b4a0 | 5d 20 3d 20 22 54 65 73 74 20 63 6c 61 73 73 20    22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 | ].=."Test.class.".$this->subject | 
| b4c0 | 2d 3e 67 65 74 43 6c 61 73 73 4e 61 6d 65 28 29    2e 22 20 6d 65 74 68 6f 64 20 22 2e 24 74 68 69 | ->getClassName().".method.".$thi | 
| b4e0 | 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e    61 6d 65 28 29 2e 22 28 29 20 62 79 20 63 61 6c | s->subject->getName()."().by.cal | 
| b500 | 6c 69 6e 67 20 69 74 20 6d 6f 72 65 20 74 68 61    6e 20 6f 72 20 6c 65 73 73 20 74 68 61 6e 20 69 | ling.it.more.than.or.less.than.i | 
| b520 | 74 73 20 65 78 70 65 63 74 65 64 20 61 72 67 75    6d 65 6e 74 73 22 3b 0a 20 20 7d 0a 20 0a 20 20 | ts.expected.arguments";...}..... | 
| b540 | 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20    73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29 20 7b | public.function.subjectCalls().{ | 
| b560 | 0a 0a 20 20 20 20 2f 2f 20 43 6f 6e 73 74 72 75    63 74 20 74 68 65 20 61 72 67 75 6d 65 6e 74 20 | ......//.Construct.the.argument. | 
| b580 | 6c 69 73 74 20 74 6f 20 70 61 73 73 20 74 6f 20    74 68 65 20 6d 65 74 68 6f 64 20 62 65 69 6e 67 | list.to.pass.to.the.method.being | 
| b5a0 | 20 74 65 73 74 65 64 0a 20 20 20 20 24 6c 69 73    74 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 6a 65 | .tested.....$list.=.$this->subje | 
| b5c0 | 63 74 2d 3e 67 65 74 45 78 74 72 61 41 72 67 75    6d 65 6e 74 4c 69 73 74 28 29 3b 0a 20 20 20 20 | ct->getExtraArgumentList();..... | 
| b5e0 | 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 20    3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 3a | $this->testCase.=.gtCodeSnippet: | 
| b600 | 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e 65    73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 74 | :appendBlankLines(1,.$this->test | 
| b620 | 43 61 73 65 20 29 3b 0a 20 20 20 20 24 74 68 69    73 2d 3e 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 | Case.);.....$this->testCase[].=. | 
| b640 | 22 76 61 72 5f 64 75 6d 70 28 22 2e 24 74 68 69    73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 4e | "var_dump(".$this->subject->getN | 
| b660 | 61 6d 65 28 29 2e 22 28 20 22 2e 24 6c 69 73 74    2e 22 20 29 20 29 3b 22 3b 0a 20 20 20 20 0a 20 | ame()."(.".$list.".).);";....... | 
| b680 | 20 20 20 24 6c 69 73 74 20 3d 20 24 74 68 69 73    2d 3e 73 75 62 6a 65 63 74 2d 3e 67 65 74 53 68 | ...$list.=.$this->subject->getSh | 
| b6a0 | 6f 72 74 41 72 67 75 6d 65 6e 74 4c 69 73 74 28    29 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 | ortArgumentList();.....$this->te | 
| b6c0 | 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53    6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c | stCase.=.gtCodeSnippet::appendBl | 
| b6e0 | 61 6e 6b 4c 69 6e 65 73 28 31 2c 20 24 74 68 69    73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 | ankLines(1,.$this->testCase.);.. | 
| b700 | 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61    73 65 5b 5d 20 3d 20 22 76 61 72 5f 64 75 6d 70 | ...$this->testCase[].=."var_dump | 
| b720 | 28 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63    74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 20 | (".$this->subject->getName()."(. | 
| b740 | 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22 3b    0a 20 20 0a 20 20 7d 0a 7d 0a 3f 3e 3c 3f 70 68 | ".$list.".).);";......}.}.?><?ph | 
| b760 | 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20    66 6f 72 20 62 61 73 69 63 20 74 65 73 74 20 63 | p../**..*.Class.for.basic.test.c | 
| b780 | 61 73 65 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e    0a 20 2a 2f 0a 0a 61 62 73 74 72 61 63 74 20 63 | ase.construction..*/..abstract.c | 
| b7a0 | 6c 61 73 73 20 67 74 42 61 73 69 63 54 65 73 74    43 61 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 | lass.gtBasicTestCase.extends.gtT | 
| b7c0 | 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 70 72 6f    74 65 63 74 65 64 20 24 73 75 62 6a 65 63 74 3b | estCase.{....protected.$subject; | 
| b7e0 | 0a 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65    74 75 72 6e 73 20 61 6e 20 69 6e 73 74 61 6e 63 | ...../**....*.Returns.an.instanc | 
| b800 | 65 20 6f 66 20 61 20 74 65 73 74 20 63 61 73 65    20 66 6f 72 20 61 20 6d 65 74 68 6f 64 20 6f 72 | e.of.a.test.case.for.a.method.or | 
| b820 | 20 61 20 66 75 6e 63 74 69 6f 6e 0a 20 20 20 2a    0a 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 | .a.function....*....*.@param.str | 
| b840 | 69 6e 67 20 24 74 79 70 65 0a 20 20 20 2a 20 40    72 65 74 75 72 6e 20 74 65 73 74 20 63 61 73 65 | ing.$type....*.@return.test.case | 
| b860 | 20 6f 62 6a 65 63 74 0a 20 20 20 2a 2f 0a 20 20    70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 | .object....*/...public.static.fu | 
| b880 | 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6e    63 65 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 | nction.getInstance($optionalSect | 
| b8a0 | 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d 20 27 66    75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 | ions,.$type.=.'function').{..... | 
| b8c0 | 69 66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e    63 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 20 20 | if($type.==.'function').{....... | 
| b8e0 | 72 65 74 75 72 6e 20 6e 65 77 20 67 74 42 61 73    69 63 54 65 73 74 43 61 73 65 46 75 6e 63 74 69 | return.new.gtBasicTestCaseFuncti | 
| b900 | 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74    69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 | on($optionalSections);.....}.... | 
| b920 | 20 69 66 28 24 74 79 70 65 20 3d 3d 27 6d 65 74    68 6f 64 27 29 20 7b 0a 20 20 20 20 20 20 72 65 | .if($type.=='method').{.......re | 
| b940 | 74 75 72 6e 20 6e 65 77 20 67 74 42 61 73 69 63    54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 28 24 | turn.new.gtBasicTestCaseMethod($ | 
| b960 | 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73    29 3b 0a 20 20 20 20 7d 0a 20 20 7d 0a 20 20 0a | optionalSections);.....}...}.... | 
| b980 | 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f    6e 20 63 6f 6e 73 74 72 75 63 74 53 75 62 6a 65 | ..public.function.constructSubje | 
| b9a0 | 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 20 20    20 20 20 20 24 74 68 69 73 2d 3e 61 72 67 49 6e | ctCalls().{.........$this->argIn | 
| b9c0 | 69 74 28 29 3b 0a 20 20 20 20 20 20 20 20 24 74    68 69 73 2d 3e 73 75 62 6a 65 63 74 43 61 6c 6c | it();.........$this->subjectCall | 
| b9e0 | 73 28 29 3b 0a 20 20 7d 0a 20 20 0a 20 20 70 75    62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 | s();...}......public.function.ad | 
| ba00 | 64 42 61 73 69 63 45 63 68 6f 28 29 20 7b 0a 20    20 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 | dBasicEcho().{.....$this->testCa | 
| ba20 | 73 65 5b 5d 20 3d 20 22 65 63 68 6f 20 5c 22 2a    2a 2a 20 54 65 73 74 20 62 79 20 63 61 6c 6c 69 | se[].=."echo.\"***.Test.by.calli | 
| ba40 | 6e 67 20 6d 65 74 68 6f 64 20 6f 72 20 66 75 6e    63 74 69 6f 6e 20 77 69 74 68 20 69 74 73 20 65 | ng.method.or.function.with.its.e | 
| ba60 | 78 70 65 63 74 65 64 20 61 72 67 75 6d 65 6e 74    73 20 2a 2a 2a 5c 5c 6e 5c 22 22 3b 0a 20 20 20 | xpected.arguments.***\\n\"";.... | 
| ba80 | 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65    20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74 | .$this->testCase.=.gtCodeSnippet | 
| baa0 | 3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e    65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73 | ::appendBlankLines(1,.$this->tes | 
| bac0 | 74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 7d 0a 3f    3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20 43 | tCase.);...}.}.?><?php../**..*.C | 
| bae0 | 6f 6e 74 61 69 6e 65 72 20 66 6f 72 20 61 6c 6c    20 70 6f 73 73 69 62 6c 65 20 76 61 72 69 61 74 | ontainer.for.all.possible.variat | 
| bb00 | 69 6f 6e 20 74 65 73 74 20 63 61 73 65 73 0a 20    2a 2f 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 | ion.test.cases..*/.abstract.clas | 
| bb20 | 73 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f 6e    74 61 69 6e 65 72 20 7b 0a 20 20 0a 20 20 70 72 | s.gtVariationContainer.{......pr | 
| bb40 | 6f 74 65 63 74 65 64 20 24 76 61 72 69 61 74 69    6f 6e 54 65 73 74 73 3b 0a 20 20 0a 20 20 70 72 | otected.$variationTests;......pr | 
| bb60 | 6f 74 65 63 74 65 64 20 24 64 61 74 61 54 79 70    65 73 20 3d 20 61 72 72 61 79 20 28 0a 20 20 20 | otected.$dataTypes.=.array.(.... | 
| bb80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 27 61 72 72 61 79 27 2c 0a 20 | ......................'array',.. | 
| bba0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 27 62 6f 6f 6c 65 61 6e | ........................'boolean | 
| bbc0 | 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 20 20 20 20 20 20 20 20 27 65 6d 70 | ',..........................'emp | 
| bbe0 | 74 79 55 6e 73 65 74 55 6e 64 65 66 4e 75 6c 6c    27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 | tyUnsetUndefNull',.............. | 
| bc00 | 20 20 20 20 20 20 20 20 20 20 20 20 27 66 6c 6f    61 74 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | ............'float',............ | 
| bc20 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69    6e 74 27 2c 0a 20 20 20 20 20 20 20 20 20 20 20 | ..............'int',............ | 
| bc40 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6f    62 6a 65 63 74 27 2c 0a 20 20 20 20 20 20 20 20 | ..............'object',......... | 
| bc60 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 27 73 74 72 69 6e 67 27 2c 0a 20 20 20 20 20 | .................'string',...... | 
| bc80 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 20 20 29 3b 0a 20 20 0a 20 20 0a 20 20 20 | ....................);.......... | 
| bca0 | 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20    20 20 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 52 65 | ...................../**....*.Re | 
| bcc0 | 74 75 72 6e 20 61 6e 20 69 6e 73 74 61 6e 63 65    20 6f 66 20 61 20 63 6f 6e 74 61 69 6e 65 72 73 | turn.an.instance.of.a.containers | 
| bce0 | 20 66 6f 72 20 65 69 74 68 65 72 20 66 75 6e 63    74 69 6f 6e 20 6f 72 20 6d 65 74 68 6f 64 20 74 | .for.either.function.or.method.t | 
| bd00 | 65 73 74 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40    70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79 | ests....*....*.@param.string.$ty | 
| bd20 | 70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20    76 61 72 69 61 74 69 6f 6e 20 74 65 73 74 20 63 | pe....*.@return.variation.test.c | 
| bd40 | 6f 6e 74 61 69 6e 65 72 0a 20 20 20 2a 2f 0a 20    20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 | ontainer....*/....public.static. | 
| bd60 | 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74    61 6e 63 65 20 28 24 6f 70 74 69 6f 6e 61 6c 53 | function.getInstance.($optionalS | 
| bd80 | 65 63 74 69 6f 6e 73 2c 20 24 74 79 70 65 20 3d    20 27 66 75 6e 63 74 69 6f 6e 27 29 20 7b 0a 20 | ections,.$type.=.'function').{.. | 
| bda0 | 20 20 20 0a 20 20 20 20 69 66 28 24 74 79 70 65    20 3d 3d 20 27 66 75 6e 63 74 69 6f 6e 27 29 20 | ........if($type.==.'function'). | 
| bdc0 | 7b 0a 20 20 20 20 20 20 72 65 74 75 72 6e 20 6e    65 77 20 67 74 56 61 72 69 61 74 69 6f 6e 43 6f | {.......return.new.gtVariationCo | 
| bde0 | 6e 74 61 69 6e 65 72 46 75 6e 63 74 69 6f 6e 28    24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f 6e | ntainerFunction($optionalSection | 
| be00 | 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 69 66    28 24 74 79 70 65 20 3d 3d 27 6d 65 74 68 6f 64 | s);.....}.....if($type.=='method | 
| be20 | 27 29 20 7b 0a 20 20 20 20 20 20 72 65 74 75 72    6e 20 6e 65 77 20 67 74 56 61 72 69 61 74 69 6f | ').{.......return.new.gtVariatio | 
| be40 | 6e 43 6f 6e 74 61 69 6e 65 72 4d 65 74 68 6f 64    28 24 6f 70 74 69 6f 6e 61 6c 53 65 63 74 69 6f | nContainerMethod($optionalSectio | 
| be60 | 6e 73 29 3b 0a 20 20 20 20 7d 0a 20 20 20 20 0a    20 20 7d 0a 20 20 0a 20 20 0a 20 20 70 75 62 6c | ns);.....}........}.........publ | 
| be80 | 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73    74 72 75 63 74 41 6c 6c 28 29 20 7b 0a 20 20 7d | ic.function.constructAll().{...} | 
| bea0 | 0a 20 20 0a 20 20 0a 20 20 2f 2a 2a 0a 20 20 20    2a 20 52 65 74 75 72 6e 73 20 61 6c 6c 20 76 61 | ........./**....*.Returns.all.va | 
| bec0 | 72 61 69 74 69 6f 6e 20 74 65 73 74 73 20 61 73    20 61 6e 20 61 72 72 61 79 20 6f 66 20 61 72 72 | raition.tests.as.an.array.of.arr | 
| bee0 | 61 79 73 0a 20 20 20 2a 0a 20 20 20 2a 20 40 72    65 74 75 72 6e 20 73 74 72 69 6e 67 0a 20 20 20 | ays....*....*.@return.string.... | 
| bf00 | 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63    74 69 6f 6e 20 67 65 74 56 61 72 69 61 74 69 6f | */...public.function.getVariatio | 
| bf20 | 6e 54 65 73 74 73 28 29 20 7b 0a 20 20 20 20 72    65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 72 | nTests().{.....return.$this->var | 
| bf40 | 69 61 74 69 6f 6e 54 65 73 74 73 3b 0a 20 20 7d    0a 20 20 0a 7d 0a 3f 3e 0a 3c 3f 70 68 70 0a 0a | iationTests;...}....}.?>.<?php.. | 
| bf60 | 2f 2a 2a 0a 20 2a 20 43 6c 61 73 73 20 66 6f 72    20 65 78 74 65 6e 64 65 64 20 76 61 72 69 61 74 | /**..*.Class.for.extended.variat | 
| bf80 | 69 6f 6e 73 2e 20 4e 65 65 64 73 20 27 64 61 74    61 20 74 79 70 65 27 20 61 6e 64 20 61 72 67 75 | ions..Needs.'data.type'.and.argu | 
| bfa0 | 6d 65 6e 74 20 74 6f 20 76 61 72 79 0a 20 2a 2f    0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 | ment.to.vary..*/..abstract.class | 
| bfc0 | 20 67 74 56 61 72 69 61 74 69 6f 6e 54 65 73 74    43 61 73 65 20 65 78 74 65 6e 64 73 20 67 74 54 | .gtVariationTestCase.extends.gtT | 
| bfe0 | 65 73 74 43 61 73 65 20 7b 0a 0a 0a 20 20 2f 2a    2a 0a 20 20 20 2a 20 52 65 74 75 72 6e 73 20 61 | estCase.{...../**....*.Returns.a | 
| c000 | 6e 20 69 6e 73 74 61 6e 63 65 20 6f 66 20 61 20    74 65 73 74 20 63 61 73 65 20 66 6f 72 20 61 20 | n.instance.of.a.test.case.for.a. | 
| c020 | 6d 65 74 68 6f 64 20 6f 72 20 61 20 66 75 6e 63    74 69 6f 6e 0a 20 20 20 2a 0a 20 20 20 2a 20 40 | method.or.a.function....*....*.@ | 
| c040 | 70 61 72 61 6d 20 73 74 72 69 6e 67 20 24 74 79    70 65 0a 20 20 20 2a 20 40 72 65 74 75 72 6e 20 | param.string.$type....*.@return. | 
| c060 | 74 65 73 74 20 63 61 73 65 20 6f 62 6a 65 63 74    0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 | test.case.object....*/...public. | 
| c080 | 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20    67 65 74 49 6e 73 74 61 6e 63 65 28 24 6f 70 74 | static.function.getInstance($opt | 
| c0a0 | 69 6f 6e 61 6c 53 65 63 74 69 6f 6e 73 2c 20 24    74 79 70 65 20 3d 20 27 66 75 6e 63 74 69 6f 6e | ionalSections,.$type.=.'function | 
| c0c0 | 27 29 20 7b 0a 20 20 20 20 20 0a 20 20 20 20 69    66 28 24 74 79 70 65 20 3d 3d 20 27 66 75 6e 63 | ').{...........if($type.==.'func | 
| c0e0 | 74 69 6f 6e 27 29 20 7b 0a 20 20 20 20 20 20 72    65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 72 69 | tion').{.......return.new.gtVari | 
| c100 | 61 74 69 6f 6e 54 65 73 74 43 61 73 65 46 75 6e    63 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 61 6c 53 | ationTestCaseFunction($optionalS | 
| c120 | 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a    20 20 20 20 69 66 28 24 74 79 70 65 20 3d 3d 27 | ections);.....}.....if($type.==' | 
| c140 | 6d 65 74 68 6f 64 27 29 20 7b 0a 20 20 20 20 20    20 72 65 74 75 72 6e 20 6e 65 77 20 67 74 56 61 | method').{.......return.new.gtVa | 
| c160 | 72 69 61 74 69 6f 6e 54 65 73 74 43 61 73 65 4d    65 74 68 6f 64 28 24 6f 70 74 69 6f 6e 61 6c 53 | riationTestCaseMethod($optionalS | 
| c180 | 65 63 74 69 6f 6e 73 29 3b 0a 20 20 20 20 7d 0a    0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66 | ections);.....}....}....public.f | 
| c1a0 | 75 6e 63 74 69 6f 6e 20 61 72 67 49 6e 69 74 56    61 72 69 61 74 69 6f 6e 28 29 20 7b 0a 20 20 20 | unction.argInitVariation().{.... | 
| c1c0 | 20 24 73 74 61 74 65 6d 65 6e 74 73 20 3d 20 24    74 68 69 73 2d 3e 73 75 62 6a 65 63 74 2d 3e 67 | .$statements.=.$this->subject->g | 
| c1e0 | 65 74 49 6e 69 74 69 61 6c 69 73 61 74 69 6f 6e    53 74 61 74 65 6d 65 6e 74 73 28 29 3b 0a 20 20 | etInitialisationStatements();... | 
| c200 | 20 20 66 6f 72 28 24 69 3d 30 3b 20 24 69 3c 63    6f 75 6e 74 28 24 73 74 61 74 65 6d 65 6e 74 73 | ..for($i=0;.$i<count($statements | 
| c220 | 29 3b 20 24 69 2b 2b 29 20 7b 0a 20 20 20 20 20    20 69 66 28 24 69 20 21 3d 20 28 20 24 74 68 69 | );.$i++).{.......if($i.!=.(.$thi | 
| c240 | 73 2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65    72 20 2d 31 29 20 29 20 7b 0a 20 20 20 20 20 20 | s->argumentNumber.-1).).{....... | 
| c260 | 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73    65 5b 5d 20 3d 20 24 73 74 61 74 65 6d 65 6e 74 | ..$this->testCase[].=.$statement | 
| c280 | 73 5b 24 69 5d 3b 0a 20 20 20 20 20 20 7d 0a 20    20 20 20 7d 0a 20 20 20 20 24 74 68 69 73 2d 3e | s[$i];.......}.....}.....$this-> | 
| c2a0 | 74 65 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64    65 53 6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 | testCase.=.gtCodeSnippet::append | 
| c2c0 | 42 6c 61 6e 6b 4c 69 6e 65 73 28 32 2c 20 24 74    68 69 73 2d 3e 74 65 73 74 43 61 73 65 20 29 3b | BlankLines(2,.$this->testCase.); | 
| c2e0 | 0a 20 20 7d 0a 0a 20 20 70 75 62 6c 69 63 20 66    75 6e 63 74 69 6f 6e 20 61 64 64 56 61 72 69 61 | ...}....public.function.addVaria | 
| c300 | 74 69 6f 6e 43 6f 64 65 28 29 20 7b 0a 20 20 20    20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 | tionCode().{.....$this->testCase | 
| c320 | 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74    3a 3a 61 70 70 65 6e 64 28 24 74 68 69 73 2d 3e | .=.gtCodeSnippet::append($this-> | 
| c340 | 76 61 72 69 61 74 69 6f 6e 44 61 74 61 2c 20 24    74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 29 3b | variationData,.$this->testCase); | 
| c360 | 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 74    43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e 69 | .....$this->testCase.=.gtCodeSni | 
| c380 | 70 70 65 74 3a 3a 61 70 70 65 6e 64 42 6c 61 6e    6b 4c 69 6e 65 73 28 32 2c 20 24 74 68 69 73 2d | ppet::appendBlankLines(2,.$this- | 
| c3a0 | 3e 74 65 73 74 43 61 73 65 20 29 3b 0a 20 20 7d    0a 0a 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 | >testCase.);...}....public.funct | 
| c3c0 | 69 6f 6e 20 63 6f 6e 73 74 72 75 63 74 53 75 62    6a 65 63 74 43 61 6c 6c 73 28 29 20 7b 0a 20 20 | ion.constructSubjectCalls().{... | 
| c3e0 | 20 20 24 74 68 69 73 2d 3e 61 72 67 49 6e 69 74    56 61 72 69 61 74 69 6f 6e 28 29 3b 0a 20 20 20 | ..$this->argInitVariation();.... | 
| c400 | 20 24 74 68 69 73 2d 3e 61 64 64 56 61 72 69 61    74 69 6f 6e 43 6f 64 65 28 29 3b 0a 20 20 20 20 | .$this->addVariationCode();..... | 
| c420 | 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 43 61    6c 6c 73 28 29 3b 0a 20 20 7d 0a 0a 20 20 70 75 | $this->subjectCalls();...}....pu | 
| c440 | 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64    64 56 61 72 69 61 74 69 6f 6e 45 63 68 6f 28 29 | blic.function.addVariationEcho() | 
| c460 | 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65    73 74 43 61 73 65 5b 5d 20 3d 20 22 65 63 68 6f | .{.....$this->testCase[].=."echo | 
| c480 | 20 5c 22 2a 2a 2a 20 54 65 73 74 20 73 75 62 73    74 69 74 75 74 69 6e 67 20 61 72 67 75 6d 65 6e | .\"***.Test.substituting.argumen | 
| c4a0 | 74 20 22 2e 24 74 68 69 73 2d 3e 61 72 67 75 6d    65 6e 74 4e 75 6d 62 65 72 2e 22 20 77 69 74 68 | t.".$this->argumentNumber.".with | 
| c4c0 | 20 22 2e 24 74 68 69 73 2d 3e 76 61 72 69 61 74    69 6f 6e 44 61 74 61 2e 22 20 76 61 6c 75 65 73 | .".$this->variationData.".values | 
| c4e0 | 20 2a 2a 2a 5c 5c 6e 5c 22 3b 22 3b 0a 20 20 20    20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73 65 | .***\\n\";";.....$this->testCase | 
| c500 | 20 3d 20 67 74 43 6f 64 65 53 6e 69 70 70 65 74    3a 3a 61 70 70 65 6e 64 42 6c 61 6e 6b 4c 69 6e | .=.gtCodeSnippet::appendBlankLin | 
| c520 | 65 73 28 31 2c 20 24 74 68 69 73 2d 3e 74 65 73    74 43 61 73 65 20 29 3b 0a 20 20 7d 0a 0a 7d 0a | es(1,.$this->testCase.);...}..}. | 
| c540 | 3f 3e 3c 3f 70 68 70 0a 0a 2f 2a 2a 0a 20 2a 20    43 6c 61 73 73 20 66 6f 72 20 76 61 72 69 61 74 | ?><?php../**..*.Class.for.variat | 
| c560 | 69 6f 6e 20 74 65 73 74 73 20 66 6f 72 20 61 20    50 48 50 20 6d 65 74 68 6f 64 0a 20 2a 2f 0a 63 | ion.tests.for.a.PHP.method..*/.c | 
| c580 | 6c 61 73 73 20 67 74 56 61 72 69 61 74 69 6f 6e    54 65 73 74 43 61 73 65 4d 65 74 68 6f 64 20 65 | lass.gtVariationTestCaseMethod.e | 
| c5a0 | 78 74 65 6e 64 73 20 67 74 56 61 72 69 61 74 69    6f 6e 54 65 73 74 43 61 73 65 20 7b 0a 0a 20 20 | xtends.gtVariationTestCase.{.... | 
| c5c0 | 70 72 6f 74 65 63 74 65 64 20 24 73 75 62 6a 65    63 74 3b 0a 20 20 70 72 6f 74 65 63 74 65 64 20 | protected.$subject;...protected. | 
| c5e0 | 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b    0a 20 20 70 72 6f 74 65 63 74 65 64 20 24 76 61 | $argumentNumber;...protected.$va | 
| c600 | 72 69 61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 70    72 6f 74 65 63 74 65 64 20 24 74 65 73 74 43 61 | riationData;...protected.$testCa | 
| c620 | 73 65 3b 0a 0a 20 20 70 75 62 6c 69 63 20 66 75    6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 | se;....public.function.__constru | 
| c640 | 63 74 28 24 6f 70 74 29 20 7b 0a 20 20 20 20 24    74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 53 65 | ct($opt).{.....$this->optionalSe | 
| c660 | 63 74 69 6f 6e 73 20 3d 20 24 6f 70 74 3b 0a 20    20 7d 0a 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 53 | ctions.=.$opt;...}..../**....*.S | 
| c680 | 65 74 20 64 61 74 61 20 6e 65 65 64 65 20 74 6f    20 63 6f 6e 73 74 72 75 63 74 20 76 61 72 69 61 | et.data.neede.to.construct.varia | 
| c6a0 | 74 69 6f 6e 20 74 65 73 74 73 0a 20 20 20 2a 0a    20 20 20 2a 20 40 70 61 72 61 6d 20 67 74 4d 65 | tion.tests....*....*.@param.gtMe | 
| c6c0 | 74 68 6f 64 20 24 6d 65 74 68 6f 64 0a 20 20 20    2a 20 40 70 61 72 61 6d 20 73 74 72 69 6e 67 20 | thod.$method....*.@param.string. | 
| c6e0 | 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 0a    20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 | $argumentNumber....*.@param.stri | 
| c700 | 6e 67 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74    61 0a 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 | ng.$variationData....*/...public | 
| c720 | 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 70 28    67 74 4d 65 74 68 6f 64 20 24 6d 65 74 68 6f 64 | .function.setUp(gtMethod.$method | 
| c740 | 2c 20 24 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65    72 2c 20 24 76 61 72 69 61 74 69 6f 6e 44 61 74 | ,.$argumentNumber,.$variationDat | 
| c760 | 61 29 20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e    73 75 62 6a 65 63 74 20 3d 20 24 6d 65 74 68 6f | a).{.....$this->subject.=.$metho | 
| c780 | 64 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 61 72    67 75 6d 65 6e 74 4e 75 6d 62 65 72 20 3d 20 24 | d;.....$this->argumentNumber.=.$ | 
| c7a0 | 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 3b 0a    20 20 20 20 24 74 68 69 73 2d 3e 76 61 72 69 61 | argumentNumber;.....$this->varia | 
| c7c0 | 74 69 6f 6e 44 61 74 61 20 3d 20 24 76 61 72 69    61 74 69 6f 6e 44 61 74 61 3b 0a 20 20 7d 0a 0a | tionData.=.$variationData;...}.. | 
| c7e0 | 0a 20 20 2f 2a 2a 0a 20 20 20 2a 20 43 6f 6e 73    74 72 75 63 74 73 20 74 68 65 20 74 65 73 74 20 | .../**....*.Constructs.the.test. | 
| c800 | 63 61 73 65 20 61 73 20 61 20 61 72 72 61 79 20    6f 66 20 73 74 72 69 6e 67 73 0a 20 20 20 2a 0a | case.as.a.array.of.strings....*. | 
| c820 | 20 20 20 2a 2f 0a 20 20 70 75 62 6c 69 63 20 66    75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 75 63 | ...*/...public.function.construc | 
| c840 | 74 54 65 73 74 43 61 73 65 28 29 20 7b 0a 20 20    20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 | tTestCase().{.....$this->constru | 
| c860 | 63 74 43 6f 6d 6d 6f 6e 48 65 61 64 65 72 73 28    29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74 68 69 | ctCommonHeaders();..........$thi | 
| c880 | 73 2d 3e 61 64 64 56 61 72 69 61 74 69 6f 6e 45    63 68 6f 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 | s->addVariationEcho();.......... | 
| c8a0 | 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74    6f 72 41 72 67 49 6e 69 74 28 29 3b 0a 20 20 20 | $this->constructorArgInit();.... | 
| c8c0 | 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 63    74 6f 72 43 72 65 61 74 65 49 6e 73 74 61 6e 63 | .$this->constructorCreateInstanc | 
| c8e0 | 65 28 29 3b 0a 20 20 20 20 0a 20 20 20 20 24 74    68 69 73 2d 3e 63 6f 6e 73 74 72 75 63 74 53 75 | e();..........$this->constructSu | 
| c900 | 62 6a 65 63 74 63 61 6c 6c 73 28 29 3b 0a 20 20    20 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 75 | bjectcalls();.....$this->constru | 
| c920 | 63 74 43 6f 6d 6d 6f 6e 43 6c 6f 73 69 6e 67 28    29 3b 0a 20 20 20 20 0a 20 20 7d 0a 0a 20 20 70 | ctCommonClosing();........}....p | 
| c940 | 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74    65 73 74 48 65 61 64 65 72 28 29 20 7b 0a 20 20 | ublic.function.testHeader().{... | 
| c960 | 20 20 24 74 68 69 73 2d 3e 74 65 73 74 43 61 73    65 5b 5d 20 3d 20 22 2d 2d 54 45 53 54 2d 2d 22 | ..$this->testCase[].=."--TEST--" | 
| c980 | 3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73    74 43 61 73 65 5b 5d 20 3d 20 22 54 65 73 74 20 | ;.....$this->testCase[].=."Test. | 
| c9a0 | 63 6c 61 73 73 20 22 2e 24 74 68 69 73 2d 3e 73    75 62 6a 65 63 74 2d 3e 67 65 74 43 6c 61 73 73 | class.".$this->subject->getClass | 
| c9c0 | 4e 61 6d 65 28 29 2e 22 20 6d 65 74 68 6f 64 20    22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65 63 74 | Name().".method.".$this->subject | 
| c9e0 | 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 29 20    62 79 20 73 75 62 73 74 69 74 75 74 69 6e 67 20 | ->getName()."().by.substituting. | 
| ca00 | 61 72 67 75 6d 65 6e 74 20 22 2e 24 74 68 69 73    2d 3e 61 72 67 75 6d 65 6e 74 4e 75 6d 62 65 72 | argument.".$this->argumentNumber | 
| ca20 | 2e 22 20 77 69 74 68 20 22 2e 24 74 68 69 73 2d    3e 76 61 72 69 61 74 69 6f 6e 44 61 74 61 2e 22 | .".with.".$this->variationData." | 
| ca40 | 20 76 61 6c 75 65 73 2e 22 3b 0a 20 20 7d 0a 0a    20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f | .values.";...}....public.functio | 
| ca60 | 6e 20 73 75 62 6a 65 63 74 43 61 6c 6c 73 28 29    20 7b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 | n.subjectCalls().{.....$this->te | 
| ca80 | 73 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53    6e 69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 | stCase.=.gtCodeSnippet::append(' | 
| caa0 | 6c 6f 6f 70 53 74 61 72 74 27 2c 20 24 74 68 69    73 2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 20 20 | loopStart',.$this->testCase);... | 
| cac0 | 20 20 2f 2f 20 43 6f 6e 73 74 72 75 63 74 20 74    68 65 20 61 72 67 75 6d 65 6e 74 20 6c 69 73 74 | ..//.Construct.the.argument.list | 
| cae0 | 20 74 6f 20 70 61 73 73 20 74 6f 20 74 68 65 20    6d 65 74 68 6f 64 20 62 65 69 6e 67 20 74 65 73 | .to.pass.to.the.method.being.tes | 
| cb00 | 74 65 64 0a 20 20 20 20 24 61 72 67 75 6d 65 6e    74 4c 69 73 74 20 3d 20 65 78 70 6c 6f 64 65 28 | ted.....$argumentList.=.explode( | 
| cb20 | 22 2c 22 2c 20 24 74 68 69 73 2d 3e 73 75 62 6a    65 63 74 2d 3e 67 65 74 4d 61 78 69 6d 75 6d 41 | ",",.$this->subject->getMaximumA | 
| cb40 | 72 67 75 6d 65 6e 74 4c 69 73 74 28 29 29 3b 0a    20 20 20 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 | rgumentList());.....$argumentLis | 
| cb60 | 74 5b 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e    74 4e 75 6d 62 65 72 20 2d 31 20 5d 20 3d 20 22 | t[$this->argumentNumber.-1.].=." | 
| cb80 | 5c 24 76 61 72 20 22 3b 0a 20 20 20 20 24 6c 69    73 74 20 3d 20 69 6d 70 6c 6f 64 65 28 22 2c 20 | \$var.";.....$list.=.implode(",. | 
| cba0 | 22 2c 20 24 61 72 67 75 6d 65 6e 74 4c 69 73 74    29 3b 0a 0a 0a 20 20 20 20 24 74 68 69 73 2d 3e | ",.$argumentList);.......$this-> | 
| cbc0 | 74 65 73 74 43 61 73 65 5b 5d 20 3d 20 22 20 20    76 61 72 5f 64 75 6d 70 28 5c 24 63 6c 61 73 73 | testCase[].=."..var_dump(\$class | 
| cbe0 | 2d 3e 22 2e 24 74 68 69 73 2d 3e 73 75 62 6a 65    63 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 28 | ->".$this->subject->getName()."( | 
| cc00 | 20 22 2e 24 6c 69 73 74 2e 22 20 29 20 29 3b 22    3b 0a 20 20 20 20 24 74 68 69 73 2d 3e 74 65 73 | .".$list.".).);";.....$this->tes | 
| cc20 | 74 43 61 73 65 20 3d 20 67 74 43 6f 64 65 53 6e    69 70 70 65 74 3a 3a 61 70 70 65 6e 64 28 27 6c | tCase.=.gtCodeSnippet::append('l | 
| cc40 | 6f 6f 70 43 6c 6f 73 65 27 2c 20 24 74 68 69 73    2d 3e 74 65 73 74 43 61 73 65 29 3b 0a 0a 20 20 | oopClose',.$this->testCase);.... | 
| cc60 | 7d 0a 0a 7d 0a 0a 3f 3e cf db 3a 79 f3 f5 44 85    37 b8 ef a6 60 5f 67 aa 44 bb 80 55 02 00 00 00 | }..}..?>..:y..D.7...`_g.D..U.... | 
| cc80 | 47 42 4d 42 | GBMB |