""" B-ASIC test suite for OutputPort TODO: More info """ from b_asic import InputPort, OutputPort import pytest @pytest.fixture def inp_ports(): return [InputPort(_, None) for _ in range(0,3)] def test_connect_multiple_signals(inp_ports): """Can multiple ports connect to an output port?""" out_port = OutputPort(0, None) for port in inp_ports: out_port.connect(port) assert out_port.signal_count() == len(inp_ports) def test_disconnect_multiple_signals(inp_ports): """Can multiple signals disconnect from an output port?""" out_port = OutputPort(0, None) sigs = [] for port in inp_ports: sigs.append(out_port.connect(port)) for sig in sigs: out_port.remove_signal(sig) assert out_port.signal_count() == 0 def test_disconnect_mulitple_ports(inp_ports): """Can multiple ports be disconnected from an output port?""" out_port = OutputPort(0, None) for port in inp_ports: out_port.connect(port) for port in inp_ports: out_port.disconnect(port) assert out_port.signal_count() == 3 assert len(out_port.connected_ports) == 0