/*
    Copyright (C) 2012 Bartosz Broda, Jacek Bochenek, Łukasz Biłeńkij, 
    Damian Jaworski, Wojciech Mazur, Dominik Piasecki, Maciej Piasecki, 
    Radosław Ramocki
    
    This program is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option)
any later version.

    This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE. 

    See the LICENSE and COPYING files for more details.
*/

#ifndef NFOLD_H
#define NFOLD_H
#include "foldinginterface.h"
#include "config.h"

class NFold : public FoldingInterface
{
public:
	NFold();
	~NFold();
	/**
	  * Initializes variables based on number of questions in WBST file
	  * \param numOfQuestions Number of questions in WBST file
	  */
	void init(int numOfQuestions, int numOfFolds);
	/**
	  * \returns Next pair of learning fold and testing fold
	  */
	std::pair<std::vector<int>,std::vector<int> > next();
private:
	int current;
	std::vector<std::vector<int>* > folds;
};

#endif // NFOLD_H
