From 53f37b8a7d222d5d142e4285bb71d3efb955b3f5 Mon Sep 17 00:00:00 2001
From: auphelia <jakobapk@web.de>
Date: Wed, 27 Nov 2019 11:41:25 +0000
Subject: [PATCH] [Test] Added all signed test case

---
 .../fpgadataflow/test_fpgadataflow_fclayer.py | 31 +++++++++++++++++++
 1 file changed, 31 insertions(+)

diff --git a/tests/fpgadataflow/test_fpgadataflow_fclayer.py b/tests/fpgadataflow/test_fpgadataflow_fclayer.py
index d6650f18b..400d45821 100644
--- a/tests/fpgadataflow/test_fpgadataflow_fclayer.py
+++ b/tests/fpgadataflow/test_fpgadataflow_fclayer.py
@@ -149,5 +149,36 @@ def test_fpgadataflow_fclayer_all_bipolar():
 
             assert (produced.reshape(expected.shape) == expected).all()
 
+def test_fpgadataflow_fclayer_all_signed():
+    mh = 8
+    mw = 8
+    wdt = idt = odt = DataType.INT2
+    tdt = DataType.INT32
+    # generate weights
+    W = gen_FINN_dt_tensor(wdt, [mh, mw])
+    # single global threshold at zero
+    T = np.zeros((1, 1))
+
+    # generate input data
+    x = gen_FINN_dt_tensor(idt, mw)
+
+    # set up layers with different pe and simd
+    pe_values = [1, int(mh/2), mh]
+    simd_values = [1, int(mw/2), mw]
+    for pe in pe_values:
+        for simd in simd_values:
+            model = make_single_fclayer_modelwrapper(W, pe, simd, wdt, idt, odt, T, tdt)
+            # prepare input data
+            input_dict = prepare_inputs(model, x, idt)
+
+            # execute model
+            produced = oxe.execute_onnx(model, input_dict)["outp"]
+
+            # expected output
+            oshape = model.get_tensor_shape("outp")
+            y = np.dot(W, x).reshape(oshape.shape)
+            expected = multithreshold(y.reshape(1, mh), T)
+
+            assert (produced.reshape(expected.shape) == expected).all()
 
 
-- 
GitLab