Files
Renderive/Widget/base/Generate_Mock_Data.cpp
T

46 lines
1.4 KiB
C++

#include "Generate_Mock_Data.h"
#include <random>
namespace renderive {
namespace {
std::default_random_engine& mock_data_random_engine() {
static thread_local std::default_random_engine engine(std::random_device{}());
return engine;
}
}
void fill_data(Range value_range, std::span<double> output) {
if (value_range.origin > value_range.target) {
std::swap(value_range.origin, value_range.target);
}
std::uniform_real_distribution<double> dist(value_range.origin, value_range.target);
for (auto& value : output) {
value = dist(mock_data_random_engine());
}
}
std::vector<double> get_data(Range value_range, int size) {
std::vector<double> ret(size);
fill_data(value_range, ret);
return ret;
}
double get_data(Range value_range) {
if (value_range.origin > value_range.target) {
std::swap(value_range.origin, value_range.target);
}
std::uniform_real_distribution<double> dist(value_range.origin, value_range.target);
return dist(mock_data_random_engine());
}
std::vector<double> get_data(int value, int size) {
std::vector<double> ret(size);
for (auto& v : ret) {
v = value;
}
return ret;
}
std::vector<double> get_colored_data(int size) {
std::vector<double> ret(size);
for (int i = 0; i < size; ++i) {
ret[i] = i;
}
return ret;
}
} // namespace renderive