The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use strict;
use warnings;

use Test::More tests => 6;

use Perl::Achievements;

my $pa = Perl::Achievements->new(
    interactive => 0,
    dry_run => 1,
);

my $ach = Perl::Achievements::Achievement::SchwartzianTransform->new(
    app => $pa,
);

is $ach->level => 0, 'level 0 by default';

my $code = <<'END_CODE';
    my %h = ( 'yanick' => 1, 'drool' => 2 );
    my @x = map { s/^.*?_//; $_; }  
            sort { $a <=> $b } 
            map { $h{$_}.'_'.$_ } 
            keys %h;
END_CODE

$pa->set_ppi( PPI::Document->new( \$code ) );
$ach->scan;

is $ach->level => 1, 'leveled up!';

$ach->scan for 1..10;

is $ach->level => 4;
is $ach->transformations => 11;

$ach->scan for 1..5;

is $ach->level => 5;
is $ach->transformations => 16;