Exemple #1
0
 /**
  * @test
  * @cover ::setSource
  */
 public function setsSource()
 {
     $wire = new Wire('test');
     $source = \Mockery::mock('\\Hamdrew\\AdventOfCode\\Day7\\CircuitComponent');
     $wire->setSource($source);
     $this->assertSame($source, $wire->getSource());
 }
 /**
  * @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));
 }