aboutsummaryrefslogtreecommitdiff
path: root/src/openvic-simulation/testing/Testing.cpp
diff options
context:
space:
mode:
author CptAlanSmith <123112708+CptAlanSmith@users.noreply.github.com>2023-09-25 21:51:49 +0200
committer GitHub <noreply@github.com>2023-09-25 21:51:49 +0200
commit127ca294056817bc5814ef5516b29a67ff3fa3bb (patch)
tree2e5c5676a43793678dfd75f83a862eb3f9f4a780 /src/openvic-simulation/testing/Testing.cpp
parent05b6db7305398e12363f727a50315972cc9a5a54 (diff)
Testing (#28)
* Dataloader stubs + default compat path + bits+bobs * Followup big dataloader commit * Fixes for building scons * Initial proof of concept auto-testing Shows how we can pull loaded data and display it back * data-loader include * Re-did headless Because hubert insisted it be done like this ;) * Auto-Testing Framework Basics * Requirements Calculations * Fix for messy merge (teach me to use merge tools) * Fixing up misc merge issues to fully reconcile with master changes * Re-added missing getters * Move of testing files due to folder reorgs * Update of file tests * Test scripting updates - elimnination of issues with data variables hanging over from big merges Routed gamemanager down to scripts on execute * Update StringUtils.hpp * Initial pipeline building * Pipe fabrication * Continued work on goods testing, removal of pragma once lines * Finish of economy tests, initial results outputting * Output of results * Removal of direct.h for cross compatibility --------- Co-authored-by: Hop311 <hop3114@gmail.com>
Diffstat (limited to 'src/openvic-simulation/testing/Testing.cpp')
-rw-r--r--src/openvic-simulation/testing/Testing.cpp63
1 files changed, 55 insertions, 8 deletions
diff --git a/src/openvic-simulation/testing/Testing.cpp b/src/openvic-simulation/testing/Testing.cpp
index fcfe2cc..4d3d9ea 100644
--- a/src/openvic-simulation/testing/Testing.cpp
+++ b/src/openvic-simulation/testing/Testing.cpp
@@ -1,15 +1,10 @@
#include <testing/Testing.hpp>
#include <testing/TestScript.hpp>
+#include <fstream>
using namespace OpenVic;
-Testing::Testing(GameManager& g_manager)
- : game_manager { g_manager },
- map { g_manager.get_map() },
- building_manager { g_manager.get_building_manager() },
- good_manager { g_manager.get_good_manager() },
- pop_manager { g_manager.get_pop_manager() },
- clock { g_manager.get_clock() } {
+Testing::Testing(GameManager* game_manager) {
// Constructor for the tests will add requirements
// Then execute the script
@@ -25,6 +20,10 @@ Testing::Testing(GameManager& g_manager)
test_scripts.push_back(a_005_nation_tests);
A_006_politics_tests* a_006_politics_tests = new A_006_politics_tests();
test_scripts.push_back(a_006_politics_tests);
+
+ for (int i = 0; i < test_scripts.size(); i++) {
+ test_scripts[i]->set_game_manager(game_manager);
+ }
}
Testing::~Testing() {
@@ -33,10 +32,58 @@ Testing::~Testing() {
}
}
-void Testing::report_results() {
+void Testing::execute_all_scripts() {
for (int i = 0; i < test_scripts.size(); i++) {
+ test_scripts[i]->execute_script();
+ }
+}
+
+void Testing::report_results() {
+ std::ofstream test_results;
+ // _mkdir("..\\src\\openvic - simulation\\testing\\test_results"); - replace with compatible version (boost?)
+ test_results.open("..\\src\\openvic-simulation\\testing\\test_results\\results.txt");
+ for (auto test_script : test_scripts) {
+ std::vector<OpenVic::Requirement*> reqs = test_script->get_requirements();
+ std::vector<OpenVic::Requirement*> passed_reqs = test_script->get_passed_requirements();
+ std::vector<OpenVic::Requirement*> failed_reqs = test_script->get_failed_requirements();
+ std::vector<OpenVic::Requirement*> untested_reqs = test_script->get_untested_requirements();
+
+ test_results << test_script->get_script_name() << ":" << std::endl;
+ test_results << "\t" << "Requirements for Test" << std::endl;
+ test_results << "\t";
+ for (auto req : reqs) {
+ test_results << req->get_id() << " ";
+ }
+ if (reqs.size() < 1) test_results << "None";
+ test_results << std::endl << std::endl;
+
+ test_results << "\t"<< "Passed Requirements" << std::endl;
+ test_results << "\t";
+ for (auto req : passed_reqs) {
+ test_results << req->get_id() << " ";
+ }
+ if (passed_reqs.size() < 1) test_results << "None";
+ test_results << std::endl << std::endl;
+
+ test_results << "\t" << "Failed Requirements" << std::endl;
+ test_results << "\t";
+ for (auto req : failed_reqs) {
+ test_results << req->get_id() << " ";
+ }
+ if (failed_reqs.size() < 1) test_results << "None";
+ test_results << std::endl << std::endl;
+
+ test_results << "\t" << "Untested Requirements" << std::endl;
+ test_results << "\t";
+ for (auto req : untested_reqs) {
+ test_results << req->get_id() << " ";
+ }
+ if (untested_reqs.size() < 1) test_results << "None";
+ test_results << std::endl << std::endl;
+ test_results << std::endl<< std::endl;
}
+ test_results.close();
// Create Summary File