--- /dev/null
+#!/usr/bin/perl
+
+use strict;
+use warnings;
+
+use Test::More tests => 2;
+
+BEGIN {
+ use lib 'opt', '../opt', '..';
+ use_ok('c3');
+}
+
+=pod
+
+example taken from: L<http://gauss.gwydiondylan.org/books/drm/drm_50.html>
+
+ Object
+ ^
+ |
+ LifeForm
+ ^ ^
+ / \
+ Sentient BiPedal
+ ^ ^
+ | |
+ Intelligent Humanoid
+ ^ ^
+ \ /
+ Vulcan
+
+ define class <sentient> (<life-form>) end class;
+ define class <bipedal> (<life-form>) end class;
+ define class <intelligent> (<sentient>) end class;
+ define class <humanoid> (<bipedal>) end class;
+ define class <vulcan> (<intelligent>, <humanoid>) end class;
+
+=cut
+
+{
+ package Object;
+ use c3;
+
+ package LifeForm;
+ use c3;
+ use base 'Object';
+
+ package Sentient;
+ use c3;
+ use base 'LifeForm';
+
+ package BiPedal;
+ use c3;
+ use base 'LifeForm';
+
+ package Intelligent;
+ use c3;
+ use base 'Sentient';
+
+ package Humanoid;
+ use c3;
+ use base 'BiPedal';
+
+ package Vulcan;
+ use c3;
+ use base ('Intelligent', 'Humanoid');
+}
+
+Class::C3::initialize();
+
+is_deeply(
+ [ c3::calculateMRO('Vulcan') ],
+ [ qw(Vulcan Intelligent Sentient Humanoid BiPedal LifeForm Object) ],
+ '... got the right MRO for the Vulcan Dylan Example');
\ No newline at end of file