COMPMID-2819: Avoid overflows in pooling shape calculation

Pooling shape calculator was performing operations in the unsigned
domain leading to overflows in irregular shapes.
Thus, we perform all operations in the signed domain and we get the
maximum between the given shape and 1, returning always a valid tensor.

Signed-off-by: Georgios Pinitas <georgios.pinitas@arm.com>
Change-Id: Ia95d7e54929c8bc29e99dc80a61065e403b29a94
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/2467
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Giorgio Arena <giorgio.arena@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
diff --git a/tests/datasets/PoolingLayerDataset.h b/tests/datasets/PoolingLayerDataset.h
index 56fcdc3..943279e 100644
--- a/tests/datasets/PoolingLayerDataset.h
+++ b/tests/datasets/PoolingLayerDataset.h
@@ -106,6 +106,7 @@
     PoolingLayerDatasetSpecial()
     {
         // Special cases
+        add_config(TensorShape(2U, 3U, 4U, 1U), PoolingLayerInfo(PoolingType::AVG, Size2D(3, 3), DataLayout::NCHW, PadStrideInfo(3, 3, 0, 0), true));
         add_config(TensorShape(60U, 52U, 3U, 2U), PoolingLayerInfo(PoolingType::AVG, Size2D(100, 100), DataLayout::NCHW, PadStrideInfo(5, 5, 50, 50), true));
         // Asymmetric padding
         add_config(TensorShape(112U, 112U, 32U), PoolingLayerInfo(PoolingType::MAX, 3, DataLayout::NCHW, PadStrideInfo(2, 2, 0, 1, 0, 1, DimensionRoundingType::FLOOR)));