From 7d92876f0608fb15e41d0f1a43cffc0b939de7ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ricardo=20Monta=C3=B1ana=20G=C3=B3mez?= Date: Sat, 17 Feb 2024 20:01:09 +0100 Subject: [PATCH] Complete PartialResult refactoring --- src/Platform/modules/PartialResult.h | 103 +++++++++++++++++---------- 1 file changed, 67 insertions(+), 36 deletions(-) diff --git a/src/Platform/modules/PartialResult.h b/src/Platform/modules/PartialResult.h index 51a04c0..1b1bb4e 100644 --- a/src/Platform/modules/PartialResult.h +++ b/src/Platform/modules/PartialResult.h @@ -2,41 +2,72 @@ #include #include -using json = nlohmann::json; -class PartialResult { +namespace platform { + using json = nlohmann::json; + class PartialResult { -public: - PartialResult() { data["scores_train"] = json::array(); data["scores_test"] = json::array(); data["times_train"] = json::array(); data["times_test"] = json::array(); }; - PartialResult& setDataset(const std::string& dataset) { data["dataset"] = dataset; return *this; } - PartialResult& setNotes(const std::vector& notes) { this->notes.insert(this->notes.end(), notes.begin(), notes.end()); return *this; } - PartialResult& setHyperparameters(const json& hyperparameters) { data["hyperparameters"] = hyperparameters; return *this; } - PartialResult& setSamples(int samples) { data["samples"] = samples; return *this; } - PartialResult& setFeatures(int features) { data["features"] = features; return *this; } - PartialResult& setClasses(int classes) { data["classes"] = classes; return *this; } - PartialResult& setScoreTrain(double score) { data["score_train"] = score; return *this; } - PartialResult& setScoreTrainStd(double score_std) { data["score_train_std"] = score_std; return *this; } - PartialResult& setScoreTest(double score) { data["score"] = score; return *this; } - PartialResult& setScoreTestStd(double score_std) { data["score_std"] = score_std; return *this; } - PartialResult& setTrainTime(double train_time) { data["train_time"] = train_time; return *this; } - PartialResult& setTrainTimeStd(double train_time_std) { data["train_time_std"] = train_time_std; return *this; } - PartialResult& setTestTime(double test_time) { data["test_time"] = test_time; return *this; } - PartialResult& setTestTimeStd(double test_time_std) { data["test_time_std"] = test_time_std; return *this; } - PartialResult& setNodes(float nodes) { data["nodes"] = nodes; return *this; } - PartialResult& setLeaves(float leaves) { data["leaves"] = leaves; return *this; } - PartialResult& setDepth(float depth) { data["depth"] = depth; return *this; } - PartialResult& addScoreTrain(double score) { data["scores_train"].push_back(score); return *this; } - PartialResult& addScoreTest(double score) { data["scores_test"].push_back(score); return *this; } - PartialResult& addTimeTrain(double time) { data["times_train"].push_back(time); return *this; } - PartialResult& addTimeTest(double time) { data["times_test"].push_back(time); return *this; } - json getJson() - { - data["time"] = data["test_time"].get() + data["train_time"].get(); - data["time_std"] = data["test_time_std"].get() + data["train_time_std"].get(); - data["notes"] = notes; - return data; - } -private: - json data; - std::vector notes; -}; \ No newline at end of file + public: + PartialResult() + { + data["scores_train"] = json::array(); + data["scores_test"] = json::array(); + data["times_train"] = json::array(); + data["times_test"] = json::array(); + data["notes"] = json::array(); + data["train_time"] = 0.0; + data["train_time_std"] = 0.0; + data["test_time"] = 0.0; + data["test_time_std"] = 0.0; + }; + PartialResult& setDataset(const std::string& dataset) { data["dataset"] = dataset; return *this; } + PartialResult& setNotes(const std::vector& notes) + { + json notes_ = notes; + data["notes"].insert(data["notes"].end(), notes_.begin(), notes_.end()); + return *this; + } + PartialResult& setHyperparameters(const json& hyperparameters) { data["hyperparameters"] = hyperparameters; return *this; } + PartialResult& setSamples(int samples) { data["samples"] = samples; return *this; } + PartialResult& setFeatures(int features) { data["features"] = features; return *this; } + PartialResult& setClasses(int classes) { data["classes"] = classes; return *this; } + PartialResult& setScoreTrain(double score) { data["score_train"] = score; return *this; } + PartialResult& setScoreTrainStd(double score_std) { data["score_train_std"] = score_std; return *this; } + PartialResult& setScoreTest(double score) { data["score"] = score; return *this; } + PartialResult& setScoreTestStd(double score_std) { data["score_std"] = score_std; return *this; } + PartialResult& setTrainTime(double train_time) + { + data["train_time"] = train_time; + data["time"] = data["test_time"].get() + data["train_time"].get(); + return *this; + } + PartialResult& setTrainTimeStd(double train_time_std) + { + data["train_time_std"] = train_time_std; + data["time_std"] = data["test_time_std"].get() + data["train_time_std"].get(); + return *this; + } + PartialResult& setTestTime(double test_time) + { + data["test_time"] = test_time; + data["time"] = data["test_time"].get() + data["train_time"].get(); + return *this; + } + PartialResult& setTestTimeStd(double test_time_std) + { + data["test_time_std"] = test_time_std; + data["time_std"] = data["test_time_std"].get() + data["train_time_std"].get(); + return *this; + } + PartialResult& setNodes(float nodes) { data["nodes"] = nodes; return *this; } + PartialResult& setLeaves(float leaves) { data["leaves"] = leaves; return *this; } + PartialResult& setDepth(float depth) { data["depth"] = depth; return *this; } + PartialResult& addScoreTrain(double score) { data["scores_train"].push_back(score); return *this; } + PartialResult& addScoreTest(double score) { data["scores_test"].push_back(score); return *this; } + PartialResult& addTimeTrain(double time) { data["times_train"].push_back(time); return *this; } + PartialResult& addTimeTest(double time) { data["times_test"].push_back(time); return *this; } + json getJson() const { return data; } + private: + json data; + }; +}