Example #1
0
 public function testNonExistentWireReturnsFalse()
 {
     $circuit = new Circuit();
     $this->assertFalse($circuit->getWire('a'), 'Getting non existent wire did not return false');
 }
Example #2
0
$loopCount = 0;
do {
    foreach ($lines as $key => $command) {
        if (in_array($key, $processedIndexes)) {
            continue;
            // Already processed - this will make it slow, but hey! :)
        }
        $result = false;
        $cmd = (new CommandParser($command))->getCommand();
        $assignee = new Wire($cmd['assignee']);
        switch ($cmd['type']) {
            case 'ASSIGN':
                if (is_numeric($cmd['value'])) {
                    $result = $cmd['value'];
                } else {
                    $wire1 = $circuit->getWire($cmd['value']);
                    if ($wire1 === false) {
                        break;
                    }
                    $result = $wire1->getSignal();
                }
                break;
            case 'AND':
                if (is_numeric($cmd['wires'][0])) {
                    $wire1 = new Wire('zz', $cmd['wires'][0]);
                    $wire2 = $circuit->getWire($cmd['wires'][1]);
                } else {
                    $wire1 = $circuit->getWire($cmd['wires'][0]);
                    $wire2 = $circuit->getWire($cmd['wires'][1]);
                }
                if ($wire1 === false || $wire2 === false) {