1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
#!/usr/bin/perl -w
use Test::More;
use strict;
BEGIN
{
plan tests => 8;
chdir 't' if -d 't';
use lib '../lib';
use_ok qw/Graph::Easy/;
use_ok qw/Graph::Easy::Parser/;
}
######################################################
package Graph::Easy::MyNode;
use Graph::Easy::Node;
use base qw/Graph::Easy::Node/;
# override here methods for your node class
######################################################
# when overriding nodes, we also need ::Anon
package Graph::Easy::MyNode::Anon;
#use Graph::Easy::MyNode;
use base qw/Graph::Easy::MyNode/;
use base qw/Graph::Easy::Node::Anon/;
######################################################
# and :::Empty
package Graph::Easy::MyNode::Empty;
#use Graph::Easy::MyNode;
use base qw/Graph::Easy::MyNode/;
######################################################
package Graph::Easy::MyGraph;
use Graph::Easy;
use base qw/Graph::Easy/;
######################################################
package Graph::Easy::MyGroup;
use Graph::Easy::Group;
use base qw/Graph::Easy::Group/;
######################################################
package Graph::Easy::MyEdge;
use Graph::Easy::Edge;
use base qw/Graph::Easy::Edge/;
######################################################
package main;
use Graph::Easy::Parser;
use Graph::Easy;
my $parser = Graph::Easy::Parser->new();
$parser->use_class('node', 'Graph::Easy::MyNode');
$parser->use_class('edge', 'Graph::Easy::MyEdge');
$parser->use_class('graph', 'Graph::Easy::MyGraph');
$parser->use_class('group', 'Graph::Easy::MyGroup');
my $graph = $parser->from_text("( Cities: [ Bonn ] -> [ Berlin| |Spree ] -> [ ])");
is (ref($graph), 'Graph::Easy::MyGraph', 'graph worked');
my $group = $graph->group('Cities:');
is (ref($group), 'Graph::Easy::MyGroup', 'group worked');
my $bonn = $graph->node('Bonn');
is (ref($bonn), 'Graph::Easy::MyNode', 'node worked');
my @nodes = $graph->nodes();
my $empty = $graph->node('BerlinSpree.1');
is (ref($empty), 'Graph::Easy::MyNode::Empty', 'empty node worked');
$graph = $parser->from_text("[ ]");
is (ref($graph), 'Graph::Easy::MyGraph', 'graph with anon node worked');
@nodes = $graph->nodes();
my $anon = $nodes[0];
is (ref($anon), 'Graph::Easy::MyNode::Anon', 'anon node worked');
|