def test_signal_is_only_add_once(): grid = Grid(10, 10) grid.add_signal(Signal(True, Vector(2, 3))) assert len(grid.signals) == 1 grid.add_signal(Signal(True, Vector(2, 3))) assert len(grid.signals) == 1
def tick(self, signal): if signal.position == self.source: return Signal(signal.current, self.target) if signal.position == self.target: return Signal(signal.current, self.source) return signal
def test_wire_moves_signal_to_source_position(): wire = Wire(Vector(0, 0), Vector(2, 0)) signal = wire.tick(Signal(True, Vector(2, 0))) assert signal.current assert signal.position == Vector(0, 0)
def test_wire_returns_original_signal_if_signal_position_is_not_on_source_or_target( ): wire = Wire(Vector(0, 0), Vector(2, 0)) signal = wire.tick(Signal(True, Vector(1, 0))) assert signal.current assert signal.position == Vector(1, 0)
def __init__(self, position: Vector, orientation: Vector): """ :type position: Vector :type orientation: Vector """ self.orientation = orientation self.position = position self.pressed = False self.output_signal = Signal(False, self.position + self.orientation)
def tick(self): """ :return: the output Signal :rtype: Signal """ return Signal(True, self.position + self.direction)
def test_two_signals_are_equal_when_their_currents_are_equal(): assert Signal(True, Vector(0, 0)) == Signal(True, Vector(9, 5)) assert Signal(False, Vector(0, 0)) == Signal(False, Vector(9, 5)) assert Signal(True, Vector(0, 0)) != Signal(False, Vector(9, 5))
def test_signal_can_be_toggled_on_and_off(): signal = Signal(False, Vector(0, 0)) signal.toggle() assert signal == Signal(True, Vector(0, 0)) signal.toggle() assert signal == Signal(False, Vector(0, 0))
def test_signals_can_be_switched_on_and_off(): signal = Signal(False, Vector(0, 0)) signal.on() assert signal == Signal(True, Vector(0, 0)) signal.off() assert signal == Signal(False, Vector(0, 0))
def tick(self, *args): self.output_signal = Signal(self.pressed, self.position + self.orientation) self.pressed = False
def test_add_signal_adds_a_signal_to_the_grid(): grid = Grid(10, 10) grid.add_signal(Signal(True, Vector(2, 3))) assert Signal(True, Vector(2, 3)) in grid.signals
def test_power_source__activates__adjacent_grid_coordinate(): power_source = PowerSource(Vector(1, 1), down) assert power_source.tick() == Signal(True, Vector(1, 2))