Small optimisations, by Brandon Black
[p5sagit/p5-mst-13.2.git] / t / mro / basic_04_dfs.t
1 #!./perl
2
3 use strict;
4 use warnings;
5 BEGIN {
6     unless (-d 'blib') {
7         chdir 't' if -d 't';
8         @INC = '../lib';
9     }
10 }
11
12 use Test::More tests => 1;
13
14 =pod 
15
16 From the parrot test t/pmc/object-meths.t
17
18  A   B A   E
19   \ /   \ /
20    C     D
21     \   /
22      \ /
23       F
24
25 =cut
26
27 {
28     package t::lib::A; use mro 'dfs';
29     package t::lib::B; use mro 'dfs';
30     package t::lib::E; use mro 'dfs';
31     package t::lib::C; use mro 'dfs'; use base ('t::lib::A', 't::lib::B');
32     package t::lib::D; use mro 'dfs'; use base ('t::lib::A', 't::lib::E');
33     package t::lib::F; use mro 'dfs'; use base ('t::lib::C', 't::lib::D');
34 }
35
36 is_deeply(
37     mro::get_linear_isa('t::lib::F'),
38     [ qw(t::lib::F t::lib::C t::lib::A t::lib::B t::lib::D t::lib::E) ],
39     '... got the right MRO for t::lib::F');  
40