24_mixvertexed.t   [plain text]


use Test::More tests => 128;
	
use Graph;

for my $m (0, 1) {
    for my $r (0, 1) {
	for my $h (0, 1) {
	    my $g = Graph->new(countvertexed => $m,
			       refvertexed   => $r,
			       hypervertexed => $h);
	    print "# m = $m, c = $r, h = $h\n";
	    $g->add_vertex("a");
	    $g->add_vertex("a");
	    $g->add_vertex(my $b = []);
	    $g->add_vertex($b);
	    if ($g->hypervertexed) {
		$g->add_vertex("c", "d");
		$g->add_vertex("c", "d");
	    }
	    for (1, 2) {
		ok(  $g->has_vertices( ) );
		ok(  $g->has_vertex("a") );
		ok(  $g->has_vertex($b ) );
		if ($g->hypervertexed) {
		    ok(  $g->has_vertex("c", "d") );
		}
		ok( !$g->has_vertex("e") );
	    }
	    for (1, 2) {
		is( $g->get_vertex_count("a"),      $m ? 2 : 1 );
		is( $g->get_vertex_count($b ),      $m ? 2 : 1 );
		if ($g->hypervertexed) {
		    is( $g->get_vertex_count("c", "d"), $m ? 2 : 1 );
		}
		is( $g->get_vertex_count("e"),      0 );
	    }
	    if (0) {
		is( $g->get_vertex_value("a"), "a" );
		is_deeply( $g->get_vertex_value($b), $b );
		if ($g->hypervertexed) {
		    is_deeply( $g->get_vertex_value("c", "d"), $h ? "d" : "c" ); # @todo
		}
		is( $g->get_vertex_value("e"), undef);
	    }
	}
    }
}