diff options
Diffstat (limited to 'native/utils/testing/test_data_generator.h')
-rw-r--r-- | native/utils/testing/test_data_generator.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/native/utils/testing/test_data_generator.h b/native/utils/testing/test_data_generator.h index c23b5dc..c2d3fff 100644 --- a/native/utils/testing/test_data_generator.h +++ b/native/utils/testing/test_data_generator.h @@ -19,8 +19,10 @@ #include <algorithm> #include <iostream> +#include <limits> #include <random> #include <string> +#include <type_traits> #include "utils/strings/stringpiece.h" @@ -32,8 +34,11 @@ class TestDataGenerator { template <typename T, typename std::enable_if_t<std::is_integral<T>::value>* = nullptr> T generate() { - std::uniform_int_distribution<T> dist; - return dist(random_engine_); + typedef typename std::conditional<sizeof(T) >= sizeof(int16_t), T, + std::int16_t>::type rand_type; + std::uniform_int_distribution<rand_type> dist( + std::numeric_limits<T>::min(), std::numeric_limits<T>::max()); + return static_cast<T>(dist(random_engine_)); } template <> |