/** * @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)); }