From 033f9ee112b3857039ca759e314a6597030b5df6 Mon Sep 17 00:00:00 2001 From: Kevin <Kevin> Date: Tue, 28 Apr 2020 14:37:09 +0200 Subject: [PATCH] changed split function and MAD operation --- b_asic/core_operations.py | 4 ++-- b_asic/operation.py | 4 ++-- test/test_core_operations.py | 14 ++++++++++++-- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/b_asic/core_operations.py b/b_asic/core_operations.py index c43a12c7..3741d902 100644 --- a/b_asic/core_operations.py +++ b/b_asic/core_operations.py @@ -235,8 +235,8 @@ class MAD(AbstractOperation): TODO: More info. """ - def __init__(self, src0: Optional[SignalSourceProvider] = None, src1: Optional[SignalSourceProvider] = None, name: Name = ""): - super().__init__(input_count = 3, output_count = 1, name = name, input_sources = [src0, src1]) + 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, src2]) @property def type_name(self) -> TypeName: diff --git a/b_asic/operation.py b/b_asic/operation.py index a0d0f48a..e5f91fe7 100644 --- a/b_asic/operation.py +++ b/b_asic/operation.py @@ -329,7 +329,7 @@ class AbstractOperation(Operation, AbstractGraphComponent): # Import here to avoid circular imports. from b_asic.special_operations import Input 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): return result if isinstance(result, Operation): @@ -338,7 +338,7 @@ class AbstractOperation(Operation, AbstractGraphComponent): pass except ValueError: pass - return [self] + return [self] @property def neighbors(self) -> Iterable[GraphComponent]: diff --git a/test/test_core_operations.py b/test/test_core_operations.py index 4d0039b5..1482938e 100644 --- a/test/test_core_operations.py +++ b/test/test_core_operations.py @@ -4,8 +4,7 @@ B-ASIC test suite for the core operations. from b_asic import \ Constant, Addition, Subtraction, Multiplication, ConstantMultiplication, Division, \ - SquareRoot, ComplexConjugate, Max, Min, Absolute, Butterfly - + SquareRoot, ComplexConjugate, Max, Min, Absolute, Butterfly, MAD class TestConstant: def test_constant_positive(self): @@ -164,3 +163,14 @@ class TestButterfly: test_operation = Butterfly() assert test_operation.evaluate_output(0, [2+1j, 3-2j]) == 5-1j 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 -- GitLab