Algorithm-TravelingSalesman-BitonicTour

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

    dist_version_from   => 'lib/Algorithm/TravelingSalesman/BitonicTour.pm',
    requires => {
        'perl'                  => 5.006_000,
        'Carp'                  => 0,
        'Class::Accessor::Fast' => 0,
        'List::Util'            => 0,
        'Params::Validate'      => 0,
        'Regexp::Common'        => 0,
    },
    build_requires => {
        'Data::Dumper'        => 0,
        'Pod::Coverage'       => 0,
        'Readonly'            => 0,
        'Test::Exception'     => 0,
        'Test::More'          => 0,
        'Test::Pod'           => 0,
        'Test::Pod::Coverage' => 0,
    },
    add_to_cleanup      => ['Algorithm-*','*.bak'],
);

META.yml  view on Meta::CPAN

resources:
  license: http://dev.perl.org/licenses/
requires:
  Carp: 0
  Class::Accessor::Fast: 0
  List::Util: 0
  Params::Validate: 0
  Regexp::Common: 0
  perl: 5.006
build_requires:
  Data::Dumper: 0
  Pod::Coverage: 0
  Readonly: 0
  Test::Exception: 0
  Test::More: 0
  Test::Pod: 0
  Test::Pod::Coverage: 0
provides:
  Algorithm::TravelingSalesman::BitonicTour:
    file: lib/Algorithm/TravelingSalesman/BitonicTour.pm
    version: 0.05

t/02-optimal-tours.t  view on Meta::CPAN

use strict;
use warnings;

use Data::Dumper;
use Test::More 'no_plan';
use Test::Exception;
local $Data::Dumper::Sortkeys = 1;

use Algorithm::TravelingSalesman::BitonicTour;

# set up a problem and do some basic sanity checking
my $b = Algorithm::TravelingSalesman::BitonicTour->new;
$b->add_point(0,0);
$b->add_point(1,1);
$b->add_point(2,1);
$b->add_point(3,0);
is($b->N, 4);

t/10-solve-0.t  view on Meta::CPAN

use strict;
use warnings;
use Algorithm::TravelingSalesman::BitonicTour;
use Data::Dumper;
use Test::More 'no_plan';
use Test::Exception;

use_ok('Algorithm::TravelingSalesman::BitonicTour');

# make sure an attempt to solve a problem with no points dies
{
    my $b = Algorithm::TravelingSalesman::BitonicTour->new;
    throws_ok { $b->solve } qr/need to add some points/,
        'bad problem throws exception';

t/11-solve-1.t  view on Meta::CPAN

use strict;
use warnings;
use Algorithm::TravelingSalesman::BitonicTour;
use Data::Dumper;
use Test::More 'no_plan';
use Test::Exception;

use_ok('Algorithm::TravelingSalesman::BitonicTour');

# make sure a problem with exactly one point "works"
for (1 .. 10) {
    my $b = Algorithm::TravelingSalesman::BitonicTour->new;
    my ($x, $y) = map { 10 - rand(20) } 1, 2;
    $b->add_point($x,$y);

t/12-solve-2.t  view on Meta::CPAN

use strict;
use warnings;
use Algorithm::TravelingSalesman::BitonicTour;
use Data::Dumper;
use Test::More 'no_plan';
use Test::Exception;

use_ok('Algorithm::TravelingSalesman::BitonicTour');

# make sure a problem with exactly two points "works"
for my $i (1 .. 10) {

    my @points = map {
        my $x = $_ * (5 + rand(10));

t/13-solve-4.t  view on Meta::CPAN

use strict;
use warnings;
use Algorithm::TravelingSalesman::BitonicTour;
use Data::Dumper;
use Test::More 'no_plan';
use Test::Exception;

use_ok('Algorithm::TravelingSalesman::BitonicTour');

# solve a real problem (simple trapezoid)
{
    my $b = Algorithm::TravelingSalesman::BitonicTour->new;
    $b->add_point(0,0);
    $b->add_point(1,1);

t/14-solve-N.t  view on Meta::CPAN

use strict;
use warnings;
use Algorithm::TravelingSalesman::BitonicTour;
use Data::Dumper;
use Test::More 'no_plan';
use Test::Exception;
use Readonly;

Readonly::Scalar my $pi => 3.14159;     # duh
Readonly::Scalar my $N  => 201;         # number of points

use_ok('Algorithm::TravelingSalesman::BitonicTour');

# Solve a problem consisting of some large number of points evenly spaced along



( run in 0.254 second using v1.01-cache-2.11-cpan-4d50c553e7e )