1#!./perl 2 3use strict; 4use warnings; 5use utf8; 6use open qw( :utf8 :std ); 7 8require q(./test.pl); plan(tests => 1); 9 10=pod 11 12This example is taken from the inheritance graph of DBIx::Class::Core in DBIx::Class v0.07002: 13(No ASCII art this time, this graph is insane) 14 15The xx:: prefixes are just to be sure these bogus declarations never stomp on real ones 16 17=cut 18 19{ 20 package Ẋẋ::ḐʙIX::Cl았::Coレ; use mro 'c3'; 21 our @ISA = qw/ 22 Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ 23 Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ 24 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ 25 Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต 26 Ẋẋ::ḐʙIX::Cl았::ᛕķ 27 Ẋẋ::ḐʙIX::Cl았::ロẈ 28 Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ 29 Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ 30 /; 31 32 package Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ; use mro 'c3'; 33 our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /; 34 35 package Ẋẋ::ḐʙIX::Cl았::ロẈ; use mro 'c3'; 36 our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; 37 38 package Ẋẋ::ḐʙIX::Cl았; use mro 'c3'; 39 our @ISA = qw/ 40 Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗 41 xx::Cl았::닽Ӕ::앛쳇sᚖ 42 /; 43 44 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ; use mro 'c3'; 45 our @ISA = qw/ 46 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS 47 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ 48 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ 49 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś 50 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え 51 Ẋẋ::ḐʙIX::Cl았 52 /; 53 54 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS; use mro 'c3'; 55 our @ISA = qw/ 56 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ 57 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn 58 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ 59 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ 60 /; 61 62 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś; use mro 'c3'; 63 our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; 64 65 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え; use mro 'c3'; 66 our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; 67 68 package Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต; use mro 'c3'; 69 our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; 70 71 package Ẋẋ::ḐʙIX::Cl았::ᛕķ; use mro 'c3'; 72 our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았::ロẈ /; 73 74 package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ; use mro 'c3'; 75 our @ISA = qw/ 76 Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ 77 Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy 78 /; 79 80 package Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy; use mro 'c3'; 81 our @ISA = qw/ Ẋẋ::ḐʙIX::Cl았 /; 82 83 package xx::Cl았::닽Ӕ::앛쳇sᚖ; our @ISA = (); use mro 'c3'; 84 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ; our @ISA = (); use mro 'c3'; 85 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn; our @ISA = (); use mro 'c3'; 86 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ; our @ISA = (); use mro 'c3'; 87 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ; our @ISA = (); use mro 'c3'; 88 package Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗; our @ISA = (); use mro 'c3'; 89 package Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ; our @ISA = (); use mro 'c3'; 90 package Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ; our @ISA = (); use mro 'c3'; 91 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ; our @ISA = (); use mro 'c3'; 92 package Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ; our @ISA = (); use mro 'c3'; 93} 94 95ok(eq_array( 96 mro::get_linear_isa('Ẋẋ::ḐʙIX::Cl았::Coレ'), 97 [qw/ 98 Ẋẋ::ḐʙIX::Cl았::Coレ 99 Ẋẋ::ḐʙIX::Cl았::ᓭᚱi알ḭźɜ::Sᑐ랍lえ 100 Ẋẋ::ḐʙIX::Cl았::Ĭⁿᰒ텣올움ᶮ 101 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ 102 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::헬pḜrS 103 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᛗƳ 104 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::핫ᶱn 105 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::бl옹sTȭ 106 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::ᛗᓆ톰ẰᚿẎ 107 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::앛쳇sᚖ 108 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::찻찯eᚪtЁnʂ 109 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::Pr오xᐇMeᖪ옫ś 110 Ẋẋ::ḐʙIX::Cl았::렐aチ온ሺṖ::밧え 111 Ẋẋ::ḐʙIX::Cl았::ᛕķ::Ạuต 112 Ẋẋ::ḐʙIX::Cl았::ᛕķ 113 Ẋẋ::ḐʙIX::Cl았::ロẈ 114 Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy::탑lẹ 115 Ẋẋ::ḐʙIX::Cl았::ᚪc엤ȭઋᶢऋouꩇ 116 Ẋẋ::ḐʙIX::Cl았::ResultSourceProxy 117 Ẋẋ::ḐʙIX::Cl았 118 Ẋẋ::ḐʙIX::Cl았::촘폰en팃엗 119 xx::Cl았::닽Ӕ::앛쳇sᚖ 120 /] 121), '... got the right C3 merge order for Ẋẋ::ḐʙIX::Cl았::Core'); 122