From 8aa7140f19ecbdf13919ace409309a0e93b05cbf Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Wed, 7 Jun 2017 17:28:11 +0200 Subject: [PATCH] Avoid the use of rand() --- src/tests/system-tests/ttff_gps_l1.cc | 15 +++++++++------ .../tracking/cpu_multicorrelator_test.cc | 6 +++++- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/tests/system-tests/ttff_gps_l1.cc b/src/tests/system-tests/ttff_gps_l1.cc index 2d2155e4a..37a21d9d2 100644 --- a/src/tests/system-tests/ttff_gps_l1.cc +++ b/src/tests/system-tests/ttff_gps_l1.cc @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -515,9 +516,10 @@ TEST_F(TTFF_GPS_L1_CA_Test, ColdStart) std::cout << "Just finished measurement " << num_measurements << ", which took " << ttff << " seconds." << std::endl; if(n < FLAGS_num_measurements - 1) { - std::srand(std::time(0)); // use current time as seed for random generator - int random_variable = std::rand(); - float random_variable_0_1 = static_cast(random_variable) / static_cast( RAND_MAX ); + std::random_device r; + std::default_random_engine e1(r()); + std::uniform_real_distribution uniform_dist(0, 1); + float random_variable_0_1 = uniform_dist(e1); int random_delay_s = static_cast(random_variable_0_1 * 25.0); std::cout << "Waiting a random amount of time (from 5 to 30 s) to start a new measurement... " << std::endl; std::cout << "This time will wait " << random_delay_s + 5 << " s." << std::endl << std::endl; @@ -599,9 +601,10 @@ TEST_F(TTFF_GPS_L1_CA_Test, HotStart) std::cout << "Just finished measurement " << num_measurements << ", which took " << ttff << " seconds." << std::endl; if(n < FLAGS_num_measurements - 1) { - std::srand(std::time(0)); // use current time as seed for random generator - int random_variable = std::rand(); - float random_variable_0_1 = static_cast(random_variable) / static_cast( RAND_MAX ); + std::random_device r; + std::default_random_engine e1(r()); + std::uniform_real_distribution uniform_dist(0, 1); + float random_variable_0_1 = uniform_dist(e1); int random_delay_s = static_cast(random_variable_0_1 * 25.0); std::cout << "Waiting a random amount of time (from 5 to 30 s) to start new measurement... " << std::endl; std::cout << "This time will wait " << random_delay_s + 5 << " s." << std::endl << std::endl; diff --git a/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc b/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc index e567953c5..5e65cf0db 100644 --- a/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc +++ b/src/tests/unit-tests/signal-processing-blocks/tracking/cpu_multicorrelator_test.cc @@ -31,6 +31,7 @@ #include #include +#include #include #include #include "cpu_multicorrelator.h" @@ -100,9 +101,12 @@ TEST(CPU_multicorrelator_test, MeasureExecutionTime) // generate local reference (1 sample per chip) gps_l1_ca_code_gen_complex(d_ca_code, 1, 0); // generate inut signal + std::random_device r; + std::default_random_engine e1(r()); + std::uniform_real_distribution uniform_dist(0, 1); for (int n=0;n<2*d_vector_length;n++) { - in_cpu[n]=std::complex(static_cast (rand())/static_cast(RAND_MAX),static_cast (rand())/static_cast(RAND_MAX)); + in_cpu[n]=std::complex(uniform_dist(e1), uniform_dist(e1)); } for (int n=0;n