remove extraneous garbage from tests
[gitmo/Class-C3.git] / t / 04_MRO.t
1 #!/usr/bin/perl
2
3 use strict;
4 use warnings;
5
6 use Test::More tests => 1;
7
8 =pod
9
10 example taken from: L<http://gauss.gwydiondylan.org/books/drm/drm_50.html>
11
12          Object
13            ^
14            |
15         LifeForm 
16          ^    ^
17         /      \
18    Sentient    BiPedal
19       ^          ^
20       |          |
21  Intelligent  Humanoid
22        ^        ^
23         \      /
24          Vulcan
25
26  define class <sentient> (<life-form>) end class;
27  define class <bipedal> (<life-form>) end class;
28  define class <intelligent> (<sentient>) end class;
29  define class <humanoid> (<bipedal>) end class;
30  define class <vulcan> (<intelligent>, <humanoid>) end class;
31
32 =cut
33
34 {
35     package Object;    
36     use Class::C3;
37     
38     package LifeForm;
39     use Class::C3;
40     use base 'Object';
41     
42     package Sentient;
43     use Class::C3;
44     use base 'LifeForm';
45     
46     package BiPedal;
47     use Class::C3;    
48     use base 'LifeForm';
49     
50     package Intelligent;
51     use Class::C3;    
52     use base 'Sentient';
53     
54     package Humanoid;
55     use Class::C3;    
56     use base 'BiPedal';
57     
58     package Vulcan;
59     use Class::C3;    
60     use base ('Intelligent', 'Humanoid');
61 }
62
63 Class::C3::initialize();
64
65 is_deeply(
66     [ Class::C3::calculateMRO('Vulcan') ],
67     [ qw(Vulcan Intelligent Sentient Humanoid BiPedal LifeForm Object) ],
68     '... got the right MRO for the Vulcan Dylan Example');