From 5a82356d84a762d632702a031e1d0d049a65b655 Mon Sep 17 00:00:00 2001
From: Yaman Umuroglu <yamanu@xilinx.com>
Date: Mon, 4 Nov 2019 15:15:53 +0000
Subject: [PATCH] [Test] make test_renaming stronger

---
 tests/test_renaming.py | 35 +++++++++++++++++++++++++++++++----
 1 file changed, 31 insertions(+), 4 deletions(-)

diff --git a/tests/test_renaming.py b/tests/test_renaming.py
index 4c7b5d805..c13f7ee06 100644
--- a/tests/test_renaming.py
+++ b/tests/test_renaming.py
@@ -1,5 +1,10 @@
 from pkgutil import get_data
 
+import numpy as np
+import onnx
+import onnx.numpy_helper as np_helper
+
+import finn.core.onnx_exec as oxe
 import finn.transformation.general as tg
 import finn.transformation.infer_shapes as si
 from finn.core.modelwrapper import ModelWrapper
@@ -12,9 +17,31 @@ def test_renaming():
     model = model.transform_single(si.infer_shapes)
     model = model.transform_single(tg.give_unique_node_names)
     model = model.transform_single(tg.give_readable_tensor_names)
+    # do some basic checks
+    assert model.graph.input[0].name == "global_in"
+    assert model.graph.output[0].name == "global_out"
+    assert model.graph.node[1].op_type == "Conv"
+    assert model.graph.node[1].name == "Conv_0"
+    assert model.graph.node[1].input[1] == "Conv_0_param0"
+    assert model.graph.node[6].op_type == "Add"
+    assert model.graph.node[6].name == "Add_1"
+    assert model.graph.node[6].input[1] == "Add_1_param0"
+    # ensure running renaming twice still yields the same names
+    model = model.transform_single(tg.give_unique_node_names)
+    model = model.transform_single(tg.give_readable_tensor_names)
     assert model.graph.node[1].op_type == "Conv"
-    assert model.graph.node[1].name == "Conv_1"
-    assert model.graph.node[1].input[1] == "Conv_1_param0"
+    assert model.graph.node[1].name == "Conv_0"
+    assert model.graph.node[1].input[1] == "Conv_0_param0"
     assert model.graph.node[6].op_type == "Add"
-    assert model.graph.node[6].name == "Add_6"
-    assert model.graph.node[6].input[1] == "Add_6_param0"
+    assert model.graph.node[6].name == "Add_1"
+    assert model.graph.node[6].input[1] == "Add_1_param0"
+    # run renamed model to make sure we did not mess up the topology
+    raw_i = get_data("finn", "data/onnx/mnist-conv/test_data_set_0/input_0.pb")
+    raw_o = get_data("finn", "data/onnx/mnist-conv/test_data_set_0/output_0.pb")
+    input_tensor = onnx.load_tensor_from_string(raw_i)
+    output_tensor = onnx.load_tensor_from_string(raw_o)
+    input_dict = {"global_in": np_helper.to_array(input_tensor)}
+    output_dict = oxe.execute_onnx(model, input_dict)
+    assert np.isclose(
+        np_helper.to_array(output_tensor), output_dict["global_out"], atol=1e-3
+    ).all()
-- 
GitLab