Skip to content
Snippets Groups Projects
Commit 0f5833aa authored by Rasmus Karlsson's avatar Rasmus Karlsson
Browse files

SFG.split() now excludes Input and Output type. Added one simple test for split.

parent d4ec822b
No related branches found
No related tags found
1 merge request!34Resolve "Operation Splitting"
Pipeline #13433 failed
...@@ -232,7 +232,14 @@ class SFG(AbstractOperation): ...@@ -232,7 +232,14 @@ class SFG(AbstractOperation):
return value return value
def split(self) -> Iterable[Operation]: def split(self) -> Iterable[Operation]:
return self.operations """ Returns every operation in the SFG except for Input and Output types. """
ops = []
for op in self.operations:
if not isinstance(op, Input) and not isinstance(op, Output):
ops.append(op)
return ops # Need any checking before returning?
def copy_component(self, *args, **kwargs) -> GraphComponent: def copy_component(self, *args, **kwargs) -> GraphComponent:
return super().copy_component(*args, **kwargs, inputs = self._input_operations, outputs = self._output_operations, return super().copy_component(*args, **kwargs, inputs = self._input_operations, outputs = self._output_operations,
......
import pytest
from b_asic import Addition, Subtraction, Multiplication, ConstantMultiplication, Division, Input, Output, SFG
def test_split_three_add():
""" Split one custom operation consisting of three Additions"""
in1 = Input()
in2 = Input()
in3 = Input()
in4 = Input()
#in1.value = 1
#in2.value = 2
#in3.value = 3
#in4.value = 4
add1 = in1 + in2
add2 = in3 + in4
add3 = add1 + add2
out1 = Output(add3)
Cstm = SFG(inputs=[in1, in2, in3, in4], outputs=[out1])
result = Cstm.split()
assert(isinstance(result[0], Addition))
assert(isinstance(result[1], Addition))
assert(isinstance(result[2], Addition))
assert(len(result) == 3)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment