4 use Test::More tests=>5;
9 use MooseX::Types::Structured qw(Dict Tuple);
10 use MooseX::Types::Moose qw(Int Str Item);
11 use MooseX::Types -declare => [qw(
12 MyDict1 MyDict2 MyDict4
16 as Dict[name=>Str, age=>Int];
19 as Dict[name=>Str, age=>Int];
22 as Dict[name=>Str, age=>Item];
26 use Moose::Util::TypeConstraints;
27 use MooseX::Types::Structured qw(Dict Tuple);
28 use MooseX::Types::Moose qw(Int Str Item Object ArrayRef HashRef);
31 TypeLib->import(':all');
34 ok ( MyDict2->is_a_type_of(MyDict4),
35 'MyDict2 is_a_type_of MyDict4');
37 ok ( (Tuple[Tuple[ class_type('Paper'), class_type('Stone') ], Dict[]])->is_a_type_of( Tuple[Tuple[ Item, Item ], Dict[]] ),
40 ok ( (Tuple[Tuple[ class_type('Paper'), class_type('Stone') ], Dict[]])->is_a_type_of( Tuple[Tuple[ Item, Item ], Dict[]] ),
43 ok ( (Tuple[Tuple[ class_type('Paper'), class_type('Stone') ], Dict[]])->is_subtype_of( Tuple[Tuple[ Item, Item ], Dict[]] ),
46 ok ( MyDict1->is_subtype_of(MyDict4),
47 'MyDict1 is_subtype_of MyDict4');