From 7d9c0de76879777e298ed09984f19560c041a07c Mon Sep 17 00:00:00 2001
From: Arvid Westerlund <arvwe160@student.liu.se>
Date: Tue, 12 May 2020 15:44:12 +0200
Subject: [PATCH] Added fixtures for testing of unfolding. Fixed unused output
 in fixture precedence_sfg_registers_and_constants

---
 test/fixtures/signal_flow_graph.py | 41 +++++++++++++++++++++++++++++-
 1 file changed, 40 insertions(+), 1 deletion(-)

diff --git a/test/fixtures/signal_flow_graph.py b/test/fixtures/signal_flow_graph.py
index 08d9e8aa..1d691c40 100644
--- a/test/fixtures/signal_flow_graph.py
+++ b/test/fixtures/signal_flow_graph.py
@@ -88,6 +88,45 @@ def sfg_delay():
     out1 = Output(reg1)
     return SFG(inputs=[in1], outputs=[out1])
 
+@pytest.fixture
+def sfg_simple_accumulator():
+    """Valid SFG with one input and one output. With feedback. Explained in lecture 5.
+    in>--->add>-------o--->out
+            ^         |
+            |         |
+            |--<T<-----
+    """
+    data_in = Input()
+    reg = Register()
+    add = data_in + reg
+    reg.input(0).connect(add)
+    data_out = Output(add)
+    return SFG(inputs=[data_in], outputs=[data_out], name="simple_accumulator")
+
+@pytest.fixture
+def sfg_unfolded_simple_accumulator():
+    """Valid unfolded simple accumulator SFG with two inputs and two outputs. With feedback. Explained in lecture 5.
+    in(2n)>----->add>---o------->out(2n)
+                  ^     |
+                  |     |
+                  ^     |
+                  T<----|----
+                        |   |
+                  |------   |      
+                  v         ^
+    in(2n+1)>--->add> ------o--->out(2n+1)
+    """
+    in_2n  = Input()
+    in_2n1 = Input()
+
+    add_upper = Addition()
+    add_lower = in_2n1 + add_upper
+    reg = Register(add_lower)
+    add_upper.input(0).connect(in_2n)
+    add_upper.input(1).connect(reg)
+    out_2n  = Output(add_upper)
+    out_2n1 = Output(add_lower)
+    return SFG(inputs=[in_2n, in_2n1], outputs=[out_2n, out_2n1], name="unfolded_simple_accumulator")
 
 @pytest.fixture
 def sfg_accumulator():
@@ -177,4 +216,4 @@ def precedence_sfg_registers_and_constants():
     out1 = Output(bfly1.output(0), "OUT1")
     out2 = Output(bfly1.output(1), "OUT2")
 
-    return SFG(inputs=[in1], outputs=[out1], name="SFG")
+    return SFG(inputs=[in1], outputs=[out1, out2], name="SFG")
-- 
GitLab