From 7628c83e9f5ce50969b34c5d5d2779afc3ea275f Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Mon, 10 Oct 2011 11:00:19 +0200 Subject: Some tests were failing --- t/clean_polylines.t | 2 ++ t/clipper.t | 14 ++++---- t/geometry.t | 12 ------- t/polyclip.t | 93 ++++++++++++++++++++++++++++------------------------- t/stl.t | 8 +++-- 5 files changed, 64 insertions(+), 65 deletions(-) diff --git a/t/clean_polylines.t b/t/clean_polylines.t index 9ad552f8e..e87575ae9 100644 --- a/t/clean_polylines.t +++ b/t/clean_polylines.t @@ -1,4 +1,6 @@ use Test::More; +use strict; +use warnings; plan tests => 4; diff --git a/t/clipper.t b/t/clipper.t index f860d2e46..59051f156 100644 --- a/t/clipper.t +++ b/t/clipper.t @@ -1,4 +1,6 @@ use Test::More; +use strict; +use warnings; plan tests => 1; @@ -20,7 +22,7 @@ my $hole_in_square = [ # cw [16, 14], ]; -my $square = [ # ccw +my $square2 = [ # ccw [5, 12], [25, 12], [25, 18], @@ -28,7 +30,7 @@ my $square = [ # ccw ]; $clipper->add_subject_polygons([ $square, $hole_in_square ]); -$clipper->add_clip_polygons([ $square ]); +$clipper->add_clip_polygons([ $square2 ]); my $intersection = $clipper->ex_execute(CT_INTERSECTION, PFT_NONZERO, PFT_NONZERO); is_deeply $intersection, [ @@ -42,10 +44,10 @@ is_deeply $intersection, [ ], ], outer => [ - [5, 18], - [5, 12], - [25, 12], - [25, 18], + [10, 18], + [10, 12], + [20, 12], + [20, 18], ], }, ], 'hole is preserved after intersection'; diff --git a/t/geometry.t b/t/geometry.t index 24746e451..cd06d6f37 100644 --- a/t/geometry.t +++ b/t/geometry.t @@ -127,12 +127,6 @@ is Slic3r::Geometry::can_connect_points(@$points, $polygons), 0, 'can_connect_po polygon_remove_parallel_continuous_edges($polygon); polygon_remove_acute_vertices($polygon); is scalar(@$polygon), 4, 'polygon_remove_acute_vertices'; - - use Slic3r::SVG; - #pop @$polygon; - Slic3r::SVG::output(undef, "vert.svg", - polylines => [$polygon], - ); } #========================================================== @@ -144,12 +138,6 @@ is Slic3r::Geometry::can_connect_points(@$points, $polygons), 0, 'can_connect_po ]; polyline_remove_acute_vertices($polygon); is scalar(@$polygon), 6, 'polyline_remove_acute_vertices'; - use Slic3r::SVG; - local $Slic3r::resolution = 0.1; - pop @$polygon; - Slic3r::SVG::output(undef, "vert2.svg", - polylines => [$polygon], - ); } #========================================================== \ No newline at end of file diff --git a/t/polyclip.t b/t/polyclip.t index f4366d4ce..b7d4d58f6 100644 --- a/t/polyclip.t +++ b/t/polyclip.t @@ -1,6 +1,8 @@ use Test::More; +use strict; +use warnings; -plan tests => 13; +plan tests => 14; BEGIN { use FindBin; @@ -50,49 +52,52 @@ is_deeply $intersection, [ [12, 12], [18, 16] ], 'internal lines are preserved'; #========================================================== -my $hole_in_square = [ # cw - [14, 14], - [14, 16], - [16, 16], - [16, 14], -]; -my $intersections = Slic3r::Geometry::clip_segment_complex_polygon($line, [ $square, $hole_in_square ]); -is_deeply $intersections, [ - [ [10, 15], [14, 15] ], - [ [16, 15], [20, 15] ], -], 'line is clipped to square with hole'; +{ + my $hole_in_square = [ # cw + [14, 14], + [14, 16], + [16, 16], + [16, 14], + ]; + my $intersections = Slic3r::Geometry::clip_segment_complex_polygon($line, [ $square, $hole_in_square ]); + is_deeply $intersections, [ + [ [10, 15], [14, 15] ], + [ [16, 15], [20, 15] ], + ], 'line is clipped to square with hole'; +} #========================================================== -my $large_circle = [ # ccw - [151.8639,288.1192], [133.2778,284.6011], [115.0091,279.6997], [98.2859,270.8606], [82.2734,260.7933], - [68.8974,247.4181], [56.5622,233.0777], [47.7228,216.3558], [40.1617,199.0172], [36.6431,180.4328], - [34.932,165.2312], [37.5567,165.1101], [41.0547,142.9903], [36.9056,141.4295], [40.199,124.1277], - [47.7776,106.7972], [56.6335,90.084], [68.9831,75.7557], [82.3712,62.3948], [98.395,52.3429], - [115.1281,43.5199], [133.4004,38.6374], [151.9884,35.1378], [170.8905,35.8571], [189.6847,37.991], - [207.5349,44.2488], [224.8662,51.8273], [240.0786,63.067], [254.407,75.4169], [265.6311,90.6406], - [275.6832,106.6636], [281.9225,124.52], [286.8064,142.795], [287.5061,161.696], [286.7874,180.5972], - [281.8856,198.8664], [275.6283,216.7169], [265.5604,232.7294], [254.3211,247.942], [239.9802,260.2776], - [224.757,271.5022], [207.4179,279.0635], [189.5605,285.3035], [170.7649,287.4188], -]; -is is_counter_clockwise($large_circle), 1, "contour is counter-clockwise"; - -my $small_circle = [ # cw - [158.227,215.9007], [164.5136,215.9007], [175.15,214.5007], [184.5576,210.6044], [190.2268,207.8743], - [199.1462,201.0306], [209.0146,188.346], [213.5135,177.4829], [214.6979,168.4866], [216.1025,162.3325], - [214.6463,151.2703], [213.2471,145.1399], [209.0146,134.9203], [199.1462,122.2357], [189.8944,115.1366], - [181.2504,111.5567], [175.5684,108.8205], [164.5136,107.3655], [158.2269,107.3655], [147.5907,108.7656], - [138.183,112.6616], [132.5135,115.3919], [123.5943,122.2357], [113.7259,134.92], [109.2269,145.7834], - [108.0426,154.7799], [106.638,160.9339], [108.0941,171.9957], [109.4933,178.1264], [113.7259,188.3463], - [123.5943,201.0306], [132.8461,208.1296], [141.4901,211.7094], [147.172,214.4458], -]; -is is_counter_clockwise($small_circle), 0, "hole is clockwise"; - -$line = [ [152.741724,288.086671142818], [152.741724,34.166466971035] ]; - -my $intersections = Slic3r::Geometry::clip_segment_complex_polygon($line, [ $large_circle, $small_circle ]); -is_deeply $intersections, [ - [ [152.741724, 35.166466971035], [152.741724, 108.087543109156] ], - [ [152.741724, 215.178806915206], [152.741724, 288.086671142818] ], -], 'line is clipped to square with hole'; - +{ + my $large_circle = [ # ccw + [151.8639,288.1192], [133.2778,284.6011], [115.0091,279.6997], [98.2859,270.8606], [82.2734,260.7933], + [68.8974,247.4181], [56.5622,233.0777], [47.7228,216.3558], [40.1617,199.0172], [36.6431,180.4328], + [34.932,165.2312], [37.5567,165.1101], [41.0547,142.9903], [36.9056,141.4295], [40.199,124.1277], + [47.7776,106.7972], [56.6335,90.084], [68.9831,75.7557], [82.3712,62.3948], [98.395,52.3429], + [115.1281,43.5199], [133.4004,38.6374], [151.9884,35.1378], [170.8905,35.8571], [189.6847,37.991], + [207.5349,44.2488], [224.8662,51.8273], [240.0786,63.067], [254.407,75.4169], [265.6311,90.6406], + [275.6832,106.6636], [281.9225,124.52], [286.8064,142.795], [287.5061,161.696], [286.7874,180.5972], + [281.8856,198.8664], [275.6283,216.7169], [265.5604,232.7294], [254.3211,247.942], [239.9802,260.2776], + [224.757,271.5022], [207.4179,279.0635], [189.5605,285.3035], [170.7649,287.4188], + ]; + is is_counter_clockwise($large_circle), 1, "contour is counter-clockwise"; + + my $small_circle = [ # cw + [158.227,215.9007], [164.5136,215.9007], [175.15,214.5007], [184.5576,210.6044], [190.2268,207.8743], + [199.1462,201.0306], [209.0146,188.346], [213.5135,177.4829], [214.6979,168.4866], [216.1025,162.3325], + [214.6463,151.2703], [213.2471,145.1399], [209.0146,134.9203], [199.1462,122.2357], [189.8944,115.1366], + [181.2504,111.5567], [175.5684,108.8205], [164.5136,107.3655], [158.2269,107.3655], [147.5907,108.7656], + [138.183,112.6616], [132.5135,115.3919], [123.5943,122.2357], [113.7259,134.92], [109.2269,145.7834], + [108.0426,154.7799], [106.638,160.9339], [108.0941,171.9957], [109.4933,178.1264], [113.7259,188.3463], + [123.5943,201.0306], [132.8461,208.1296], [141.4901,211.7094], [147.172,214.4458], + ]; + is is_counter_clockwise($small_circle), 0, "hole is clockwise"; + + $line = [ [152.741724,288.086671142818], [152.741724,34.166466971035] ]; + + my $intersections = Slic3r::Geometry::clip_segment_complex_polygon($line, [ $large_circle, $small_circle ]); + is_deeply $intersections, [ + [ [152.741724, 35.166466971035], [152.741724, 108.087543109156] ], + [ [152.741724, 215.178806915206], [152.741724, 288.086671142818] ], + ], 'line is clipped to square with hole'; +} diff --git a/t/stl.t b/t/stl.t index b06f2189c..d6fc8e25f 100644 --- a/t/stl.t +++ b/t/stl.t @@ -1,4 +1,6 @@ use Test::More; +use strict; +use warnings; plan tests => 11; @@ -28,8 +30,8 @@ is_deeply lines(28, 20, 30), [ ], 'lower vertex on la is_deeply lines(24, 10, 16), [ [ [4, 4], [2, 6] ] ], 'two edges intersect'; is_deeply lines(24, 10, 20), [ [ [4, 4], [1, 9] ] ], 'one vertex on plane and one edge intersects'; -my @lower = $stl->intersect_facet(vertices(22, 20, 20), $z, $dz); -my @upper = $stl->intersect_facet(vertices(20, 20, 10), $z, $dz); +my @lower = $stl->intersect_facet(vertices(22, 20, 20), $z); +my @upper = $stl->intersect_facet(vertices(20, 20, 10), $z); isa_ok $lower[0], 'Slic3r::Line::FacetEdge', 'bottom edge on layer'; isa_ok $upper[0], 'Slic3r::Line::FacetEdge', 'upper edge on layer'; is $lower[0]->edge_type, 'bottom', 'lower edge is detected as bottom'; @@ -40,5 +42,5 @@ sub vertices { } sub lines { - [ map [ map ref $_ eq 'Slic3r::Point' ? $_->p : [ map sprintf('%.0f', $_), @$_ ], @$_ ], map $_->p, $stl->intersect_facet(vertices(@_), $z, $dz) ]; + [ map [ map ref $_ eq 'Slic3r::Point' ? $_->p : [ map sprintf('%.0f', $_), @$_ ], @$_ ], map $_->p, $stl->intersect_facet(vertices(@_), $z) ]; } -- cgit v1.2.3