Filling in the autos in the tests so it is readible and it compiles on OSX

This commit is contained in:
bubnikv 2019-10-16 09:28:27 +02:00
parent 21837ceb85
commit 90d5712091
3 changed files with 49 additions and 49 deletions

View File

@ -39,7 +39,7 @@ TEST_CASE("Skirt height is honored") {
// avoid altering speeds unexpectedly // avoid altering speeds unexpectedly
config->set_deserialize("cooling", "0"); config->set_deserialize("cooling", "0");
config->set_deserialize("first_layer_speed", "100%"); config->set_deserialize("first_layer_speed", "100%");
auto support_speed = config->opt<Slic3r::ConfigOptionFloat>("support_material_speed")->value * MM_PER_MIN; double support_speed = config->opt<Slic3r::ConfigOptionFloat>("support_material_speed")->value * MM_PER_MIN;
std::map<double, bool> layers_with_skirt; std::map<double, bool> layers_with_skirt;
std::string gcode; std::string gcode;
@ -47,12 +47,12 @@ TEST_CASE("Skirt height is honored") {
Slic3r::Model model; Slic3r::Model model;
SECTION("printing a single object") { SECTION("printing a single object") {
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
gcode = Slic3r::Test::gcode(print); gcode = Slic3r::Test::gcode(print);
} }
SECTION("printing multiple objects") { SECTION("printing multiple objects") {
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20, TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20, TestMesh::cube_20x20x20}, model, config);
gcode = Slic3r::Test::gcode(print); gcode = Slic3r::Test::gcode(print);
} }
parser.parse_buffer(gcode, [&layers_with_skirt, &support_speed] (Slic3r::GCodeReader& self, const Slic3r::GCodeReader::GCodeLine& line) parser.parse_buffer(gcode, [&layers_with_skirt, &support_speed] (Slic3r::GCodeReader& self, const Slic3r::GCodeReader::GCodeLine& line)
@ -66,7 +66,7 @@ TEST_CASE("Skirt height is honored") {
} }
SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") { SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
auto parser {Slic3r::GCodeReader()}; Slic3r::GCodeReader parser;
Slic3r::Model model; Slic3r::Model model;
std::string gcode; std::string gcode;
GIVEN("A default configuration") { GIVEN("A default configuration") {
@ -88,10 +88,10 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
config->opt_int("skirts") = 0; config->opt_int("skirts") = 0;
config->opt_float("brim_width") = 5; config->opt_float("brim_width") = 5;
THEN("Brim is generated") { THEN("Brim is generated") {
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
gcode = Slic3r::Test::gcode(print); gcode = Slic3r::Test::gcode(print);
bool brim_generated = false; bool brim_generated = false;
auto support_speed = config->opt<Slic3r::ConfigOptionFloat>("support_material_speed")->value * MM_PER_MIN; double support_speed = config->opt<Slic3r::ConfigOptionFloat>("support_material_speed")->value * MM_PER_MIN;
parser.parse_buffer(gcode, [&brim_generated, support_speed] (Slic3r::GCodeReader& self, const Slic3r::GCodeReader::GCodeLine& line) parser.parse_buffer(gcode, [&brim_generated, support_speed] (Slic3r::GCodeReader& self, const Slic3r::GCodeReader::GCodeLine& line)
{ {
if (self.z() == Approx(0.3) || line.new_Z(self) == Approx(0.3)) { if (self.z() == Approx(0.3) || line.new_Z(self) == Approx(0.3)) {
@ -107,7 +107,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
WHEN("Skirt area is smaller than the brim") { WHEN("Skirt area is smaller than the brim") {
config->opt_int("skirts") = 1; config->opt_int("skirts") = 1;
config->opt_float("brim_width") = 10; config->opt_float("brim_width") = 10;
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
THEN("Gcode generates") { THEN("Gcode generates") {
REQUIRE(! Slic3r::Test::gcode(print).empty()); REQUIRE(! Slic3r::Test::gcode(print).empty());
} }
@ -117,7 +117,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
config->opt_int("skirts") = 2; config->opt_int("skirts") = 2;
config->opt_int("skirt_height") = 0; config->opt_int("skirt_height") = 0;
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
THEN("Gcode generates") { THEN("Gcode generates") {
REQUIRE(! Slic3r::Test::gcode(print).empty()); REQUIRE(! Slic3r::Test::gcode(print).empty());
} }
@ -129,7 +129,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
config->opt_int("perimeter_extruder") = 2; config->opt_int("perimeter_extruder") = 2;
config->opt_int("support_material_extruder") = 3; config->opt_int("support_material_extruder") = 3;
THEN("Brim is printed with the extruder used for the perimeters of first object") { THEN("Brim is printed with the extruder used for the perimeters of first object") {
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
gcode = Slic3r::Test::gcode(print); gcode = Slic3r::Test::gcode(print);
int tool = get_brim_tool(gcode, parser); int tool = get_brim_tool(gcode, parser);
REQUIRE(tool == config->opt_int("perimeter_extruder") - 1); REQUIRE(tool == config->opt_int("perimeter_extruder") - 1);
@ -142,7 +142,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
config->opt_int("support_material_extruder") = 3; config->opt_int("support_material_extruder") = 3;
config->opt_int("raft_layers") = 1; config->opt_int("raft_layers") = 1;
THEN("brim is printed with same extruder as skirt") { THEN("brim is printed with same extruder as skirt") {
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
gcode = Slic3r::Test::gcode(print); gcode = Slic3r::Test::gcode(print);
int tool = get_brim_tool(gcode, parser); int tool = get_brim_tool(gcode, parser);
REQUIRE(tool == config->opt_int("support_material_extruder") - 1); REQUIRE(tool == config->opt_int("support_material_extruder") - 1);
@ -155,7 +155,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
THEN("2 brim lines") { THEN("2 brim lines") {
Slic3r::Model model; Slic3r::Model model;
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
print->process(); print->process();
REQUIRE(print->brim().entities.size() == 2); REQUIRE(print->brim().entities.size() == 2);
} }
@ -170,7 +170,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
config->set("brim_ears_max_angle", 91); config->set("brim_ears_max_angle", 91);
Slic3r::Model model; Slic3r::Model model;
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
print->process(); print->process();
THEN("Four brim ears") { THEN("Four brim ears") {
@ -187,7 +187,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
THEN("no brim") { THEN("no brim") {
Slic3r::Model model; Slic3r::Model model;
auto print {Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
print->process(); print->process();
REQUIRE(print->brim.size() == 0); REQUIRE(print->brim.size() == 0);
} }
@ -207,7 +207,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
config->set_deserialize("first_layer_speed", "100%"); // to prevent speeds to be altered config->set_deserialize("first_layer_speed", "100%"); // to prevent speeds to be altered
Slic3r::Model model; Slic3r::Model model;
auto print {Slic3r::Test::init_print({TestMesh::overhang}, model, config)}; auto print = Slic3r::Test::init_print({TestMesh::overhang}, model, config);
print->process(); print->process();
// config->set("support_material", true); // to prevent speeds to be altered // config->set("support_material", true); // to prevent speeds to be altered
@ -221,7 +221,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config); auto print = Slic3r::Test::init_print({TestMesh::cube_20x20x20}, model, config);
std::string gcode = Slic3r::Test::gcode(print); std::string gcode = Slic3r::Test::gcode(print);
auto support_speed = config->opt<ConfigOptionFloat>("support_material_speed")->value * MM_PER_MIN; double support_speed = config->opt<ConfigOptionFloat>("support_material_speed")->value * MM_PER_MIN;
parser.parse_buffer(gcode, [config, &extrusion_points, &tool, &skirt_length, support_speed] (Slic3r::GCodeReader& self, const Slic3r::GCodeReader::GCodeLine& line) parser.parse_buffer(gcode, [config, &extrusion_points, &tool, &skirt_length, support_speed] (Slic3r::GCodeReader& self, const Slic3r::GCodeReader::GCodeLine& line)
{ {
// std::cerr << line.cmd() << "\n"; // std::cerr << line.cmd() << "\n";
@ -230,7 +230,7 @@ SCENARIO("Original Slic3r Skirt/Brim tests", "[!mayfail]") {
} else if (self.z() == Approx(config->opt<ConfigOptionFloat>("first_layer_height")->value)) { } else if (self.z() == Approx(config->opt<ConfigOptionFloat>("first_layer_height")->value)) {
// on first layer // on first layer
if (line.extruding(self) && line.dist_XY(self) > 0) { if (line.extruding(self) && line.dist_XY(self) > 0) {
auto speed = ( self.f() > 0 ? self.f() : line.new_F(self)); float speed = ( self.f() > 0 ? self.f() : line.new_F(self));
// std::cerr << "Tool " << tool << "\n"; // std::cerr << "Tool " << tool << "\n";
if (speed == Approx(support_speed) && tool == config->opt_int("perimeter_extruder") - 1) { if (speed == Approx(support_speed) && tool == config->opt_int("perimeter_extruder") - 1) {
// Skirt uses first material extruder, support material speed. // Skirt uses first material extruder, support material speed.

View File

@ -28,10 +28,10 @@ SCENARIO( "TriangleMesh: Basic mesh statistics") {
} }
THEN( "Vertices array matches input.") { THEN( "Vertices array matches input.") {
for (auto i = 0U; i < cube.its.vertices.size(); i++) { for (size_t i = 0U; i < cube.its.vertices.size(); i++) {
REQUIRE(cube.its.vertices.at(i) == vertices.at(i).cast<float>()); REQUIRE(cube.its.vertices.at(i) == vertices.at(i).cast<float>());
} }
for (auto i = 0U; i < vertices.size(); i++) { for (size_t i = 0U; i < vertices.size(); i++) {
REQUIRE(vertices.at(i).cast<float>() == cube.its.vertices.at(i)); REQUIRE(vertices.at(i).cast<float>() == cube.its.vertices.at(i));
} }
} }
@ -40,11 +40,11 @@ SCENARIO( "TriangleMesh: Basic mesh statistics") {
} }
THEN( "Facet array matches input.") { THEN( "Facet array matches input.") {
for (auto i = 0U; i < cube.its.indices.size(); i++) { for (size_t i = 0U; i < cube.its.indices.size(); i++) {
REQUIRE(cube.its.indices.at(i) == facets.at(i)); REQUIRE(cube.its.indices.at(i) == facets.at(i));
} }
for (auto i = 0U; i < facets.size(); i++) { for (size_t i = 0U; i < facets.size(); i++) {
REQUIRE(facets.at(i) == cube.its.indices.at(i)); REQUIRE(facets.at(i) == cube.its.indices.at(i));
} }
} }
@ -79,10 +79,10 @@ SCENARIO( "TriangleMesh: Basic mesh statistics") {
} }
THEN( "Vertices array matches input.") { THEN( "Vertices array matches input.") {
for (auto i = 0U; i < cube.its.vertices.size(); i++) { for (size_t i = 0U; i < cube.its.vertices.size(); i++) {
REQUIRE(cube.its.vertices.at(i) == vertices.at(i).cast<float>()); REQUIRE(cube.its.vertices.at(i) == vertices.at(i).cast<float>());
} }
for (auto i = 0U; i < vertices.size(); i++) { for (size_t i = 0U; i < vertices.size(); i++) {
REQUIRE(vertices.at(i).cast<float>() == cube.its.vertices.at(i)); REQUIRE(vertices.at(i).cast<float>() == cube.its.vertices.at(i));
} }
} }
@ -91,11 +91,11 @@ SCENARIO( "TriangleMesh: Basic mesh statistics") {
} }
THEN( "Facet array matches input.") { THEN( "Facet array matches input.") {
for (auto i = 0U; i < cube.its.indices.size(); i++) { for (size_t i = 0U; i < cube.its.indices.size(); i++) {
REQUIRE(cube.its.indices.at(i) == facets.at(i)); REQUIRE(cube.its.indices.at(i) == facets.at(i));
} }
for (auto i = 0U; i < facets.size(); i++) { for (size_t i = 0U; i < facets.size(); i++) {
REQUIRE(facets.at(i) == cube.its.indices.at(i)); REQUIRE(facets.at(i) == cube.its.indices.at(i));
} }
} }
@ -191,14 +191,14 @@ SCENARIO( "TriangleMesh: slice behavior.") {
WHEN("Cube is sliced with z = [0+EPSILON,2,4,8,6,8,10,12,14,16,18,20]") { WHEN("Cube is sliced with z = [0+EPSILON,2,4,8,6,8,10,12,14,16,18,20]") {
std::vector<double> z { 0+EPSILON,2,4,8,6,8,10,12,14,16,18,20 }; std::vector<double> z { 0+EPSILON,2,4,8,6,8,10,12,14,16,18,20 };
auto result {cube.slice(z)}; std::vector<ExPolygons> result = cube.slice(z);
THEN( "The correct number of polygons are returned per layer.") { THEN( "The correct number of polygons are returned per layer.") {
for (auto i = 0U; i < z.size(); i++) { for (size_t i = 0U; i < z.size(); i++) {
REQUIRE(result.at(i).size() == 1); REQUIRE(result.at(i).size() == 1);
} }
} }
THEN( "The area of the returned polygons is correct.") { THEN( "The area of the returned polygons is correct.") {
for (auto i = 0U; i < z.size(); i++) { for (size_t i = 0U; i < z.size(); i++) {
REQUIRE(result.at(i).at(0).area() == 20.0*20/(std::pow(SCALING_FACTOR,2))); REQUIRE(result.at(i).at(0).area() == 20.0*20/(std::pow(SCALING_FACTOR,2)));
} }
} }
@ -211,7 +211,7 @@ SCENARIO( "TriangleMesh: slice behavior.") {
TriangleMesh cube(vertices, facets); TriangleMesh cube(vertices, facets);
cube.repair(); cube.repair();
WHEN(" a top tangent plane is sliced") { WHEN(" a top tangent plane is sliced") {
auto slices {cube.slice({5.0, 10.0})}; std::vector<ExPolygons> slices = cube.slice({5.0, 10.0});
THEN( "its area is included") { THEN( "its area is included") {
REQUIRE(slices.at(0).at(0).area() > 0); REQUIRE(slices.at(0).at(0).area() > 0);
REQUIRE(slices.at(1).at(0).area() > 0); REQUIRE(slices.at(1).at(0).area() > 0);
@ -219,7 +219,7 @@ SCENARIO( "TriangleMesh: slice behavior.") {
} }
WHEN(" a model that has been transformed is sliced") { WHEN(" a model that has been transformed is sliced") {
cube.mirror_z(); cube.mirror_z();
auto slices {cube.slice({-5.0, -10.0})}; std::vector<ExPolygons> slices = cube.slice({-5.0, -10.0});
THEN( "it is sliced properly (mirrored bottom plane area is included)") { THEN( "it is sliced properly (mirrored bottom plane area is included)") {
REQUIRE(slices.at(0).at(0).area() > 0); REQUIRE(slices.at(0).at(0).area() > 0);
REQUIRE(slices.at(1).at(0).area() > 0); REQUIRE(slices.at(1).at(0).area() > 0);
@ -233,7 +233,7 @@ SCENARIO( "make_xxx functions produce meshes.") {
WHEN("make_cube() is called with arguments 20,20,20") { WHEN("make_cube() is called with arguments 20,20,20") {
TriangleMesh cube = make_cube(20,20,20); TriangleMesh cube = make_cube(20,20,20);
THEN("The resulting mesh has one and only one vertex at 0,0,0") { THEN("The resulting mesh has one and only one vertex at 0,0,0") {
auto verts {cube.its.vertices}; const std::vector<Vec3f> &verts = cube.its.vertices;
REQUIRE(std::count_if(verts.begin(), verts.end(), [](const Vec3f& t) { return t.x() == 0 && t.y() == 0 && t.z() == 0; } ) == 1); REQUIRE(std::count_if(verts.begin(), verts.end(), [](const Vec3f& t) { return t.x() == 0 && t.y() == 0 && t.z() == 0; } ) == 1);
} }
THEN("The mesh volume is 20*20*20") { THEN("The mesh volume is 20*20*20") {
@ -252,11 +252,11 @@ SCENARIO( "make_xxx functions produce meshes.") {
TriangleMesh cyl = make_cylinder(10, 10, PI / 243.0); TriangleMesh cyl = make_cylinder(10, 10, PI / 243.0);
double angle = (2*PI / floor(2*PI / (PI / 243.0))); double angle = (2*PI / floor(2*PI / (PI / 243.0)));
THEN("The resulting mesh has one and only one vertex at 0,0,0") { THEN("The resulting mesh has one and only one vertex at 0,0,0") {
auto verts {cyl.its.vertices}; const std::vector<Vec3f> &verts = cyl.its.vertices;
REQUIRE(std::count_if(verts.begin(), verts.end(), [](const Vec3f& t) { return t.x() == 0 && t.y() == 0 && t.z() == 0; } ) == 1); REQUIRE(std::count_if(verts.begin(), verts.end(), [](const Vec3f& t) { return t.x() == 0 && t.y() == 0 && t.z() == 0; } ) == 1);
} }
THEN("The resulting mesh has one and only one vertex at 0,0,10") { THEN("The resulting mesh has one and only one vertex at 0,0,10") {
auto verts {cyl.its.vertices}; const std::vector<Vec3f> &verts = cyl.its.vertices;
REQUIRE(std::count_if(verts.begin(), verts.end(), [](const Vec3f& t) { return t.x() == 0 && t.y() == 0 && t.z() == 10; } ) == 1); REQUIRE(std::count_if(verts.begin(), verts.end(), [](const Vec3f& t) { return t.x() == 0 && t.y() == 0 && t.z() == 10; } ) == 1);
} }
THEN("Resulting mesh has 2 + (2*PI/angle * 2) vertices.") { THEN("Resulting mesh has 2 + (2*PI/angle * 2) vertices.") {
@ -301,7 +301,7 @@ SCENARIO( "TriangleMesh: split functionality.") {
TriangleMesh cube(vertices, facets); TriangleMesh cube(vertices, facets);
cube.repair(); cube.repair();
WHEN( "The mesh is split into its component parts.") { WHEN( "The mesh is split into its component parts.") {
auto meshes {cube.split()}; std::vector<TriangleMesh*> meshes = cube.split();
THEN(" The bounding box statistics are propagated to the split copies") { THEN(" The bounding box statistics are propagated to the split copies") {
REQUIRE(meshes.size() == 1); REQUIRE(meshes.size() == 1);
REQUIRE((meshes.at(0)->bounding_box() == cube.bounding_box())); REQUIRE((meshes.at(0)->bounding_box() == cube.bounding_box()));
@ -320,7 +320,7 @@ SCENARIO( "TriangleMesh: split functionality.") {
cube.merge(cube2); cube.merge(cube2);
cube.repair(); cube.repair();
WHEN( "The combined mesh is split") { WHEN( "The combined mesh is split") {
auto meshes {cube.split()}; std::vector<TriangleMesh*> meshes = cube.split();
THEN( "Two meshes are in the output vector.") { THEN( "Two meshes are in the output vector.") {
REQUIRE(meshes.size() == 2); REQUIRE(meshes.size() == 2);
} }
@ -384,7 +384,7 @@ SCENARIO( "TriangleMeshSlicer: Cut behavior.") {
#ifdef TEST_PERFORMANCE #ifdef TEST_PERFORMANCE
TEST_CASE("Regression test for issue #4486 - files take forever to slice") { TEST_CASE("Regression test for issue #4486 - files take forever to slice") {
TriangleMesh mesh; TriangleMesh mesh;
auto config {Slic3r::Config::new_from_defaults()}; std::shared_ptr<Slic3r::DynamicPrintConfig> config = Slic3r::DynamicPrintConfig::new_from_defaults();
mesh.ReadSTLFile(std::string(testfile_dir) + "test_trianglemesh/4486/100_000.stl"); mesh.ReadSTLFile(std::string(testfile_dir) + "test_trianglemesh/4486/100_000.stl");
mesh.repair(); mesh.repair();
@ -393,7 +393,7 @@ TEST_CASE("Regression test for issue #4486 - files take forever to slice") {
config->set("nozzle_diameter", 500); config->set("nozzle_diameter", 500);
Slic3r::Model model; Slic3r::Model model;
auto print {Slic3r::Test::init_print({mesh}, model, config)}; auto print = Slic3r::Test::init_print({mesh}, model, config);
print->status_cb = [] (int ln, const std::string& msg) { Slic3r::Log::info("Print") << ln << " " << msg << "\n";}; print->status_cb = [] (int ln, const std::string& msg) { Slic3r::Log::info("Print") << ln << " " << msg << "\n";};
@ -411,7 +411,7 @@ TEST_CASE("Regression test for issue #4486 - files take forever to slice") {
#ifdef BUILD_PROFILE #ifdef BUILD_PROFILE
TEST_CASE("Profile test for issue #4486 - files take forever to slice") { TEST_CASE("Profile test for issue #4486 - files take forever to slice") {
TriangleMesh mesh; TriangleMesh mesh;
auto config {Slic3r::Config::new_from_defaults()}; std::shared_ptr<Slic3r::DynamicPrintConfig> config = Slic3r::DynamicPrintConfig::new_from_defaults();
mesh.ReadSTLFile(std::string(testfile_dir) + "test_trianglemesh/4486/10_000.stl"); mesh.ReadSTLFile(std::string(testfile_dir) + "test_trianglemesh/4486/10_000.stl");
mesh.repair(); mesh.repair();
@ -421,7 +421,7 @@ TEST_CASE("Profile test for issue #4486 - files take forever to slice") {
config->set("fill_density", "5%"); config->set("fill_density", "5%");
Slic3r::Model model; Slic3r::Model model;
auto print {Slic3r::Test::init_print({mesh}, model, config)}; auto print = Slic3r::Test::init_print({mesh}, model, config);
print->status_cb = [] (int ln, const std::string& msg) { Slic3r::Log::info("Print") << ln << " " << msg << "\n";}; print->status_cb = [] (int ln, const std::string& msg) { Slic3r::Log::info("Print") << ln << " " << msg << "\n";};

View File

@ -13,7 +13,7 @@ using namespace Slic3r;
TEST_CASE("Polygon::contains works properly", ""){ TEST_CASE("Polygon::contains works properly", ""){
// this test was failing on Windows (GH #1950) // this test was failing on Windows (GH #1950)
auto polygon = Slic3r::Polygon(std::vector<Point>({ Slic3r::Polygon polygon(std::vector<Point>({
Point(207802834,-57084522), Point(207802834,-57084522),
Point(196528149,-37556190), Point(196528149,-37556190),
Point(173626821,-25420928), Point(173626821,-25420928),
@ -25,14 +25,14 @@ TEST_CASE("Polygon::contains works properly", ""){
Point(129714478,-84542120), Point(129714478,-84542120),
Point(160244873,-84542120) Point(160244873,-84542120)
})); }));
auto point = Point(95706562, -57294774); Point point(95706562, -57294774);
REQUIRE(polygon.contains(point)); REQUIRE(polygon.contains(point));
} }
SCENARIO("Intersections of line segments"){ SCENARIO("Intersections of line segments"){
GIVEN("Integer coordinates"){ GIVEN("Integer coordinates"){
auto line1 = Line(Point(5,15),Point(30,15)); Line line1(Point(5,15),Point(30,15));
auto line2 = Line(Point(10,20), Point(10,10)); Line line2(Point(10,20), Point(10,10));
THEN("The intersection is valid"){ THEN("The intersection is valid"){
Point point; Point point;
line1.intersection(line2,&point); line1.intersection(line2,&point);
@ -41,8 +41,8 @@ SCENARIO("Intersections of line segments"){
} }
GIVEN("Scaled coordinates"){ GIVEN("Scaled coordinates"){
auto line1 = Line(Point(73.6310778185108 / 0.00001, 371.74239268924 / 0.00001), Point(73.6310778185108 / 0.00001, 501.74239268924 / 0.00001)); Line line1(Point(73.6310778185108 / 0.00001, 371.74239268924 / 0.00001), Point(73.6310778185108 / 0.00001, 501.74239268924 / 0.00001));
auto line2 = Line(Point(75/0.00001, 437.9853/0.00001), Point(62.7484/0.00001, 440.4223/0.00001)); Line line2(Point(75/0.00001, 437.9853/0.00001), Point(62.7484/0.00001, 440.4223/0.00001));
THEN("There is still an intersection"){ THEN("There is still an intersection"){
Point point; Point point;
REQUIRE(line1.intersection(line2,&point)); REQUIRE(line1.intersection(line2,&point));
@ -128,7 +128,7 @@ SCENARIO("polygon_is_convex works"){
TEST_CASE("Creating a polyline generates the obvious lines"){ TEST_CASE("Creating a polyline generates the obvious lines"){
auto polyline = Slic3r::Polyline(); Slic3r::Polyline polyline;
polyline.points = std::vector<Point>({Point(0, 0), Point(10, 0), Point(20, 0)}); polyline.points = std::vector<Point>({Point(0, 0), Point(10, 0), Point(20, 0)});
REQUIRE(polyline.lines().at(0).a == Point(0,0)); REQUIRE(polyline.lines().at(0).a == Point(0,0));
REQUIRE(polyline.lines().at(0).b == Point(10,0)); REQUIRE(polyline.lines().at(0).b == Point(10,0));
@ -137,8 +137,8 @@ TEST_CASE("Creating a polyline generates the obvious lines"){
} }
TEST_CASE("Splitting a Polygon generates a polyline correctly"){ TEST_CASE("Splitting a Polygon generates a polyline correctly"){
auto polygon = Slic3r::Polygon(std::vector<Point>({Point(0, 0), Point(10, 0), Point(5, 5)})); Slic3r::Polygon polygon(std::vector<Point>({Point(0, 0), Point(10, 0), Point(5, 5)}));
auto split = polygon.split_at_index(1); Slic3r::Polyline split = polygon.split_at_index(1);
REQUIRE(split.points[0]==Point(10,0)); REQUIRE(split.points[0]==Point(10,0));
REQUIRE(split.points[1]==Point(5,5)); REQUIRE(split.points[1]==Point(5,5));
REQUIRE(split.points[2]==Point(0,0)); REQUIRE(split.points[2]==Point(0,0));
@ -147,7 +147,7 @@ TEST_CASE("Splitting a Polygon generates a polyline correctly"){
TEST_CASE("Bounding boxes are scaled appropriately"){ TEST_CASE("Bounding boxes are scaled appropriately"){
auto bb = BoundingBox(std::vector<Point>({Point(0, 1), Point(10, 2), Point(20, 2)})); BoundingBox bb(std::vector<Point>({Point(0, 1), Point(10, 2), Point(20, 2)}));
bb.scale(2); bb.scale(2);
REQUIRE(bb.min == Point(0,2)); REQUIRE(bb.min == Point(0,2));
REQUIRE(bb.max == Point(40,4)); REQUIRE(bb.max == Point(40,4));
@ -265,7 +265,7 @@ TEST_CASE("Chained path working correctly"){
SCENARIO("Line distances"){ SCENARIO("Line distances"){
GIVEN("A line"){ GIVEN("A line"){
auto line = Line(Point(0, 0), Point(20, 0)); Line line(Point(0, 0), Point(20, 0));
THEN("Points on the line segment have 0 distance"){ THEN("Points on the line segment have 0 distance"){
REQUIRE(line.distance_to(Point(0, 0)) == 0); REQUIRE(line.distance_to(Point(0, 0)) == 0);
REQUIRE(line.distance_to(Point(20, 0)) == 0); REQUIRE(line.distance_to(Point(20, 0)) == 0);