diff --git a/.clang-uml b/.clang-uml index e5e6e41..46de6dd 100644 --- a/.clang-uml +++ b/.clang-uml @@ -5,7 +5,7 @@ diagrams: type: class glob: - src/*.cc - - src/Command/*.cc + - src/modules/*.cc using_namespace: platform include: namespaces: @@ -17,7 +17,7 @@ diagrams: sequence: type: sequence glob: - - src/Command/b_main.cc + - src/b_main.cc combine_free_functions_into_file_participants: true using_namespace: - std diff --git a/CMakeLists.txt b/CMakeLists.txt index b54c2f5..e708cc3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,7 +78,6 @@ message("XLSXWRITER_LIB=${XLSXWRITER_LIB}") # Subdirectories # -------------- -set(Platform_MODULES ${Platform_SOURCE_DIR}/src/modules/) add_subdirectory(config) add_subdirectory(src) add_subdirectory(sample) diff --git a/lib/PyClassifiers b/lib/PyClassifiers index bd6f6f5..0608c0a 160000 --- a/lib/PyClassifiers +++ b/lib/PyClassifiers @@ -1 +1 @@ -Subproject commit bd6f6f58375407ce1c9cae671d8e82fa5429f9e3 +Subproject commit 0608c0a52a3cecdf6abd02138ccfe956ffe9ebef diff --git a/sample/CMakeLists.txt b/sample/CMakeLists.txt index 2545059..63148de 100644 --- a/sample/CMakeLists.txt +++ b/sample/CMakeLists.txt @@ -1,5 +1,6 @@ include_directories( - ${Platform_SOURCE_DIR}/src/modules + ${Platform_SOURCE_DIR}/src/common + ${Platform_SOURCE_DIR}/src/main ${Platform_SOURCE_DIR}/lib/PyClassifiers/src ${Python3_INCLUDE_DIRS} ${Platform_SOURCE_DIR}/lib/Files @@ -10,5 +11,5 @@ include_directories( ${Platform_SOURCE_DIR}/lib/PyClassifiers/lib/BayesNet/lib/json/include ${CMAKE_BINARY_DIR}/configured_files/include ) -add_executable(PlatformSample sample.cc ${Platform_MODULES}/Models.cc) +add_executable(PlatformSample sample.cc ${Platform_SOURCE_DIR}/src/main/Models.cc) target_link_libraries(PlatformSample PyClassifiers ArffFiles mdlp "${TORCH_LIBRARIES}") \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 23f3b32..42e65c8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,10 +1,10 @@ include_directories( + ## Libs ${Platform_SOURCE_DIR}/lib/PyClassifiers/lib/BayesNet/src ${Platform_SOURCE_DIR}/lib/PyClassifiers/lib/BayesNet/lib/folding ${Platform_SOURCE_DIR}/lib/PyClassifiers/lib/BayesNet/lib/mdlp ${Platform_SOURCE_DIR}/lib/PyClassifiers/lib/BayesNet/lib/json/include ${Platform_SOURCE_DIR}/lib/PyClassifiers/src - ${Platform_MODULES} ${Platform_SOURCE_DIR}/lib/Files ${Platform_SOURCE_DIR}/lib/mdlp ${Platform_SOURCE_DIR}/lib/argparse/include @@ -13,24 +13,41 @@ include_directories( ${Python3_INCLUDE_DIRS} ${MPI_CXX_INCLUDE_DIRS} ${CMAKE_BINARY_DIR}/configured_files/include + ## Platform + ${Platform_SOURCE_DIR}/src/common + ${Platform_SOURCE_DIR}/src/best + ${Platform_SOURCE_DIR}/src/grid + ${Platform_SOURCE_DIR}/src/main + ${Platform_SOURCE_DIR}/src/manage + ${Platform_SOURCE_DIR}/src/reports ) -set(best_sources BestResults.cc Result.cc Statistics.cc BestResultsExcel.cc ReportExcel.cc ReportBase.cc Datasets.cc Dataset.cc ExcelFile.cc) -list(TRANSFORM best_sources PREPEND ${Platform_MODULES}) -add_executable(b_best b_best.cc ${best_sources}) -set(grid_sources GridSearch.cc GridData.cc HyperParameters.cc Datasets.cc Dataset.cc Models.cc) -list(TRANSFORM grid_sources PREPEND ${Platform_MODULES}) -add_executable(b_grid b_grid.cc ${grid_sources}) -add_executable(b_list b_list.cc ${Platform_MODULES}Datasets.cc ${Platform_MODULES}Dataset.cc) -set(main_sources Experiment.cc Datasets.cc Dataset.cc Models.cc HyperParameters.cc ReportConsole.cc ReportBase.cc Result.cc) -list(TRANSFORM main_sources PREPEND ${Platform_MODULES}) -add_executable(b_main b_main.cc ${main_sources}) -set(manage_sources Results.cc ManageResults.cc CommandParser.cc Result.cc ReportConsole.cc ReportExcel.cc ReportBase.cc Datasets.cc Dataset.cc ExcelFile.cc) -list(TRANSFORM manage_sources PREPEND ${Platform_MODULES}) -add_executable(b_manage b_manage.cc ${manage_sources}) - +# b_best +set(best_sources b_best.cc BestResults.cc Statistics.cc BestResultsExcel.cc) +list(TRANSFORM best_sources PREPEND best/) +add_executable(b_best ${best_sources} main/Result.cc reports/ReportExcel.cc reports/ReportBase.cc reports/ExcelFile.cc common/Datasets.cc common/Dataset.cc) target_link_libraries(b_best Boost::boost "${XLSXWRITER_LIB}" "${TORCH_LIBRARIES}" ArffFiles mdlp) + +# b_grid +set(grid_sources b_grid.cc GridSearch.cc GridData.cc) +list(TRANSFORM grid_sources PREPEND grid/) +add_executable(b_grid ${grid_sources} main/HyperParameters.cc main/Models.cc common/Datasets.cc common/Dataset.cc) target_link_libraries(b_grid PyClassifiers ${MPI_CXX_LIBRARIES} ArffFiles) -target_link_libraries(b_list ArffFiles mdlp "${TORCH_LIBRARIES}") + +# b_list +set(list_sources b_list.cc DatasetsExcel.cc) +list(TRANSFORM list_sources PREPEND list/) +add_executable(b_list ${list_sources} common/Datasets.cc common/Dataset.cc reports/ReportExcel.cc reports/ExcelFile.cc reports/ReportBase.cc) +target_link_libraries(b_list ArffFiles mdlp "${TORCH_LIBRARIES}" "${XLSXWRITER_LIB}") + +# b_main +set(main_sources b_main.cc Experiment.cc Models.cc HyperParameters.cc) +list(TRANSFORM main_sources PREPEND main/) +add_executable(b_main ${main_sources} common/Datasets.cc common/Dataset.cc reports/ReportConsole.cc reports/ReportBase.cc main/Result.cc) target_link_libraries(b_main PyClassifiers BayesNet ArffFiles mdlp "${TORCH_LIBRARIES}") -target_link_libraries(b_manage "${TORCH_LIBRARIES}" "${XLSXWRITER_LIB}" ArffFiles mdlp) \ No newline at end of file + +# b_manage +set(manage_sources b_manage.cc ManageResults.cc CommandParser.cc Results.cc) +list(TRANSFORM manage_sources PREPEND manage/) +add_executable(b_manage ${manage_sources} main/Result.cc reports/ReportConsole.cc reports/ReportExcel.cc reports/ReportBase.cc reports/ExcelFile.cc common/Datasets.cc common/Dataset.cc) +target_link_libraries(b_manage "${TORCH_LIBRARIES}" "${XLSXWRITER_LIB}" ArffFiles mdlp) diff --git a/src/modules/BestResults.cc b/src/best/BestResults.cc similarity index 98% rename from src/modules/BestResults.cc rename to src/best/BestResults.cc index 66742fa..33cd26b 100644 --- a/src/modules/BestResults.cc +++ b/src/best/BestResults.cc @@ -302,9 +302,9 @@ namespace platform { // Build the table of results json table = buildTableResults(models); std::vector datasets = getDatasets(table.begin().value()); - BestResultsExcel excel(score, datasets); - excel.reportSingle(model, path + bestResultFile()); - messageExcelFile(excel.getFileName()); + BestResultsExcel excel_report(score, datasets); + excel_report.reportSingle(model, path + bestResultFile()); + messageExcelFile(excel_report.getFileName()); } } void BestResults::reportAll(bool excel) diff --git a/src/modules/BestResults.h b/src/best/BestResults.h similarity index 100% rename from src/modules/BestResults.h rename to src/best/BestResults.h diff --git a/src/modules/BestResultsExcel.cc b/src/best/BestResultsExcel.cc similarity index 98% rename from src/modules/BestResultsExcel.cc rename to src/best/BestResultsExcel.cc index 05ab3f8..61b7b08 100644 --- a/src/modules/BestResultsExcel.cc +++ b/src/best/BestResultsExcel.cc @@ -32,11 +32,11 @@ namespace platform { } BestResultsExcel::BestResultsExcel(const std::string& score, const std::vector& datasets) : score(score), datasets(datasets) { - workbook = workbook_new((Paths::excel() + fileName).c_str()); + file_name = "BestResults.xlsx"; + workbook = workbook_new(getFileName().c_str()); setProperties("Best Results"); int maxDatasetName = (*max_element(datasets.begin(), datasets.end(), [](const std::string& a, const std::string& b) { return a.size() < b.size(); })).size(); datasetNameSize = std::max(datasetNameSize, maxDatasetName); - createFormats(); } void BestResultsExcel::reportAll(const std::vector& models, const json& table, const std::map>& ranks, bool friedman, double significance) { @@ -170,10 +170,7 @@ namespace platform { doFriedman(); } } - std::string BestResultsExcel::getFileName() - { - return Paths::excel() + fileName; - } + void BestResultsExcel::header(bool ranks) { row = 0; diff --git a/src/modules/BestResultsExcel.h b/src/best/BestResultsExcel.h similarity index 90% rename from src/modules/BestResultsExcel.h rename to src/best/BestResultsExcel.h index 1ab75d0..b700547 100644 --- a/src/modules/BestResultsExcel.h +++ b/src/best/BestResultsExcel.h @@ -9,13 +9,12 @@ using json = nlohmann::json; namespace platform { - class BestResultsExcel : ExcelFile { + class BestResultsExcel : public ExcelFile { public: BestResultsExcel(const std::string& score, const std::vector& datasets); ~BestResultsExcel(); void reportAll(const std::vector& models, const json& table, const std::map>& ranks, bool friedman, double significance); void reportSingle(const std::string& model, const std::string& fileName); - std::string getFileName(); private: void build(); void header(bool ranks); @@ -24,7 +23,6 @@ namespace platform { void formatColumns(); void doFriedman(); void addConditionalFormat(std::string formula); - const std::string fileName = "BestResults.xlsx"; std::string score; std::vector models; std::vector datasets; diff --git a/src/modules/BestScore.h b/src/best/BestScore.h similarity index 100% rename from src/modules/BestScore.h rename to src/best/BestScore.h diff --git a/src/modules/Statistics.cc b/src/best/Statistics.cc similarity index 100% rename from src/modules/Statistics.cc rename to src/best/Statistics.cc diff --git a/src/modules/Statistics.h b/src/best/Statistics.h similarity index 100% rename from src/modules/Statistics.h rename to src/best/Statistics.h diff --git a/src/b_best.cc b/src/best/b_best.cc similarity index 98% rename from src/b_best.cc rename to src/best/b_best.cc index ca1de0f..aee3cc4 100644 --- a/src/b_best.cc +++ b/src/best/b_best.cc @@ -65,5 +65,6 @@ int main(int argc, char** argv) std::cout << Colors::GREEN() << fileName << " created!" << Colors::RESET() << std::endl; results.reportSingle(excel); } + std::cout << Colors::RESET(); return 0; } diff --git a/src/modules/CLocale.h b/src/common/CLocale.h similarity index 100% rename from src/modules/CLocale.h rename to src/common/CLocale.h diff --git a/src/modules/Colors.h b/src/common/Colors.h similarity index 100% rename from src/modules/Colors.h rename to src/common/Colors.h diff --git a/src/modules/Dataset.cc b/src/common/Dataset.cc similarity index 100% rename from src/modules/Dataset.cc rename to src/common/Dataset.cc diff --git a/src/modules/Dataset.h b/src/common/Dataset.h similarity index 100% rename from src/modules/Dataset.h rename to src/common/Dataset.h diff --git a/src/modules/Datasets.cc b/src/common/Datasets.cc similarity index 100% rename from src/modules/Datasets.cc rename to src/common/Datasets.cc diff --git a/src/modules/Datasets.h b/src/common/Datasets.h similarity index 100% rename from src/modules/Datasets.h rename to src/common/Datasets.h diff --git a/src/modules/DotEnv.h b/src/common/DotEnv.h similarity index 100% rename from src/modules/DotEnv.h rename to src/common/DotEnv.h diff --git a/src/modules/Paths.h b/src/common/Paths.h similarity index 100% rename from src/modules/Paths.h rename to src/common/Paths.h diff --git a/src/modules/Symbols.h b/src/common/Symbols.h similarity index 100% rename from src/modules/Symbols.h rename to src/common/Symbols.h diff --git a/src/modules/Timer.h b/src/common/Timer.h similarity index 100% rename from src/modules/Timer.h rename to src/common/Timer.h diff --git a/src/modules/Utils.h b/src/common/Utils.h similarity index 100% rename from src/modules/Utils.h rename to src/common/Utils.h diff --git a/src/modules/GridData.cc b/src/grid/GridData.cc similarity index 100% rename from src/modules/GridData.cc rename to src/grid/GridData.cc diff --git a/src/modules/GridData.h b/src/grid/GridData.h similarity index 100% rename from src/modules/GridData.h rename to src/grid/GridData.h diff --git a/src/modules/GridSearch.cc b/src/grid/GridSearch.cc similarity index 100% rename from src/modules/GridSearch.cc rename to src/grid/GridSearch.cc diff --git a/src/modules/GridSearch.h b/src/grid/GridSearch.h similarity index 100% rename from src/modules/GridSearch.h rename to src/grid/GridSearch.h diff --git a/src/b_grid.cc b/src/grid/b_grid.cc similarity index 100% rename from src/b_grid.cc rename to src/grid/b_grid.cc diff --git a/src/list/DatasetsExcel.cc b/src/list/DatasetsExcel.cc new file mode 100644 index 0000000..8e55c11 --- /dev/null +++ b/src/list/DatasetsExcel.cc @@ -0,0 +1,51 @@ +#include +#include "DatasetsExcel.h" +#include "Paths.h" + + +namespace platform { + DatasetsExcel::DatasetsExcel() + { + file_name = "datasets.xlsx"; + workbook = workbook_new(getFileName().c_str()); + setProperties("Datasets"); + } + DatasetsExcel::~DatasetsExcel() + { + workbook_close(workbook); + } + void DatasetsExcel::report() + { + worksheet = workbook_add_worksheet(workbook, "Datasets"); + formatColumns(); + worksheet_merge_range(worksheet, 0, 0, 0, 4, "Datasets", styles["headerFirst"]); + // Body header + row = 3; + int col = 1; + int i = 0; + // Get Datasets + // auto data = platform::Datasets(false, platform::Paths::datasets()); + // auto datasets = data.getNames(); + auto datasets = std::vector{ "iris", "wine", "digits", "breast_cancer" }; + int maxDatasetName = (*std::max_element(datasets.begin(), datasets.end(), [](const std::string& a, const std::string& b) { return a.size() < b.size(); })).size(); + datasetNameSize = std::max(datasetNameSize, maxDatasetName); + writeString(row, 0, "NÂș", "bodyHeader"); + writeString(row, 1, "Dataset", "bodyHeader"); + for (auto const& name : datasets) { + row++; + writeInt(row, 0, i++, "ints"); + writeString(row, 1, name.c_str(), "text"); + } + row++; + formatColumns(); + } + + void DatasetsExcel::formatColumns() + { + worksheet_freeze_panes(worksheet, 4, 2); + std::vector columns_sizes = { 5, datasetNameSize }; + for (int i = 0; i < columns_sizes.size(); ++i) { + worksheet_set_column(worksheet, i, i, columns_sizes.at(i), NULL); + } + } +} \ No newline at end of file diff --git a/src/list/DatasetsExcel.h b/src/list/DatasetsExcel.h new file mode 100644 index 0000000..31737fd --- /dev/null +++ b/src/list/DatasetsExcel.h @@ -0,0 +1,22 @@ +#ifndef DATASETS_EXCEL_H +#define DATASETS_EXCEL_H +#include "ExcelFile.h" +#include +#include +#include + +using json = nlohmann::json; + +namespace platform { + + class DatasetsExcel : public ExcelFile { + public: + DatasetsExcel(); + ~DatasetsExcel(); + void report(); + private: + void formatColumns(); + int datasetNameSize = 25; // Min size of the column + }; +} +#endif //DATASETS_EXCEL_H \ No newline at end of file diff --git a/src/b_list.cc b/src/list/b_list.cc similarity index 78% rename from src/b_list.cc rename to src/list/b_list.cc index feda478..741c43a 100644 --- a/src/b_list.cc +++ b/src/list/b_list.cc @@ -1,8 +1,11 @@ #include #include +#include #include "Paths.h" #include "Colors.h" #include "Datasets.h" +#include "DatasetsExcel.h" +#include "config.h" const int BALANCE_LENGTH = 75; @@ -27,6 +30,13 @@ void outputBalance(const std::string& balance) int main(int argc, char** argv) { auto data = platform::Datasets(false, platform::Paths::datasets()); + argparse::ArgumentParser program("b_list", { project_version.begin(), project_version.end() }); + program.add_argument("--excel") + .help("Output in Excel format") + .default_value(false) + .implicit_value(true); + program.parse_args(argc, argv); + auto excel = program.get("--excel"); locale mylocale(std::cout.getloc(), new separated); locale::global(mylocale); std::cout.imbue(mylocale); @@ -52,5 +62,10 @@ int main(int argc, char** argv) outputBalance(oss.str()); } std::cout << Colors::RESET() << std::endl; + if (excel) { + auto report = platform::DatasetsExcel(); + report.report(); + std::cout << "Output saved in " << report.getFileName() << std::endl; + } return 0; } diff --git a/src/modules/Experiment.cc b/src/main/Experiment.cc similarity index 100% rename from src/modules/Experiment.cc rename to src/main/Experiment.cc diff --git a/src/modules/Experiment.h b/src/main/Experiment.h similarity index 100% rename from src/modules/Experiment.h rename to src/main/Experiment.h diff --git a/src/modules/HyperParameters.cc b/src/main/HyperParameters.cc similarity index 100% rename from src/modules/HyperParameters.cc rename to src/main/HyperParameters.cc diff --git a/src/modules/HyperParameters.h b/src/main/HyperParameters.h similarity index 100% rename from src/modules/HyperParameters.h rename to src/main/HyperParameters.h diff --git a/src/modules/Models.cc b/src/main/Models.cc similarity index 100% rename from src/modules/Models.cc rename to src/main/Models.cc diff --git a/src/modules/Models.h b/src/main/Models.h similarity index 100% rename from src/modules/Models.h rename to src/main/Models.h diff --git a/src/modules/PartialResult.h b/src/main/PartialResult.h similarity index 100% rename from src/modules/PartialResult.h rename to src/main/PartialResult.h diff --git a/src/modules/Result.cc b/src/main/Result.cc similarity index 100% rename from src/modules/Result.cc rename to src/main/Result.cc diff --git a/src/modules/Result.h b/src/main/Result.h similarity index 100% rename from src/modules/Result.h rename to src/main/Result.h diff --git a/src/b_main.cc b/src/main/b_main.cc similarity index 100% rename from src/b_main.cc rename to src/main/b_main.cc diff --git a/src/modules/modelRegister.h b/src/main/modelRegister.h similarity index 100% rename from src/modules/modelRegister.h rename to src/main/modelRegister.h diff --git a/src/modules/CommandParser.cc b/src/manage/CommandParser.cc similarity index 100% rename from src/modules/CommandParser.cc rename to src/manage/CommandParser.cc diff --git a/src/modules/CommandParser.h b/src/manage/CommandParser.h similarity index 100% rename from src/modules/CommandParser.h rename to src/manage/CommandParser.h diff --git a/src/modules/ManageResults.cc b/src/manage/ManageResults.cc similarity index 99% rename from src/modules/ManageResults.cc rename to src/manage/ManageResults.cc index 196fe3c..45a3f9e 100644 --- a/src/modules/ManageResults.cc +++ b/src/manage/ManageResults.cc @@ -164,7 +164,7 @@ namespace platform { if (indexList) { std::tie(option, index) = parser.parse(Colors::GREEN(), mainOptions, 'r', numFiles - 1); } else { - std::tie(option, subIndex) = parser.parse(Colors::MAGENTA(), listOptions, 'r', results.at(index).getJson()["results"].size() - 1); + std::tie(option, subIndex) = parser.parse(Colors::CYAN(), listOptions, 'r', results.at(index).getJson()["results"].size() - 1); } switch (option) { case 'q': diff --git a/src/modules/ManageResults.h b/src/manage/ManageResults.h similarity index 100% rename from src/modules/ManageResults.h rename to src/manage/ManageResults.h diff --git a/src/modules/Results.cc b/src/manage/Results.cc similarity index 100% rename from src/modules/Results.cc rename to src/manage/Results.cc diff --git a/src/modules/Results.h b/src/manage/Results.h similarity index 100% rename from src/modules/Results.h rename to src/manage/Results.h diff --git a/src/b_manage.cc b/src/manage/b_manage.cc similarity index 100% rename from src/b_manage.cc rename to src/manage/b_manage.cc diff --git a/src/modules/ExcelFile.cc b/src/reports/ExcelFile.cc similarity index 97% rename from src/modules/ExcelFile.cc rename to src/reports/ExcelFile.cc index 0300ab3..cf51110 100644 --- a/src/modules/ExcelFile.cc +++ b/src/reports/ExcelFile.cc @@ -4,14 +4,17 @@ namespace platform { ExcelFile::ExcelFile() { setDefault(); + createFormats(); } ExcelFile::ExcelFile(lxw_workbook* workbook) : workbook(workbook) { setDefault(); + createFormats(); } ExcelFile::ExcelFile(lxw_workbook* workbook, lxw_worksheet* worksheet) : workbook(workbook), worksheet(worksheet) { setDefault(); + createFormats(); } void ExcelFile::setDefault() { @@ -26,6 +29,10 @@ namespace platform { { return workbook; } + std::string ExcelFile::getFileName() + { + return Paths::excel() + file_name; + } void ExcelFile::setProperties(std::string title) { char line[title.size() + 1]; diff --git a/src/modules/ExcelFile.h b/src/reports/ExcelFile.h similarity index 94% rename from src/modules/ExcelFile.h rename to src/reports/ExcelFile.h index efc115f..199f587 100644 --- a/src/modules/ExcelFile.h +++ b/src/reports/ExcelFile.h @@ -3,6 +3,7 @@ #include #include #include +#include "Paths.h" #include "xlsxwriter.h" namespace platform { @@ -19,6 +20,7 @@ namespace platform { ExcelFile(lxw_workbook* workbook); ExcelFile(lxw_workbook* workbook, lxw_worksheet* worksheet); lxw_workbook* getWorkbook(); + std::string getFileName(); protected: void setProperties(std::string title); void writeString(int row, int col, const std::string& text, const std::string& style = ""); @@ -36,6 +38,7 @@ namespace platform { uint32_t colorTitle; uint32_t colorOdd; uint32_t colorEven; + std::string file_name; private: void setDefault(); }; diff --git a/src/modules/ReportBase.cc b/src/reports/ReportBase.cc similarity index 100% rename from src/modules/ReportBase.cc rename to src/reports/ReportBase.cc diff --git a/src/modules/ReportBase.h b/src/reports/ReportBase.h similarity index 100% rename from src/modules/ReportBase.h rename to src/reports/ReportBase.h diff --git a/src/modules/ReportConsole.cc b/src/reports/ReportConsole.cc similarity index 97% rename from src/modules/ReportConsole.cc rename to src/reports/ReportConsole.cc index 7f6ef0d..d483c6a 100644 --- a/src/modules/ReportConsole.cc +++ b/src/reports/ReportConsole.cc @@ -94,10 +94,10 @@ namespace platform { std::cout << headerLine(fVector("Test scores: ", lastResult["scores_test"], 14, 12)); std::cout << headerLine(fVector("Train times: ", lastResult["times_train"], 10, 3)); std::cout << headerLine(fVector("Test times: ", lastResult["times_test"], 10, 3)); - std::cout << std::string(MAXL, '*') << std::endl; } else { footer(totalScore); } + std::cout << std::string(MAXL, '*') << Colors::RESET() << std::endl; } void ReportConsole::showSummary() { @@ -124,6 +124,5 @@ namespace platform { if (!getExistBestFile() && compare) { std::cout << headerLine("*** Best Results File not found. Couldn't compare any result!"); } - std::cout << std::string(MAXL, '*') << std::endl << Colors::RESET(); } } \ No newline at end of file diff --git a/src/modules/ReportConsole.h b/src/reports/ReportConsole.h similarity index 100% rename from src/modules/ReportConsole.h rename to src/reports/ReportConsole.h diff --git a/src/modules/ReportExcel.cc b/src/reports/ReportExcel.cc similarity index 99% rename from src/modules/ReportExcel.cc rename to src/reports/ReportExcel.cc index b441280..953c304 100644 --- a/src/modules/ReportExcel.cc +++ b/src/reports/ReportExcel.cc @@ -49,7 +49,6 @@ namespace platform { createWorksheet(); } setProperties(data["title"].get()); - createFormats(); formatColumns(); } diff --git a/src/modules/ReportExcel.h b/src/reports/ReportExcel.h similarity index 100% rename from src/modules/ReportExcel.h rename to src/reports/ReportExcel.h