#include #include "libslic3r/calib.hpp" #include "libslic3r/Model.hpp" #include "libslic3r/TriangleMesh.hpp" #include "libslic3r/PrintConfig.hpp" using namespace Slic3r; namespace { // The width-resolution getters are protected; expose them so the resolution can be asserted directly. struct PaPatternProbe : public CalibPressureAdvancePattern { using CalibPressureAdvancePattern::CalibPressureAdvancePattern; using CalibPressureAdvancePattern::line_width; using CalibPressureAdvancePattern::line_width_first_layer; }; } // namespace TEST_CASE("Zero calibration line width resolves to a positive default", "[Calib][Regression]") { DynamicPrintConfig config = DynamicPrintConfig::full_print_config(); config.set_deserialize_strict({ {"line_width", "0"}, {"initial_layer_line_width", "0"}, }); Model model; model.add_object("cube", "", make_cube(20, 20, 20))->add_instance(); Calib_Params params; params.mode = CalibMode::Calib_PA_Pattern; PaPatternProbe pattern(params, config, /* is_bbl_machine */ true, *model.objects.front(), Vec3d(0, 0, 0)); REQUIRE(pattern.line_width() > 0.); REQUIRE(pattern.line_width_first_layer() > 0.); }