| #include "catch.hpp" |
| |
| #include <map> |
| |
| TEST_CASE( "benchmarked", "[!benchmark]" ) { |
| |
| static const int size = 100; |
| |
| std::vector<int> v; |
| std::map<int, int> m; |
| |
| BENCHMARK( "Load up a vector" ) { |
| v = std::vector<int>(); |
| for(int i =0; i < size; ++i ) |
| v.push_back( i ); |
| } |
| REQUIRE( v.size() == size ); |
| |
| BENCHMARK( "Load up a map" ) { |
| m = std::map<int, int>(); |
| for(int i =0; i < size; ++i ) |
| m.insert( { i, i+1 } ); |
| } |
| REQUIRE( m.size() == size ); |
| |
| BENCHMARK( "Reserved vector" ) { |
| v = std::vector<int>(); |
| v.reserve(size); |
| for(int i =0; i < size; ++i ) |
| v.push_back( i ); |
| } |
| REQUIRE( v.size() == size ); |
| |
| int array[size]; |
| BENCHMARK( "A fixed size array that should require no allocations" ) { |
| for(int i =0; i < size; ++i ) |
| array[i] = i; |
| } |
| int sum = 0; |
| for(int i =0; i < size; ++i ) |
| sum += array[i]; |
| REQUIRE( sum > size ); |
| } |