Commit | Line | Data |
---|---|---|
204e6232 BF |
1 | #!./perl |
2 | ||
3 | use strict; | |
4 | use warnings; | |
5 | use utf8; | |
6 | use open qw( :utf8 :std ); | |
7 | ||
8 | require q(./test.pl); plan(tests => 11); | |
9 | ||
10 | =pod | |
11 | ||
12 | This example is taken from: http://rt.cpan.org/Public/Bug/Display.html?id=20879 | |
13 | ||
14 | --- --- --- | |
15 | Level 5 8 | A | 9 | B | A | C | (More General) | |
16 | --- --- --- V | |
17 | \ | / | | |
18 | \ | / | | |
19 | \ | / | | |
20 | \ | / | | |
21 | --- | | |
22 | Level 4 7 | D | | | |
23 | --- | | |
24 | / \ | | |
25 | / \ | | |
26 | --- --- | | |
27 | Level 3 4 | G | 6 | E | | | |
28 | --- --- | | |
29 | | | | | |
30 | | | | | |
31 | --- --- | | |
32 | Level 2 3 | H | 5 | F | | | |
33 | --- --- | | |
34 | \ / | | | |
35 | \ / | | | |
36 | \ | | | |
37 | / \ | | | |
38 | / \ | | | |
39 | --- --- | | |
40 | Level 1 1 | J | 2 | I | | | |
41 | --- --- | | |
42 | \ / | | |
43 | \ / | | |
44 | --- v | |
45 | Level 0 0 | K | (More Specialized) | |
46 | --- | |
47 | ||
48 | ||
49 | 0123456789A | |
50 | KJIHGFEDABC | |
51 | ||
52 | =cut | |
53 | ||
54 | { | |
55 | package 텟Ṱ::ᐊ; use mro 'dfs'; | |
56 | ||
57 | package 텟Ṱ::ḅ; use mro 'dfs'; | |
58 | ||
59 | package 텟Ṱ::ȼ; use mro 'dfs'; | |
60 | ||
61 | package 텟Ṱ::Ḏ; use mro 'dfs'; | |
62 | use base qw/텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ/; | |
63 | ||
64 | package 텟Ṱ::Ӭ; use mro 'dfs'; | |
65 | use base qw/텟Ṱ::Ḏ/; | |
66 | ||
67 | package 텟Ṱ::Ḟ; use mro 'dfs'; | |
68 | use base qw/텟Ṱ::Ӭ/; | |
69 | ||
70 | package 텟Ṱ::ḡ; use mro 'dfs'; | |
71 | use base qw/텟Ṱ::Ḏ/; | |
72 | ||
73 | package 텟Ṱ::Ḣ; use mro 'dfs'; | |
74 | use base qw/텟Ṱ::ḡ/; | |
75 | ||
76 | package 텟Ṱ::ᶦ; use mro 'dfs'; | |
77 | use base qw/텟Ṱ::Ḣ 텟Ṱ::Ḟ/; | |
78 | ||
79 | package 텟Ṱ::J; use mro 'dfs'; | |
80 | use base qw/텟Ṱ::Ḟ/; | |
81 | ||
82 | package 텟Ṱ::Ḵ; use mro 'dfs'; | |
83 | use base qw/텟Ṱ::J 텟Ṱ::ᶦ/; | |
84 | } | |
85 | ||
86 | ok(eq_array( | |
87 | mro::get_linear_isa('텟Ṱ::ᐊ'), | |
88 | [ qw(텟Ṱ::ᐊ) ] | |
89 | ), '... got the right DFS merge order for 텟Ṱ::ᐊ'); | |
90 | ||
91 | ok(eq_array( | |
92 | mro::get_linear_isa('텟Ṱ::ḅ'), | |
93 | [ qw(텟Ṱ::ḅ) ] | |
94 | ), '... got the right DFS merge order for 텟Ṱ::ḅ'); | |
95 | ||
96 | ok(eq_array( | |
97 | mro::get_linear_isa('텟Ṱ::ȼ'), | |
98 | [ qw(텟Ṱ::ȼ) ] | |
99 | ), '... got the right DFS merge order for 텟Ṱ::ȼ'); | |
100 | ||
101 | ok(eq_array( | |
102 | mro::get_linear_isa('텟Ṱ::Ḏ'), | |
103 | [ qw(텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ) ] | |
104 | ), '... got the right DFS merge order for 텟Ṱ::Ḏ'); | |
105 | ||
106 | ok(eq_array( | |
107 | mro::get_linear_isa('텟Ṱ::Ӭ'), | |
108 | [ qw(텟Ṱ::Ӭ 텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ) ] | |
109 | ), '... got the right DFS merge order for 텟Ṱ::Ӭ'); | |
110 | ||
111 | ok(eq_array( | |
112 | mro::get_linear_isa('텟Ṱ::Ḟ'), | |
113 | [ qw(텟Ṱ::Ḟ 텟Ṱ::Ӭ 텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ) ] | |
114 | ), '... got the right DFS merge order for 텟Ṱ::Ḟ'); | |
115 | ||
116 | ok(eq_array( | |
117 | mro::get_linear_isa('텟Ṱ::ḡ'), | |
118 | [ qw(텟Ṱ::ḡ 텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ) ] | |
119 | ), '... got the right DFS merge order for 텟Ṱ::ḡ'); | |
120 | ||
121 | ok(eq_array( | |
122 | mro::get_linear_isa('텟Ṱ::Ḣ'), | |
123 | [ qw(텟Ṱ::Ḣ 텟Ṱ::ḡ 텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ) ] | |
124 | ), '... got the right DFS merge order for 텟Ṱ::Ḣ'); | |
125 | ||
126 | ok(eq_array( | |
127 | mro::get_linear_isa('텟Ṱ::ᶦ'), | |
128 | [ qw(텟Ṱ::ᶦ 텟Ṱ::Ḣ 텟Ṱ::ḡ 텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ 텟Ṱ::Ḟ 텟Ṱ::Ӭ) ] | |
129 | ), '... got the right DFS merge order for 텟Ṱ::ᶦ'); | |
130 | ||
131 | ok(eq_array( | |
132 | mro::get_linear_isa('텟Ṱ::J'), | |
133 | [ qw(텟Ṱ::J 텟Ṱ::Ḟ 텟Ṱ::Ӭ 텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ) ] | |
134 | ), '... got the right DFS merge order for 텟Ṱ::J'); | |
135 | ||
136 | ok(eq_array( | |
137 | mro::get_linear_isa('텟Ṱ::Ḵ'), | |
138 | [ qw(텟Ṱ::Ḵ 텟Ṱ::J 텟Ṱ::Ḟ 텟Ṱ::Ӭ 텟Ṱ::Ḏ 텟Ṱ::ᐊ 텟Ṱ::ḅ 텟Ṱ::ȼ 텟Ṱ::ᶦ 텟Ṱ::Ḣ 텟Ṱ::ḡ) ] | |
139 | ), '... got the right DFS merge order for 텟Ṱ::Ḵ'); |