diff options
Diffstat (limited to 'ArcWelderTest/ArcWelderTest.cpp')
-rw-r--r-- | ArcWelderTest/ArcWelderTest.cpp | 76 |
1 files changed, 32 insertions, 44 deletions
diff --git a/ArcWelderTest/ArcWelderTest.cpp b/ArcWelderTest/ArcWelderTest.cpp index 9add004..bd173d5 100644 --- a/ArcWelderTest/ArcWelderTest.cpp +++ b/ArcWelderTest/ArcWelderTest.cpp @@ -24,7 +24,6 @@ #include "ArcWelderTest.h" #include "logger.h" #include <iostream> -#include "utilities.h" int main(int argc, char* argv[]) { @@ -34,7 +33,7 @@ int main(int argc, char* argv[]) int run_tests(int argc, char* argv[]) { - _CrtMemState state; + _CrtMemState state1, state2, state3; // This line will take a snapshot // of the memory allocated at this point. _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE); @@ -46,7 +45,7 @@ int run_tests(int argc, char* argv[]) //std::string filename = argv[1]; unsigned int num_runs = 1; - _CrtMemCheckpoint(&state); + _CrtMemCheckpoint(&state1); auto start = std::chrono::high_resolution_clock::now(); for (unsigned int index = 0; index < num_runs; index++) @@ -94,7 +93,11 @@ int run_tests(int argc, char* argv[]) } auto end = std::chrono::high_resolution_clock::now(); - _CrtMemDumpAllObjectsSince(&state); + _CrtMemCheckpoint(&state2); + if (_CrtMemDifference(&state3, &state1, &state2)) { + _CrtMemDumpStatistics(&state3); + } + //_CrtMemDumpAllObjectsSince(&state); std::chrono::duration<double> diff = end - start; std::cout << "Tests completed in " << diff.count() << " seconds"; //std::cout << "Has Memory Leak = " << has_leak << ".\r\n"; @@ -266,47 +269,19 @@ static gcode_position_args get_5_extruder_position_args() static void TestAntiStutter(std::string filePath) { - //double max_resolution = DEFAULT_RESOLUTION_MM; - double max_resolution = 0.05; - double max_radius_mm = 100000; - //int min_arc_segments = DEFAULT_MIN_ARC_SEGMENTS; - int min_arc_segments = 0; - double mm_per_arc_segment = 0; - - //double path_tolerance_percent = ARC_LENGTH_PERCENT_TOLERANCE_DEFAULT; // 1 percent - double path_tolerance_percent = 0.05; - //double path_tolerance_percent = 0.05; std::vector<std::string> logger_names; logger_names.push_back("arc_welder.gcode_conversion"); std::vector<int> logger_levels; - logger_levels.push_back(log_levels::NOSET); - logger_levels.push_back(log_levels::VERBOSE); - logger_levels.push_back(log_levels::DEBUG); - logger_levels.push_back(log_levels::INFO); - logger_levels.push_back(log_levels::WARNING); - logger_levels.push_back(log_levels::ERROR); - logger_levels.push_back(log_levels::CRITICAL); + logger_levels.push_back((int)log_levels::NOSET); + logger_levels.push_back((int)log_levels::VERBOSE); + logger_levels.push_back((int)log_levels::DEBUG); + logger_levels.push_back((int)log_levels::INFO); + logger_levels.push_back((int)log_levels::WARNING); + //logger_levels.push_back((int)(log_levels::ERROR)); + logger_levels.push_back((int)log_levels::CRITICAL); logger* p_logger = new logger(logger_names, logger_levels); - p_logger->set_log_level(INFO); - //p_logger->set_log_level_by_value(5); - //arc_welder arc_welder_obj(BENCHY_0_5_MM_NO_WIPE, "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode", p_logger, max_resolution, false, 50, static_cast<progress_callback>(on_progress)); - //arc_welder arc_welder_obj(SIX_SPEED_TEST, "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode", p_logger, max_resolution, false, 50, on_progress); - arc_welder arc_welder_obj( - BENCHY_L1_DIFFICULT, - "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode", - p_logger, - max_resolution, - path_tolerance_percent, - max_radius_mm, - min_arc_segments, - mm_per_arc_segment, - false, - true, - DEFAULT_ALLOW_DYNAMIC_PRECISION, - DEFAULT_XYZ_PRECISION, - DEFAULT_E_PRECISION, - DEFAULT_GCODE_BUFFER_SIZE, - on_progress); + p_logger->set_log_level(log_levels::INFO); + //FIRMWARE_COMPENSATION_TEST_1 //BENCHY_MIN_RADIUS_TEST //BENCHY_DIFFICULT @@ -330,15 +305,28 @@ static void TestAntiStutter(std::string filePath) // BENCHY_L1_DIFFICULT // SPIRAL_TEST // SPIRAL_VASE_TEST_FUNNEL + std::string source_path = SPIRAL_VASE_TEST_SINGLE_LAYER_CYLINDER; + std::string target_path = "C:\\Users\\Brad\\Documents\\3DPrinter\\AntiStutter\\test_output.gcode"; + arc_welder_args args(source_path, target_path, p_logger); + args.box_encoding = args.box_encoding = utilities::box_drawing::HTML; + args.callback = on_progress; + // override any arguments here; + args.allow_travel_arcs = true; + args.allow_3d_arcs = true; + args.max_radius_mm = 9999; + args.resolution_mm = 0.05; + args.extrusion_rate_variance_percent = 1000; + arc_welder arc_welder_obj(args); + arc_welder_results results = arc_welder_obj.process(); - p_logger->log(0, INFO, results.progress.detail_str()); - p_logger->log(0, INFO, "Processing Complete."); + p_logger->log(0, log_levels::INFO, results.progress.detail_str()); + p_logger->log(0, log_levels::INFO, "Processing Complete."); delete p_logger; } bool on_progress(arc_welder_progress progress, logger * p_logger, int logger_type) { - p_logger->log(logger_type, INFO, progress.str()); + p_logger->log(logger_type, log_levels::INFO, progress.str()); return true; } |