COMPMID-617: Adds validation to CLPoolingLayer

Change-Id: Ied405a9c0e9746598d03ac6a944ad87e9b6494eb
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/93680
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/utils/TypePrinter.h b/utils/TypePrinter.h
index 4fd3c0c..d956d9c 100644
--- a/utils/TypePrinter.h
+++ b/utils/TypePrinter.h
@@ -27,6 +27,7 @@
 #include "arm_compute/core/Dimensions.h"
 #include "arm_compute/core/Error.h"
 #include "arm_compute/core/Strides.h"
+#include "arm_compute/core/TensorInfo.h"
 #include "arm_compute/core/Types.h"
 
 #include "tests/Types.h"
@@ -553,6 +554,17 @@
     return os;
 }
 
+/** Formatted output of the TensorInfo type. */
+inline std::string to_string(const TensorInfo &info)
+{
+    std::stringstream str;
+    str << "{Shape=" << info.tensor_shape() << ","
+        << "Type=" << info.data_type() << ","
+        << "Channels=" << info.num_channels() << ","
+        << "FixedPointPos=" << info.fixed_point_position() << "}";
+    return str.str();
+}
+
 //FIXME: Check why this doesn't work and the TensorShape and Coordinates overload are needed
 template <typename T>
 inline std::string to_string(const Dimensions<T> &dimensions)