first commit
This commit is contained in:
96
perl/lib/Graph-Easy-0.76/t/use_class.t
Normal file
96
perl/lib/Graph-Easy-0.76/t/use_class.t
Normal file
@@ -0,0 +1,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');
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user