File: use_class.t

package info (click to toggle)
libgraph-easy-perl 0.71-1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 4,284 kB
  • sloc: perl: 24,909; makefile: 2
file content (96 lines) | stat: -rw-r--r-- 2,265 bytes parent folder | download | duplicates (5)
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');