| 
<?php
 use \ParagonIE\Halite\Structure\{
 MerkleTree,
 Node
 };
 
 /**
 * @backupGlobals disabled
 * @backupStaticAttributes disabled
 */
 class MerkleTreeTest extends PHPUnit_Framework_TestCase
 {
 public function testArithmetic()
 {
 $this->assertEquals(1, MerkleTree::getSizeRoundedUp(1));
 $this->assertEquals(2, MerkleTree::getSizeRoundedUp(2));
 $this->assertEquals(4, MerkleTree::getSizeRoundedUp(3));
 $this->assertEquals(4, MerkleTree::getSizeRoundedUp(4));
 $this->assertEquals(8, MerkleTree::getSizeRoundedUp(5));
 $this->assertEquals(8, MerkleTree::getSizeRoundedUp(6));
 $this->assertEquals(8, MerkleTree::getSizeRoundedUp(7));
 $this->assertEquals(8, MerkleTree::getSizeRoundedUp(8));
 }
 
 public function testExpectedBehavior()
 {
 $treeA = new MerkleTree(
 new Node('a'),
 new Node('b'),
 new Node('c'),
 new Node('d'),
 new Node('e')
 );
 $this->assertEquals(
 '6781891a87aa476454b74dc635c5cdebfc8f887438829ce2e81423f54906c058',
 $treeA->getRoot()
 );
 $treeB = new MerkleTree(
 new Node('a'),
 new Node('b'),
 new Node('c'),
 new Node('d'),
 new Node('e'),
 new Node('e'),
 new Node('e'),
 new Node('e')
 );
 $this->assertEquals(
 $treeA->getRoot(),
 $treeB->getRoot()
 );
 return;
 
 $treeC = $treeA->getExpandedTree(
 new Node('e'),
 new Node('e'),
 new Node('e')
 );
 $this->assertEquals(
 $treeA->getRoot(),
 $treeC->getRoot()
 );
 $treeD = $treeA->getExpandedTree(
 new Node('f'),
 new Node('e'),
 new Node('e')
 );
 $this->assertNotEquals(
 $treeA->getRoot(),
 $treeD->getRoot()
 );
 }
 }
 |