Files
datastructures/test/testutil.hpp
2019-05-07 18:50:48 +02:00

63 lines
1.1 KiB
C++

#pragma once
#include <cstdio>
#include <exception>
#include <random>
#include <string>
#include <vector>
namespace Util
{
unsigned static GetRandomNumber()
{
static std::default_random_engine eng;
static std::uniform_int_distribution<unsigned> valueDist(0u, 8096u);
return valueDist(eng);
}
};
namespace Test
{
void Execute(bool (*testFunction)(void), char const * const message)
{
try
{
if(testFunction())
{
std::printf("[PASS] %s\n", message);
}
else
{
std::printf("[FAIL] %s\n", message);
}
}
catch(std::exception & e)
{
std::printf("[FAIL] Exception thrown during execution of <%s>, error: %s\n", message, e.what());
}
}
void Execute(bool (*testFunction)(std::vector<std::string> &), char const * const message)
{
std::vector<std::string> issues;
try
{
if(testFunction(issues))
{
std::printf("[PASS] %s\n", message);
}
else
{
for(auto & issue : issues)
{
std::printf(" Issue: %s\n", issue.c_str());
}
std::printf("[FAIL] %s\n", message);
}
}
catch(std::exception & e)
{
std::printf("[FAIL] Exception thrown during execution of <%s>, error: %s\n", message, e.what());
}
}
};