#ifndef SPLITTINGMETHOD_H
#define SPLITTINGMETHOD_H

#include <string>
#include <vector>
#include <math.h>
#include <algorithm>
#include <time.h>

typedef std::pair<std::string, double> probabilityPair;
typedef std::pair<std::vector < std::vector<std::string> >, std::vector < std::vector<std::string> > > trainTestPair;

/**
 * @brief The SplittingMethod class holds fucntions for spliting data to test and train set
 * @autor Jakub Srom
 * @required decisiontree.h
 */
class SplittingMethod
{
public:
    SplittingMethod(int instances);

    int numberOfInstances;

    trainTestPair useTrainingSet(std::vector < std::vector<std::string> > Data);

    trainTestPair percentageSplit(std::vector <  std::vector<std::string> > Data, int percentageSplit);

    trainTestPair crossValidation(std::vector <  std::vector<std::string> > Data, int numberOfSets);

    std::vector <std::string> SaveHeader(std::vector < std::vector<std::string> > Data);
};

#endif // SPLITTINGMETHOD_H
