mirror of
https://github.com/cpm-cmake/CPM.cmake.git
synced 2025-11-17 14:47:30 -05:00
* apply clang-format and cmake-format and add style check workflow * add declare package definition * add additional public methods and rename internals * change development verison tag to 1.0.0 * rename internal method * rename public method * rename test var * update copyright and fix comment * typo * run fix-format * fix test function names
36 lines
773 B
C++
36 lines
773 B
C++
#include <benchmark/benchmark.h>
|
|
#include <fibonacci.h>
|
|
|
|
#include <algorithm>
|
|
#include <random>
|
|
#include <vector>
|
|
|
|
std::vector<unsigned> createTestNumbers() {
|
|
std::vector<unsigned> v;
|
|
for (int i = 0; i < 25; ++i) v.emplace_back(i);
|
|
std::random_device rd;
|
|
std::mt19937 g(rd());
|
|
std::shuffle(v.begin(), v.end(), g);
|
|
return v;
|
|
}
|
|
|
|
void fibonacci(benchmark::State& state) {
|
|
auto numbers = createTestNumbers();
|
|
for (auto _ : state) {
|
|
for (auto v : numbers) benchmark::DoNotOptimize(fibonacci(v));
|
|
}
|
|
}
|
|
|
|
BENCHMARK(fibonacci);
|
|
|
|
void fastFibonacci(benchmark::State& state) {
|
|
auto numbers = createTestNumbers();
|
|
for (auto _ : state) {
|
|
for (auto v : numbers) benchmark::DoNotOptimize(fastFibonacci(v));
|
|
}
|
|
}
|
|
|
|
BENCHMARK(fastFibonacci);
|
|
|
|
BENCHMARK_MAIN();
|