benchmark/test/multiple_ranges_test.cc
Go to the documentation of this file.
1 #include "benchmark/benchmark.h"
2 
3 #include <cassert>
4 #include <iostream>
5 #include <set>
6 #include <vector>
7 
9  public:
11  : expectedValues({{1, 3, 5},
12  {1, 3, 8},
13  {1, 3, 15},
14  {2, 3, 5},
15  {2, 3, 8},
16  {2, 3, 15},
17  {1, 4, 5},
18  {1, 4, 8},
19  {1, 4, 15},
20  {2, 4, 5},
21  {2, 4, 8},
22  {2, 4, 15},
23  {1, 7, 5},
24  {1, 7, 8},
25  {1, 7, 15},
26  {2, 7, 5},
27  {2, 7, 8},
28  {2, 7, 15},
29  {7, 6, 3}}) {}
30 
31  void SetUp(const ::benchmark::State& state) BENCHMARK_OVERRIDE {
32  std::vector<int64_t> ranges = {state.range(0), state.range(1),
33  state.range(2)};
34 
35  assert(expectedValues.find(ranges) != expectedValues.end());
36 
37  actualValues.insert(ranges);
38  }
39 
40  // NOTE: This is not TearDown as we want to check after _all_ runs are
41  // complete.
44  std::cout << "EXPECTED\n";
45  for (auto v : expectedValues) {
46  std::cout << "{";
47  for (int64_t iv : v) {
48  std::cout << iv << ", ";
49  }
50  std::cout << "}\n";
51  }
52  std::cout << "ACTUAL\n";
53  for (auto v : actualValues) {
54  std::cout << "{";
55  for (int64_t iv : v) {
56  std::cout << iv << ", ";
57  }
58  std::cout << "}\n";
59  }
60  }
61  }
62 
63  std::set<std::vector<int64_t>> expectedValues;
64  std::set<std::vector<int64_t>> actualValues;
65 };
66 
68  for (auto _ : state) {
69  int64_t product = state.range(0) * state.range(1) * state.range(2);
70  for (int64_t x = 0; x < product; x++) {
72  }
73  }
74 }
75 
77  ->RangeMultiplier(2)
78  ->Ranges({{1, 2}, {3, 7}, {5, 15}})
79  ->Args({7, 6, 3});
80 
82  // Test that the 'range()' without an argument is the same as 'range(0)'.
83  assert(state.range() == state.range(0));
84  assert(state.range() != state.range(1));
85  for (auto _ : state) {
86  }
87 }
88 BENCHMARK(BM_CheckDefaultArgument)->Ranges({{1, 5}, {6, 10}});
89 
91  for (auto _ : st) {
92  }
93 }
94 BENCHMARK(BM_MultipleRanges)->Ranges({{5, 5}, {6, 6}});
95 
MultipleRangesFixture
Definition: benchmark/test/multiple_ranges_test.cc:8
BM_CheckDefaultArgument
void BM_CheckDefaultArgument(benchmark::State &state)
Definition: benchmark/test/multiple_ranges_test.cc:81
BENCHMARK_MAIN
BENCHMARK_MAIN()
Args
Args({7, 6, 3})
BENCHMARK_DEFINE_F
BENCHMARK_DEFINE_F(MultipleRangesFixture, Empty)(benchmark
Definition: benchmark/test/multiple_ranges_test.cc:67
benchmark::DoNotOptimize
BENCHMARK_ALWAYS_INLINE void DoNotOptimize(Tp const &value)
Definition: benchmark/include/benchmark/benchmark.h:375
benchmark::Fixture
Definition: benchmark/include/benchmark/benchmark.h:1122
BENCHMARK_REGISTER_F
#define BENCHMARK_REGISTER_F(BaseClass, Method)
Definition: benchmark/include/benchmark/benchmark.h:1304
MultipleRangesFixture::SetUp
void SetUp(const ::benchmark::State &state) BENCHMARK_OVERRIDE
Definition: benchmark/test/multiple_ranges_test.cc:31
int64_t
signed __int64 int64_t
Definition: stdint-msvc2008.h:89
BENCHMARK_OVERRIDE
#define BENCHMARK_OVERRIDE
Definition: benchmark/include/benchmark/benchmark.h:271
MultipleRangesFixture::~MultipleRangesFixture
virtual ~MultipleRangesFixture()
Definition: benchmark/test/multiple_ranges_test.cc:42
setup.v
v
Definition: third_party/bloaty/third_party/capstone/bindings/python/setup.py:42
gmock_output_test._
_
Definition: bloaty/third_party/googletest/googlemock/test/gmock_output_test.py:175
BM_MultipleRanges
static void BM_MultipleRanges(benchmark::State &st)
Definition: benchmark/test/multiple_ranges_test.cc:90
x
int x
Definition: bloaty/third_party/googletest/googlemock/test/gmock-matchers_test.cc:3610
MultipleRangesFixture::actualValues
std::set< std::vector< int64_t > > actualValues
Definition: benchmark/test/multiple_ranges_test.cc:64
Empty
Definition: abseil-cpp/absl/container/internal/compressed_tuple_test.cc:33
BENCHMARK
BENCHMARK(BM_CheckDefaultArgument) -> Ranges(
Definition: benchmark/test/multiple_ranges_test.cc:88
benchmark::State
Definition: benchmark/include/benchmark/benchmark.h:503
state
Definition: bloaty/third_party/zlib/contrib/blast/blast.c:41
MultipleRangesFixture::MultipleRangesFixture
MultipleRangesFixture()
Definition: benchmark/test/multiple_ranges_test.cc:10
MultipleRangesFixture::expectedValues
std::set< std::vector< int64_t > > expectedValues
Definition: benchmark/test/multiple_ranges_test.cc:63
state
static struct rpc_state state
Definition: bad_server_response_test.cc:87


grpc
Author(s):
autogenerated on Fri May 16 2025 02:59:30