You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

42 lines
1.0 KiB

// Let Catch provide main():
#define CATCH_CONFIG_MAIN
#define CATCH_CONFIG_ENABLE_BENCHMARKING
#include <catch2/catch.hpp>
#include <dummy_lib.hpp>
std::vector<int> generate_random_numbers(int n, int min, int max)
{
std::srand(std::time(nullptr));
std::vector<int> v(n);
for (int i = 0; i < n; ++i)
v[i] = min + std::rand() / ((RAND_MAX + 1u)/max);
return v;
}
TEST_CASE( "Simple test" ) {
std::vector<int> v = { 1, 2, 3, 1};
REQUIRE( performance_measuring::count_on_the_way(v) == 2 );
REQUIRE( performance_measuring::min_element_and_count(v) == 2 );
REQUIRE( performance_measuring::sort_and_upper_bound(v) == 2 );
}
TEST_CASE("Benchmarking") {
std::vector<int> v = generate_random_numbers(10000, 0, 1000);
BENCHMARK("count_on_the_way 10k") {
return performance_measuring::count_on_the_way(v);
};
BENCHMARK("min_element_and_count 10k") {
return performance_measuring::min_element_and_count(v);
};
BENCHMARK("sort_and_upper_bound 10k") {
return performance_measuring::sort_and_upper_bound(v);
};
}