bool TestDataReaders::TestCSVDataReader(SourceReader* sourceReader, vector<CSVDataType*> results) {
	bool ok = true;
	DataReader* dataReader = new CSVDataReader(sourceReader);

	for (int i = 0; i < results.size(); ++i) {
		CSVDataType* csvDataType = (CSVDataType*) dataReader->GetNextData();

		if (csvDataType == NULL || results[i] == NULL) {
			if (csvDataType != NULL || results[i] != NULL)
				ok = false;
		} else {
			if (csvDataType->GetColNames() != results[i]->GetColNames())
				ok = false;
			else {
				int size = csvDataType->GetColNames().size();
				for (int j = 0; j < size; ++j) {
					if (csvDataType->GetValue(j) != results[i]->GetValue(j)) {
						ok = false;
					}
				}
			}

			delete csvDataType;
		}
	}

	delete dataReader;
	return ok;
}
bool TestDataReaders::TestLineDataReader(SourceReader* sourceReader, vector<StringDataType> results) {
	bool ok = true;
	DataReader* dataReader = new LineDataReader(sourceReader);

	for (int i = 0; i < results.size(); ++i) {
		StringDataType* stringDataType = (StringDataType*) dataReader->GetNextData();

		if (stringDataType->GetString() != results[i].GetString())
			ok = false;

		delete stringDataType;
	}

	delete dataReader;
	return ok;
}