COMPMID-556 - Fix Warp Perspective validation

Change-Id: I6504fb1e2d3d2b454a043d7157112891cef272a3
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/95045
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Anthony Barbier <anthony.barbier@arm.com>
diff --git a/tests/validation/CL/WarpPerspective.cpp b/tests/validation/CL/WarpPerspective.cpp
index 2edf911..a868e16 100644
--- a/tests/validation/CL/WarpPerspective.cpp
+++ b/tests/validation/CL/WarpPerspective.cpp
@@ -105,20 +105,14 @@
                                                                                                                        framework::dataset::make("InterpolationPolicy", { InterpolationPolicy::NEAREST_NEIGHBOR, InterpolationPolicy::BILINEAR })),
                                                                                                                datasets::BorderModes()))
 {
-    // Create the valid mask Tensor
-    RawTensor valid_mask(_reference.shape(), _reference.data_type());
-
-    validate(CLAccessor(_target), _reference, valid_mask, tolerance_value, tolerance_number);
+    validate(CLAccessor(_target), _reference, _valid_mask, tolerance_value, tolerance_number);
 }
 FIXTURE_DATA_TEST_CASE(RunLarge, CLWarpPerspectiveFixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), framework::dataset::make("DataType",
                                                                                                                      DataType::U8)),
                                                                                                                      framework::dataset::make("InterpolationPolicy", { InterpolationPolicy::NEAREST_NEIGHBOR, InterpolationPolicy::BILINEAR })),
                                                                                                              datasets::BorderModes()))
 {
-    // Create the valid mask Tensor
-    RawTensor valid_mask{ _reference.shape(), _reference.data_type() };
-
-    validate(CLAccessor(_target), _reference, valid_mask, tolerance_value, tolerance_number);
+    validate(CLAccessor(_target), _reference, _valid_mask, tolerance_value, tolerance_number);
 }
 
 TEST_SUITE_END()
diff --git a/tests/validation/NEON/WarpPerspective.cpp b/tests/validation/NEON/WarpPerspective.cpp
index 45d3a0b..804c080 100644
--- a/tests/validation/NEON/WarpPerspective.cpp
+++ b/tests/validation/NEON/WarpPerspective.cpp
@@ -106,20 +106,14 @@
                                                                                                                        framework::dataset::make("InterpolationPolicy", { InterpolationPolicy::NEAREST_NEIGHBOR, InterpolationPolicy::BILINEAR })),
                                                                                                                datasets::BorderModes()))
 {
-    // Create the valid mask Tensor
-    RawTensor valid_mask(_reference.shape(), _reference.data_type());
-
-    validate(Accessor(_target), _reference, valid_mask, tolerance_value, tolerance_number);
+    validate(Accessor(_target), _reference, _valid_mask, tolerance_value, tolerance_number);
 }
 FIXTURE_DATA_TEST_CASE(RunLarge, NEWarpPerspectiveFixture<uint8_t>, framework::DatasetMode::NIGHTLY, combine(combine(combine(datasets::LargeShapes(), framework::dataset::make("DataType",
                                                                                                                      DataType::U8)),
                                                                                                                      framework::dataset::make("InterpolationPolicy", { InterpolationPolicy::NEAREST_NEIGHBOR, InterpolationPolicy::BILINEAR })),
                                                                                                              datasets::BorderModes()))
 {
-    // Create the valid mask Tensor
-    RawTensor valid_mask{ _reference.shape(), _reference.data_type() };
-
-    validate(Accessor(_target), _reference, valid_mask, tolerance_value, tolerance_number);
+    validate(Accessor(_target), _reference, _valid_mask, tolerance_value, tolerance_number);
 }
 
 TEST_SUITE_END()
diff --git a/tests/validation/fixtures/WarpPerspectiveFixture.h b/tests/validation/fixtures/WarpPerspectiveFixture.h
index c77efbd..1a6d6c0 100644
--- a/tests/validation/fixtures/WarpPerspectiveFixture.h
+++ b/tests/validation/fixtures/WarpPerspectiveFixture.h
@@ -70,9 +70,9 @@
 
 protected:
     template <typename U>
-    void fill(U &&tensor, int i = 0)
+    void fill(U &&tensor)
     {
-        library->fill_tensor_uniform(tensor, i);
+        library->fill_tensor_uniform(tensor, 0);
     }
 
     TensorType compute_target(const TensorShape &shape, const TensorShape &vmask_shape, const float *matrix, InterpolationPolicy policy, BorderMode border_mode, uint8_t constant_border_value,
@@ -112,19 +112,21 @@
 
         // Create reference
         SimpleTensor<T> src{ shape, data_type };
-        SimpleTensor<T> valid_mask{ vmask_shape, data_type };
+
+        // Create the valid mask Tensor
+        _valid_mask = SimpleTensor<T>(shape, data_type);
 
         // Fill reference
-        fill(src, 0);
-        fill(valid_mask, 1);
+        fill(src);
 
         // Compute reference
-        return reference::warp_perspective<T>(src, valid_mask, matrix, policy, border_mode, constant_border_value);
+        return reference::warp_perspective<T>(src, _valid_mask, matrix, policy, border_mode, constant_border_value);
     }
 
     TensorType      _target{};
     SimpleTensor<T> _reference{};
     BorderMode      _border_mode{};
+    SimpleTensor<T> _valid_mask{};
 };
 } // namespace validation
 } // namespace test