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