This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
fixup new hash benchmarks to be lighter
[perl5.git] / t / mro / vulcan_dfs_utf8.t
CommitLineData
204e6232
BF
1#!./perl
2
3use strict;
4use warnings;
5use utf8;
6use open qw( :utf8 :std );
7require q(./test.pl); plan(tests => 1);
8
9
10=pod
11
f298f061
SP
12=encoding UTF-8
13
204e6232
BF
14example taken from: L<http://www.opendylan.org/books/drm/Method_Dispatch>
15
16 옵젳Ṯ
17 ^
18 |
19 ᓕᵮꡠFᚖᶭ
20 ^ ^
21 / \
22 SㄣチenŦ 빞엗ᱞ
23 ^ ^
24 | |
25 ᕟ텔li겐ț Hʉ만ӫ읻
26 ^ ^
27 \ /
28 ቩᓪ찬
29
30 define class <SㄣチenŦ> (<life-form>) end class;
31 define class <빞엗ᱞ> (<life-form>) end class;
32 define class <ᕟ텔li겐ț> (<SㄣチenŦ>) end class;
33 define class <Hʉ만ӫ읻> (<빞엗ᱞ>) end class;
34 define class <ቩᓪ찬> (<ᕟ텔li겐ț>, <Hʉ만ӫ읻>) end class;
35
36=cut
37
38{
39 package 옵젳Ṯ;
40 use mro 'dfs';
41
42 package ᓕᵮꡠFᚖᶭ;
43 use mro 'dfs';
44 use base '옵젳Ṯ';
45
46 package SㄣチenŦ;
47 use mro 'dfs';
48 use base 'ᓕᵮꡠFᚖᶭ';
49
50 package 빞엗ᱞ;
51 use mro 'dfs';
52 use base 'ᓕᵮꡠFᚖᶭ';
53
54 package ᕟ텔li겐ț;
55 use mro 'dfs';
56 use base 'SㄣチenŦ';
57
58 package Hʉ만ӫ읻;
59 use mro 'dfs';
60 use base '빞엗ᱞ';
61
62 package ቩᓪ찬;
63 use mro 'dfs';
64 use base ('ᕟ텔li겐ț', 'Hʉ만ӫ읻');
65}
66
67ok(eq_array(
68 mro::get_linear_isa('ቩᓪ찬'),
69 [ qw(ቩᓪ찬 ᕟ텔li겐ț SㄣチenŦ ᓕᵮꡠFᚖᶭ 옵젳Ṯ Hʉ만ӫ읻 빞엗ᱞ) ]
70), '... got the right MRO for the ቩᓪ찬 Dylan Example');