Example #1
0
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
Example #2
0
    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
Example #3
0
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)
Example #4
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)
Example #5
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)
Example #6
0
 def tick(self):
     """
     :return: the output Signal
     :rtype: Signal
     """
     return Signal(True, self.position + self.direction)
Example #7
0
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))
Example #8
0
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))
Example #9
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))
Example #10
0
 def tick(self, *args):
     self.output_signal = Signal(self.pressed,
                                 self.position + self.orientation)
     self.pressed = False
Example #11
0
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
Example #12
0
def test_power_source__activates__adjacent_grid_coordinate():
    power_source = PowerSource(Vector(1, 1), down)
    assert power_source.tick() == Signal(True, Vector(1, 2))