The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
# vim: set ts=2 sts=2 sw=2 expandtab smarttab:
use strict;
use warnings;
use Test::More 0.96;
use version 0.82;

my $vobject = version->parse('v1.2.3');

my %tests = (
  'v1.2.3' => [qw(
    dotted
    normal
    v-string
    v
    dot
    string
    ov
  )],
  '1.2.3' => [qw(
    no-v-string
    no-vstring
    no-v
    no_v
    no+vstring
    novstring
    nov
  )],
  '1.002003' => [qw(
    decimal
    default
    compatible
    pirate
  )]
);

plan tests => (map { @$_ } values %tests) + 1; # tests + new_ok

my $mod = 'Git::DescribeVersion';
eval "require $mod" or die $@;
my $gdv = new_ok($mod);

foreach my $version ( keys %tests ){
  foreach my $format ( @{$tests{$version}} ){
    $gdv->{format} = $format;
    is($gdv->format_version($vobject), $version, "format '$format' produces version '$version'");
  }
}