#ifndef IBK_H
#define IBK_H

#include "minmax.h"

/**
 * @brief The IBk class holds functions for Ibk algoritm
 * @autor Jakub Srom
 * @required minmax.h
 */
class IBk:public MinMax
{
public:
    IBk();

    std::vector < std::vector<std::string> > Train(std::vector < std::vector<std::string> > Data);

    std::vector <std::string> Classify(std::vector < std::vector<std::string> > test, int k);

private:

    std::vector <double> countMinK(std::vector <double> column, int k);

    std::vector <std::string> standardizeNumeric(std::vector <std::string> vec);

    std::vector <double> countDistance(std::vector < std::vector<std::string> > Data, std::vector <std::string> testRow);

};

#endif // IBK_H
