use warnings;
use strict;

use Test::More;

use Data::Dumper;
use Hook::Output::Tiny;
use Dist::Mgr qw(:all);

use lib 't/lib';
use Helper qw(:all);

# bad params
{
    # no version
    is eval {
        version_incr();
        1
    }, undef, "version_incr() croaks if no param";
    like $@, qr/needs a version number/, "...and error is sane";

    # invalid version
    is eval {
        version_incr('1.07asdf');
        1
    }, undef, "invalid version croaks ok";
    like $@, qr/The version number/, "...and error is sane";
}

# version
{
    my $orig = '0.01';
    my $v = '0.01';

    for (0..500) {
        $v = version_incr($v);

        my $incr = ('0.01' * $_) + '0.01';
        is $v, sprintf("%.2f", $orig + $incr), "version incremented to $v at round $_ ok";
    }
}

done_testing();