aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorGian Marco Iodice <gianmarco.iodice@arm.com>2017-09-25 11:31:42 +0100
committerAnthony Barbier <anthony.barbier@arm.com>2018-11-02 16:35:24 +0000
commitb11e269be7a92197567ff1c3a532c1991180c810 (patch)
tree63483a3dabaed6b2e4e0f7c93f72765076e10ce3 /tests
parent578c8f5d8acf6fa8cc86351ca6ff9da441c8ce1c (diff)
downloadComputeLibrary-b11e269be7a92197567ff1c3a532c1991180c810.tar.gz
COMPMID-417 - Fix bad_alloc in ScaleFixture
Change-Id: Ifc0b686a30512adbe3ec7e0ec28dd2990ccac347 Reviewed-on: http://mpd-gerrit.cambridge.arm.com/88955 Tested-by: Kaizen <jeremy.johnson+kaizengerrit@arm.com> Reviewed-by: Moritz Pflanzer <moritz.pflanzer@arm.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/validation/fixtures/ScaleFixture.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/tests/validation/fixtures/ScaleFixture.h b/tests/validation/fixtures/ScaleFixture.h
index 6fa810aa96..476985e066 100644
--- a/tests/validation/fixtures/ScaleFixture.h
+++ b/tests/validation/fixtures/ScaleFixture.h
@@ -46,15 +46,22 @@ public:
template <typename...>
void setup(TensorShape shape, DataType data_type, InterpolationPolicy policy, BorderMode border_mode)
{
+ constexpr float max_width = 8192.0f;
+ constexpr float max_height = 6384.0f;
+
_shape = shape;
_policy = policy;
_border_mode = border_mode;
_data_type = data_type;
- std::mt19937 generator(library->seed());
- std::uniform_real_distribution<float> distribution_float(0.25, 4);
- const float scale_x = distribution_float(generator);
- const float scale_y = distribution_float(generator);
+ std::mt19937 generator(library->seed());
+ std::uniform_real_distribution<float> distribution_float(0.25, 3);
+ float scale_x = distribution_float(generator);
+ float scale_y = distribution_float(generator);
+
+ scale_x = ((shape.x() * scale_x) > max_width) ? (max_width / shape.x()) : scale_x;
+ scale_y = ((shape.y() * scale_y) > max_height) ? (max_height / shape.y()) : scale_y;
+
std::uniform_int_distribution<uint8_t> distribution_u8(0, 255);
T constant_border_value = static_cast<T>(distribution_u8(generator));