generated from Sithas/conan_template
TASK00 - Добавление функции генерации рандомного числа
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <random>
|
||||
|
||||
#include <boost/algorithm/string.hpp>
|
||||
#include <boost/format.hpp>
|
||||
@@ -115,4 +116,13 @@ std::string ToHex(std::byte* src, size_t len)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
uint64_t Random()
|
||||
{
|
||||
std::random_device device;
|
||||
std::mt19937 random_generator(device());
|
||||
std::uniform_int_distribution<std::mt19937::result_type> dist(0,UINT64_MAX);
|
||||
|
||||
return dist(random_generator);
|
||||
}
|
||||
} // namespace uad
|
||||
|
||||
@@ -11,4 +11,6 @@ std::string PathCat(boost::beast::string_view base, boost::beast::string_view pa
|
||||
void Fail(boost::beast::error_code ec, char const* what);
|
||||
|
||||
std::string ToHex(std::byte* src, size_t len);
|
||||
|
||||
uint64_t Random();
|
||||
} // namespace uad
|
||||
|
||||
@@ -52,3 +52,39 @@ BOOST_AUTO_TEST_CASE(ToHex_should_return_empty_string_if_no_arr_or_no_length)
|
||||
BOOST_CHECK_EQUAL(ToHex(&a1, 0), ""s);
|
||||
BOOST_CHECK_EQUAL(ToHex(nullptr, 1), ""s);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(Random_should_return_different_numbers_on_multiple_calls)
|
||||
{
|
||||
auto a1 = Random();
|
||||
auto a2 = Random();
|
||||
auto a3 = Random();
|
||||
auto a4 = Random();
|
||||
auto a5 = Random();
|
||||
auto a6 = Random();
|
||||
auto a7 = Random();
|
||||
auto a8 = Random();
|
||||
auto a9 = Random();
|
||||
auto a10 = Random();
|
||||
|
||||
auto b1 = Random();
|
||||
auto b2 = Random();
|
||||
auto b3 = Random();
|
||||
auto b4 = Random();
|
||||
auto b5 = Random();
|
||||
auto b6 = Random();
|
||||
auto b7 = Random();
|
||||
auto b8 = Random();
|
||||
auto b9 = Random();
|
||||
auto b10 = Random();
|
||||
|
||||
BOOST_CHECK(a1 != b1);
|
||||
BOOST_CHECK(a2 != b2);
|
||||
BOOST_CHECK(a3 != b3);
|
||||
BOOST_CHECK(a4 != b4);
|
||||
BOOST_CHECK(a5 != b5);
|
||||
BOOST_CHECK(a6 != b6);
|
||||
BOOST_CHECK(a7 != b7);
|
||||
BOOST_CHECK(a8 != b8);
|
||||
BOOST_CHECK(a9 != b9);
|
||||
BOOST_CHECK(a10 != b10);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user