Review all shapes in datasets to account for padding removal Part 2

* Fix validate compare_dimensions to account for cases where 1D tensor
  permuted into a 3D tensor

* Add the following configurations to stress padding removal:
    * size = 1
    * size = multiple of processing size
    * size = non-multiple of processing size

Partially resolves COMPMID-3865

Change-Id: Iee0de4c9e72b3413c0807e2c86bc2331911a4c6f
Signed-off-by: SiCong Li <sicong.li@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/4393
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Reviewed-by: Michele Di Giorgio <michele.digiorgio@arm.com>
Reviewed-by: Georgios Pinitas <georgios.pinitas@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
diff --git a/tests/validation/Validation.h b/tests/validation/Validation.h
index c2df1c3..a75562b 100644
--- a/tests/validation/Validation.h
+++ b/tests/validation/Validation.h
@@ -157,11 +157,15 @@
     }
     else
     {
-        // In case a 2D shape becomes 3D after permutation, the permuted tensor will have one dimension more and the first value will be 1
-        if((dimensions1.num_dimensions() != dimensions2.num_dimensions()) && ((dimensions1.num_dimensions() != (dimensions2.num_dimensions() + 1)) || (dimensions1.x() != 1)))
+        // In case a 1D/2D shape becomes 3D after permutation, the permuted tensor will have two/one dimension(s) more and the first (two) value(s) will be 1
+        // clang-format off
+        if((dimensions1.num_dimensions() != dimensions2.num_dimensions()) &&
+           ((dimensions1.num_dimensions() != (dimensions2.num_dimensions() + 1)) || (dimensions1.x() != 1)) &&
+           ((dimensions1.num_dimensions() != (dimensions2.num_dimensions() + 2)) || (dimensions1.x() != 1) || (dimensions1.y() != 1)))
         {
             return false;
         }
+        // clang-format on
 
         if((dimensions1[0] != dimensions2[2]) || (dimensions1[1] != dimensions2[0]) || (dimensions1[2] != dimensions2[1]))
         {