test_realtime_circular_buffer.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2008, Willow Garage, Inc.
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are met:
7  *
8  * * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  * notice, this list of conditions and the following disclaimer in the
12  * documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Willow Garage, Inc. nor the names of its
14  * contributors may be used to endorse or promote products derived from
15  * this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
21  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
24  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27  * POSSIBILITY OF SUCH DAMAGE.
28  */
29 
30 #include <gtest/gtest.h>
31 #include <sys/time.h>
32 
33 #include <vector>
35 
36 using namespace filters ;
37 
38 void seed_rand()
39 {
40  //Seed random number generator with current microseond count
41  timeval temp_time_struct;
42  gettimeofday(&temp_time_struct,NULL);
43  srand(temp_time_struct.tv_usec);
44 };
45 
46 void generate_rand_vectors(double scale, uint64_t runs, std::vector<double>& xvalues, std::vector<double>& yvalues, std::vector<double>&zvalues)
47 {
48  seed_rand();
49  for ( uint64_t i = 0; i < runs ; i++ )
50  {
51  xvalues[i] = 1.0 * ((double) rand() - (double)RAND_MAX /2.0) /(double)RAND_MAX;
52  yvalues[i] = 1.0 * ((double) rand() - (double)RAND_MAX /2.0) /(double)RAND_MAX;
53  zvalues[i] = 1.0 * ((double) rand() - (double)RAND_MAX /2.0) /(double)RAND_MAX;
54  }
55 }
56 
57 TEST(RealtimeCircularBuffer, InitializationScalar)
58 {
59 
61  for (unsigned int i = 0; i < buf.size(); i ++)
62  {
63  EXPECT_EQ(buf[i], 0);
64  }
65 }
66 TEST(RealtimeCircularBuffer, InitializationVector)
67 {
68  std::vector<double> init_vector;
69  for (unsigned int i = 0; i < 100; i ++)
70  init_vector.push_back(i);
71 
72  RealtimeCircularBuffer<std::vector<double> > vec_buf(3, init_vector);
73  for (unsigned int i = 0; i < vec_buf.size(); i ++)
74  {
75  for (unsigned int j = 0; j < 100; j ++)
76  EXPECT_EQ(vec_buf[i][j], j);
77  }
78 }
79 
80 
81 int main(int argc, char **argv){
82  testing::InitGoogleTest(&argc, argv);
83  return RUN_ALL_TESTS();
84 }
void generate_rand_vectors(double scale, uint64_t runs, std::vector< double > &xvalues, std::vector< double > &yvalues, std::vector< double > &zvalues)
A realtime safe circular (ring) buffer.
int main(int argc, char **argv)
TEST(RealtimeCircularBuffer, InitializationScalar)


filters
Author(s):
autogenerated on Sat Jun 8 2019 04:37:52