1# Before `make install' is performed this script should be runnable with 2# `make test'. 3 4##################### We start with some black magic to print on failure. 5 6BEGIN { $| = 1; print "1..29\n"; } 7END {print "not ok 1\n" unless $loaded;} 8use Text::NSP::Measures::2D::MI::pmi; 9$loaded = 1; 10print "ok 1\n"; 11 12######################### End of black magic. 13 14############ Computing PMI value for some count values. 15 16my @bigram_count = (10, 20, 20,60); 17 18$value = calculateStatistic(n11 => 10, 19 n1p => 20, 20 np1 => 20, 21 npp => 60); 22$err = getErrorCode(); 23if($err) 24{ 25 print "not ok 2\n"; 26} 27elsif($value >= 0.58 && $value <= 0.59) 28{ 29 print "ok 2\n"; 30} 31else 32{ 33 print "not ok 2\n"; 34} 35 36############Error Code check for missing values 37 38%count_values = (n1p => 20, 39 np1 => 20, 40 npp => 60); 41 42$value = calculateStatistic(%count_values); 43 44$err = getErrorCode(); 45if($err == 200) 46{ 47 print "ok 3\n"; 48} 49else 50{ 51 print"not ok 3\n"; 52} 53 54############Error Code check for missing values 55 56%count_values = (n11 =>10, 57 np1 => 20, 58 npp => 60); 59 60$value = calculateStatistic(%count_values); 61 62$err = getErrorCode(); 63if($err == 200) 64{ 65 print "ok 4\n"; 66} 67else 68{ 69 print"not ok 4\n"; 70} 71############Error Code check for missing values 72 73%count_values = (n11=>10, 74 n1p => 20, 75 np1 => 20); 76 77$value = calculateStatistic(%count_values); 78 79$err = getErrorCode(); 80if($err == 200) 81{ 82 print "ok 5\n"; 83} 84else 85{ 86 print"not ok 5\n"; 87} 88############Error Code check for -ve values 89 90%count_values = (n11 => -10, 91 n1p => 20, 92 np1 => 20, 93 npp => 60); 94 95$value = calculateStatistic(%count_values); 96 97$err = getErrorCode(); 98if($err == 201) 99{ 100 print "ok 6\n"; 101} 102else 103{ 104 print"not ok 6\n"; 105} 106 107############Error Code check for -ve values 108 109%count_values = (n11 => 10, 110 n1p => -20, 111 np1 => 20, 112 npp => 60); 113 114$value = calculateStatistic(%count_values); 115 116$err = getErrorCode(); 117if($err == 204) 118{ 119 print "ok 7\n"; 120} 121else 122{ 123 print"not ok 7\n"; 124} 125 126############Error Code check for -ve values 127 128%count_values = (n11 => 10, 129 n1p => 20, 130 np1 => 20, 131 npp => -60); 132 133$value = calculateStatistic(%count_values); 134 135$err = getErrorCode(); 136if($err == 204) 137{ 138 print "ok 8\n"; 139} 140else 141{ 142 print"not ok 8\n"; 143} 144 145############Error Code check invalid values 146 147%count_values = (n11 => 80, 148 n1p => 20, 149 np1 => 20, 150 npp => 60); 151 152$value = calculateStatistic(%count_values); 153 154$err = getErrorCode(); 155if($err == 202) 156{ 157 print "ok 9\n"; 158} 159else 160{ 161 print"not ok 9\n"; 162} 163 164############Error Code check invalid values 165 166%count_values = (n11 => 30, 167 n1p => 20, 168 np1 => 20, 169 npp => 60); 170 171$value = calculateStatistic(%count_values); 172 173$err = getErrorCode(); 174if($err == 202) 175{ 176 print "ok 10\n"; 177} 178else 179{ 180 print"not ok 10\n"; 181} 182 183 184############Error Code check invalid values 185 186%count_values = (n11 => 10, 187 n1p => 70, 188 np1 => 20, 189 npp => 60); 190 191$value = calculateStatistic(%count_values); 192 193$err = getErrorCode(); 194if($err == 203) 195{ 196 print "ok 11\n"; 197} 198else 199{ 200 print"not ok 11\n"; 201 print $err; 202} 203 204############## Checking Error code for -ve observed frequency 205 206$value = calculateStatistic(n11 => 10, 207 n1p => 20, 208 np1 => 11, 209 npp => 20); 210$err = getErrorCode(); 211if($err==201) 212{ 213 print "ok 12\n"; 214} 215else 216{ 217 print "not ok 12\n"; 218} 219 220############## Checking measure value for a contingency table with a zero observed value 221 222$value = calculateStatistic(n11 => 10, 223 n1p => 20, 224 np1 => 20, 225 npp => 30); 226$err = getErrorCode(); 227if($value<=-0.41503 and $value >= -0.41504) 228{ 229 print "ok 13\n"; 230} 231else 232{ 233 print "not ok 13\n"; 234} 235 236############## Checking measure value for actual bigram data 237 238my $n11; my $n1p; my $np1; my $npp; 239 240$npp = 567835; 241$n11 = 3972; 242$n1p = 23189; 243$np1 = 22641; 244 245$value = calculateStatistic(n11 => $n11, 246 n1p => $n1p, 247 np1 => $np1, 248 npp => $npp); 249$err = getErrorCode(); 250if($value < 2.10296 and $value > 2.102959) 251{ 252 print "ok 14\n"; 253} 254else 255{ 256 print "not ok 14\n"; 257} 258 259############## 260 261$npp = 567835; 262$n11 = 2298; 263$n1p = 4624; 264$np1 = 8677; 265$value = calculateStatistic(n11 => $n11, 266 n1p => $n1p, 267 np1 => $np1, 268 npp => $npp); 269$err = getErrorCode(); 270if($value < 5.02336904 and $value > 5.02336903) 271{ 272 print "ok 15\n"; 273} 274else 275{ 276 print "not ok 15\n"; 277} 278 279############## 280 281$npp = 8293549; 282$n11 = 44796; 283$n1p = 179966; 284$np1 = 433831; 285$value = calculateStatistic(n11 => $n11, 286 n1p => $n1p, 287 np1 => $np1, 288 npp => $npp); 289$err = getErrorCode(); 290if($value < 2.250502 and $value > 2.2505019) 291{ 292 print "ok 16\n"; 293} 294else 295{ 296 print "not ok 16\n"; 297} 298 299############## 300 301$npp = 8293549; 302$n11 = 40666; 303$n1p = 432943; 304$np1 = 433831; 305$value = calculateStatistic( n11 => $n11, 306 n1p => $n1p, 307 np1 => $np1, 308 npp => $npp); 309$err = getErrorCode(); 310if($value < 0.844502445 and $value > 0.844502444) 311{ 312 print "ok 17\n"; 313} 314else 315{ 316 print "not ok 17\n"; 317} 318 319############## 320 321$npp = 8293549; 322$n11 = 37397; 323$n1p = 143010; 324$np1 = 433831; 325$value = calculateStatistic(n11 => $n11, 326 n1p => $n1p, 327 np1 => $np1, 328 npp => $npp); 329$err = getErrorCode(); 330if($value < 2.32166296 and $value > 2.321662959) 331{ 332 print "ok 18\n"; 333} 334else 335{ 336 print "not ok 18\n"; 337} 338 339############## 340 341$npp = 8293549; 342$n11 = 32660; 343$n1p = 454949; 344$np1 = 433831; 345$value = calculateStatistic(n11 => $n11, 346 n1p => $n1p, 347 np1 => $np1, 348 npp => $npp); 349$err = getErrorCode(); 350if($value < 0.456676414 and $value > 0.456676413) 351{ 352 print "ok 19\n"; 353} 354else 355{ 356 print "not ok 19\n"; 357} 358 359############## 360 361$npp = 8293549; 362$n11 = 25919; 363$n1p = 454949; 364$np1 = 169091; 365$value = calculateStatistic(n11 => $n11, 366 n1p => $n1p, 367 np1 => $np1, 368 npp => $npp); 369$err = getErrorCode(); 370if($value < 1.48249496 and $value > 1.48249495) 371{ 372 print "ok 20\n"; 373} 374else 375{ 376 print "not ok 20\n"; 377} 378 379############## 380 381$npp = 8293549; 382$n11 = 17042; 383$n1p = 454949; 384$np1 = 185958; 385$value = calculateStatistic(n11 => $n11, 386 n1p => $n1p, 387 np1 => $np1, 388 npp => $npp); 389$err = getErrorCode(); 390if($value < 0.74040261 and $value > 0.74040260) 391{ 392 print "ok 21\n"; 393} 394else 395{ 396 print "not ok 21\n"; 397} 398 399############## 400 401$npp = 8293549; 402$n11 = 16862; 403$n1p = 186141; 404$np1 = 433831; 405$value = calculateStatistic(n11 => $n11, 406 n1p => $n1p, 407 np1 => $np1, 408 npp => $npp); 409$err = getErrorCode(); 410if($value < 0.79223626 and $value > 0.79223625) 411{ 412 print "ok 22\n"; 413} 414else 415{ 416 print "not ok 22\n"; 417} 418 419############## 420 421$npp = 8293549; 422$n11 = 16115; 423$n1p = 52569; 424$np1 = 432944; 425$value = calculateStatistic(n11 => $n11, 426 n1p => $n1p, 427 np1 => $np1, 428 npp => $npp); 429$err = getErrorCode(); 430if($value < 2.55392916 and $value > 2.553929159) 431{ 432 print "ok 23\n"; 433} 434else 435{ 436 print "not ok 23\n"; 437} 438 439############## 440 441$npp = 8293549; 442$n11 = 16089; 443$n1p = 432943; 444$np1 = 34837; 445$value = calculateStatistic(n11 => $n11, 446 n1p => $n1p, 447 np1 => $np1, 448 npp => $npp); 449$err = getErrorCode(); 450if($value < 3.145194863 and $value > 3.145194862) 451{ 452 print "ok 24\n"; 453} 454else 455{ 456 print "not ok 24\n"; 457} 458 459############## 460 461$npp = 8293549; 462$n11 = 15800; 463$n1p = 432943; 464$np1 = 432944; 465$value = calculateStatistic(n11 => $n11, 466 n1p => $n1p, 467 np1 => $np1, 468 npp => $npp); 469$err = getErrorCode(); 470if($value < -0.5164433705 and $value > -0.5164433707) 471{ 472 print "ok 25\n"; 473} 474else 475{ 476 print "not ok 25\n"; 477} 478 479############## 480 481$npp = 8293549; 482$n11 = 15459; 483$n1p = 54930; 484$np1 = 433831; 485$value = calculateStatistic(n11 => $n11, 486 n1p => $n1p, 487 np1 => $np1, 488 npp => $npp); 489$err = getErrorCode(); 490if($value < 2.4276372511 and $value > 2.4276372510) 491{ 492 print "ok 26\n"; 493} 494else 495{ 496 print "not ok 26\n"; 497} 498 499############## 500 501$npp = 8293549; 502$n11 = 14206; 503$n1p = 454949; 504$np1 = 52569; 505$value = calculateStatistic(n11 => $n11, 506 n1p => $n1p, 507 np1 => $np1, 508 npp => $npp); 509$err = getErrorCode(); 510if($value < 2.3005009626 and $value > 2.3005009625) 511{ 512 print "ok 27\n"; 513} 514else 515{ 516 print "not ok 27\n"; 517} 518 519############## 520 521$npp = 8293549; 522$n11 = 14075; 523$n1p = 432943; 524$np1 = 59565; 525$value = calculateStatistic(n11 => $n11, 526 n1p => $n1p, 527 np1 => $np1, 528 npp => $npp); 529$err = getErrorCode(); 530if($value < 2.1784106554 and $value > 2.1784106553) 531{ 532 print "ok 28\n"; 533} 534else 535{ 536 print "not ok 28\n"; 537} 538 539############## 540 541$npp = 8293549; 542$n11 = 14070; 543$n1p = 432943; 544$np1 = 34669; 545$value = calculateStatistic(n11 => $n11, 546 n1p => $n1p, 547 np1 => $np1, 548 npp => $npp); 549$err = getErrorCode(); 550if($value < 2.9587167 and $value > 2.95871669) 551{ 552 print "ok 29\n"; 553} 554else 555{ 556 print "not ok 29\n"; 557} 558 559############## 560