/** * @test * @covers ::parse * @covers ::getWireOrSignalGenerator * @covers ::getWire * @covers ::parseAndOrGate */ public function parsesAndGateWithTwoSignals() { $input = "1 AND cx -> cy"; $signal = new SignalGenerator(1); $wireCx = new Wire('cx'); $andGate = new GateAnd($signal, $wireCx); $wireCy = new Wire('cy'); $wireCy->setSource($andGate); $components = [$signal, $wireCx, $wireCy, $andGate]; $circuit = new Circuit($components); $parsedCircuit = CircuitInstructionParser::parse($input); $this->assertTrue($circuit->equals($parsedCircuit)); }
/** * @test * @covers ::equals */ public function comparesDifferentCircuits() { $circuitOne = new Circuit([new Wire('a'), new Wire('b')]); $circuitTwo = new Circuit([new Wire('c'), new Wire('d')]); $this->assertFalse($circuitOne->equals($circuitTwo)); }