<?php
require_once('../../../Data/Types/Restrictions.php');
require_once('../../../Data/Types/Type.php');
require_once('../../../Data/Types/RestrictedSet.php');
require_once('../../../Data/Types/UnorderedNode.php');
require_once('../../../Data/Types/OrderedNode.php');
use Falcraft\Data\Types;
use Falcraft\Data\Types\Type;
echo "Falcraft\\Data\\Types\\OrderedNode.php Test\n";
echo "----------------------------------------\n\n";
echo "Empty Instantiation -> ";
$success = true;
$testOrderedNode1 = null;
try {
$testOrderedNode1 = new Types\OrderedNode();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo "Instantiating Incorrect Ordered Node (correctSet1, incorrectSet1) -> ";
$failure = true;
$testIncorrectRestrictions = $testIncorrectRestrictedSet = $testIncorrectOrderedNode = null;
try
{
$testIncorrectRestrictions = new Types\Restrictions(array(Types\Type::BASIC_BOOL));
$testIncorrectRestrictedSet = Types\RestrictedSet::build(array(), $testIncorrectRestrictions);
$testIncorrectOrderedNode = new Types\OrderedNode(
$testCorrectRestrictedSet1, array(), $testIncorrectRestrictedSet
);
$failure = false;
} catch ( \InvalidArgumentException $e ) {
$failure = true;
}
if ($failure) {
echo "Failure!\n";
} else {
echo "Success...\n";
}
echo "Instantiating Incorrect Ordered Node (correctSet2, incorrectSet2) -> ";
$failure = true;
$testIncorrectRestrictions2 = $testIncorrectRestrictedSet2 = $testIncorrectOrderedNode2 = null;
try
{
$testIncorrectRestrictions2 = new Types\Restrictions(
array(Types\Type::TYPED_OBJECT ),
array( 'Falcraft\Data\Types\Edge')
);
$testIncorrectRestrictedSet2 = Types\RestrictedSet::build(array(), $testIncorrectRestrictions2);
$testIncorrectOrderedNode2 = new Types\OrderedNode(
$testCorrectRestrictedSet2, array(), $testIncorrectRestrictedSet2
);
$failure = false;
} catch ( \InvalidArgumentException $e ) {
$failure = true;
}
if ($failure) {
echo "Failure!\n";
} else {
echo "Success...\n";
}
echo "Instantiating Correct Ordered Node -> ";
$testCorrectRestrictions = $testCorrectRestrictedSet1 = null;
$testCorrectRestrictedSet2 = $testCorrectOrderedNode = null;
$success = true;
try {
$testCorrectRestrictions = new Types\Restrictions(
array(Types\Type::TYPED_OBJECT),
array( 'Falcraft\Data\Types\Resource\VertexInterface')
);
$testCorrectRestrictedSet1 = Types\RestrictedSet::build(array(), $testCorrectRestrictions);
$testCorrectRestrictedSet2 = Types\RestrictedSet::build(array(), $testCorrectRestrictions);
$testCorrectOrderedNode = new Types\OrderedNode(
$testCorrectRestrictedSet1, array(), $testCorrectRestrictedSet2
);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo "Retrieving Restrictions -> \n\n";
var_dump($testCorrectOrderedNode->getRestrictions());
echo "\n\n";
echo "Creating Vertices -- \n";
echo "UnorderedNodes: parentNode, rightNode, middleNode, leftNode, offsideNode, auxiliaryNode\n";
$success = true;
$parentNode = $rightNode = $middleNode = $leftNode = $offsideNode = $auxiliaryNode = null;
try {
echo " \$parentNode = new Types\\UnorderedNode(): identifier = ";
$parentNode = new Types\UnorderedNode(); echo $parentNode->getIdentifier() . "\n";
echo " \$rightNode = new Types\\UnorderedNode(): identifier = ";
$rightNode = new Types\UnorderedNode(); echo $rightNode->getIdentifier() . "\n";
echo " \$middleNode = new Types\\UnorderedNode(): identifier = ";
$middleNode = new Types\UnorderedNode(); echo $middleNode->getIdentifier() . "\n";
echo " \$leftNode = new Types\\UnorderedNode(): identifier = ";
$leftNode = new Types\UnorderedNode(); echo $leftNode->getIdentifier() . "\n";
echo " \$offsideNode = new Types\\UnorderedNode(): identifier = ";
$offsideNode = new Types\UnorderedNode(); echo $offsideNode->getIdentifier() . "\n";
echo " \$auxiliaryNode = new Types\\UnorderedNode(): identifier = " ;
$auxiliaryNode = new Types\UnorderedNode(); echo $auxiliaryNode->getIdentifier() . "\n";
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "\n Success!\n\n";
} else {
echo "\n Failure...\n\n";
}
echo "Attaching parentNode As Parent (Incoming) [Reciprocate As Well] -> ";
$success = true;
try {
$testCorrectOrderedNode->connectIncoming($parentNode);
$parentNode->connectOutgoing($testCorrectOrderedNode);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Test Result: ";
if ($parentNode->isOutgoing($testCorrectOrderedNode) &&
$testCorrectOrderedNode->isIncoming($parentNode)) {
echo "Successful Bidirectional Link\n\n";
} else {
echo "Failure To Establish Bidirectional Link\n\n";
}
echo "Attaching offsideNode as Sibling (Mutual) -> ";
$success = true;
try {
$testCorrectOrderedNode->connectMutual($offsideNode);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Test Result: ";
if ($offsideNode->isConnected($testCorrectOrderedNode) &&
$testCorrectOrderedNode->isConnected($offsideNode)) {
echo "Successful Bidirectional Link\n\n";
} else {
echo "Failure to Establish Bidirectional Link\n\n";
}
echo "Attaching Children: Right, Middle, Left -> ";
$success = true;
try {
$testCorrectOrderedNode->connectOutgoing($rightNode);
$rightNode->connectIncoming($testCorrectOrderedNode);
$testCorrectOrderedNode->connectOutgoing($middleNode);
$middleNode->connectIncoming($testCorrectOrderedNode);
$testCorrectOrderedNode->connectOutgoing($leftNode);
$leftNode->connectIncoming($testCorrectOrderedNode);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " Test Result:\n";
if ($testCorrectOrderedNode->isConnected($rightNode) &&
$rightNode->isConnected($testCorrectOrderedNode)) {
echo " rightNode parent-child link successful\n";
} else {
echo " rightNode parent-child link unsuccessful\n";
}
if ($testCorrectOrderedNode->isConnected($middleNode) &&
$middleNode->isConnected($testCorrectOrderedNode)) {
echo " middleNode parent-child link successful\n";
} else {
echo " middleNode parent-child link unsuccessful\n";
}
if ($testCorrectOrderedNode->isConnected($leftNode) &&
$leftNode->isConnected($testCorrectOrderedNode)) {
echo " leftNode parent-child link succssful\n\n";
} else {
echo " leftNode parent-child link unsuccessful\n\n";
}
echo "OrderedNode Specific Functionality Tests --\n";
echo " Retrieval:\n";
$retrieval = null;
echo " getFirstOutgoing -> ";
$success = true;
try {
$retrieval = $testCorrectOrderedNode->getFirstOutgoing();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " \$rightNode: " . $rightNode->getIdentifier() .
" retrieved node: " . $retrieval->getIdentifier() . "\n";
echo " reference sanity check -- ";
$retrieval = new Types\UnorderedNode();
echo " \$rightNode: " . $rightNode->getIdentifier() .
" retrieved node: " . $retrieval->getIdentifier() . "\n";
$retrieval = null;
echo " getLastOutgoing -> ";
$success = true;
try {
$retrieval = $testCorrectOrderedNode->getLastOutgoing();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n";
} else {
echo "Failure...\n";
}
echo " \$leftNode: " . $leftNode->getIdentifier() .
" retrieved node: " . $retrieval->getIdentifier() . "\n\n";
echo "Vertices -- \n\n";
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
echo "\nPush - ";
$success = true;
try {
$testCorrectOrderedNode->push(new Types\UnorderedNode());
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
$retrieval = null;
echo "\nPop - ";
$success = true;
try {
$retrieval = $testCorrectOrderedNode->pop();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! Identifier: " . $retrieval->getIdentifier() . "\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
$retrieval = null;
echo "\nShift - ";
$success = true;
try {
$retrieval = $testCorrectOrderedNode->shift();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success! Identifier: " . $retrieval->getIdentifier() . "\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
echo "Unshift -> ";
$success = true;
try {
$testCorrectOrderedNode->unshift(new Types\UnorderedNode());
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
echo "insertAfter 7 -> ";
$success = true;
try {
$testCorrectOrderedNode->insertAfter(new Types\UnorderedNode, 7);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
echo "insertBefore 14 -> ";
$success = true;
try {
$testCorrectOrderedNode->insertBefore(new Types\UnorderedNode, 14);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
echo "delete 15 -> ";
$success = true;
try {
$testCorrectOrderedNode->delete(15);
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
var_dump($testCorrectOrderedNode->getOutgoingArrayIdentifiers());
echo "Count -> " . $testCorrectOrderedNode->count() . "\n";
echo "Is Empty? " . ($testCorrectOrderedNode->isEmpty() ? "true\n" : "false\n");
echo "Clear Outgoing -> ";
$success = true;
try {
$testCorrectOrderedNode->clearOutgoing();
} catch (\Exception $e) {
$success = false;
}
if ($success) {
echo "Success!\n\n";
} else {
echo "Failure...\n\n";
}
echo "Is Empty? " . ($testCorrectOrderedNode->isEmpty() ? "true\n" : "false\n");
|