/**
  * @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));
 }
Exemple #2
0
 /**
  * @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));
 }