COMPMID-424 Add validation tests for Gaussian5x5

* Fix apply_2d_spatial_filter to use double as intermediate type
* Fix tensor_elem_at to use random value if on border and border_mode is
UNDEFINED

Change-Id: I7feea23c4664cc63c5bab936566dc92b98c723b9
Reviewed-on: http://mpd-gerrit.cambridge.arm.com/78905
Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com>
Reviewed-by: Moritz Pflanzer <moritz.pflanzer@arm.com>
diff --git a/tests/validation/ReferenceCPP.h b/tests/validation/ReferenceCPP.h
index b6fd901..e1b71c5 100644
--- a/tests/validation/ReferenceCPP.h
+++ b/tests/validation/ReferenceCPP.h
@@ -169,6 +169,14 @@
      * @param[in]  constant_border_value Constant border value if @p border_mode is BorderMode::CONSTANT
      */
     static void gaussian3x3(const RawTensor &src, RawTensor &dst, BorderMode border_mode, uint8_t constant_border_value);
+    /** Function to compute gaussian5x5 filtered result tensor.
+     *
+     * @param[in]  src                   Input tensor.
+     * @param[out] dst                   Result tensor.
+     * @param[in]  border_mode           Border mode
+     * @param[in]  constant_border_value Constant border value if @p border_mode is BorderMode::CONSTANT
+     */
+    static void gaussian5x5(const RawTensor &src, RawTensor &dst, BorderMode border_mode, uint8_t constant_border_value);
     /** Compute GEMM function.
      *
      * @param[in]  src1  First input tensor