00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #include <gtest/gtest.h>
00031 #include <sys/time.h>
00032
00033 #include <vector>
00034 #include "filters/realtime_circular_buffer.h"
00035
00036 using namespace filters ;
00037
00038 void seed_rand()
00039 {
00040
00041 timeval temp_time_struct;
00042 gettimeofday(&temp_time_struct,NULL);
00043 srand(temp_time_struct.tv_usec);
00044 };
00045
00046 void generate_rand_vectors(double scale, uint64_t runs, std::vector<double>& xvalues, std::vector<double>& yvalues, std::vector<double>&zvalues)
00047 {
00048 seed_rand();
00049 for ( uint64_t i = 0; i < runs ; i++ )
00050 {
00051 xvalues[i] = 1.0 * ((double) rand() - (double)RAND_MAX /2.0) /(double)RAND_MAX;
00052 yvalues[i] = 1.0 * ((double) rand() - (double)RAND_MAX /2.0) /(double)RAND_MAX;
00053 zvalues[i] = 1.0 * ((double) rand() - (double)RAND_MAX /2.0) /(double)RAND_MAX;
00054 }
00055 }
00056
00057 TEST(RealtimeCircularBuffer, InitializationScalar)
00058 {
00059
00060 RealtimeCircularBuffer<double> buf(3, 0);
00061 for (unsigned int i = 0; i < buf.size(); i ++)
00062 {
00063 EXPECT_EQ(buf[i], 0);
00064 }
00065 }
00066 TEST(RealtimeCircularBuffer, InitializationVector)
00067 {
00068 std::vector<double> init_vector;
00069 for (unsigned int i = 0; i < 100; i ++)
00070 init_vector.push_back(i);
00071
00072 RealtimeCircularBuffer<std::vector<double> > vec_buf(3, init_vector);
00073 for (unsigned int i = 0; i < vec_buf.size(); i ++)
00074 {
00075 for (unsigned int j = 0; j < 100; j ++)
00076 EXPECT_EQ(vec_buf[i][j], j);
00077 }
00078 }
00079
00080
00081 int main(int argc, char **argv){
00082 testing::InitGoogleTest(&argc, argv);
00083 return RUN_ALL_TESTS();
00084 }