/** * Determines if given circuit is equal to this circuit. * @param Circuit $circuit to compare * @return bool true if they have the same {@link CircuitComponent}s */ public function equals(Circuit $circuit) { $componentsLeft = $this->getComponents(); $componentsRight = $circuit->getComponents(); if (count($componentsLeft) !== count($componentsRight)) { return false; } foreach ($componentsLeft as $component) { if (!in_array($component, $componentsRight)) { return false; } } return true; }
/** * @test * @covers ::__construct * @covers ::getComponents */ public function hasCircuitComponents() { $components = [\Mockery::mock('\\Hamdrew\\AdventOfCode\\Day7\\CircuitComponent')]; $circuit = new Circuit($components); $this->assertEquals($components, $circuit->getComponents()); }