Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/prusa3d/PrusaSlicer.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorAlessandro Ranellucci <aar@cpan.org>2014-01-05 03:36:33 +0400
committerAlessandro Ranellucci <aar@cpan.org>2014-01-05 03:36:33 +0400
commit07b9b12475ddcc206252abb43cb457db06dd334b (patch)
treef87789520ae936b0c32f563fe514eaf6802da404 /t
parenta2cbb261cbef9b95b7e900fac3408fc3513fe52b (diff)
Make tests pass
Diffstat (limited to 't')
-rw-r--r--t/combineinfill.t35
-rw-r--r--t/retraction.t18
-rw-r--r--t/support.t8
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,