diff --git a/tests/fpgadataflow/test_code_gen_trafo.py b/tests/fpgadataflow/test_code_gen_trafo.py
new file mode 100644
index 0000000000000000000000000000000000000000..de7f022a00d907f5646959e240efac399c214088
--- /dev/null
+++ b/tests/fpgadataflow/test_code_gen_trafo.py
@@ -0,0 +1,112 @@
+import numpy as np
+from onnx import TensorProto, helper
+
+import finn.transformation.code_gen_transformation as cg_trafo
+from finn.core.datatype import DataType
+from finn.core.modelwrapper import ModelWrapper
+
+
+def test_code_gen_trafo():
+    inp = helper.make_tensor_value_info("in", TensorProto.FLOAT, [2, 2, 4, 4])
+    outp = helper.make_tensor_value_info("out", TensorProto.FLOAT, [2, 2, 2, 2])
+
+    MaxPool_batch_node = helper.make_node(
+        "StreamingMaxPool_Batch",
+        ["in"],
+        ["out"],
+        domain="finn",
+        backend="fpgadataflow",
+        code_gen_dir="",
+        executable_path="",
+        ImgDim=4,
+        PoolDim=2,
+        NumChannels=2,
+    )
+
+    graph = helper.make_graph(
+        nodes=[MaxPool_batch_node],
+        name="max_pool_batch_graph",
+        inputs=[inp],
+        outputs=[outp],
+    )
+    model = helper.make_model(graph, producer_name="finn-hls-onnx-model")
+    model = ModelWrapper(model)
+
+    # set the tensor datatypes (in this case: all to bipolar)
+    for tensor in graph.input:
+        model.set_tensor_datatype(tensor.name, DataType["BIPOLAR"])
+    for tensor in graph.output:
+        model.set_tensor_datatype(tensor.name, DataType["BIPOLAR"])
+
+    input_tensor = np.asarray(
+        [
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            0,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+            1,
+        ],
+        dtype=np.float32,
+    ).reshape(2, 2, 4, 4)
+
+    input_dict = {"in": input_tensor}
+    # cg_trafo.