Skip to content
Snippets Groups Projects
Commit 033f9ee1 authored by Kevin's avatar Kevin
Browse files

changed split function and MAD operation

parent 4672f718
No related branches found
No related tags found
2 merge requests!44Resolve "Operation Replacement in a SFG",!42Resolve "Operation to SFG Conversion"
Pipeline #14318 failed
...@@ -235,8 +235,8 @@ class MAD(AbstractOperation): ...@@ -235,8 +235,8 @@ class MAD(AbstractOperation):
TODO: More info. TODO: More info.
""" """
def __init__(self, src0: Optional[SignalSourceProvider] = None, src1: Optional[SignalSourceProvider] = None, name: Name = ""): def __init__(self, src0: Optional[SignalSourceProvider] = None, src1: Optional[SignalSourceProvider] = None, src2: Optional[SignalSourceProvider] = None, name: Name = ""):
super().__init__(input_count = 3, output_count = 1, name = name, input_sources = [src0, src1]) super().__init__(input_count = 3, output_count = 1, name = name, input_sources = [src0, src1, src2])
@property @property
def type_name(self) -> TypeName: def type_name(self) -> TypeName:
......
...@@ -329,7 +329,7 @@ class AbstractOperation(Operation, AbstractGraphComponent): ...@@ -329,7 +329,7 @@ class AbstractOperation(Operation, AbstractGraphComponent):
# Import here to avoid circular imports. # Import here to avoid circular imports.
from b_asic.special_operations import Input from b_asic.special_operations import Input
try: try:
result = self.evaluate([Input()] * self.input_count) result = self.evaluate(*[Input()] * self.input_count)
if isinstance(result, collections.Sequence) and all(isinstance(e, Operation) for e in result): if isinstance(result, collections.Sequence) and all(isinstance(e, Operation) for e in result):
return result return result
if isinstance(result, Operation): if isinstance(result, Operation):
...@@ -338,7 +338,7 @@ class AbstractOperation(Operation, AbstractGraphComponent): ...@@ -338,7 +338,7 @@ class AbstractOperation(Operation, AbstractGraphComponent):
pass pass
except ValueError: except ValueError:
pass pass
return [self] return [self]
@property @property
def neighbors(self) -> Iterable[GraphComponent]: def neighbors(self) -> Iterable[GraphComponent]:
......
...@@ -4,8 +4,7 @@ B-ASIC test suite for the core operations. ...@@ -4,8 +4,7 @@ B-ASIC test suite for the core operations.
from b_asic import \ from b_asic import \
Constant, Addition, Subtraction, Multiplication, ConstantMultiplication, Division, \ Constant, Addition, Subtraction, Multiplication, ConstantMultiplication, Division, \
SquareRoot, ComplexConjugate, Max, Min, Absolute, Butterfly SquareRoot, ComplexConjugate, Max, Min, Absolute, Butterfly, MAD
class TestConstant: class TestConstant:
def test_constant_positive(self): def test_constant_positive(self):
...@@ -164,3 +163,14 @@ class TestButterfly: ...@@ -164,3 +163,14 @@ class TestButterfly:
test_operation = Butterfly() test_operation = Butterfly()
assert test_operation.evaluate_output(0, [2+1j, 3-2j]) == 5-1j assert test_operation.evaluate_output(0, [2+1j, 3-2j]) == 5-1j
assert test_operation.evaluate_output(1, [2+1j, 3-2j]) == -1+3j assert test_operation.evaluate_output(1, [2+1j, 3-2j]) == -1+3j
def test_split(self):
but1 = Butterfly()
split = but1.split()
assert len(split) == 2
class TestMad:
def test_split_mad(self):
mad1 = MAD()
res = mad1.split()
assert len(res) == 2
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment