diff options
author | Alessandro Ranellucci <aar@cpan.org> | 2015-01-05 22:07:47 +0300 |
---|---|---|
committer | Alessandro Ranellucci <aar@cpan.org> | 2015-01-05 22:07:47 +0300 |
commit | 3332282767248b6ceecc21d05cd35ccef7b09c8c (patch) | |
tree | fdce41ef7c935156345ef55bef6b624a07576041 /t | |
parent | 47e4e8bb66740af791e56b36f0ecb67143a94b3b (diff) |
Unit test for pressure advance. #2470
Diffstat (limited to 't')
-rw-r--r-- | t/pressure.t | 39 |
1 files changed, 39 insertions, 0 deletions
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__ |