From 3332282767248b6ceecc21d05cd35ccef7b09c8c Mon Sep 17 00:00:00 2001 From: Alessandro Ranellucci Date: Mon, 5 Jan 2015 20:07:47 +0100 Subject: [PATCH] Unit test for pressure advance. #2470 --- t/pressure.t | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 t/pressure.t diff --git a/t/pressure.t b/t/pressure.t new file mode 100644 index 000000000..fe4f05fb7 --- /dev/null +++ b/t/pressure.t @@ -0,0 +1,39 @@ +use Test::More tests => 1; +use strict; +use warnings; + +BEGIN { + use FindBin; + use lib "$FindBin::Bin/../lib"; +} + +use List::Util qw(); +use Slic3r; +use Slic3r::Geometry qw(); +use Slic3r::Test; + +{ + my $config = Slic3r::Config->new_from_defaults; + $config->set('pressure_advance', 10); + $config->set('retract_length', [1]); + + my $print = Slic3r::Test::init_print('20mm_cube', config => $config, duplicate => 2); + my $retracted = 0; + my $extruding_before_full_unretract = 0; + Slic3r::GCode::Reader->new->parse(Slic3r::Test::gcode($print), sub { + my ($self, $cmd, $args, $info) = @_; + + if ($info->{extruding} && $info->{dist_XY}) { + $extruding_before_full_unretract if $retracted != 0; + } elsif ($info->{extruding}) { + $retracted += -$info->{dist_E}; + } elsif ($info->{retracting}) { + $retracted += -$info->{dist_E}; + } + }); + + ok !$extruding_before_full_unretract, 'not extruding before complete unretract'; +} + + +__END__