Revert "Revert "IVGCVSW-6650 Refactor ExecuteNetwork""

This reverts commit 1a7f033768acb27da11503bd29abb468d2e77f9e.

List of fixes to be able to add this code again:
* "emplacing_back" the vector inputTensors into the vector m_InputTensorsVec outside the for loop
* GetIOInfo() uses IOptimizedNetwork instead of INetwork, where the infered shapes are not saved
* Add missing data type Signed32 to SetupInputsAndOutputs()
* PrintOutputTensors() prints the actual output without dequantizing
* Add profilingDetailsMethod as input in networkProperties in ArmNNExecutor constructor
* Fix typos



Change-Id: I91de166f87228282db3efa27431fe91458834442

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: Ic6634d48892d11e5f146cdf285e1e333e93e9937
Signed-off-by: Francis Murtagh <francis.murtagh@arm.com>
diff --git a/tests/ExecuteNetwork/IExecutor.hpp b/tests/ExecuteNetwork/IExecutor.hpp
new file mode 100644
index 0000000..4ed6cbd
--- /dev/null
+++ b/tests/ExecuteNetwork/IExecutor.hpp
@@ -0,0 +1,22 @@
+//
+// Copyright © 2022 Arm Ltd and Contributors. All rights reserved.
+// SPDX-License-Identifier: MIT
+//
+
+#pragma once
+#include <vector>
+
+/// IExecutor executes a network
+class IExecutor
+{
+public:
+    /// Execute the given network
+    /// @return std::vector<const void*> A type erased vector of the outputs,
+    /// that can be compared with the output of another IExecutor
+    virtual std::vector<const void*> Execute()  = 0;
+    /// Print available information about the network
+    virtual void PrintNetworkInfo() = 0;
+    /// Compare the output with the result of another IExecutor
+    virtual void CompareAndPrintResult(std::vector<const void*> otherOutput) = 0;
+    virtual ~IExecutor(){};
+};