#ifndef DLIB_CHECKERBOARD_TeST_H_
#define DLIB_CHECKERBOARD_TeST_H_
#include <dlib/matrix.h>
#include <vector>
#include <dlib/rand.h>
namespace dlib
{
template <typename scalar_type>
void get_checkerboard_problem (
std::vector<matrix<scalar_type,2,1> >& x,
std::vector<scalar_type>& y,
const long num_samples,
const long board_dimension = 8
)
/*!
requires
- num_samples > 0
- board_dimension > 0
ensures
- #x.size() == y.size() == num_samples
- is_binary_classification_problem(#x,#y) == true
- #x will contain points and #y labels that were
sampled randomly from a checkers board that has
board_dimension squares on each side.
!*/
{
static dlib::rand rnd;
x.clear();
y.clear();
matrix<scalar_type,2,1> sample;
for (long i = 0; i < num_samples; ++i)
{
sample(0) = rnd.get_random_double();
sample(1) = rnd.get_random_double();
sample *= board_dimension;
x.push_back(sample);
if (((int)sum(floor(sample)) %2) == 0)
y.push_back(+1);
else
y.push_back(-1);
}
}
}
#endif // DLIB_CHECKERBOARD_TeST_H_