<?php  
/** 
 * PHPLinkedList Test Cases 
 * examples.php 
 * @category   DataStructure 
 * @package    PHPLinkedList Test 
 * @author     Biswarup Adhikari <biswarupadhikari@gmail.com> 
 */ 
require_once 'PHPLinkedList.php'; 
 
 
/** 
 * Test Helper Function 
 */ 
function runTest($result,$testCase='',$successMsg='Pass',$failedMsg='Failed') 
{ 
    echo "$testCase\n"; 
    if($result) 
    { 
        echo "\033[32m ".$successMsg." \033[0m\n"; 
    } 
    else 
    { 
        echo "\033[31m ".$failedMsg." \033[0m\n"; 
    } 
} 
/** 
 * Create New LinkedList 
 */ 
$myLinkedList=new PHPLinkedList; 
 
 
/** 
 * Zero Item Count Test 
 */ 
runTest($myLinkedList->count()==0,"Zero Item Count Test"); 
/** 
 * Count After Adding One Item 
 */ 
$first=5; 
$myLinkedList->put($first); 
runTest($myLinkedList->count()==1,"Count After Adding One Item"); 
 
/** 
 * Test Get First Item 
 */ 
runTest($myLinkedList->first()==5,"Get First Item"); 
 
/** 
 * Test Last Item 
 */ 
runTest($myLinkedList->last()==5,"Get Last Item"); 
 
/** 
 * Element At position Test 
 */ 
 
runTest($myLinkedList->get(0)==5,"Element at Position Test"); 
 
/** 
 * Test Count After Adding Two Element 
 */ 
$second=58; 
$myLinkedList->put($second); 
runTest($myLinkedList->count()==2,"Count After Adding Two Item"); 
 
 
/** 
 * Test Get First Item 
 */ 
runTest($myLinkedList->first()==5,"Get First Item"); 
/** 
 * Test Last Item 
 */ 
runTest($myLinkedList->last()==58,"Get Last Item"); 
 
 
 
/** 
 * Test Dynamic Element 
 */ 
$items=new PHPLinkedList; 
$start=10; 
$limit=50; 
$total=($limit - $start) + 1; 
for($i=$start;$i<=$limit;$i++) 
{ 
    $items->put($i); 
} 
 
$j=0; 
for($i=$start;$i<=$limit;$i++) 
{ 
    runTest($items->get($j)==$i,"Put And Get Test For Dynamic Data $i"); 
    $j++; 
} 
 
/** 
 * Count Test After Dynamic Data Insert 
 */ 
 
 
runTest($items->count()==$total,"Count After Adding Dynaic Data"); 
/** 
 * Test Get First Item 
 */ 
runTest($items->first()==$start,"Get First Item in Dynamic Data"); 
/** 
 * Test Last Item 
 */ 
runTest($items->last()==$limit,"Get Last Item in Dynamic Data"); 
 
$items->printChain();
 
 |