from b_asic import SFG from b_asic.signal import Signal from b_asic.core_operations import Addition, Constant from b_asic.special_operations import Input, Output class TestConstructor: def test_outputs_construction(self, operation_tree): outp = Output(operation_tree) sfg = SFG(outputs=[outp]) assert len(list(sfg.components)) == 7 assert sfg.input_count == 0 assert sfg.output_count == 1 def test_signals_construction(self, operation_tree): outs = Signal(source=operation_tree.output(0)) sfg = SFG(output_signals=[outs]) assert len(list(sfg.components)) == 7 assert sfg.input_count == 0 assert sfg.output_count == 1 def test_operations_construction(self, operation_tree): sfg1 = SFG(operations=[operation_tree]) sfg2 = SFG(operations=[operation_tree.input(1).signals[0].source.operation]) assert len(list(sfg1.components)) == 5 assert len(list(sfg2.components)) == 5 assert sfg1.input_count == 0 assert sfg2.input_count == 0 assert sfg1.output_count == 0 assert sfg2.output_count == 0