diff options
author | Alessandro Ranellucci <aar@cpan.org> | 2014-01-05 03:36:33 +0400 |
---|---|---|
committer | Alessandro Ranellucci <aar@cpan.org> | 2014-01-05 03:36:33 +0400 |
commit | 07b9b12475ddcc206252abb43cb457db06dd334b (patch) | |
tree | f87789520ae936b0c32f563fe514eaf6802da404 /t | |
parent | a2cbb261cbef9b95b7e900fac3408fc3513fe52b (diff) |
Make tests pass
Diffstat (limited to 't')
-rw-r--r-- | t/combineinfill.t | 35 | ||||
-rw-r--r-- | t/retraction.t | 18 | ||||
-rw-r--r-- | t/support.t | 8 |
3 files changed, 49 insertions, 12 deletions
diff --git a/t/combineinfill.t b/t/combineinfill.t index bd80b0d30..62e22e6b2 100644 --- a/t/combineinfill.t +++ b/t/combineinfill.t @@ -11,11 +11,42 @@ use List::Util qw(first); use Slic3r; use Slic3r::Test; -plan skip_all => 'this test is currently disabled'; # needs to be adapted to the new API -plan tests => 3; +plan tests => 2; { my $config = Slic3r::Config->new_from_defaults; + $config->set('layer_height', 0.2); + $config->set('first_layer_height', 0.2); + $config->set('nozzle_diameter', [0.5]); + $config->set('infill_every_layers', 2); + $config->set('infill_extruder', 2); + $config->set('top_solid_layers', 0); + $config->set('bottom_solid_layers', 0); + my $print = Slic3r::Test::init_print('20mm_cube', config => $config); + ok my $gcode = Slic3r::Test::gcode($print), "infill_every_layers does not crash"; + + my $tool = undef; + my %layer_infill = (); # layer_z => has_infill + Slic3r::GCode::Reader->new->parse($gcode, sub { + my ($self, $cmd, $args, $info) = @_; + + if ($cmd =~ /^T(\d+)/) { + $tool = $1; + } elsif ($cmd eq 'G1' && $info->{extruding} && $info->{dist_XY} > 0) { + $layer_infill{$self->Z} //= 0; + if ($tool == $config->infill_extruder-1) { + $layer_infill{$self->Z} = 1; + } + } + }); + my $layers_with_infill = grep $_, values %layer_infill; + $layers_with_infill--; # first layer is never combined + is $layers_with_infill, scalar(keys %layer_infill)/2, 'infill is only present in correct number of layers'; +} + +# the following needs to be adapted to the new API +if (0) { + my $config = Slic3r::Config->new_from_defaults; $config->set('skirts', 0); $config->set('solid_layers', 0); $config->set('bottom_solid_layers', 0); diff --git a/t/retraction.t b/t/retraction.t index 636359149..3737f63cd 100644 --- a/t/retraction.t +++ b/t/retraction.t @@ -41,8 +41,8 @@ my $test = sub { if ($info->{dist_Z}) { # lift move or lift + change layer - if (_eq($info->{dist_Z}, $print->extruders->[$tool]->retract_lift) - || (_eq($info->{dist_Z}, $conf->layer_height + $print->extruders->[$tool]->retract_lift) && $print->extruders->[$tool]->retract_lift > 0)) { + if (_eq($info->{dist_Z}, $print->config->get_at('retract_lift', $tool)) + || (_eq($info->{dist_Z}, $conf->layer_height + $print->config->get_at('retract_lift', $tool)) && $print->config->get_at('retract_lift', $tool) > 0)) { fail 'only lifting while retracted' if !$retracted[$tool] && !($conf->g0 && $info->{retracting}); fail 'double lift' if $lifted; $lifted = 1; @@ -50,8 +50,8 @@ my $test = sub { if ($info->{dist_Z} < 0) { fail 'going down only after lifting' if !$lifted; fail 'going down by the same amount of the lift or by the amount needed to get to next layer' - if !_eq($info->{dist_Z}, -$print->extruders->[$tool]->retract_lift) - && !_eq($info->{dist_Z}, -$print->extruders->[$tool]->retract_lift + $conf->layer_height); + if !_eq($info->{dist_Z}, -$print->config->get_at('retract_lift', $tool)) + && !_eq($info->{dist_Z}, -$print->config->get_at('retract_lift', $tool) + $conf->layer_height); $lifted = 0; } fail 'move Z at travel speed' if ($args->{F} // $self->F) != $conf->travel_speed * 60; @@ -59,9 +59,9 @@ my $test = sub { if ($info->{retracting}) { $retracted[$tool] = 1; $retracted_length[$tool] += -$info->{dist_E}; - if (_eq($retracted_length[$tool], $print->extruders->[$tool]->retract_length)) { + if (_eq($retracted_length[$tool], $print->config->get_at('retract_length', $tool))) { # okay - } elsif (_eq($retracted_length[$tool], $print->extruders->[$tool]->retract_length_toolchange)) { + } elsif (_eq($retracted_length[$tool], $print->config->get_at('retract_length_toolchange', $tool))) { $wait_for_toolchange = 1; } else { fail 'retracted by the correct amount'; @@ -72,9 +72,9 @@ my $test = sub { if ($info->{extruding}) { fail 'only extruding while not lifted' if $lifted; if ($retracted[$tool]) { - my $expected_amount = $retracted_length[$tool] + $print->extruders->[$tool]->retract_restart_extra; + my $expected_amount = $retracted_length[$tool] + $print->config->get_at('retract_restart_extra', $tool); if ($changed_tool && $toolchange_count[$tool] > 1) { - $expected_amount = $print->extruders->[$tool]->retract_length_toolchange + $print->extruders->[$tool]->retract_restart_extra_toolchange; + $expected_amount = $print->config->get_at('retract_length_toolchange', $tool) + $print->config->get_at('retract_restart_extra_toolchange', $tool); $changed_tool = 0; } fail 'unretracted by the correct amount' @@ -83,7 +83,7 @@ my $test = sub { $retracted_length[$tool] = 0; } } - if ($info->{travel} && $info->{dist_XY} >= $print->extruders->[$tool]->retract_before_travel) { + if ($info->{travel} && $info->{dist_XY} >= $print->config->get_at('retract_before_travel', $tool)) { fail 'retracted before long travel move' if !$retracted[$tool]; } }); diff --git a/t/support.t b/t/support.t index bd82d0ce1..a1e7173d9 100644 --- a/t/support.t +++ b/t/support.t @@ -23,7 +23,13 @@ use Slic3r::Test; $print->init_extruders; my $flow = $print->objects->[0]->support_material_flow; my $support_z = Slic3r::Print::SupportMaterial - ->new(object_config => $print->objects->[0]->config, print_config => $print->config, flow => $flow) + ->new( + object_config => $print->objects->[0]->config, + print_config => $print->config, + flow => $flow, + interface_flow => $flow, + first_layer_flow => $flow, + ) ->support_layers_z(\@contact_z, \@top_z, $config->layer_height); is $support_z->[0], $config->first_layer_height, |