Graph-Undirected-Hamiltonicity

 view release on metacpan or  search on metacpan

t/transforms/add_random_edges.t  view on Meta::CPAN

#!perl
use Modern::Perl;

use Graph::Undirected::Hamiltonicity::Transforms
    qw(&string_to_graph &add_random_edges);

use Test::More;

plan tests => 6;

$ENV{HC_OUTPUT_FORMAT} = 'none';

while ( defined( my $line = <DATA> ) ) {
    next if $line =~ /^\s*#/;    ### skip comments
    chomp $line;

    if ( $line =~ /^\d+=\d+(,\d+=\d+)*$/ ) {
        my $g = string_to_graph($line);

        my $e         = scalar( $g->edges() );
        my @vertices  = $g->vertices;
        my $v         = @vertices;
        my $max_edges = ( $v * $v - $v ) / 2;

        my $edges_to_add = int( rand( $max_edges - $e ) );

        my $g1 = add_random_edges( $g, $edges_to_add );

        is( scalar( $g1->edges() ),
            $e + $edges_to_add,
            "Succesfully added $edges_to_add edges."
        );
    }
}

1;

__DATA__
###
### This is where test cases for the subroutine Graph::Undirected::Hamiltonicity::Transforms::add_random_edges()
### are written, one per line,
###
### Note: Every time you add a test case, remember to update the "plan tests => NUMBER";

# Here are some test cases:

0=1,0=2,1=2

0=1,0=2,1=2,3=4,3=5,4=5

0=11,0=6,10=12,10=2,11=13,11=14,11=15,11=9,12=14,12=16,12=19,13=16,13=18,14=5,14=6,15=16,15=2,16=4,16=5,17=18,17=5,17=9,19=2,19=7,1=4,1=8,2=3,3=4,3=5,7=8

0=13,0=5,0=8,10=12,10=3,10=5,11=13,11=14,12=2,13=6,13=7,14=4,15=3,15=9,1=2,1=8,2=5,2=6,4=7,4=8,5=8,6=9

0=1,0=10,0=3,0=9,10=2,10=8,1=2,1=4,2=5,3=4,3=6,4=5,4=7,5=8,6=7,6=9,7=8,8=9

0=14,0=26,0=3,0=8,10=17,10=19,10=27,11=19,11=22,11=3,11=5,11=7,11=9,12=2,12=6,13=15,13=7,14=21,15=22,15=25,16=20,16=24,16=28,17=24,17=26,17=9,18=28,18=6,19=27,1=17,1=25,20=25,20=3,21=28,21=6,22=25,22=26,23=4,23=5,24=8,26=29,26=8,27=28,27=7,29=3,2=23,...



( run in 1.052 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )