diff --git a/tests/ArffFiles.cpp b/tests/ArffFiles.cpp index 405a57e..b576699 100644 --- a/tests/ArffFiles.cpp +++ b/tests/ArffFiles.cpp @@ -7,35 +7,43 @@ using namespace std; ArffFiles::ArffFiles() = default; -vector ArffFiles::getLines() const { +vector ArffFiles::getLines() const +{ return lines; } -unsigned long int ArffFiles::getSize() const { +unsigned long int ArffFiles::getSize() const +{ return lines.size(); } -vector> ArffFiles::getAttributes() const { +vector> ArffFiles::getAttributes() const +{ return attributes; } -string ArffFiles::getClassName() const { +string ArffFiles::getClassName() const +{ return className; } -string ArffFiles::getClassType() const { +string ArffFiles::getClassType() const +{ return classType; } -vector> &ArffFiles::getX() { +vector>& ArffFiles::getX() +{ return X; } -vector &ArffFiles::getY() { +vector& ArffFiles::getY() +{ return y; } -void ArffFiles::load(const string &fileName, bool classLast) { +void ArffFiles::load(const string& fileName, bool classLast) +{ ifstream file(fileName); if (!file.is_open()) { throw invalid_argument("Unable to open file"); @@ -55,7 +63,7 @@ void ArffFiles::load(const string &fileName, bool classLast) { type = ""; while (ss >> type_w) type += type_w + " "; - attributes.emplace_back(attribute, type); + attributes.emplace_back(attribute, trim(type)); continue; } if (line[0] == '@') { @@ -79,7 +87,8 @@ void ArffFiles::load(const string &fileName, bool classLast) { } -void ArffFiles::generateDataset(bool classLast) { +void ArffFiles::generateDataset(bool classLast) +{ X = vector>(attributes.size(), vector(lines.size())); auto yy = vector(lines.size(), ""); int labelIndex = classLast ? static_cast(attributes.size()) : 0; @@ -99,19 +108,21 @@ void ArffFiles::generateDataset(bool classLast) { y = factorize(yy); } -string ArffFiles::trim(const string &source) { +string ArffFiles::trim(const string& source) +{ string s(source); s.erase(0, s.find_first_not_of(" \n\r\t")); s.erase(s.find_last_not_of(" \n\r\t") + 1); return s; } -vector ArffFiles::factorize(const vector &labels_t) { +vector ArffFiles::factorize(const vector& labels_t) +{ vector yy; yy.reserve(labels_t.size()); map labelMap; int i = 0; - for (const string &label: labels_t) { + for (const string& label : labels_t) { if (labelMap.find(label) == labelMap.end()) { labelMap[label] = i++; }