-
-
Notifications
You must be signed in to change notification settings - Fork 498
/
Copy pathReverseLinkedListTest.php
37 lines (28 loc) · 1.06 KB
/
ReverseLinkedListTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
namespace DataStructures;
require_once __DIR__ . '/../../vendor/autoload.php';
require_once __DIR__ . '/../../DataStructures/ReverseLinkedList/LinkedListItem.php';
require_once __DIR__ . '/../../DataStructures/ReverseLinkedList/ReverseLinkedList.php';
use DataStructures\ReverseLinkedList\LinkedListItem;
use DataStructures\ReverseLinkedList\ReverseLinkedList;
use PHPUnit\Framework\TestCase;
class ReverseLinkedListTest extends TestCase
{
public function testReverseLinkedList()
{
$list = [1,2,3,4,5];
$firstItem = (new LinkedListItem())->setValue(0);
$prevItem = $firstItem;
foreach ($list as $value) {
$item = new LinkedListItem();
$item->setValue($value);
$item->setPrev($prevItem);
$prevItem->setNext($item);
$prevItem = $item;
}
$newFirstItem = (new ReverseLinkedList())->reverse($firstItem);
do {
$this->assertEquals($newFirstItem->getValue(), array_pop($list));
} while ($newFirstItem = $newFirstItem->getNext());
}
}