use Test::More tests => 17;
use Graph;
my $g0 = Graph->new(directed => 1);
my $g1 = Graph->new(directed => 0);
my $g2 = Graph->new(directed => 1);
$g0->add_edge('a', 'b');
$g1->add_edge('a', 'b');
$g2->add_edge('a', 'a');
eval '$g0->expect_undirected';
like($@, qr/expected undirected graph, got directed/);
eval '$g1->expect_undirected';
is($@, '');
eval '$g0->expect_directed';
is($@, '');
eval '$g1->expect_directed';
like($@, qr/expected directed graph, got undirected/);
eval '$g0->expect_acyclic';
is($@, '');
eval '$g1->expect_acyclic';
is($@, '');
eval '$g2->expect_acyclic';
like($@, qr/expected acyclic graph, got cyclic/);
eval '$g0->expect_dag';
is($@, '');
eval '$g1->expect_dag';
like($@, qr/expected directed acyclic graph, got undirected/);
eval '$g2->expect_dag';
like($@, qr/expected directed acyclic graph, got cyclic/);
eval 'Graph->random_graph(42)';
like($@, qr/Graph::random_graph: argument 'vertices' missing or undef/);
eval 'Graph->random_graph(vertices=>100)';
is($@, '');
eval 'Graph->random_graph(42,43,44)';
like($@, qr/Graph::random_graph: argument 'vertices' missing or undef/);
eval 'Graph::_get_options()';
like($@, qr/internal error: should be called with only one array ref argument/);
eval 'Graph::_get_options(1)';
like($@, qr/internal error: should be called with only one array ref argument/);
eval 'Graph::_get_options([])';
is($@, '');
eval 'Graph::_get_options(12,34)';
like($@, qr/internal error: should be called with only one array ref argument/);