00001 <?php
00002
00003
00004 require_once('PHPUnit/Framework.php');
00005
00006
00007 require_once('../TextStatistics.php');
00008
00009 class TextStatisticsMelvilleMobyDick extends PHPUnit_Framework_TestCase {
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 protected $TextStatistics = null;
00052 protected $strText = "Call me Ishmael. Some years ago - never mind how long precisely - having little or no money in my purse, and nothing particular to interest me on shore, I thought I would sail about a little and see the watery part of the world. It is a way I have of driving off the spleen, and regulating the circulation. Whenever I find myself growing grim about the mouth; whenever it is a damp, drizzly November in my soul; whenever I find myself involuntarily pausing before coffin warehouses, and bringing up the rear of every funeral I meet; and especially whenever my hypos get such an upper hand of me, that it requires a strong moral principle to prevent me from deliberately stepping into the street, and methodically knocking people's hats off - then, I account it high time to get to sea as soon as I can. This is my substitute for pistol and ball. With a philosophical flourish Cato throws himself upon his sword; I quietly take to the ship. There is nothing surprising in this. If they but knew it, almost all men in their degree, some time or other, cherish very nearly the same feelings towards the ocean with me.";
00053
00054 public function setUp() {
00055 $this->TextStatistics = new TextStatistics();
00056 }
00057
00058 public function tearDown() {
00059 unset($this->objTextStatistics);
00060 }
00061
00062
00063
00064
00065 public function testKiplingSyllables() {
00066 $this->assertEquals(1, $this->TextStatistics->syllable_count('Call'));
00067 $this->assertEquals(1, $this->TextStatistics->syllable_count('me'));
00068 $this->assertEquals(2, $this->TextStatistics->syllable_count('Ishmael'));
00069 $this->assertEquals(1, $this->TextStatistics->syllable_count('Some'));
00070 $this->assertEquals(1, $this->TextStatistics->syllable_count('years'));
00071 $this->assertEquals(2, $this->TextStatistics->syllable_count('ago'));
00072 $this->assertEquals(2, $this->TextStatistics->syllable_count('never'));
00073 $this->assertEquals(1, $this->TextStatistics->syllable_count('mind'));
00074 $this->assertEquals(1, $this->TextStatistics->syllable_count('how'));
00075 $this->assertEquals(1, $this->TextStatistics->syllable_count('long'));
00076 $this->assertEquals(3, $this->TextStatistics->syllable_count('precisely'));
00077 $this->assertEquals(2, $this->TextStatistics->syllable_count('having'));
00078 $this->assertEquals(2, $this->TextStatistics->syllable_count('little'));
00079 $this->assertEquals(1, $this->TextStatistics->syllable_count('or'));
00080 $this->assertEquals(1, $this->TextStatistics->syllable_count('no'));
00081 $this->assertEquals(2, $this->TextStatistics->syllable_count('money'));
00082 $this->assertEquals(1, $this->TextStatistics->syllable_count('in'));
00083 $this->assertEquals(1, $this->TextStatistics->syllable_count('my'));
00084 $this->assertEquals(1, $this->TextStatistics->syllable_count('purse'));
00085 $this->assertEquals(1, $this->TextStatistics->syllable_count('and'));
00086 $this->assertEquals(2, $this->TextStatistics->syllable_count('nothing'));
00087 $this->assertEquals(4, $this->TextStatistics->syllable_count('particular'));
00088 $this->assertEquals(1, $this->TextStatistics->syllable_count('to'));
00089 $this->assertEquals(3, $this->TextStatistics->syllable_count('interest'));
00090 $this->assertEquals(1, $this->TextStatistics->syllable_count('me'));
00091 $this->assertEquals(1, $this->TextStatistics->syllable_count('on'));
00092 $this->assertEquals(1, $this->TextStatistics->syllable_count('shore'));
00093 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00094 $this->assertEquals(1, $this->TextStatistics->syllable_count('thought'));
00095 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00096 $this->assertEquals(1, $this->TextStatistics->syllable_count('would'));
00097 $this->assertEquals(1, $this->TextStatistics->syllable_count('sail'));
00098 $this->assertEquals(2, $this->TextStatistics->syllable_count('about'));
00099 $this->assertEquals(1, $this->TextStatistics->syllable_count('a'));
00100 $this->assertEquals(2, $this->TextStatistics->syllable_count('little'));
00101 $this->assertEquals(1, $this->TextStatistics->syllable_count('and'));
00102 $this->assertEquals(1, $this->TextStatistics->syllable_count('see'));
00103 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00104 $this->assertEquals(3, $this->TextStatistics->syllable_count('watery'));
00105 $this->assertEquals(1, $this->TextStatistics->syllable_count('part'));
00106 $this->assertEquals(1, $this->TextStatistics->syllable_count('of'));
00107 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00108 $this->assertEquals(1, $this->TextStatistics->syllable_count('world'));
00109 $this->assertEquals(1, $this->TextStatistics->syllable_count('It'));
00110 $this->assertEquals(1, $this->TextStatistics->syllable_count('is'));
00111 $this->assertEquals(1, $this->TextStatistics->syllable_count('a'));
00112 $this->assertEquals(1, $this->TextStatistics->syllable_count('way'));
00113 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00114 $this->assertEquals(1, $this->TextStatistics->syllable_count('have'));
00115 $this->assertEquals(1, $this->TextStatistics->syllable_count('of'));
00116 $this->assertEquals(2, $this->TextStatistics->syllable_count('driving'));
00117 $this->assertEquals(1, $this->TextStatistics->syllable_count('off'));
00118 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00119 $this->assertEquals(1, $this->TextStatistics->syllable_count('spleen'));
00120 $this->assertEquals(1, $this->TextStatistics->syllable_count('and'));
00121 $this->assertEquals(4, $this->TextStatistics->syllable_count('regulating'));
00122 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00123 $this->assertEquals(4, $this->TextStatistics->syllable_count('circulation'));
00124 $this->assertEquals(3, $this->TextStatistics->syllable_count('Whenever'));
00125 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00126 $this->assertEquals(1, $this->TextStatistics->syllable_count('find'));
00127 $this->assertEquals(2, $this->TextStatistics->syllable_count('myself'));
00128 $this->assertEquals(2, $this->TextStatistics->syllable_count('growing'));
00129 $this->assertEquals(1, $this->TextStatistics->syllable_count('grim'));
00130 $this->assertEquals(2, $this->TextStatistics->syllable_count('about'));
00131 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00132 $this->assertEquals(1, $this->TextStatistics->syllable_count('mouth'));
00133 $this->assertEquals(3, $this->TextStatistics->syllable_count('whenever'));
00134 $this->assertEquals(1, $this->TextStatistics->syllable_count('it'));
00135 $this->assertEquals(1, $this->TextStatistics->syllable_count('is'));
00136 $this->assertEquals(1, $this->TextStatistics->syllable_count('a'));
00137 $this->assertEquals(1, $this->TextStatistics->syllable_count('damp'));
00138 $this->assertEquals(2, $this->TextStatistics->syllable_count('drizzly'));
00139 $this->assertEquals(3, $this->TextStatistics->syllable_count('November'));
00140 $this->assertEquals(1, $this->TextStatistics->syllable_count('in'));
00141 $this->assertEquals(1, $this->TextStatistics->syllable_count('my'));
00142 $this->assertEquals(1, $this->TextStatistics->syllable_count('soul'));
00143 $this->assertEquals(3, $this->TextStatistics->syllable_count('whenever'));
00144 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00145 $this->assertEquals(1, $this->TextStatistics->syllable_count('find'));
00146 $this->assertEquals(2, $this->TextStatistics->syllable_count('myself'));
00147 $this->assertEquals(6, $this->TextStatistics->syllable_count('involuntarily'));
00148 $this->assertEquals(2, $this->TextStatistics->syllable_count('pausing'));
00149 $this->assertEquals(2, $this->TextStatistics->syllable_count('before'));
00150 $this->assertEquals(2, $this->TextStatistics->syllable_count('coffin'));
00151 $this->assertEquals(3, $this->TextStatistics->syllable_count('warehouses'));
00152 $this->assertEquals(1, $this->TextStatistics->syllable_count('and'));
00153 $this->assertEquals(2, $this->TextStatistics->syllable_count('bringing'));
00154 $this->assertEquals(1, $this->TextStatistics->syllable_count('up'));
00155 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00156 $this->assertEquals(1, $this->TextStatistics->syllable_count('rear'));
00157 $this->assertEquals(1, $this->TextStatistics->syllable_count('of'));
00158 $this->assertEquals(3, $this->TextStatistics->syllable_count('every'));
00159 $this->assertEquals(3, $this->TextStatistics->syllable_count('funeral'));
00160 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00161 $this->assertEquals(1, $this->TextStatistics->syllable_count('meet'));
00162 $this->assertEquals(1, $this->TextStatistics->syllable_count('and'));
00163 $this->assertEquals(4, $this->TextStatistics->syllable_count('especially'));
00164 $this->assertEquals(3, $this->TextStatistics->syllable_count('whenever'));
00165 $this->assertEquals(1, $this->TextStatistics->syllable_count('my'));
00166 $this->assertEquals(2, $this->TextStatistics->syllable_count('hypos'));
00167 $this->assertEquals(1, $this->TextStatistics->syllable_count('get'));
00168 $this->assertEquals(1, $this->TextStatistics->syllable_count('such'));
00169 $this->assertEquals(1, $this->TextStatistics->syllable_count('an'));
00170 $this->assertEquals(2, $this->TextStatistics->syllable_count('upper'));
00171 $this->assertEquals(1, $this->TextStatistics->syllable_count('hand'));
00172 $this->assertEquals(1, $this->TextStatistics->syllable_count('of'));
00173 $this->assertEquals(1, $this->TextStatistics->syllable_count('me'));
00174 $this->assertEquals(1, $this->TextStatistics->syllable_count('that'));
00175 $this->assertEquals(1, $this->TextStatistics->syllable_count('it'));
00176 $this->assertEquals(2, $this->TextStatistics->syllable_count('requires'));
00177 $this->assertEquals(1, $this->TextStatistics->syllable_count('a'));
00178 $this->assertEquals(1, $this->TextStatistics->syllable_count('strong'));
00179 $this->assertEquals(2, $this->TextStatistics->syllable_count('moral'));
00180 $this->assertEquals(3, $this->TextStatistics->syllable_count('principle'));
00181 $this->assertEquals(1, $this->TextStatistics->syllable_count('to'));
00182 $this->assertEquals(2, $this->TextStatistics->syllable_count('prevent'));
00183 $this->assertEquals(1, $this->TextStatistics->syllable_count('me'));
00184 $this->assertEquals(1, $this->TextStatistics->syllable_count('from'));
00185 $this->assertEquals(5, $this->TextStatistics->syllable_count('deliberately'));
00186 $this->assertEquals(2, $this->TextStatistics->syllable_count('stepping'));
00187 $this->assertEquals(2, $this->TextStatistics->syllable_count('into'));
00188 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00189 $this->assertEquals(1, $this->TextStatistics->syllable_count('street'));
00190 $this->assertEquals(1, $this->TextStatistics->syllable_count('and'));
00191 $this->assertEquals(5, $this->TextStatistics->syllable_count('methodically'));
00192 $this->assertEquals(2, $this->TextStatistics->syllable_count('knocking'));
00193 $this->assertEquals(2, $this->TextStatistics->syllable_count('people\'s'));
00194 $this->assertEquals(1, $this->TextStatistics->syllable_count('hats'));
00195 $this->assertEquals(1, $this->TextStatistics->syllable_count('off'));
00196 $this->assertEquals(1, $this->TextStatistics->syllable_count('then'));
00197 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00198 $this->assertEquals(2, $this->TextStatistics->syllable_count('account'));
00199 $this->assertEquals(1, $this->TextStatistics->syllable_count('it'));
00200 $this->assertEquals(1, $this->TextStatistics->syllable_count('high'));
00201 $this->assertEquals(1, $this->TextStatistics->syllable_count('time'));
00202 $this->assertEquals(1, $this->TextStatistics->syllable_count('to'));
00203 $this->assertEquals(1, $this->TextStatistics->syllable_count('get'));
00204 $this->assertEquals(1, $this->TextStatistics->syllable_count('to'));
00205 $this->assertEquals(1, $this->TextStatistics->syllable_count('sea'));
00206 $this->assertEquals(1, $this->TextStatistics->syllable_count('as'));
00207 $this->assertEquals(1, $this->TextStatistics->syllable_count('soon'));
00208 $this->assertEquals(1, $this->TextStatistics->syllable_count('as'));
00209 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00210 $this->assertEquals(1, $this->TextStatistics->syllable_count('can'));
00211 $this->assertEquals(1, $this->TextStatistics->syllable_count('This'));
00212 $this->assertEquals(1, $this->TextStatistics->syllable_count('is'));
00213 $this->assertEquals(1, $this->TextStatistics->syllable_count('my'));
00214 $this->assertEquals(3, $this->TextStatistics->syllable_count('substitute'));
00215 $this->assertEquals(1, $this->TextStatistics->syllable_count('for'));
00216 $this->assertEquals(2, $this->TextStatistics->syllable_count('pistol'));
00217 $this->assertEquals(1, $this->TextStatistics->syllable_count('and'));
00218 $this->assertEquals(1, $this->TextStatistics->syllable_count('ball'));
00219 $this->assertEquals(1, $this->TextStatistics->syllable_count('With'));
00220 $this->assertEquals(1, $this->TextStatistics->syllable_count('a'));
00221 $this->assertEquals(5, $this->TextStatistics->syllable_count('philosophical'));
00222 $this->assertEquals(2, $this->TextStatistics->syllable_count('flourish'));
00223 $this->assertEquals(2, $this->TextStatistics->syllable_count('Cato'));
00224 $this->assertEquals(1, $this->TextStatistics->syllable_count('throws'));
00225 $this->assertEquals(2, $this->TextStatistics->syllable_count('himself'));
00226 $this->assertEquals(2, $this->TextStatistics->syllable_count('upon'));
00227 $this->assertEquals(1, $this->TextStatistics->syllable_count('his'));
00228 $this->assertEquals(1, $this->TextStatistics->syllable_count('sword'));
00229 $this->assertEquals(1, $this->TextStatistics->syllable_count('I'));
00230 $this->assertEquals(3, $this->TextStatistics->syllable_count('quietly'));
00231 $this->assertEquals(1, $this->TextStatistics->syllable_count('take'));
00232 $this->assertEquals(1, $this->TextStatistics->syllable_count('to'));
00233 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00234 $this->assertEquals(1, $this->TextStatistics->syllable_count('ship'));
00235 $this->assertEquals(1, $this->TextStatistics->syllable_count('There'));
00236 $this->assertEquals(1, $this->TextStatistics->syllable_count('is'));
00237 $this->assertEquals(2, $this->TextStatistics->syllable_count('nothing'));
00238 $this->assertEquals(3, $this->TextStatistics->syllable_count('surprising'));
00239 $this->assertEquals(1, $this->TextStatistics->syllable_count('in'));
00240 $this->assertEquals(1, $this->TextStatistics->syllable_count('this'));
00241 $this->assertEquals(1, $this->TextStatistics->syllable_count('If'));
00242 $this->assertEquals(1, $this->TextStatistics->syllable_count('they'));
00243 $this->assertEquals(1, $this->TextStatistics->syllable_count('but'));
00244 $this->assertEquals(1, $this->TextStatistics->syllable_count('knew'));
00245 $this->assertEquals(1, $this->TextStatistics->syllable_count('it'));
00246 $this->assertEquals(2, $this->TextStatistics->syllable_count('almost'));
00247 $this->assertEquals(1, $this->TextStatistics->syllable_count('all'));
00248 $this->assertEquals(1, $this->TextStatistics->syllable_count('men'));
00249 $this->assertEquals(1, $this->TextStatistics->syllable_count('in'));
00250 $this->assertEquals(1, $this->TextStatistics->syllable_count('their'));
00251 $this->assertEquals(2, $this->TextStatistics->syllable_count('degree'));
00252 $this->assertEquals(1, $this->TextStatistics->syllable_count('some'));
00253 $this->assertEquals(1, $this->TextStatistics->syllable_count('time'));
00254 $this->assertEquals(1, $this->TextStatistics->syllable_count('or'));
00255 $this->assertEquals(2, $this->TextStatistics->syllable_count('other'));
00256 $this->assertEquals(2, $this->TextStatistics->syllable_count('cherish'));
00257 $this->assertEquals(2, $this->TextStatistics->syllable_count('very'));
00258 $this->assertEquals(2, $this->TextStatistics->syllable_count('nearly'));
00259 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00260 $this->assertEquals(1, $this->TextStatistics->syllable_count('same'));
00261 $this->assertEquals(2, $this->TextStatistics->syllable_count('feelings'));
00262 $this->assertEquals(2, $this->TextStatistics->syllable_count('towards'));
00263 $this->assertEquals(1, $this->TextStatistics->syllable_count('the'));
00264 $this->assertEquals(2, $this->TextStatistics->syllable_count('ocean'));
00265 $this->assertEquals(1, $this->TextStatistics->syllable_count('with'));
00266 $this->assertEquals(1, $this->TextStatistics->syllable_count('me'));
00267 }
00268
00269
00270
00271
00272 public function testWordCount() {
00273 $this->assertEquals(201, $this->TextStatistics->word_count($this->strText));
00274 }
00275
00276
00277
00278
00279 public function testLongWordCount() {
00280 $this->assertEquals(23, $this->TextStatistics->words_with_three_syllables($this->strText, true));
00281 $this->assertEquals(22, $this->TextStatistics->words_with_three_syllables($this->strText, false));
00282 }
00283
00284
00285
00286
00287 public function testSentenceCount() {
00288 $this->assertEquals(8, $this->TextStatistics->sentence_count($this->strText));
00289 }
00290
00291
00292
00293
00294 public function testTextLengthCheck() {
00295 $this->assertEquals(884, $this->TextStatistics->letter_count($this->strText));
00296 }
00297
00298
00299
00300
00301 public function testFleschKincaidReadingEase() {
00302 $this->assertEquals(53.4, $this->TextStatistics->flesch_kincaid_reading_ease($this->strText));
00303 }
00304
00305
00306
00307
00308 public function testFleschKincaidGradeLevel() {
00309 $this->assertEquals(12.1, $this->TextStatistics->flesch_kincaid_grade_level($this->strText));
00310 }
00311
00312
00313
00314
00315 public function testGunningFogScore() {
00316 $this->assertEquals(14.4, $this->TextStatistics->gunning_fog_score($this->strText));
00317 }
00318
00319
00320
00321
00322 public function testColemanLiauIndex() {
00323 $this->assertEquals(10.1, $this->TextStatistics->coleman_liau_index($this->strText));
00324 }
00325
00326
00327
00328
00329 public function testSMOGIndex() {
00330 $this->assertEquals(9.9, $this->TextStatistics->smog_index($this->strText));
00331 }
00332
00333
00334
00335
00336 public function testAutomatedReadabilityIndex() {
00337 $this->assertEquals(11.8, $this->TextStatistics->automated_readability_index($this->strText));
00338 }
00339
00340 }
00341
00342 ?>