PATH=C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft Platform SDK\Bin\WinNT;C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\cygwin\bin;C:\cpanfly-5.16\var\megalib\bin;C:\Perl-5.16\site\bin;C:\Perl-5.16\bin;C:\cygwin\bin;C:\Program Files\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\instantclient_11_2;C:\cygwin\bin;C:\Program Files\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\mysql\bin Start 2013-08-20T04:00:27 ActivePerl-1600 CPAN-2.00 LIB=C:\PROGRA~1\MICROS~3\VC98\Lib\PSDK;C:\PROGRA~1\MICROS~2\Lib;C:\PROGRA~1\MICROS~3\VC98\Lib;C:\PROGRA~1\MICROS~3\VC98\MFC\Lib INCLUDE=C:\PROGRA~1\MICROS~2\Include;C:\PROGRA~1\MICROS~3\VC98\ATL\Include;C:\PROGRA~1\MICROS~3\VC98\Include;C:\PROGRA~1\MICROS~3\VC98\MFC\Include PATH=C:/CPANFL~1.16/var/libs/bin;C:\PROGRA~1\MICROS~2\Bin;C:\PROGRA~1\MICROS~2\Bin\WinNT;C:\PROGRA~1\MICROS~3\VC98\Bin;C:\PROGRA~1\MICROS~3\Common\MSDev98\Bin;C:\cygwin\bin;C:\CPANFL~1.16\var\megalib\bin;C:\Perl-5.16\site\bin;C:\Perl-5.16\bin;C:\cygwin\bin;C:\PROGRA~1\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\INSTAN~1;C:\cygwin\bin;C:\PROGRA~1\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\mysql\bin Reading 'C:\cpanfly-5.16\var\cpan\Metadata' Database was generated on Tue, 20 Aug 2013 09:53:02 GMT Running make for T/TO/TOBYINK/Moops-0.010.tar.gz Fetching with LWP: http://cpan.nas.activestate.com/authors/id/T/TO/TOBYINK/Moops-0.010.tar.gz Fetching with LWP: http://cpan.nas.activestate.com/authors/id/T/TO/TOBYINK/CHECKSUMS Checksum for C:\cpanfly-5.16\var\cpan\sources\authors\id\T\TO\TOBYINK\Moops-0.010.tar.gz ok Moops-0.010/CONTRIBUTING Moops-0.010/COPYRIGHT Moops-0.010/CREDITS Moops-0.010/Changes Moops-0.010/LICENSE Moops-0.010/MANIFEST Moops-0.010/META.json Moops-0.010/META.ttl Moops-0.010/META.yml Moops-0.010/Makefile.PL Moops-0.010/README Moops-0.010/SIGNATURE Moops-0.010/TODO Moops-0.010/dist.ini Moops-0.010/examples/bench.pl Moops-0.010/examples/calculator.pl Moops-0.010/examples/extending-moops.pl Moops-0.010/lib/Moops.pm Moops-0.010/t/01basic.t Moops-0.010/t/11class-moose.t Moops-0.010/t/11class-mouse.t Moops-0.010/t/11class.t Moops-0.010/t/12role-moose.t Moops-0.010/t/12role-mouse.t Moops-0.010/t/12role.t Moops-0.010/t/13namespace.t Moops-0.010/t/21fun.t Moops-0.010/t/22method.t Moops-0.010/t/23modifiers.t Moops-0.010/t/31types-moose.t Moops-0.010/t/31types-moosextypes-imported.t Moops-0.010/t/31types-moosextypes-moo.t Moops-0.010/t/31types-moosextypes.t Moops-0.010/t/31types-mouse.t Moops-0.010/t/31types.t Moops-0.010/t/41constants.t Moops-0.010/t/51moresugar.t Moops-0.010/t/52customsugar.t Moops-0.010/t/91traits.t Moops-0.010/lib/Moops/DefineKeyword.pm Moops-0.010/lib/Moops/ImportSet.pm Moops-0.010/lib/Moops/Keyword.pm Moops-0.010/lib/Moops/MethodModifiers.pm Moops-0.010/lib/Moops/Parser.pm Moops-0.010/examples/lib/MoopsX/Ception.pm Moops-0.010/lib/Moops/Keyword/Class.pm Moops-0.010/lib/Moops/Keyword/Role.pm Moops-0.010/examples/lib/MoopsX/Ception/Parser.pm Moops-0.010/examples/lib/MoopsX/Ception/Keyword/Exception.pm CPAN.pm: Building T/TO/TOBYINK/Moops-0.010.tar.gz >>> C:\Perl-5.16\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Writing Makefile for Moops Writing MYMETA.yml and MYMETA.json ---- Unsatisfied dependencies detected during ---- ---- TOBYINK/Moops-0.010.tar.gz ---- Type::Utils [requires] true [requires] Moo [requires] Function::Parameters [requires] Devel::Pragma [requires] Exporter::TypeTiny [requires] Keyword::Simple [requires] Import::Into [requires] namespace::sweep [requires] MooX::late [requires] Running make test Delayed until after prerequisites Running test for module 'Type::Utils' Running make for T/TO/TOBYINK/Type-Tiny-0.022.tar.gz Checksum for C:\cpanfly-5.16\var\cpan\sources\authors\id\T\TO\TOBYINK\Type-Tiny-0.022.tar.gz ok Type-Tiny-0.022/ Type-Tiny-0.022/.travis.yml Type-Tiny-0.022/inc/ Type-Tiny-0.022/inc/YAML/ Type-Tiny-0.022/inc/YAML/Tiny.pm Type-Tiny-0.022/inc/Try/ Type-Tiny-0.022/inc/Try/Tiny.pm Type-Tiny-0.022/inc/Test/ Type-Tiny-0.022/inc/Test/Requires.pm Type-Tiny-0.022/inc/Test/Fatal.pm Type-Tiny-0.022/inc/Module/ Type-Tiny-0.022/inc/Module/AutoInstall.pm Type-Tiny-0.022/inc/Module/Package.pm Type-Tiny-0.022/inc/Module/Install/ Type-Tiny-0.022/inc/Module/Install/Fetch.pm Type-Tiny-0.022/inc/Module/Install/AutoInstall.pm Type-Tiny-0.022/inc/Module/Install/Package.pm Type-Tiny-0.022/inc/Module/Install/Contributors.pm Type-Tiny-0.022/inc/Module/Install/Win32.pm Type-Tiny-0.022/inc/Module/Install/Makefile.pm Type-Tiny-0.022/inc/Module/Install/Can.pm Type-Tiny-0.022/inc/Module/Install/Base.pm Type-Tiny-0.022/inc/Module/Install/WriteAll.pm Type-Tiny-0.022/inc/Module/Install/Include.pm Type-Tiny-0.022/inc/Module/Install/Metadata.pm Type-Tiny-0.022/inc/Module/Install/AutoManifest.pm Type-Tiny-0.022/inc/Module/Install/TrustMetaYml.pm Type-Tiny-0.022/inc/Module/Install.pm Type-Tiny-0.022/inc/Module/Package/ Type-Tiny-0.022/inc/Module/Package/Dist/ Type-Tiny-0.022/inc/Module/Package/Dist/RDF.pm Type-Tiny-0.022/COPYRIGHT Type-Tiny-0.022/CONTRIBUTING Type-Tiny-0.022/NEWS Type-Tiny-0.022/t/ Type-Tiny-0.022/t/functionparameters.t Type-Tiny-0.022/t/type-intersection.t Type-Tiny-0.022/t/eval.t Type-Tiny-0.022/t/mouse-coercion.t Type-Tiny-0.022/t/exceptions-stack.t Type-Tiny-0.022/t/stdlib-mxtmlb-alike.t Type-Tiny-0.022/t/parser.t Type-Tiny-0.022/t/library-assert.t Type-Tiny-0.022/t/moo-exceptions.t Type-Tiny-0.022/t/type-class.t Type-Tiny-0.022/t/params-badsigs.t Type-Tiny-0.022/t/coercion-inlining.t Type-Tiny-0.022/t/stdlib.t Type-Tiny-0.022/t/01-compile.t Type-Tiny-0.022/t/02-api.t Type-Tiny-0.022/t/gh1.t Type-Tiny-0.022/t/stdlib-optlist.t Type-Tiny-0.022/t/type-role.t Type-Tiny-0.022/t/subquote.t Type-Tiny-0.022/t/rt86239.t Type-Tiny-0.022/t/coercions-parameterized.t Type-Tiny-0.022/t/oo-objectaccessor.t Type-Tiny-0.022/t/moo.t Type-Tiny-0.022/t/type-duck.t Type-Tiny-0.022/t/params-mixednamed.t Type-Tiny-0.022/t/params-carping.t Type-Tiny-0.022/t/type-enum.t Type-Tiny-0.022/t/library-is.t Type-Tiny-0.022/t/lib/ Type-Tiny-0.022/t/lib/DemoLib.pm Type-Tiny-0.022/t/lib/BiggerLib.pm Type-Tiny-0.022/t/coercion-union.t Type-Tiny-0.022/t/eval-lexicalsubs.t Type-Tiny-0.022/t/stdlib-overload.t Type-Tiny-0.022/t/stdlib-structures.t Type-Tiny-0.022/t/coercion-classy.t Type-Tiny-0.022/t/stdlib-tied.t Type-Tiny-0.022/t/moo-inflation.t Type-Tiny-0.022/t/moosextypes-more.t Type-Tiny-0.022/t/params-named.t Type-Tiny-0.022/t/dwim-moose.t Type-Tiny-0.022/t/exporter.t Type-Tiny-0.022/t/library-types.t Type-Tiny-0.022/t/coercion-automatic.t Type-Tiny-0.022/t/rt86233.t Type-Tiny-0.022/t/exceptions.t Type-Tiny-0.022/t/validationclass.t Type-Tiny-0.022/t/00-begin.t Type-Tiny-0.022/t/coercion-frozen.t Type-Tiny-0.022/t/moose-autott.t Type-Tiny-0.022/t/stdlib-strmatch.t Type-Tiny-0.022/t/mouse.t Type-Tiny-0.022/t/rt85911.t Type-Tiny-0.022/t/params-noninline.t Type-Tiny-0.022/t/dwim-mouse.t Type-Tiny-0.022/t/params-optional.t Type-Tiny-0.022/t/registry.t Type-Tiny-0.022/t/match-on-type.t Type-Tiny-0.022/t/syntax.t Type-Tiny-0.022/t/exporter-installer.t Type-Tiny-0.022/t/params-methods.t Type-Tiny-0.022/t/type.t Type-Tiny-0.022/t/moo-coercion.t Type-Tiny-0.022/t/library-to.t Type-Tiny-0.022/t/coercion.t Type-Tiny-0.022/t/moosextypes.t Type-Tiny-0.022/t/oo-classinsideout.t Type-Tiny-0.022/t/parameterization.t Type-Tiny-0.022/t/moose-coercion.t Type-Tiny-0.022/t/params-slurpy.t Type-Tiny-0.022/t/type-union.t Type-Tiny-0.022/t/arithmetic.t Type-Tiny-0.022/t/params-coerce.t Type-Tiny-0.022/t/moose.t Type-Tiny-0.022/t/params-positional.t Type-Tiny-0.022/t/coercion-modifiers.t Type-Tiny-0.022/t/rt86004.t Type-Tiny-0.022/t/mousextypes.t Type-Tiny-0.022/t/exporter-roleconflict.t Type-Tiny-0.022/README Type-Tiny-0.022/lib/ Type-Tiny-0.022/lib/Reply/ Type-Tiny-0.022/lib/Reply/Plugin/ Type-Tiny-0.022/lib/Reply/Plugin/TypeTiny.pm Type-Tiny-0.022/lib/Devel/ Type-Tiny-0.022/lib/Devel/TypeTiny/ Type-Tiny-0.022/lib/Devel/TypeTiny/Perl56Compat.pm Type-Tiny-0.022/lib/Types/ Type-Tiny-0.022/lib/Types/TypeTiny.pm Type-Tiny-0.022/lib/Types/Standard.pm Type-Tiny-0.022/lib/Test/ Type-Tiny-0.022/lib/Test/TypeTiny.pm Type-Tiny-0.022/lib/Type/ Type-Tiny-0.022/lib/Type/Exception.pm Type-Tiny-0.022/lib/Type/Params.pm Type-Tiny-0.022/lib/Type/Tiny/ Type-Tiny-0.022/lib/Type/Tiny/Manual.pod Type-Tiny-0.022/lib/Type/Tiny/Enum.pm Type-Tiny-0.022/lib/Type/Tiny/Manual/ Type-Tiny-0.022/lib/Type/Tiny/Manual/Coercions.pod Type-Tiny-0.022/lib/Type/Tiny/Manual/UsingWithOther.pod Type-Tiny-0.022/lib/Type/Tiny/Manual/Params.pod Type-Tiny-0.022/lib/Type/Tiny/Manual/UsingWithMoose.pod Type-Tiny-0.022/lib/Type/Tiny/Manual/Libraries.pod Type-Tiny-0.022/lib/Type/Tiny/Manual/UsingWithMouse.pod Type-Tiny-0.022/lib/Type/Tiny/Manual/UsingWithMoo.pod Type-Tiny-0.022/lib/Type/Tiny/Class.pm Type-Tiny-0.022/lib/Type/Tiny/Union.pm Type-Tiny-0.022/lib/Type/Tiny/Intersection.pm Type-Tiny-0.022/lib/Type/Tiny/Duck.pm Type-Tiny-0.022/lib/Type/Tiny/Role.pm Type-Tiny-0.022/lib/Type/Registry.pm Type-Tiny-0.022/lib/Type/Coercion.pm Type-Tiny-0.022/lib/Type/Exception/ Type-Tiny-0.022/lib/Type/Exception/WrongNumberOfParameters.pm Type-Tiny-0.022/lib/Type/Exception/Assertion.pm Type-Tiny-0.022/lib/Type/Exception/Compilation.pm Type-Tiny-0.022/lib/Type/Parser.pm Type-Tiny-0.022/lib/Type/Library.pm Type-Tiny-0.022/lib/Type/Coercion/ Type-Tiny-0.022/lib/Type/Coercion/Union.pm Type-Tiny-0.022/lib/Type/Tiny.pm Type-Tiny-0.022/lib/Type/Utils.pm Type-Tiny-0.022/lib/Eval/ Type-Tiny-0.022/lib/Eval/TypeTiny.pm Type-Tiny-0.022/lib/Exporter/ Type-Tiny-0.022/lib/Exporter/TypeTiny.pm Type-Tiny-0.022/MANIFEST Type-Tiny-0.022/SIGNATURE Type-Tiny-0.022/META.ttl Type-Tiny-0.022/CREDITS Type-Tiny-0.022/LICENSE Type-Tiny-0.022/examples/ Type-Tiny-0.022/examples/datetime-coercions.pl Type-Tiny-0.022/examples/benchmark-param-validation.pl Type-Tiny-0.022/examples/benchmark-mkopt.pl Type-Tiny-0.022/examples/benchmark-coercions.pl Type-Tiny-0.022/examples/benchmark-constraints.pl Type-Tiny-0.022/Makefile.PL Type-Tiny-0.022/meta/ Type-Tiny-0.022/meta/people.pret Type-Tiny-0.022/meta/changes.pret Type-Tiny-0.022/meta/doap.pret Type-Tiny-0.022/meta/rights.pret Type-Tiny-0.022/meta/makefile.pret Type-Tiny-0.022/META.yml Type-Tiny-0.022/Changes CPAN.pm: Building T/TO/TOBYINK/Type-Tiny-0.022.tar.gz >>> C:\Perl-5.16\bin\perl.exe Makefile.PL *** Module::AutoInstall version 1.06 *** Checking for Perl dependencies... *** Since we're running under CPAN, I'll just let it take care of the dependency's installation later. [Core Features] - Test::More ...loaded. (0.98 >= 0.96) - ExtUtils::MakeMaker ...loaded. (6.72 >= 6.59) *** Module::AutoInstall configuration finished. Checking if your kit is complete... Looks good Writing Makefile for Type::Tiny Writing MYMETA.yml and MYMETA.json >>> nmake Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. cp lib/Type/Tiny/Manual/Params.pod blib\lib\Type\Tiny\Manual\Params.pod cp lib/Test/TypeTiny.pm blib\lib\Test\TypeTiny.pm cp lib/Type/Tiny/Duck.pm blib\lib\Type\Tiny\Duck.pm cp lib/Type/Exception/Assertion.pm blib\lib\Type\Exception\Assertion.pm cp lib/Type/Tiny/Enum.pm blib\lib\Type\Tiny\Enum.pm cp lib/Type/Exception.pm blib\lib\Type\Exception.pm cp lib/Reply/Plugin/TypeTiny.pm blib\lib\Reply\Plugin\TypeTiny.pm cp lib/Type/Coercion/Union.pm blib\lib\Type\Coercion\Union.pm cp lib/Eval/TypeTiny.pm blib\lib\Eval\TypeTiny.pm cp lib/Type/Exception/Compilation.pm blib\lib\Type\Exception\Compilation.pm cp lib/Type/Params.pm blib\lib\Type\Params.pm cp lib/Type/Utils.pm blib\lib\Type\Utils.pm cp lib/Exporter/TypeTiny.pm blib\lib\Exporter\TypeTiny.pm cp lib/Devel/TypeTiny/Perl56Compat.pm blib\lib\Devel\TypeTiny\Perl56Compat.pm cp lib/Type/Tiny/Manual/UsingWithMoose.pod blib\lib\Type\Tiny\Manual\UsingWithMoose.pod cp lib/Types/TypeTiny.pm blib\lib\Types\TypeTiny.pm cp lib/Type/Tiny/Manual/UsingWithMouse.pod blib\lib\Type\Tiny\Manual\UsingWithMouse.pod cp lib/Type/Tiny/Manual/UsingWithOther.pod blib\lib\Type\Tiny\Manual\UsingWithOther.pod cp lib/Type/Tiny/Manual/Libraries.pod blib\lib\Type\Tiny\Manual\Libraries.pod cp lib/Type/Registry.pm blib\lib\Type\Registry.pm cp lib/Type/Exception/WrongNumberOfParameters.pm blib\lib\Type\Exception\WrongNumberOfParameters.pm cp lib/Type/Tiny/Manual.pod blib\lib\Type\Tiny\Manual.pod cp lib/Type/Tiny/Class.pm blib\lib\Type\Tiny\Class.pm cp lib/Type/Tiny.pm blib\lib\Type\Tiny.pm cp lib/Type/Tiny/Role.pm blib\lib\Type\Tiny\Role.pm cp lib/Type/Coercion.pm blib\lib\Type\Coercion.pm cp lib/Type/Tiny/Intersection.pm blib\lib\Type\Tiny\Intersection.pm cp lib/Type/Tiny/Manual/UsingWithMoo.pod blib\lib\Type\Tiny\Manual\UsingWithMoo.pod cp lib/Type/Parser.pm blib\lib\Type\Parser.pm cp lib/Types/Standard.pm blib\lib\Types\Standard.pm cp lib/Type/Tiny/Union.pm blib\lib\Type\Tiny\Union.pm cp lib/Type/Tiny/Manual/Coercions.pod blib\lib\Type\Tiny\Manual\Coercions.pod cp lib/Type/Library.pm blib\lib\Type\Library.pm TOBYINK/Type-Tiny-0.022.tar.gz nmake -- OK Running make test >>> nmake test TEST_VERBOSE=1 Microsoft (R) Program Maintenance Utility Version 7.00.8882 Copyright (C) Microsoft Corp 1988-2000. All rights reserved. C:\Perl-5.16\bin\perl.exe "-MExtUtils::Command::MM" "-e" "test_harness(1, 'inc', 'blib\lib', 'blib\arch')" t/00-begin.t t/01-compile.t t/02-api.t t/arithmetic.t t/coercion-automatic.t t/coercion-classy.t t/coercion-frozen.t t/coercion-inlining.t t/coercion-modifiers.t t/coercion-union.t t/coercion.t t/coercions-parameterized.t t/dwim-moose.t t/dwim-mouse.t t/eval-lexicalsubs.t t/eval.t t/exceptions-stack.t t/exceptions.t t/exporter-installer.t t/exporter-roleconflict.t t/exporter.t t/functionparameters.t t/gh1.t t/library-assert.t t/library-is.t t/library-to.t t/library-types.t t/match-on-type.t t/moo-coercion.t t/moo-exceptions.t t/moo-inflation.t t/moo.t t/moose-autott.t t/moose-coercion.t t/moose.t t/moosextypes-more.t t/moosextypes.t t/mouse-coercion.t t/mouse.t t/mousextypes.t t/oo-classinsideout.t t/oo-objectaccessor.t t/parameterization.t t/params-badsigs.t t/params-carping.t t/params-coerce.t t/params-methods.t t/params-mixednamed.t t/params-named.t t/params-noninline.t t/params-optional.t t/params-positional.t t/params-slurpy.t t/parser.t t/registry.t t/rt85911.t t/rt86004.t t/rt86233.t t/rt86239.t t/stdlib-mxtmlb-alike.t t/stdlib-optlist.t t/stdlib-overload.t t/stdlib-strmatch.t t/stdlib-structures.t t/stdlib-tied.t t/stdlib.t t/subquote.t t/syntax.t t/type-class.t t/type-duck.t t/type-enum.t t/type-intersection.t t/type-role.t t/type-union.t t/type.t t/validationclass.t # Required: # # Perl 5.016000 # base 2.18 # Encode 2.49 # Scalar::Util 1.31 # Test::More 0.98 # # Optional: # # Class::InsideOut 1.13 # Devel::LexAlias 0.05 # Devel::StackTrace 1.30 # Function::Parameters 1.0201 # Moo 1.003 # Moose 2.1005 # Mouse 1.11 # Object::Accessor 0.46 # Role::Tiny 1.003001 # Sub::Exporter::Lexical 0.092291 # Validation::Class::Simple 7.900048 # # Environment: # # $AUTOMATED_TESTING "1" # $NONINTERACTIVE_TESTING undef # $EXTENDED_TESTING undef # $AUTHOR_TESTING undef # $RELEASE_TESTING undef # # $PERL_TYPES_STANDARD_STRICTNUM undef # $MOO_XS_DISABLE undef # $MOOSE_ERROR_STYLE undef # $MOUSE_XS undef # $MOUSE_PUREPERL undef # $PERL_ONLY undef # t/00-begin.t ................. ok 1 1..1 ok t/01-compile.t ............... ok 1 - use Eval::TypeTiny; ok 2 - use Exporter::TypeTiny; ok 3 - use Test::TypeTiny; ok 4 - use Type::Coercion; ok 5 - use Type::Coercion::Union; ok 6 - use Type::Exception; ok 7 - use Type::Exception::Assertion; ok 8 - use Type::Exception::Compilation; ok 9 - use Type::Exception::WrongNumberOfParameters; ok 10 - use Type::Library; ok 11 - use Types::Standard; ok 12 - use Types::TypeTiny; ok 13 - use Type::Tiny; ok 14 - use Type::Tiny::Class; ok 15 - use Type::Tiny::Duck; ok 16 - use Type::Tiny::Enum; ok 17 - use Type::Tiny::Intersection; ok 18 - use Type::Tiny::Role; ok 19 - use Type::Tiny::Union; ok 20 - use Type::Utils; ok 21 - use Type::Params; 1..21 ok t/02-api.t ................... ok 1 - Moose::Meta::TypeConstraint API: TestType->can('_actually_compile_type_constraint') ok 2 - Moose::Meta::TypeConstraint API: TestType->can('_collect_all_parents') ok 3 - Moose::Meta::TypeConstraint API: TestType->can('_compile_hand_optimized_type_constraint') ok 4 - Moose::Meta::TypeConstraint API: TestType->can('_compile_subtype') ok 5 - Moose::Meta::TypeConstraint API: TestType->can('_compile_type') ok 6 - Moose::Meta::TypeConstraint API: TestType->can('_compiled_type_constraint') ok 7 - Moose::Meta::TypeConstraint API: TestType->can('_default_message') ok 8 - Moose::Meta::TypeConstraint API: TestType->can('_has_compiled_type_constraint') ok 9 - Moose::Meta::TypeConstraint API: TestType->can('_has_inlined_type_constraint') ok 10 - Moose::Meta::TypeConstraint API: TestType->can('_inline_check') ok 11 - Moose::Meta::TypeConstraint API: TestType->can('_inline_environment') ok 12 - Moose::Meta::TypeConstraint API: TestType->can('_new') ok 13 - Moose::Meta::TypeConstraint API: TestType->can('_package_defined_in') ok 14 - Moose::Meta::TypeConstraint API: TestType->can('_set_constraint') ok 15 - Moose::Meta::TypeConstraint API: TestType->can('assert_coerce') ok 16 - Moose::Meta::TypeConstraint API: TestType->can('assert_valid') ok 17 - Moose::Meta::TypeConstraint API: TestType->can('can_be_inlined') ok 18 - Moose::Meta::TypeConstraint API: TestType->can('check') ok 19 - Moose::Meta::TypeConstraint API: TestType->can('coerce') ok 20 - Moose::Meta::TypeConstraint API: TestType->can('coercion') ok 21 - Moose::Meta::TypeConstraint API: TestType->can('compile_type_constraint') ok 22 - Moose::Meta::TypeConstraint API: TestType->can('constraint') ok 23 - Moose::Meta::TypeConstraint API: TestType->can('create_child_type') ok 24 - Moose::Meta::TypeConstraint API: TestType->can('equals') ok 25 - Moose::Meta::TypeConstraint API: TestType->can('get_message') ok 26 - Moose::Meta::TypeConstraint API: TestType->can('hand_optimized_type_constraint') ok 27 - Moose::Meta::TypeConstraint API: TestType->can('has_coercion') ok 28 - Moose::Meta::TypeConstraint API: TestType->can('has_hand_optimized_type_constraint') ok 29 - Moose::Meta::TypeConstraint API: TestType->can('has_message') ok 30 - Moose::Meta::TypeConstraint API: TestType->can('has_parent') ok 31 - Moose::Meta::TypeConstraint API: TestType->can('inline_environment') ok 32 - Moose::Meta::TypeConstraint API: TestType->can('inlined') ok 33 - Moose::Meta::TypeConstraint API: TestType->can('is_a_type_of') ok 34 - Moose::Meta::TypeConstraint API: TestType->can('is_subtype_of') ok 35 - Moose::Meta::TypeConstraint API: TestType->can('message') ok 36 - Moose::Meta::TypeConstraint API: TestType->can('meta') ok 37 - Moose::Meta::TypeConstraint API: TestType->can('name') ok 38 - Moose::Meta::TypeConstraint API: TestType->can('new') ok 39 - Moose::Meta::TypeConstraint API: TestType->can('parent') ok 40 - Moose::Meta::TypeConstraint API: TestType->can('parents') ok 41 - Moose::Meta::TypeConstraint API: TestType->can('validate') ok 42 - Mouse::Meta::TypeConstraint API: TestType->can('__is_parameterized') ok 43 - Mouse::Meta::TypeConstraint API: TestType->can('_add_type_coercions') ok 44 - Mouse::Meta::TypeConstraint API: TestType->can('_as_string') ok 45 - Mouse::Meta::TypeConstraint API: TestType->can('_compiled_type_coercion') ok 46 - Mouse::Meta::TypeConstraint API: TestType->can('_compiled_type_constraint') ok 47 - Mouse::Meta::TypeConstraint API: TestType->can('_identity') ok 48 - Mouse::Meta::TypeConstraint API: TestType->can('_unite') ok 49 - Mouse::Meta::TypeConstraint API: TestType->can('assert_valid') ok 50 - Mouse::Meta::TypeConstraint API: TestType->can('check') ok 51 - Mouse::Meta::TypeConstraint API: TestType->can('coerce') ok 52 - Mouse::Meta::TypeConstraint API: TestType->can('compile_type_constraint') ok 53 - Mouse::Meta::TypeConstraint API: TestType->can('create_child_type') ok 54 - Mouse::Meta::TypeConstraint API: TestType->can('get_message') ok 55 - Mouse::Meta::TypeConstraint API: TestType->can('has_coercion') ok 56 - Mouse::Meta::TypeConstraint API: TestType->can('is_a_type_of') ok 57 - Mouse::Meta::TypeConstraint API: TestType->can('message') ok 58 - Mouse::Meta::TypeConstraint API: TestType->can('name') ok 59 - Mouse::Meta::TypeConstraint API: TestType->can('new') ok 60 - Mouse::Meta::TypeConstraint API: TestType->can('parameterize') ok 61 - Mouse::Meta::TypeConstraint API: TestType->can('parent') ok 62 - Mouse::Meta::TypeConstraint API: TestType->can('type_parameter') ok 63 - Moose::Meta::TypeCoercion API: TestCoercion->can('_compiled_type_coercion') ok 64 - Moose::Meta::TypeCoercion API: TestCoercion->can('_new') ok 65 - Moose::Meta::TypeCoercion API: TestCoercion->can('add_type_coercions') ok 66 - Moose::Meta::TypeCoercion API: TestCoercion->can('coerce') ok 67 - Moose::Meta::TypeCoercion API: TestCoercion->can('compile_type_coercion') ok 68 - Moose::Meta::TypeCoercion API: TestCoercion->can('has_coercion_for_type') ok 69 - Moose::Meta::TypeCoercion API: TestCoercion->can('meta') ok 70 - Moose::Meta::TypeCoercion API: TestCoercion->can('new') ok 71 - Moose::Meta::TypeCoercion API: TestCoercion->can('type_coercion_map') ok 72 - Moose::Meta::TypeCoercion API: TestCoercion->can('type_constraint') 1..72 ok t/arithmetic.t ............... ok 1 - \123 fails type constraint ~ScalarRef ok 2 - [] fails type constraint ~ArrayRef ok 3 - {} fails type constraint ~HashRef ok 4 - sub { "DUMMY" } fails type constraint ~CodeRef ok 5 - \*::STDOUT fails type constraint ~GlobRef ok 6 - \\"Hello" fails type constraint ~Ref ok 7 - \*::STDOUT fails type constraint ~FileHandle ok 8 - qr/(?^:x)/ fails type constraint ~RegexpRef ok 9 - Value "1" fails type constraint ~Str ok 10 - Value "1" fails type constraint ~Num ok 11 - Value "1" fails type constraint ~Int ok 12 - Value "1" fails type constraint ~Defined ok 13 - Value "1" fails type constraint ~Value ok 14 - Undef fails type constraint ~Undef ok 15 - Undef fails type constraint ~Item ok 16 - Undef fails type constraint ~Any ok 17 - Value "Type::Tiny" fails type constraint ~ClassName ok 18 - Value "Type::Library" fails type constraint ~RoleName ok 19 - Undef fails type constraint ~Bool ok 20 - Value "" fails type constraint ~Bool ok 21 - Value "0" fails type constraint ~Bool ok 22 - Value "1" fails type constraint ~Bool ok 23 - Value "7" passes type constraint ~Bool ok 24 - \\"Hello" fails type constraint ~ScalarRef ok 25 - Value "Type::Tiny" passes type constraint ~RoleName ok 26 - [] passes type constraint ~Str ok 27 - [] passes type constraint ~Num ok 28 - [] passes type constraint ~Int ok 29 - Value "4x4" fails type constraint ~Str ok 30 - Value "4x4" passes type constraint ~Num ok 31 - Value "4.2" passes type constraint ~Int ok 32 - Undef passes type constraint ~Str ok 33 - Undef passes type constraint ~Num ok 34 - Undef passes type constraint ~Int ok 35 - Undef passes type constraint ~Defined ok 36 - Undef passes type constraint ~Value ok 37 - Undef passes type constraint ~ClassName ok 38 - [] passes type constraint ~ClassName ok 39 - Value "Local::Class2" fails type constraint ~ClassName ok 40 - Value "Local::Class3" fails type constraint ~ClassName ok 41 - Value "Local::Class4" fails type constraint ~ClassName ok 42 - Value "Local::Dummy1" passes type constraint ~ClassName ok 43 - [] fails type constraint ~ArrayRef[Int] ok 44 - [1,2,3] fails type constraint ~ArrayRef[Int] ok 45 - ["1.1",2,3] passes type constraint ~ArrayRef[Int] ok 46 - [1,2,"3.1"] passes type constraint ~ArrayRef[Int] ok 47 - [[]] passes type constraint ~ArrayRef[Int] ok 48 - [[3]] fails type constraint ~ArrayRef[ArrayRef[Int]] ok 49 - [["A"]] passes type constraint ~ArrayRef[ArrayRef[Int]] ok 50 - Undef fails type constraint ~Maybe[Int] ok 51 - Value "123" fails type constraint ~Maybe[Int] ok 52 - Value "1.3" passes type constraint ~Maybe[Int] ok 53 - Value "-2" passes type constraint Even&Negative ok 54 - Value "-1" passes type constraint Even&Negative ok 55 - Value "0" passes type constraint Even&~Negative&~Positive ok 56 - Value "1" passes type constraint Even&Positive ok 57 - Value "2" passes type constraint Even&Positive ok 58 - Value "3" passes type constraint Even|Even ok 59 - Value "4" passes type constraint Even|Even ok 60 - Value "5" passes type constraint Negative|Positive ok 61 - Value "-6" passes type constraint Negative|Positive ok 62 - Value "-3" fails type constraint Even&Negative ok 63 - Value "1" fails type constraint Even&Negative ok 64 - Value "1" fails type constraint Even&~Negative&~Positive ok 65 - Value "2" fails type constraint Even&Positive ok 66 - Value "1" fails type constraint Even&Positive ok 67 - Value "Str" fails type constraint Even|Even ok 68 - Value "1.1" fails type constraint Even|Even ok 69 - Value "0" fails type constraint Negative|Positive ok 70 - Value "Str" fails type constraint Negative|Positive ok 71 - coolio stringification ok 72 - Item > Value ok 73 - Value > Str ok 74 - Str > Num ok 75 - Num > Int ok 76 - Int > $odd ok 77 - Item >= Value ok 78 - Value >= Str ok 79 - Str >= Num ok 80 - Num >= Int ok 81 - Int >= $odd ok 82 - Value < Item ok 83 - Str < Value ok 84 - Num < Str ok 85 - Int < Num ok 86 - $even < Int ok 87 - Value <= Item ok 88 - Str <= Value ok 89 - Num <= Str ok 90 - Int <= Num ok 91 - $even < Int ok 92 - not(Int > Int) ok 93 - not(Int < Int) ok 94 - Int <= Int ok 95 - Int >= Int ok 96 - not(ArrayRef[Int] > ArrayRef[Num]) ok 97 - not(ArrayRef[Int] == ArrayRef[Num]) ok 98 - ArrayRef[Int] == ArrayRef[Int] ok 99 - not(ArrayRef == ArrayRef[Int]) ok 100 - ArrayRef > ArrayRef[Int] 1..100 ok t/coercion-automatic.t ....... ok 1 - $ArrayOfFoo has coercion ok 2 - $ArrayOfFoo does not coerce value that needs no coercion ok 3 - $ArrayOfFoo does coerce value that can be coerced ok 4 - $ArrayOfFoo does not coerce value that cannot be coerced ok 5 - $HashOfFoo has coercion ok 6 - $HashOfFoo does not coerce value that needs no coercion ok 7 - $HashOfFoo does coerce value that can be coerced ok 8 - $HashOfFoo does not coerce value that cannot be coerced ok 9 - $RefOfFoo has coercion ok 10 - $RefOfFoo does not coerce value that needs no coercion ok 11 - $RefOfFoo does coerce value that can be coerced ok 12 - $RefOfFoo does not coerce value that cannot be coerced ok 13 - $ArrayOfBar has coercion ok 14 - $ArrayOfBar coercion can be inlined ok 15 - $ArrayOfBar does not coerce value that needs no coercion ok 16 - $ArrayOfBar does coerce value that can be coerced ok 17 - $ArrayOfBar does not coerce value that cannot be coerced ok 18 - $HashOfBar has coercion ok 19 - $HashOfBar coercion can be inlined ok 20 - $HashOfBar does not coerce value that needs no coercion ok 21 - $HashOfBar does coerce value that can be coerced ok 22 - $HashOfBar does not coerce value that cannot be coerced ok 23 - $RefOfBar has coercion ok 24 - $RefOfBar coercion can be inlined ok 25 - $RefOfBar does not coerce value that needs no coercion ok 26 - $RefOfBar does coerce value that can be coerced ok 27 - $RefOfBar does not coerce value that cannot be coerced ok 28 - Map[IntFromNum,IntFromStr] has an inlinable coercion ok 29 - Coercions to Map[IntFromNum,IntFromStr] ok 30 - Impossible coercion to Map[IntFromNum,IntFromStr] ok 31 - Unneeded coercion to Map[IntFromNum,IntFromStr] ok 32 - Map[IntFromNum,IntFromArray] has a coercion, but it cannot be inlined ok 33 - Coercions to Map[IntFromNum,IntFromArray] ok 34 - Impossible coercion to Map[IntFromNum,IntFromArray] ok 35 - Unneeded coercion to Map[IntFromNum,IntFromArray] ok 36 - Dict[a=>IntFromStr,b=>IntFromNum,c=>Optional[IntFromNum]] has an inlinable coercion ok 37 - Coercion (A) to Dict[a=>IntFromStr,b=>IntFromNum,c=>Optional[IntFromNum]] ok 38 - Coercion (B) to Dict[a=>IntFromStr,b=>IntFromNum,c=>Optional[IntFromNum]] ok 39 - Coercion (C) to Dict[a=>IntFromStr,b=>IntFromNum,c=>Optional[IntFromNum]] - changed in 0.003_11; the presence of an additional value cancels coercion ok 40 - Tuple[IntFromNum,Optional[IntFromStr],slurpy ArrayRef[IntFromNum]] has an inlinable coercion ok 41 - Coercion (A) to Tuple[IntFromNum,Optional[IntFromStr],slurpy ArrayRef[IntFromNum]] ok 42 - Coercion (B) to Tuple[IntFromNum,Optional[IntFromStr],slurpy ArrayRef[IntFromNum]] ok 43 - Coercion (A) to Tuple[IntFromNum] ok 44 - Coercion (B) to Tuple[IntFromNum] - changed in 0.003_11; the presence of an additional value cancels coercion 1..44 ok t/coercion-classy.t .......... ok 1 - "Person"->meta->get_attribute("addr")->type_constraint->is_a_type_of($Address) ok 2 - coercion worked 1..2 ok t/coercion-frozen.t .......... ok 1 - coercions are not initially frozen ok 2 - coercions do not freeze because of adding code ok 3 - coercions do freeze when forced inflation to Moose ok 4 - cannot add code to a frozen coercion 1..4 ok t/coercion-inlining.t ........ ok 1 - inlined coercion works ok 2 - no coercion necessary ok 3 - no coercion possible 1..3 ok t/coercion-modifiers.t ....... ok 1 - has_coercian_for_type - obvious ok 2 - has_coercian_for_type - subtle ok 3 - has_coercian_for_type - negative ok 4 - plus_coercions - added coercion ok 5 - plus_coercions - added coercion ok 6 - plus_coercions - retained coercion ok 7 - plus_coercions - retained coercion ok 8 - minus_coercions - retained coercion ok 9 - minus_coercions - removed coercion ok 10 - minus_coercions - retained coercion ok 11 - minus_coercions - removed coercion ok 12 - no_coercions - removed coercion ok 13 - no_coercions - removed coercion ok 14 - no_coercions - removed coercion ok 15 - no_coercions - removed coercion 1..15 ok t/coercion-union.t ........... ok 1 - Value "4" passes type constraint RoundedInteger ok 2 - Value "1.1" fails type constraint RoundedInteger ok 3 - Value "xyz" fails type constraint RoundedInteger ok 4 - Value "xyz" passes type constraint String3 ok 5 - Value "x" fails type constraint String3 ok 6 - Value "wxyz" fails type constraint String3 ok 7 - Value "3.4" passes type constraint RoundedInteger|String3 ok 8 - Value "30" passes type constraint RoundedInteger|String3 ok 9 - Value "3.12" fails type constraint RoundedInteger|String3 ok 10 - Value "wxyz" fails type constraint RoundedInteger|String3 ok 11 - RoundedInteger coerces from Num ok 12 - RoundedInteger does not coerce from Str ok 13 - String3 coerces from Str ok 14 - String3 does not coerce from ArrayRef ok 15 - unions automatically have a coercion if their child constraints do # (((defined $X and $X =~ /\A-?[0-9]+\z/) or do { !ref($X) and $X =~ $Types::Standard::_StrMatch{"(?^:^.{3}\$)"} })) ? $X : ((!ref($X) && Scalar::Util::looks_like_number($X))) ? do { local $_ = $X; scalar(int($_)) } : (do { defined($X) and do { ref(\$X) eq 'SCALAR' or ref(\(my $val = $X)) eq 'SCALAR' } }) ? do { local $_ = $X; scalar(substr("$_ ", 0, 3)) } : $X ok 16 - unions do not automatically have a coercion if their child constraints do not ok 17 - Union1 does not need to coerce an Int ok 18 - Union1 does not need to coerce a String3 ok 19 - Union1 does not need to coerce a String3, even if it looks like a Num ok 20 - Union1 coerces Str -> String3 ok 21 - given the choice of two valid coercions, Union1 prefers RoundedInteger because it occurs sooner ok 22 - Union1 cannot coerce an arrayref 1..22 ok t/coercion.t ................. ok 1 - coercion works ok 2 - coercion overloads &{} ok 3 - BigInteger has_coercion_for_type ArrayRef ok 4 - BigInteger has_coercion_for_type SmallInteger ok 5 - not BigInteger has_coercion_for_type SmallInteger ok 6 - BigInteger has_coercion_for_type BigInteger eq "0 but true" ok 7 - BigInteger has_coercion_for_type $BiggerInteger eq "0 but true" ok 8 - BigInteger has_coercion_for_value [] ok 9 - BigInteger has_coercion_for_value 2 ok 10 - not BigInteger has_coercion_for_value {} ok 11 - BigInteger has_coercion_for_value 200 eq "0 but true" ok 12 - coerce doesn't throw an exception if it can coerce ok 13 - coerce doesn't throw an exception if it can't coerce ok 14 - assert_coerce doesn't throw an exception if it can coerce ok 15 - assert_coerce DOES throw an exception if it can't coerce ok 16 - ArrayRefFromAny isa Type::Coercion ok 17 - ArrayRefFromAny coercion works ok 18 - Coercion ArrayRefFromAny+ArrayRefFromPiped prioritizes ArrayRefFromAny ok 19 - Coercion ArrayRefFromPiped+ArrayRefFromAny prioritizes ArrayRefFromPiped ok 20 - Type $arr coercion works ok 21 - Type $sum3 coercion works ok 22 - Type $sum4 coercion works 1..22 ok t/coercions-parameterized.t .. ok 1 - length $chars == 17 ok 2 - length $bytes_utf8 == 19 ok 3 - length $bytes_western == 17 ok 4 - $SplitSpace can be inlined ok 5 - $SplitPipe can be inlined ok 6 - $SplitSpace->coerce($chars) ok 7 - $SplitSpace->coerce($bytes_utf8) ok 8 - $SplitSpace->coerce($bytes_western) ok 9 - ["Caf\x{e9}","Paris|Gar\x{e7}on"] passes type constraint ArrayRef[Str] ok 10 - ["Caf\303\251","Paris|Gar\303\247on"] passes type constraint ArrayRef[Str] ok 11 - ["Caf\351","Paris|Gar\347on"] passes type constraint ArrayRef[Str] ok 12 - $SplitPipe->coerce($chars) ok 13 - $SplitPipe->coerce($bytes_utf8) ok 14 - $SplitPipe->coerce($bytes_western) ok 15 - $JoinPipe->coerce($arr_chars) ok 16 - Value "Caf\x{e9} Paris|Gar\x{e7}on" passes type constraint Str ok 17 - $JoinPipe->coerce($arr_bytes_utf8) ok 18 - Value "Caf\303\251 Paris|Gar\303\247on" passes type constraint Str ok 19 - $JoinPipe->coerce($arr_bytes_western) ok 20 - Value "Caf\351 Paris|Gar\347on" passes type constraint Str 1..20 ok t/dwim-moose.t ............... ok 1 - $two isa Type::Tiny ok 2 - $twos isa Type::Tiny ok 3 - Value "2" passes type constraint Two ok 4 - Value "3" fails type constraint Two ok 5 - [2,2,2] passes type constraint ArrayRef[Two] ok 6 - [2,3,2] fails type constraint ArrayRef[Two] ok 7 - $three isa Type::Tiny ok 8 - $threes isa Type::Tiny ok 9 - Value "3" passes type constraint MyTypes::Three ok 10 - Value "4" fails type constraint MyTypes::Three ok 11 - [3,3,3] passes type constraint ArrayRef[MyTypes::Three] ok 12 - [3,4,3] fails type constraint ArrayRef[MyTypes::Three] 1..12 ok t/dwim-mouse.t ............... ok 1 - $two isa Type::Tiny ok 2 - $twos isa Type::Tiny ok 3 - Value "2" passes type constraint Two ok 4 - Value "3" fails type constraint Two ok 5 - [2,2,2] passes type constraint ArrayRef[Two] ok 6 - [2,3,2] fails type constraint ArrayRef[Two] ok 7 - $three isa Type::Tiny ok 8 - $threes isa Type::Tiny ok 9 - Value "3" passes type constraint MyTypes::Three ok 10 - Value "4" fails type constraint MyTypes::Three ok 11 - [3,3,3] passes type constraint ArrayRef[MyTypes::Three] ok 12 - [3,4,3] fails type constraint ArrayRef[MyTypes::Three] 1..12 ok t/eval-lexicalsubs.t ......... skipped: Perl v5.18.0 required--this is only v5.16.0, stopped at (eval 6) line 2. t/eval.t ..................... ok 1 - closure over scalar ok 2 - closure over array ok 3 - closure over hash ok 4 - closing over variables really really really works! ok 5 ok 6 ok 7 - closed over variables disappear on cue ok 8 - can close over tied variables ... AUTOLOAD stuff ok 9 - ... can ok 10 - ... !can ok 11 - ... tie still works ok 12 - ... can be retied ok 13 - ... can be untied ok 14 - $e isa Type::Exception::Compilation ok 15 - throw exception when code does not compile ok 16 - $e->errstr ok 17 - $e->code ok 18 - "description" option works ok 19 - "line" option works 1..19 ok t/exceptions-stack.t ......... ok 1 1..1 ok t/exceptions.t ............... ok 1 - $e isa Type::Exception ok 2 - $Type::Exception::LastError ok 3 - $e->message is as expected ok 4 - $e isa Type::Exception::Assertion ok 5 - $e->type is as expected ok 6 - $e->value is as expected ok 7 - $e->explain is as expected ok 8 - ArrayRef[Int] deep explanation, given [1, 2, [3]] ok 9 - ArrayRef[Int] deep explanation, given {} ok 10 - Ref["ARRAY"] deep explanation, given {} ok 11 - HashRef[Maybe[Int]] deep explanation, given {a => undef, b => 42, c => []} ok 12 - $dict deep explanation, given {c => 1} ok 13 - $dict deep explanation, given {b => 1} ok 14 - $dict deep explanation, given {a => 1, b => 2} ok 15 - Map[Int,Num] deep explanation, given {1=>1.1,2.2=>2.3,3.3=>3.4} ok 16 - $AlwaysFail explanation, given 1 ok 17 - $SlurpyThing explanation, given 1 ok 18 - $SlurpyThing explanation, given [1.1, 2 => "Hello"] ok 19 - $e_where->context ok 20 - "$e_where" ok 21 - correct exception from type with null constraint 1..21 ok t/exporter-installer.t ....... ok 1 - the ArrayRef function was cleaned away ok 2 - ArrayRef does not appear to be a method 1..2 ok t/exporter-roleconflict.t .... ok 1 - no exception when trying to compose two roles that use type constraints # 13381540 # 13381540 1..1 ok t/exporter.t ................. ok 1 - No exception exporting a legitimate function ok 2 - main->can('Any') ok 3 - Attempt to export a function which does not exist ok 4 - Attempt to export a function which exists but not in @EXPORT_OK ok 5 - "-types" shortcut works ok 6 - "-coercions" shortcut works ok 7 - renaming works ok 8 - prefixes work ok 9 - suffixes work ok 10 - plus notation works for Type::Library ok 11 - mkopt_hash 1..11 ok t/functionparameters.t ....... ok 1 - foo(4) works ok 2 - foo(4.1) throws ok 3 - $x->name ok 4 - $x->type 1..4 ok overload arg '..' is invalid at C:/cpanfly-5.16/var/megalib/Math/BigInt.pm line 153. t/gh1.t ...................... ok 1 ok 2 - bless( {"_e" => [1],"_es" => "-","_m" => [5],"sign" => "+"}, 'Math::BigFloat' ) passes type constraint __ANON__ ok 3 - Value "0.5" fails type constraint __ANON__ 1..3 ok t/library-assert.t ........... ok 1 - assert_String works (value that should pass) ok 2 - assert_String works (value that should fail) ok 3 - BiggerLib::assert_String works (value that should pass) ok 4 - BiggerLib::assert_String works (value that should fail) ok 5 - assert_SmallInteger works (value that should pass) ok 6 - assert_SmallInteger works (value that should fail) 1..6 ok t/library-is.t ............... ok 1 - is_String works (value that should pass) ok 2 - is_String works (value that should fail) ok 3 - is_Number works (value that should pass) ok 4 - is_Number works (value that should fail) ok 5 - is_Integer works (value that should pass) ok 6 - is_Integer works (value that should fail) ok 7 - is_SmallInteger works (value that should pass) ok 8 - is_SmallInteger works (value that should fail) 1..8 ok t/library-to.t ............... ok 1 - to_BigInteger converts a small integer OK ok 2 - to_BigInteger leaves an existing BigInteger OK ok 3 - to_BigInteger ignores something it cannot coerce ok 4 - no coercion for Str - should die 1..4 ok t/library-types.t ............ ok 1 - String isa Type::Tiny ok 2 - Number isa Type::Tiny ok 3 - Integer isa Type::Tiny ok 4 - DemoLib::String isa Type::Tiny ok 5 - DemoLib::Number isa Type::Tiny ok 6 - DemoLib::Integer isa Type::Tiny ok 7 - String has correct stringification ok 8 - Number has correct stringification ok 9 - Integer has correct stringification ok 10 - DemoLib::String has correct stringification ok 11 - DemoLib::Number has correct stringification ok 12 - DemoLib::Integer has correct stringification ok 13 - coderef overload (with value that should pass type constraint) does not die ok 14 - coderef overload returns correct value ok 15 - coderef overload (value that should fail type constraint) dies ok 16 - Sub::Exporter-style export renaming ok 17 - eq works ok 18 - type constant in list context ok 19 - parameterizable type constant in list context ok 20 - parameterized type constant in list context 1..20 ok t/match-on-type.t ............ ok 1 - to_json using compile_match_on_type works ok 2 - to_json_2 using match_on_type works 1..2 ok t/moo-coercion.t ............. ok 1 - The object isa Type::Tiny ok 2 - no exception on coercion in constructor - mutable class ok 3 - 'big' attribute coerces in constructor - mutable class ok 4 - 'small' attribute coerces in constructor - mutable class ok 5 - 'big' attribute throws when it cannot coerce in constructor - mutable class ok 6 - 'small' attribute throws when it cannot coerce in constructor - mutable class ok 7 - 'big' attribute coerces in accessor - mutable class ok 8 - 'small' attribute coerces in accessor - mutable class ok 9 - 'big' attribute throws when it cannot coerce in accessor - mutable class ok 10 - 'small' attribute throws when it cannot coerce in accessor - mutable class ok 11 - no exception on coercion in constructor - immutable class ok 12 - 'big' attribute coerces in constructor - immutable class ok 13 - 'small' attribute coerces in constructor - immutable class ok 14 - 'big' attribute throws when it cannot coerce in constructor - immutable class ok 15 - 'small' attribute throws when it cannot coerce in constructor - immutable class ok 16 - 'big' attribute coerces in accessor - immutable class ok 17 - 'small' attribute coerces in accessor - immutable class ok 18 - 'big' attribute throws when it cannot coerce in accessor - immutable class ok 19 - 'small' attribute throws when it cannot coerce in accessor - immutable class 1..19 ok t/moo-exceptions.t ........... ok 1 - $e_constructor isa Type::Exception::Assertion ok 2 - $e_constructor->attribute_name ok 3 - $e_constructor->attribute_step ok 4 - $e_constructor->varname ok 5 - $e_constructor->value ok 6 - $e_constructor->type ok 7 - $e_accessor isa Type::Exception::Assertion ok 8 - $e_accessor->attribute_name ok 9 - $e_accessor->attribute_step ok 10 - $e_accessor->value ok 11 - $e_accessor->type 1..11 ok t/moo-inflation.t ............ # { # 'Type::Tiny::Class=HASH(0xe1b2b4)' => sub { "DUMMY" }, # 'Type::Tiny::Class=HASH(0xe21de4)' => sub { "DUMMY" }, # 'Type::Tiny::Duck=HASH(0xe3046c)' => sub { "DUMMY" }, # 'Type::Tiny::Duck=HASH(0xe38b54)' => sub { "DUMMY" }, # 'Type::Tiny::Role=HASH(0xe1aaf4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xc28684)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xcade5c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xcb894c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xcb8acc)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xcb915c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xcc178c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd52fd4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd53574)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd53aa4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd5b31c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd5b81c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd5bd1c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd5c22c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd628a4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd62fb4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd6eac4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd6efe4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd6f4d4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd77184)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd776a4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd77bc4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd7e104)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd7e624)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd7ec84)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd85b74)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd86164)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd866c4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd8f2b4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd8f794)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd8fc94)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd99294)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd997a4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd99cb4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd9f9fc)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xd9faec)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xda7ebc)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xda816c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xda892c)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xdb2184)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xdb2664)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xdb2cd4)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xe1a544)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xe4a2ac)' => sub { "DUMMY" }, # 'Type::Tiny=HASH(0xe5009c)' => sub { "DUMMY" } # } ok 1 - some values that should pass their type constraint - Moose is not loaded ok 2 - direct violation of type constraint - Moose is not loaded ok 3 - violation of parent type constraint - Moose is not loaded ok 4 - violation of grandparent type constraint - Moose is not loaded ok 5 - violation of great-grandparent type constraint - Moose is not loaded ok 6 - some values that should pass their type constraint - Moose is loaded ok 7 - direct violation of type constraint - Moose is loaded ok 8 - violation of parent type constraint - Moose is loaded ok 9 - violation of grandparent type constraint - Moose is loaded ok 10 - violation of great-grandparent type constraint - Moose is loaded ok 11 - type constraint metaobject inflates from Moo to Moose 1..11 ok t/moo.t ...................... ok 1 - some values that should pass their type constraint ok 2 - direct violation of type constraint ok 3 - violation of parent type constraint ok 4 - violation of grandparent type constraint ok 5 - violation of great-grandparent type constraint 1..5 ok t/moose-autott.t ............. ok 1 - Int isa Moose::Meta::TypeConstraint ok 2 - Str isa Moose::Meta::TypeConstraint ok 3 - $PositiveInt isa Type::Tiny ok 4 - $PositiveInt->parent isa Type::Tiny 1..4 ok t/moose-coercion.t ........... ok 1 - The object isa Moose::Meta::TypeConstraint ok 2 - no_coercions and friends available on Moose type constraint objects ok 3 - no exception on coercion in constructor - mutable class ok 4 - 'big' attribute coerces in constructor - mutable class ok 5 - 'small' attribute coerces in constructor - mutable class ok 6 - 'big' attribute throws when it cannot coerce in constructor - mutable class ok 7 - 'small' attribute throws when it cannot coerce in constructor - mutable class ok 8 - 'big' attribute coerces in accessor - mutable class ok 9 - 'small' attribute coerces in accessor - mutable class ok 10 - 'big' attribute throws when it cannot coerce in accessor - mutable class ok 11 - 'small' attribute throws when it cannot coerce in accessor - mutable class ok 12 - no exception on coercion in constructor - immutable class ok 13 - 'big' attribute coerces in constructor - immutable class ok 14 - 'small' attribute coerces in constructor - immutable class ok 15 - 'big' attribute throws when it cannot coerce in constructor - immutable class ok 16 - 'small' attribute throws when it cannot coerce in constructor - immutable class ok 17 - 'big' attribute coerces in accessor - immutable class ok 18 - 'small' attribute coerces in accessor - immutable class ok 19 - 'big' attribute throws when it cannot coerce in accessor - immutable class ok 20 - 'small' attribute throws when it cannot coerce in accessor - immutable class 1..20 ok t/moose.t .................... # The basics ok 1 - some values that should pass their type constraint ok 2 - direct violation of type constraint ok 3 - violation of parent type constraint ok 4 - violation of grandparent type constraint ok 5 - violation of great-grandparent type constraint # Introspection, comparisons, conversions... ok 6 - equivalence between Types::Standard types and core Moose types ok 7 - $classtype isa Moose::Meta::TypeConstraint::Class ok 8 - Type::Tiny::Class provides meta information to Moose::Meta::TypeConstraint::Class ok 9 - $classtype->Types::TypeTiny::to_TypeTiny isa Type::Tiny::Class ok 10 - $roletype isa Moose::Meta::TypeConstraint ok 11 - NB! Type::Tiny::Role does not inflate to Moose::Meta::TypeConstraint::Role because of differing notions as to what constitutes a role. ok 12 - $roletype->Types::TypeTiny::to_TypeTiny isa Type::Tiny::Role ok 13 - $ducktype isa Moose::Meta::TypeConstraint::DuckType ok 14 - Type::Tiny::Duck provides meta information to Moose::Meta::TypeConstraint::DuckType ok 15 - $ducktype->Types::TypeTiny::to_TypeTiny isa Type::Tiny::Duck ok 16 - $classtype isa Moose::Meta::TypeConstraint::Enum ok 17 - Type::Tiny::Enum provides meta information to Moose::Meta::TypeConstraint::Enum ok 18 - $enumtype->Types::TypeTiny::to_TypeTiny isa Type::Tiny::Enum ok 19 - $union isa Moose::Meta::TypeConstraint::Union ok 20 - Type::Tiny::Union provides meta information to Moose::Meta::TypeConstraint::Union ok 21 - $union->Types::TypeTiny::to_TypeTiny isa Type::Tiny::Union ok 22 - $union->type_constraints->[$i]->Types::TypeTiny::to_TypeTiny provides access to underlying Type::Tiny objects ok 23 - $intersect isa Moose::Meta::TypeConstraint ok 24 - $intersect->Types::TypeTiny::to_TypeTiny isa Type::Tiny::Intersection ok 25 - round-tripping between ->moose_type and ->Types::TypeTiny::to_TypeTiny preserves reference address # Native attribute traits ok 26 - pushing ok value ok 27 - pushing not ok value 1..27 ok t/moosextypes-more.t ......... ok 1 - Not isa Moose::Meta::TypeConstraint ok 2 - Int isa Moose::Meta::TypeConstraint ok 3 - ~Int isa Moose::Meta::TypeConstraint ok 4 - Int isa Moose::Meta::TypeConstraint ok 5 - Value "1.1" fails type constraint Int ok 6 - Undef fails type constraint Int ok 7 - [] fails type constraint Int ok 8 - Value "2" passes type constraint Int ok 9 - Value "1.1" passes type constraint ~Int ok 10 - Undef passes type constraint ~Int ok 11 - [] passes type constraint ~Int ok 12 - Value "2" fails type constraint ~Int ok 13 - Value "1.1" fails type constraint Int ok 14 - Undef fails type constraint Int ok 15 - [] fails type constraint Int ok 16 - Value "2" passes type constraint Int ok 17 - Value "1.1" fails type constraint Not ok 18 - Undef fails type constraint Not ok 19 - [] fails type constraint Not ok 20 - Value "2" fails type constraint Not 1..20 ok t/moosextypes.t .............. ok 1 - The object isa Moose::Meta::TypeConstraint ok 2 - The object isa Moose::Meta::TypeConstraint ok 3 - The object isa Type::Tiny ok 4 - [] passes type constraint ArrayRef|Int ok 5 - Value "2" passes type constraint ArrayRef|Int ok 6 - {} fails type constraint ArrayRef|Int ok 7 - [] passes type constraint ArrayRef|Int ok 8 - Value "2" passes type constraint ArrayRef|Int ok 9 - {} fails type constraint ArrayRef|Int ok 10 - [1,2,3] passes type constraint ArrayRef[Int] ok 11 - [] passes type constraint ArrayRef[Int] ok 12 - {} fails type constraint ArrayRef[Int] ok 13 - ["x"] fails type constraint ArrayRef[Int] ok 14 - [1,2,3] passes type constraint ArrayRef[Int] ok 15 - [] passes type constraint ArrayRef[Int] ok 16 - {} fails type constraint ArrayRef[Int] ok 17 - ["x"] fails type constraint ArrayRef[Int] ok 18 - [] passes type constraint ArrayRef[ArrayRef|Int] ok 19 - [1,2,3] passes type constraint ArrayRef[ArrayRef|Int] ok 20 - [[],[]] passes type constraint ArrayRef[ArrayRef|Int] ok 21 - [11,[]] passes type constraint ArrayRef[ArrayRef|Int] ok 22 - [[],11] passes type constraint ArrayRef[ArrayRef|Int] ok 23 - ["1.111"] fails type constraint ArrayRef[ArrayRef|Int] 1..23 ok t/mouse-coercion.t ........... ok 1 - The object isa Mouse::Meta::TypeConstraint ok 2 - no exception on coercion in constructor - mutable class ok 3 - 'big' attribute coerces in constructor - mutable class ok 4 - 'small' attribute coerces in constructor - mutable class ok 5 - 'big' attribute throws when it cannot coerce in constructor - mutable class ok 6 - 'small' attribute throws when it cannot coerce in constructor - mutable class ok 7 - 'big' attribute coerces in accessor - mutable class ok 8 - 'small' attribute coerces in accessor - mutable class ok 9 - 'big' attribute throws when it cannot coerce in accessor - mutable class ok 10 - 'small' attribute throws when it cannot coerce in accessor - mutable class ok 11 - no exception on coercion in constructor - immutable class ok 12 - 'big' attribute coerces in constructor - immutable class ok 13 - 'small' attribute coerces in constructor - immutable class ok 14 - 'big' attribute throws when it cannot coerce in constructor - immutable class ok 15 - 'small' attribute throws when it cannot coerce in constructor - immutable class ok 16 - 'big' attribute coerces in accessor - immutable class ok 17 - 'small' attribute coerces in accessor - immutable class ok 18 - 'big' attribute throws when it cannot coerce in accessor - immutable class ok 19 - 'small' attribute throws when it cannot coerce in accessor - immutable class 1..19 ok t/mouse.t .................... ok 1 - some values that should pass their type constraint ok 2 - direct violation of type constraint ok 3 - violation of parent type constraint ok 4 - violation of grandparent type constraint ok 5 - violation of great-grandparent type constraint ok 6 - Mouse::Util::is_a_type_constraint accepts Type::Tiny type constraints 1..6 ok t/mousextypes.t .............. ok 1 - The object isa Mouse::Meta::TypeConstraint ok 2 - The object isa Mouse::Meta::TypeConstraint ok 3 - The object isa Type::Tiny ok 4 - [] passes type constraint ArrayRef|Int ok 5 - Value "2" passes type constraint ArrayRef|Int ok 6 - {} fails type constraint ArrayRef|Int ok 7 - [] passes type constraint ArrayRef|Int ok 8 - Value "2" passes type constraint ArrayRef|Int ok 9 - {} fails type constraint ArrayRef|Int # bless( { # 'compiled_type_constraint' => sub { "DUMMY" }, # 'constraint' => sub { "DUMMY" }, # 'display_name' => 'ArrayRef|Int', # 'name' => '__ANON__', # 'parent' => undef, # 'type_constraints' => [ # bless( { # '_is_core' => 1, # '_overload_coderef' => sub { "DUMMY" }, # 'coercion_generator' => sub { "DUMMY" }, # 'compiled_type_constraint' => sub { "DUMMY" }, # 'constraint' => sub { "DUMMY" }, # 'constraint_generator' => sub { "DUMMY" }, # 'deep_explanation' => sub { "DUMMY" }, # 'display_name' => 'ArrayRef', # 'inline_generator' => sub { "DUMMY" }, # 'inlined' => sub { "DUMMY" }, # 'library' => 'Types::Standard', # 'name' => 'ArrayRef', # 'name_generator' => sub { "DUMMY" }, # 'parent' => bless( { # '_is_core' => 1, # '_overload_coderef' => sub { "DUMMY" }, # 'compiled_type_constraint' => sub { "DUMMY" }, # 'constraint' => sub { "DUMMY" }, # 'constraint_generator' => sub { "DUMMY" }, # 'deep_explanation' => sub { "DUMMY" }, # 'display_name' => 'Ref', # 'inline_generator' => sub { "DUMMY" }, # 'inlined' => sub { "DUMMY" }, # 'library' => 'Types::Standard', # 'name' => 'Ref', # 'parent' => bless( { # '_is_core' => 1, # '_overload_coderef' => sub { "DUMMY" }, # 'compiled_type_constraint' => sub { "DUMMY" }, # 'constraint' => sub { "DUMMY" }, # 'display_name' => 'Defined', # 'inlined' => sub { "DUMMY" }, # 'library' => 'Types::Standard', # 'name' => 'Defined', # 'parent' => bless( { # '_is_core' => 1, # '_overload_coderef' => sub { "DUMMY" }, # 'compiled_type_constraint' => sub { "DUMMY" }, # 'constraint' => sub { "DUMMY" }, # 'display_name' => 'Item', # 'inlined' => sub { "DUMMY" }, # 'library' => 'Types::Standard', # 'name' => 'Item', # 'type_constraints' => undef, # 'uniq' => 2 # }, 'Type::Tiny' ), # 'type_constraints' => undef, # 'uniq' => 5 # }, 'Type::Tiny' ), # 'type_constraints' => undef, # 'uniq' => 14 # }, 'Type::Tiny' ), # 'type_constraints' => undef, # 'uniq' => 19 # }, 'Type::Tiny' ), # bless( { # 'compiled_type_constraint' => sub { "DUMMY" }, # 'constraint' => sub { "DUMMY" }, # 'display_name' => 'Int', # 'message' => sub { "DUMMY" }, # 'name' => '__ANON__', # 'type_constraints' => undef, # 'uniq' => 39 # }, 'Type::Tiny' ) # ], # 'uniq' => 40 # }, 'Type::Tiny::Union' ) ok 10 - [1,2,3] passes type constraint ArrayRef[Int] ok 11 - [] passes type constraint ArrayRef[Int] ok 12 - {} fails type constraint ArrayRef[Int] ok 13 - ["x"] fails type constraint ArrayRef[Int] ok 14 - [1,2,3] passes type constraint ArrayRef[Int] ok 15 - [] passes type constraint ArrayRef[Int] ok 16 - {} fails type constraint ArrayRef[Int] ok 17 - ["x"] fails type constraint ArrayRef[Int] ok 18 - [] passes type constraint ArrayRef[ArrayRef|Int] ok 19 - [1,2,3] passes type constraint ArrayRef[ArrayRef|Int] ok 20 - [[],[]] passes type constraint ArrayRef[ArrayRef|Int] ok 21 - [11,[]] passes type constraint ArrayRef[ArrayRef|Int] ok 22 - [[],11] passes type constraint ArrayRef[ArrayRef|Int] ok 23 - ["1.111"] fails type constraint ArrayRef[ArrayRef|Int] 1..23 ok t/oo-classinsideout.t ........ ok 1 - Object::HookedTT has/inherited its expected properties ok 2 - Creating a Object::HookedTT object ok 3 - integer(3.14) dies ok 4 - integer(42) lives ok 5 - integer() == 42 ok 6 - word(^^^^) dies ok 7 - word(apple) lives ok 8 - word() eq 'apple' ok 9 - uppercase(banana) lives ok 10 - uppercase() eq 'BANANA' ok 11 - list(qw(foo bar bam)) lives ok 12 - list() gives qw(foo bar bam) ok 13 - list( [qw(foo bar bam)] ) lives ok 14 - list() gives qw(foo bar bam) ok 15 - reverser(qw(foo bar bam)) lives ok 16 - reverser() in list context gives qw(bam bar foo) ok 17 - reverser() in scalar context gives mabraboof ok 18 - write_only lives on write ok 19 - write only dies on write (and was caught) 1..19 ok t/oo-objectaccessor.t ........ ok 1 - write then read on accessor works ok 2 - exception thrown for bad value 1..2 ok t/parameterization.t ......... ok 1 - Avoid duplicating parameterized types ok 2 - ... except when necessary! 1..2 ok t/params-badsigs.t ........... ok 1 - Cannot follow an optional parameter with a required parameter ok 2 - Cannot follow a slurpy parameter with anything ok 3 - Slurpy parameters must be hashrefs or arrayrefs 1..3 ok t/params-carping.t ........... ok 1 - The object isa Type::Exception ok 2 1..2 ok t/params-coerce.t ............ ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 - if value passes type constraint; no need to clone arrayref ok 8 - if value fails type constraint; need to clone arrayref ok 9 1..9 ok t/params-methods.t ........... ok 1 ok 2 ok 3 ok 4 ok 5 - clean operation ok 6 - exception calling new() with no args ok 7 - exception calling ->new() with no args ok 8 - exception calling set() with no args 1..8 ok t/params-mixednamed.t ........ ok 1 ok 2 ok 3 1..3 ok t/params-named.t ............. ok 1 ok 2 ok 3 ok 4 ok 5 1..5 ok t/params-noninline.t ......... ok 1 - (1, 2) ok 2 - (1.1, 2) ok 3 - () ok 4 - (1) ok 5 - (undef, 1) ok 6 - (42) ok 7 - (42, 11) ok 8 - ([1..3], 11) ok 9 - ([1..41], 42) 1..9 ok t/params-optional.t .......... ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 1..8 ok t/params-positional.t ........ ok 1 - (1, 2) ok 2 - (1.1, 2) ok 3 - (1) ok 4 - (1) ok 5 - (undef, 1) ok 6 - (1) 1..6 ok t/params-slurpy.t ............ ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 1..6 ok t/parser.t ................... # Basics ok 1 - Int eq Int ok 2 - (Int) eq Int - redundant parentheses ok 3 - ((((Int)))) eq Int - many redundant parentheses # Class types ok 4 - DateTime:: eq InstanceOf["DateTime"] ok 5 - InstanceOf['DateTime'] eq InstanceOf["DateTime"] ok 6 - Tied[Foo::] eq Tied["Foo"] ok 7 - Tied['Foo'] eq Tied["Foo"] # Parameterization ok 8 - Int[] eq Int - empty parameterization against non-parameterizable type ok 9 - ArrayRef[] eq ArrayRef - empty parameterization against parameterizable type ok 10 - ArrayRef[Int] eq ArrayRef[Int] - parameterized type ok 11 - Ref['HASH'] eq Ref[HASH] - string parameter (singles) ok 12 - Ref["HASH"] eq Ref[HASH] - string parameter (doubles) ok 13 - Ref[q(HASH)] eq Ref[HASH] - string parameter (q) ok 14 - Ref[qq(HASH)] eq Ref[HASH] - string parameter (qq) ok 15 - StrMatch[qr{foo}] eq StrMatch[(?^:foo)] - regexp parameter # Unions ok 16 - Int|HashRef eq Int|HashRef ok 17 - Int|HashRef|ArrayRef eq Int|HashRef|ArrayRef ok 18 - ArrayRef[Int|HashRef] eq ArrayRef[Int|HashRef] - union as a parameter ok 19 - ArrayRef[Int|HashRef[Int]] eq ArrayRef[Int|HashRef[Int]] ok 20 - ArrayRef[HashRef[Int]|Int] eq ArrayRef[HashRef[Int]|Int] # Intersections ok 21 - Int&Num eq Int&Num ok 22 - Int&Num&Defined eq Int&Num&Defined ok 23 - ArrayRef[Int]&Defined eq ArrayRef[Int]&Defined # Union + Intersection ok 24 - Int&Num|ArrayRef eq Int&Num|ArrayRef ok 25 - (Int&Num)|ArrayRef eq Int&Num|ArrayRef ok 26 - Int&(Num|ArrayRef) eq Int&Num|ArrayRef ok 27 - Int&Num|ArrayRef&Ref eq Int&Num|ArrayRef&Ref # Complementary types ok 28 - ~Int eq ~Int ok 29 - ~ArrayRef[Int] eq ~ArrayRef[Int] ok 30 - ~Int|CodeRef eq ~Int|CodeRef ok 31 - ~(Int|CodeRef) eq ~Int|CodeRef - precedence of "~" versus "|" # Comma ok 32 - Map[Num,Int] eq Map[Num,Int] ok 33 - Map[Int,Num] eq Map[Int,Num] ok 34 - Map[Int,Int|ArrayRef[Int]] eq Map[Int,Int|ArrayRef[Int]] ok 35 - Map[Int,ArrayRef[Int]|Int] eq Map[Int,ArrayRef[Int]|Int] ok 36 - Dict[foo=>Int,bar=>Num] eq Dict[bar=>Num,foo=>Int] ok 37 - Dict['foo'=>Int,'bar'=>Num] eq Dict[bar=>Num,foo=>Int] ok 38 - Dict['foo',Int,'bar',Num] eq Dict[bar=>Num,foo=>Int] # Slurpy ok 39 - Dict[slurpy=>Int,bar=>Num] eq Dict[bar=>Num,slurpy=>Int] ok 40 - Tuple[Str, Int, slurpy ArrayRef[Int]] eq Tuple[Str,Int,slurpy ArrayRef[Int]] ok 41 - Tuple[Str, Int, slurpy(ArrayRef[Int])] eq Tuple[Str,Int,slurpy ArrayRef[Int]] # Complexity ok 42 - ArrayRef[DateTime::]|HashRef[Int|DateTime::]|CodeRef eq ArrayRef[InstanceOf["DateTime"]]|HashRef[Int|InstanceOf["DateTime"]]|CodeRef ok 43 - ArrayRef [DateTime::] |HashRef[ Int| DateTime::]|CodeRef eq ArrayRef[InstanceOf["DateTime"]]|HashRef[Int|InstanceOf["DateTime"]]|CodeRef - gratuitous whitespace # Bad expressions ok 44 - weird token ok 45 - weird stuff 1 ok 46 - weird stuff 2 # Tail retention ok 47 - remainder is ok # Parsing edge cases ok 48 - Xyzzy[Foo] - parameter is treated as a type constraint ok 49 - Xyzzy["Foo"] - parameter is treated as a string ok 50 - Xyzzy[-100] - parameter is treated as a string ok 51 - Xyzzy[200] - parameter is treated as a string ok 52 - Xyzzy[+20.0] - parameter is treated as a string 1..52 ok t/registry.t ................. ok 1 - alias works ok 2 - alias works via simple_lookup ok 3 - alias works via lookup ok 4 - prefix works ok 5 - type registries are separate ok 6 - [1,2,3] passes type constraint ArrayRef[Int] ok 7 - [1,2,"3.14159"] fails type constraint ArrayRef[Int] ok 8 - type constraint invalid syntax ok 9 - type constraint unknown type ok 10 - class type ok 11 - DWIM - class type ok 12 - DWIM - role type ok 13 - DWIM - complex type 1..13 ok t/rt85911.t .................. ok 1 ok 2 1..2 ok t/rt86004.t .................. ok 1 - StrList ArrayRef ok 2 - StrList scalar ok 3 - StrList ArrayRef ok 4 - StrList scalar ok 5 - StrList ArrayRef - noninline ok 6 - StrList scalar - noninline 1..6 ok t/rt86233.t .................. ok 1 ok 2 ok 3 1..3 ok t/rt86239.t .................. # Test 1 ######## # got: foo ok 1 # Test 2 ######## # got: ok 2 # Test 3 ######## ok 3 # Test 4 ######## # got: { # 'foo' => 'foo' # } ok 4 # Test 5 ######## # got: {} ok 5 # Test 6 ######## ok 6 1..6 ok t/stdlib-mxtmlb-alike.t ...... ok 1 - InstanceOf == Object ok 2 - InstanceOf["Foo"] == Foo ok 3 - InstanceOf["Foo","Bar"] == Foo|Bar ok 4 - ConsumerOf == Object ok 5 - ConsumerOf["Foo"] == Foo ok 6 - ConsumerOf["Foo","Bar"] == Foo&Bar ok 7 - HasMethods == Object ok 8 - HasMethods["foo"] == CanFoo ok 9 - HasMethods["foo","bar"] == CanFooBar ok 10 - Enum == Str ok 11 - Enum["foo"] == Enum[foo] ok 12 - Enum["foo","bar"] == Enum[bar,foo] 1..12 ok t/stdlib-optlist.t ........... ok 1 - [] passes type constraint OptList ok 2 - [["foo",undef]] passes type constraint OptList ok 3 - [["foo",'ARRAY(0xbe95f4)']] passes type constraint OptList ok 4 - [["foo",'HASH(0x3a15c)']] passes type constraint OptList ok 5 - [] passes type constraint OptList ok 6 - [["foo",undef]] passes type constraint OptList ok 7 - [["foo",'ARRAY(0xd7a09c)']] passes type constraint OptList ok 8 - [["foo",'HASH(0x3a15c)']] passes type constraint OptList ok 9 - [[undef]] fails type constraint OptList ok 10 - [['ARRAY(0xd67adc)']] fails type constraint OptList ok 11 - [['HASH(0xd7a09c)']] fails type constraint OptList ok 12 - [[undef]] fails type constraint OptList ok 13 - [['ARRAY(0xd7a0ac)']] fails type constraint OptList ok 14 - [['HASH(0xd67adc)']] fails type constraint OptList ok 15 - not OptList has coercion ok 16 - OptList has coercion ok 17 - $OM->coerce(undef) ok 18 - $OM->coerce([]) ok 19 - simple $OM coercion test ok 20 - another simple $OM coercion test 1..20 ok t/stdlib-overload.t .......... ok 1 - bless( [], 'Local::Class' ) passes type constraint Any ok 2 - bless( [], 'Local::Class' ) passes type constraint Item ok 3 - bless( [], 'Local::Class' ) passes type constraint Defined ok 4 - bless( [], 'Local::Class' ) passes type constraint Ref ok 5 - bless( [], 'Local::Class' ) passes type constraint Ref[ARRAY] ok 6 - bless( [], 'Local::Class' ) passes type constraint Object ok 7 - bless( [], 'Local::Class' ) passes type constraint Overload ok 8 - bless( [], 'Local::Class' ) passes type constraint Overload[&] ok 9 - bless( [], 'Local::Class' ) fails type constraint Ref[HASH] ok 10 - bless( [], 'Local::Class' ) fails type constraint Overload[|] ok 11 - Value "Local::Class" fails type constraint Overload ok 12 - [] fails type constraint Overload ok 13 - Item subtype: Overload[&] ok 14 - Defined subtype: Overload[&] ok 15 - Ref subtype: Overload[&] ok 16 - Object subtype: Overload[&] ok 17 - Overload subtype: Overload[&] 1..17 ok t/stdlib-strmatch.t .......... ok 1 - Value "mm" passes type constraint Enum[cm,km,m,mm] ok 2 - Value "cm" passes type constraint Enum[cm,km,m,mm] ok 3 - Value "m" passes type constraint Enum[cm,km,m,mm] ok 4 - Value "km" passes type constraint Enum[cm,km,m,mm] ok 5 - Value "MM" fails type constraint Enum[cm,km,m,mm] ok 6 - Value "mm " fails type constraint Enum[cm,km,m,mm] ok 7 - Value " mm" fails type constraint Enum[cm,km,m,mm] ok 8 - Value "miles" fails type constraint Enum[cm,km,m,mm] ok 9 - Value "5 km" passes type constraint Distance ok 10 - Value "5 mm" passes type constraint Distance ok 11 - Value "4 miles" fails type constraint Distance ok 12 - Value "5.5 km" fails type constraint Distance ok 13 - [5,"km"] fails type constraint Distance ok 14 - Value "true" passes type constraint Boolean ok 15 - Value "True" passes type constraint Boolean ok 16 - Value "TRUE" passes type constraint Boolean ok 17 - Value "false" passes type constraint Boolean ok 18 - Value "False" passes type constraint Boolean ok 19 - Value "FALSE" passes type constraint Boolean ok 20 - Value "0" passes type constraint Boolean ok 21 - Value "1" passes type constraint Boolean ok 22 - Value "True " fails type constraint Boolean ok 23 - Value "11" fails type constraint Boolean ok 24 - Value "https://www.google.com/" passes type constraint SecureUrl ok 25 - Value "http://www.google.com/" fails type constraint SecureUrl 1..25 ok t/stdlib-structures.t ........ ok 1 - {1 => 111,2 => 222} passes type constraint Map[Int,Num] ok 2 - {1 => "1.1",2 => "2.2"} passes type constraint Map[Int,Num] ok 3 - {1 => "Str",2 => 222} fails type constraint Map[Int,Num] ok 4 - {"1.1" => 1,2 => "2.2"} fails type constraint Map[Int,Num] ok 5 - [1,"1.1"] passes type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 6 - [1,"1.1",2] passes type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 7 - [1,"1.1",2,"2.2"] passes type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 8 - [1,"1.1",2,"2.2","2.3"] passes type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 9 - [1,"1.1",2,"2.2","2.3","2.4"] passes type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 10 - {} fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 11 - [] fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 12 - [1] fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 13 - ["1.1","1.1"] fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 14 - [1,"1.1","2.1"] fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 15 - [1,"1.1","2.1"] fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 16 - [1,"1.1",2,"2.2","2.3","2.4","xyz"] fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 17 - [1,"1.1",undef] fails type constraint Tuple[Int,Num,Optional[Int],slurpy ArrayRef[Num]] ok 18 - [1,"1.1"] passes type constraint Tuple[Int,Num,Optional[Int]] ok 19 - [1,"1.1",2] passes type constraint Tuple[Int,Num,Optional[Int]] ok 20 - [1,"1.1",2,"2.2"] fails type constraint Tuple[Int,Num,Optional[Int]] ok 21 - [1,"1.1",2,"2.2","2.3"] fails type constraint Tuple[Int,Num,Optional[Int]] ok 22 - [1,"1.1",2,"2.2","2.3","2.4"] fails type constraint Tuple[Int,Num,Optional[Int]] ok 23 - {} fails type constraint Tuple[Int,Num,Optional[Int]] ok 24 - [] fails type constraint Tuple[Int,Num,Optional[Int]] ok 25 - [1] fails type constraint Tuple[Int,Num,Optional[Int]] ok 26 - ["1.1","1.1"] fails type constraint Tuple[Int,Num,Optional[Int]] ok 27 - [1,"1.1","2.1"] fails type constraint Tuple[Int,Num,Optional[Int]] ok 28 - [1,"1.1","2.1"] fails type constraint Tuple[Int,Num,Optional[Int]] ok 29 - [1,"1.1",2,"2.2","2.3","2.4","xyz"] fails type constraint Tuple[Int,Num,Optional[Int]] ok 30 - [1,"1.1",undef] fails type constraint Tuple[Int,Num,Optional[Int]] ok 31 - {"age" => 40,"height" => "1.76","name" => "Bob"} passes type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 32 - {"age" => 40,"name" => "Bob"} passes type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 33 - {"name" => "Bob"} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 34 - {"age" => 40} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 35 - {"age" => "40.1","name" => "Bob"} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 36 - {"age" => 40,"name" => "Bob","weight" => "80.3"} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 37 - {"age" => 40,"height" => "1.76","name" => "Bob","weight" => "80.3"} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 38 - {"age" => 40,"height" => "xyz","name" => "Bob"} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 39 - {"age" => 40,"height" => undef,"name" => "Bob"} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 40 - {"age" => undef,"height" => "1.76","name" => "Bob"} fails type constraint Dict[age=>Int,height=>Optional[Num],name=>Str] ok 41 - Optional[Int] check () ok 42 - Optional[Int] check (1) not ok 43 - Optional[Int] check (undef) # TODO `exists $arr[$idx]` behaves oddly in all versions of Perl # Failed (TODO) test 'Optional[Int] check (undef)' # at t/stdlib-structures.t line 86. ok 44 - Optional[Int] check ('xxx') ok 45 - [[],"1.1",1,"2.1",2] passes type constraint Tuple[ArrayRef,slurpy Map[Num,Int]] ok 46 - [[]] passes type constraint Tuple[ArrayRef,slurpy Map[Num,Int]] ok 47 - [[],"1.1",1,"xxx",2] fails type constraint Tuple[ArrayRef,slurpy Map[Num,Int]] ok 48 - [[],"1.1",1,"2.1",undef] fails type constraint Tuple[ArrayRef,slurpy Map[Num,Int]] ok 49 - {"b" => undef,"i" => 42} passes type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 50 - {"b" => "","i" => 42} passes type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 51 - {"b" => 0,"i" => 42} passes type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 52 - {"b" => 1,"i" => 42} passes type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 53 - {"b" => 1,"i" => undef} passes type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 54 - {"b" => 42,"i" => 1} fails type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 55 - {"i" => 42} fails type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 56 - {"b" => 1} fails type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 57 - {"a" => 1,"b" => 1,"i" => 42} fails type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 58 - {"a" => 1,"i" => 42} fails type constraint Dict[b=>Bool,i=>Maybe[Int]] ok 59 - {"a" => 42,"b" => 1} fails type constraint Dict[b=>Bool,i=>Maybe[Int]] 1..59 ok t/stdlib-tied.t .............. ok 1 - [] passes type constraint Tied ok 2 - {} passes type constraint Tied ok 3 - \undef passes type constraint Tied ok 4 - Undef fails type constraint Tied ok 5 - [] passes type constraint Tied["MyTie::Array"] ok 6 - {} fails type constraint Tied["MyTie::Array"] ok 7 - \undef fails type constraint Tied["MyTie::Array"] ok 8 - [] fails type constraint Tied["MyTie::Hash"] ok 9 - {} passes type constraint Tied["MyTie::Hash"] ok 10 - \undef fails type constraint Tied["MyTie::Hash"] ok 11 - [] fails type constraint Tied["MyTie::Scalar"] ok 12 - {} fails type constraint Tied["MyTie::Scalar"] ok 13 - \undef passes type constraint Tied["MyTie::Scalar"] ok 14 - [] passes type constraint Tied[MyTieArray] ok 15 - {} fails type constraint Tied[MyTieArray] ok 16 - \undef fails type constraint Tied[MyTieArray] ok 17 - [] fails type constraint Tied[MyTieHash] ok 18 - {} passes type constraint Tied[MyTieHash] ok 19 - \undef fails type constraint Tied[MyTieHash] ok 20 - [] fails type constraint Tied[MyTieScalar] ok 21 - {} fails type constraint Tied[MyTieScalar] ok 22 - \undef passes type constraint Tied[MyTieScalar] ok 23 - {} passes type constraint Tied&HashRef ok 24 - [] fails type constraint Tied&HashRef ok 25 - \undef fails type constraint Tied&HashRef ok 26 - {"foo" => 2} fails type constraint Tied&HashRef 1..26 ok t/stdlib.t ................... ok 1 - ->library method ok 2 - \123 passes type constraint ScalarRef ok 3 - [] passes type constraint ArrayRef ok 4 - {} passes type constraint HashRef ok 5 - sub { "DUMMY" } passes type constraint CodeRef ok 6 - \*::STDOUT passes type constraint GlobRef ok 7 - \\"Hello" passes type constraint Ref ok 8 - \*::STDOUT passes type constraint FileHandle ok 9 - qr/(?^:x)/ passes type constraint RegexpRef ok 10 - Value "1" passes type constraint Str ok 11 - Value "1" passes type constraint Num ok 12 - Value "1" passes type constraint Int ok 13 - Value "1" passes type constraint Defined ok 14 - Value "1" passes type constraint Value ok 15 - Undef passes type constraint Undef ok 16 - Undef passes type constraint Item ok 17 - Undef passes type constraint Any ok 18 - Value "Type::Tiny" passes type constraint ClassName ok 19 - Value "Type::Library" passes type constraint RoleName ok 20 - Undef passes type constraint Bool ok 21 - Value "" passes type constraint Bool ok 22 - Value "0" passes type constraint Bool ok 23 - Value "1" passes type constraint Bool ok 24 - Value "7" fails type constraint Bool ok 25 - \\"Hello" passes type constraint ScalarRef ok 26 - Value "Type::Tiny" fails type constraint RoleName ok 27 - [] fails type constraint Str ok 28 - [] fails type constraint Num ok 29 - [] fails type constraint Int ok 30 - Value "4x4" passes type constraint Str ok 31 - Value "4x4" fails type constraint Num ok 32 - Value "4.2" fails type constraint Int ok 33 - Undef fails type constraint Str ok 34 - Undef fails type constraint Num ok 35 - Undef fails type constraint Int ok 36 - Undef fails type constraint Defined ok 37 - Undef fails type constraint Value ok 38 - Undef fails type constraint ClassName ok 39 - [] fails type constraint ClassName ok 40 - Value "Local::Class2" passes type constraint ClassName ok 41 - Value "Local::Class3" passes type constraint ClassName ok 42 - Value "Local::Class4" passes type constraint ClassName ok 43 - Value "Local::Dummy1" fails type constraint ClassName ok 44 - [] passes type constraint ArrayRef[Int] ok 45 - [1,2,3] passes type constraint ArrayRef[Int] ok 46 - ["1.1",2,3] fails type constraint ArrayRef[Int] ok 47 - [1,2,"3.1"] fails type constraint ArrayRef[Int] ok 48 - [[]] fails type constraint ArrayRef[Int] ok 49 - [[3]] passes type constraint ArrayRef[ArrayRef[Int]] ok 50 - [["A"]] fails type constraint ArrayRef[ArrayRef[Int]] ok 51 - ArrayRef[HashRef[ArrayRef[HashRef[Int]]]] can be inlined ok 52 - [{"foo1" => 'ARRAY(0xdbdde4)'},{"foo2" => 'ARRAY(0xdbdd44)'}] passes type constraint ArrayRef[HashRef[ArrayRef[HashRef[Int]]]] ok 53 - [{"foo1" => 'ARRAY(0xdbda34)'},{"foo2" => 'ARRAY(0xdbe104)'}] passes type constraint ArrayRef[HashRef[ArrayRef[HashRef[Int]]]] ok 54 - [{"foo1" => 'ARRAY(0xdbdc74)'},{"foo2" => 'ARRAY(0xdbe404)'}] fails type constraint ArrayRef[HashRef[ArrayRef[HashRef[Int]]]] ok 55 - Undef passes type constraint Maybe[Int] ok 56 - Value "123" passes type constraint Maybe[Int] ok 57 - Value "1.3" fails type constraint Maybe[Int] ok 58 - \"Hello" passes type constraint ScalarRef[Str] ok 59 - \"1.1" passes type constraint ScalarRef[Str] ok 60 - \1 passes type constraint ScalarRef[Str] ok 61 - \"Hello" fails type constraint ScalarRef[Num] ok 62 - \"1.1" passes type constraint ScalarRef[Num] ok 63 - \1 passes type constraint ScalarRef[Num] ok 64 - \"Hello" fails type constraint ScalarRef[Int] ok 65 - \"1.1" fails type constraint ScalarRef[Int] ok 66 - \1 passes type constraint ScalarRef[Int] ok 67 - bless( [], 'Local::Class4' ) passes type constraint Ref[ARRAY] ok 68 - bless( {}, 'Local::Class4' ) passes type constraint Ref[HASH] ok 69 - [] passes type constraint Ref[ARRAY] ok 70 - {} passes type constraint Ref[HASH] ok 71 - bless( [], 'Local::Class4' ) fails type constraint Ref[HASH] ok 72 - bless( {}, 'Local::Class4' ) fails type constraint Ref[ARRAY] ok 73 - [] fails type constraint Ref[HASH] ok 74 - {} fails type constraint Ref[ARRAY] ok 75 - ArrayRef["Int"] is not a valid type constraint ok 76 - HashRef[[]] is not a valid type constraint ok 77 - ScalarRef[undef] is not a valid type constraint ok 78 - Ref[{}] is not a valid type constraint ok 79 - 'Inf' passes Num unless Types::Standard::STRICTNUM ok 80 - '-Inf' passes Num unless Types::Standard::STRICTNUM ok 81 - 'Nan' passes Num unless Types::Standard::STRICTNUM ok 82 - '0.' passes Num unless Types::Standard::STRICTNUM 1..82 ok t/subquote.t ................. ok 1 - Value "41" fails type constraint Type1 ok 2 - Value "42" passes type constraint Type1 ok 3 - constraint built using quote_sub and $_[0] can be inlined # do { do { @_ = ($value); local $_ = $value; $_[0] eq q(42) } } ok 4 - Value "41" fails type constraint Type2 ok 5 - Value "42" passes type constraint Type2 ok 6 - constraint built using quote_sub and $_[0] can be inlined # do { do { @_ = ($value); local $_ = $value; $_ eq q(42) } } ok 7 - Value "41" fails type constraint Type3 ok 8 - Value "42" passes type constraint Type3 ok 9 - constraint built using quote_sub and @_ can be inlined # do { do { my ($n) = ($value); $n eq q(42) } } ok 10 - Value "41" fails type constraint Type4 ok 11 - Value "42" passes type constraint Type4 ok 12 - Value "43" passes type constraint Type4 ok 13 - Value "44.4" fails type constraint Type4 ok 14 - constraint built using quote_sub and parent type can be inlined # do { (defined $value and $value =~ /\A-?[0-9]+\z/) and do { @_ = ($value); local $_ = $value; $_[0] >= 42 } } ok 15 - Value "41" fails type constraint Type5 ok 16 - Value "42" passes type constraint Type5 ok 17 - Value "43" passes type constraint Type5 ok 18 - Value "44.4" fails type constraint Type5 not ok 19 - constraint built using quote_sub and captures can be inlined # TODO captures not supported yet # Failed (TODO) test 'constraint built using quote_sub and captures can be inlined' # at t/subquote.t line 93. ok 20 - Value "41" fails type constraint Type6 ok 21 - Value "42" passes type constraint Type6 ok 22 - Value "43" passes type constraint Type6 ok 23 - Value "44.4" fails type constraint Type6 ok 24 - constraint built using quote_sub and non-inlinable parent cannot be inlined 1..24 ok t/syntax.t ................... ok 1 - $type1==$type2 ok 2 - $type1==$type3 ok 3 - $type2==$type3 1..3 ok t/type-class.t ............... ok 1 - FooBar isa Type::Tiny ok 2 - FooBar isa Type::Tiny::Class ok 3 - FooBaz isa Type::Tiny ok 4 - FooBaz isa Type::Tiny::Class ok 5 - FooBar->new isa Foo::Bar ok 6 - FooBaz->new isa Foo::Baz ok 7 - FooBar->class->new isa Foo::Bar ok 8 - FooBaz->class->new isa Foo::Baz ok 9 - bless( {}, 'Foo::Bar' ) passes type constraint FooBar ok 10 - bless( {}, 'Foo::Baz' ) passes type constraint FooBar ok 11 - bless( {}, 'Foo::Bar' ) fails type constraint FooBaz ok 12 - bless( {}, 'Foo::Baz' ) passes type constraint FooBaz ok 13 - Undef fails type constraint FooBar ok 14 - Undef fails type constraint FooBaz ok 15 - {} fails type constraint FooBar ok 16 - {} fails type constraint FooBaz ok 17 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Bar","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBar","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBar","type_constraints" => undef,"uniq" => 45}, 'Type::Tiny::Class' ) fails type constraint FooBar ok 18 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Bar","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBar","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBar","type_constraints" => undef,"uniq" => 45}, 'Type::Tiny::Class' ) fails type constraint FooBaz ok 19 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Baz","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBaz","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBaz","type_constraints" => undef,"uniq" => 46}, 'Type::Tiny::Class' ) fails type constraint FooBar ok 20 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Baz","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBaz","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBaz","type_constraints" => undef,"uniq" => 46}, 'Type::Tiny::Class' ) fails type constraint FooBaz ok 21 - Value "Foo::Bar" fails type constraint FooBar ok 22 - Value "Foo::Bar" fails type constraint FooBaz ok 23 - Value "Foo::Baz" fails type constraint FooBar ok 24 - Value "Foo::Baz" fails type constraint FooBaz ok 25 - DWIM Type::Tiny::Class::new 1..25 ok t/type-duck.t ................ ok 1 - CanFooBar isa Type::Tiny ok 2 - CanFooBar isa Type::Tiny::Duck ok 3 - bless( {}, 'Foo::Bar' ) passes type constraint CanFooBar ok 4 - bless( {}, 'Foo::Bar' ) fails type constraint CanFooBaz ok 5 - bless( {}, 'Foo::Baz' ) passes type constraint CanFooBar ok 6 - bless( {}, 'Foo::Baz' ) passes type constraint CanFooBaz ok 7 - Undef fails type constraint CanFooBar ok 8 - {} fails type constraint CanFooBar ok 9 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Bar","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBar","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBar","type_constraints" => undef,"uniq" => 45}, 'Type::Tiny::Class' ) fails type constraint CanFooBar ok 10 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Baz","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBaz","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBaz","type_constraints" => undef,"uniq" => 46}, 'Type::Tiny::Class' ) fails type constraint CanFooBar ok 11 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "CanFooBar","inlined" => sub { "DUMMY" },"library" => "BiggerLib","methods" => ["foo","bar"],"name" => "CanFooBar","type_constraints" => undef,"uniq" => 47}, 'Type::Tiny::Duck' ) fails type constraint CanFooBar ok 12 - Value "Foo::Bar" fails type constraint CanFooBar 1..12 ok t/type-enum.t ................ ok 1 - FBB isa Type::Tiny ok 2 - FBB isa Type::Tiny::Enum ok 3 - Value "foo" passes type constraint Enum[bar,baz,foo] ok 4 - Value "bar" passes type constraint Enum[bar,baz,foo] ok 5 - Value "baz" passes type constraint Enum[bar,baz,foo] ok 6 - Value "quux" fails type constraint Enum[bar,baz,foo] ok 7 - Value " foo" fails type constraint Enum[bar,baz,foo] ok 8 - Value "foo\n" fails type constraint Enum[bar,baz,foo] ok 9 - Value "\nfoo" fails type constraint Enum[bar,baz,foo] ok 10 - Value "\nfoo\n" fails type constraint Enum[bar,baz,foo] ok 11 - Value "foo|" fails type constraint Enum[bar,baz,foo] ok 12 - Value "|foo" fails type constraint Enum[bar,baz,foo] ok 13 - Undef fails type constraint Enum[bar,baz,foo] ok 14 - {} fails type constraint Enum[bar,baz,foo] ok 15 - \"foo" fails type constraint Enum[bar,baz,foo] ok 16 - \"bar" fails type constraint Enum[bar,baz,foo] ok 17 - \"baz" fails type constraint Enum[bar,baz,foo] ok 18 - FBB->values works 1..18 ok t/type-intersection.t ........ ok 1 - FooBarAndDoesQuux isa Type::Tiny::Intersection ok 2 - FooBarAndDoesQuux->[0] isa Type::Tiny::Class ok 3 - FooBarAndDoesQuux->[1] isa Type::Tiny::Role ok 4 - stringification good ok 5 - bless( {}, 'Foo::Bar' ) fails type constraint FooBar&DoesQuux ok 6 - bless( {}, 'Foo::Baz' ) passes type constraint FooBar&DoesQuux ok 7 - bless( [], 'Something' ) fails type constraint FooBar&DoesQuux ok 8 - bless( [], 'Something::Else' ) fails type constraint FooBar&DoesQuux ok 9 - Value "Foo::Bar" fails type constraint FooBar&DoesQuux ok 10 - Value "Foo::Baz" fails type constraint FooBar&DoesQuux ok 11 - intersections don't get unnecessarily deep # ((Scalar::Util::blessed($X) and $X->isa(q[Foo::Bar])) and do { Scalar::Util::blessed($X) and do { my $method = $X->can('DOES')||$X->can('isa'); $X->$method(q[Quux]) } } and (ref($X) and Scalar::Util::reftype($X) eq q(ARRAY))) ok 12 - bless( [], 'Foo::Baz' ) passes type constraint FooBar&DoesQuux&Ref[ARRAY] ok 13 - bless( {}, 'Foo::Baz' ) fails type constraint FooBar&DoesQuux&Ref[ARRAY] ok 14 - The object isa Type::Tiny::Intersection ok 15 - not (SmallInteger&__ANON__)->can_be_inlined ok 16 - Value "2" passes type constraint SmallInteger&__ANON__ ok 17 - Value "20" fails type constraint SmallInteger&__ANON__ ok 18 - Value "3" fails type constraint SmallInteger&__ANON__ 1..18 ok t/type-role.t ................ ok 1 - DoesQuux isa Type::Tiny ok 2 - DoesQuux isa Type::Tiny::Role ok 3 - bless( {}, 'Foo::Bar' ) fails type constraint DoesQuux ok 4 - bless( {}, 'Foo::Baz' ) passes type constraint DoesQuux ok 5 - Undef fails type constraint DoesQuux ok 6 - {} fails type constraint DoesQuux ok 7 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Bar","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBar","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBar","type_constraints" => undef,"uniq" => 45}, 'Type::Tiny::Class' ) fails type constraint DoesQuux ok 8 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"class" => "Foo::Baz","compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "FooBaz","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "FooBaz","type_constraints" => undef,"uniq" => 46}, 'Type::Tiny::Class' ) fails type constraint DoesQuux ok 9 - bless( {"_caller_level" => 1,"_overload_coderef" => sub { "DUMMY" },"compiled_type_constraint" => sub { "DUMMY" },"constraint" => sub { "DUMMY" },"display_name" => "DoesQuux","inlined" => sub { "DUMMY" },"library" => "BiggerLib","name" => "DoesQuux","role" => "Quux","type_constraints" => undef,"uniq" => 44}, 'Type::Tiny::Role' ) fails type constraint DoesQuux ok 10 - Value "Quux" fails type constraint DoesQuux 1..10 ok t/type-union.t ............... ok 1 - FooBarOrDoesQuux isa Type::Tiny::Union ok 2 - FooBarOrDoesQuux->[0] isa Type::Tiny::Class ok 3 - FooBarOrDoesQuux->[1] isa Type::Tiny::Role ok 4 - stringification good ok 5 - bless( {}, 'Foo::Bar' ) passes type constraint FooBar|DoesQuux ok 6 - bless( {}, 'Foo::Baz' ) passes type constraint FooBar|DoesQuux ok 7 - bless( [], 'Something' ) passes type constraint FooBar|DoesQuux ok 8 - bless( [], 'Something::Else' ) fails type constraint FooBar|DoesQuux ok 9 - Value "Foo::Bar" fails type constraint FooBar|DoesQuux ok 10 - Value "Foo::Baz" fails type constraint FooBar|DoesQuux ok 11 - unions don't get unnecessarily deep ok 12 - can climb up parents of union type constraints to find best common ancestor ok 13 - can climb up parents of union type constraints to find best common ancestor (again) 1..13 ok t/type.t ..................... ok 1 - Any is not anon ok 2 - Any is called Any ok 3 - Any can be inlined ok 4 - Value "1" passes type constraint Any ok 5 - Value "1.2" passes type constraint Any ok 6 - Value "Hello World" passes type constraint Any ok 7 - [] passes type constraint Any ok 8 - {} passes type constraint Any ok 9 - Undef passes type constraint Any ok 10 - \*::STDOUT passes type constraint Any ok 11 - bad type constraint name ok 12 - $Int is anon ok 13 - $Int is called __ANON__ ok 14 - $Int cannot be inlined ok 15 - Value "1" passes type constraint __ANON__ ok 16 - Value "-1" passes type constraint __ANON__ ok 17 - Value "0" passes type constraint __ANON__ ok 18 - Value "100" passes type constraint __ANON__ ok 19 - Value "10000" passes type constraint __ANON__ ok 20 - Value "987654" passes type constraint __ANON__ ok 21 - Value "1.2" fails type constraint __ANON__ ok 22 - Value "Hello World" fails type constraint __ANON__ ok 23 - [] fails type constraint __ANON__ ok 24 - {} fails type constraint __ANON__ ok 25 - Undef fails type constraint __ANON__ ok 26 - \*::STDOUT fails type constraint __ANON__ ok 27 - Any subtype: __ANON__ ok 28 - Any is_supertype_of $Int ok 29 - $Int is_a_type_of Any ok 30 - $Int is_a_type_of $Int ok 31 - not $Int is_subtype_of $Int ok 32 - Below is_parameterizable ok 33 - not Below is_parameterized ok 34 - Value "1" passes type constraint Below ok 35 - Value "-1" passes type constraint Below ok 36 - Value "0" passes type constraint Below ok 37 - Value "100" passes type constraint Below ok 38 - Value "10000" passes type constraint Below ok 39 - Value "987654" passes type constraint Below ok 40 - Value "1.2" fails type constraint Below ok 41 - Value "Hello World" fails type constraint Below ok 42 - [] fails type constraint Below ok 43 - {} fails type constraint Below ok 44 - Undef fails type constraint Below ok 45 - \*::STDOUT fails type constraint Below ok 46 - $Below5 is anon ok 47 - ... but still has a nice display name ok 48 - Value "1" passes type constraint Below[5] ok 49 - Value "-1" passes type constraint Below[5] ok 50 - Value "0" passes type constraint Below[5] ok 51 - Value "1.2" fails type constraint Below[5] ok 52 - Value "Hello World" fails type constraint Below[5] ok 53 - [] fails type constraint Below[5] ok 54 - {} fails type constraint Below[5] ok 55 - Undef fails type constraint Below[5] ok 56 - \*::STDOUT fails type constraint Below[5] ok 57 - Value "100" fails type constraint Below[5] ok 58 - Value "10000" fails type constraint Below[5] ok 59 - Value "987654" fails type constraint Below[5] ok 60 - Any subtype: Below[5] ok 61 - __ANON__ subtype: Below[5] ok 62 - Below subtype: Below[5] ok 63 - Below[5] is_parameterized ok 64 - has_parameters method works - negative ok 65 - has_parameters method works - positive ok 66 - parameters method works ok 67 - inlining stuff can return a list ok 68 - loose type comparison ok 69 - strict type comparison 1..69 ok t/validationclass.t .......... ok 1 - can create a child type constraint from Validation::Class::Simple isa Type::Tiny ok 2 - Value "Hello" fails type constraint __ANON__ ok 3 - {} fails type constraint __ANON__ ok 4 - {"email" => "tobyink\@cpan.org","name" => "Toby","pass" => "foo","pass2" => "bar"} fails type constraint __ANON__ ok 5 - {"email" => "tobyink\@cpan.org","name" => "Toby","pass" => "foo","pass2" => "foo"} passes type constraint __ANON__ ok 6 - {"email" => "tobyink\@cpan.org","name" => "Toby ","pass" => "foo","pass2" => "foo"} fails type constraint __ANON__ ok 7 - correct error message (A) ok 8 - correct error message (B) ok 9 - the type has a coercion ok 10 - ... which works 1..10 ok All tests successful. Files=76, Tests=1247, 42 wallclock secs ( 0.47 usr + 0.11 sys = 0.58 CPU) Result: PASS TOBYINK/Type-Tiny-0.022.tar.gz nmake test TEST_VERBOSE=1 -- OK PPD for Type-Tiny-0.022 already made Running test for module 'true' Running make for C/CH/CHOCOLATE/true-0.18.tar.gz Prepending C:\cpanfly-5.16\var\cpan\build\Type-Tiny-0.022-KBGAK2/blib/arch C:\cpanfly-5.16\var\cpan\build\Type-Tiny-0.022-KBGAK2/blib/lib to PERL5LIB for 'get' Checksum for C:\cpanfly-5.16\var\cpan\sources\authors\id\C\CH\CHOCOLATE\true-0.18.tar.gz ok true-0.18/ true-0.18/Makefile.PL true-0.18/Changes true-0.18/true.xs true-0.18/ppport.h true-0.18/README true-0.18/lib/ true-0.18/lib/true/ true-0.18/lib/true/VERSION.pm true-0.18/lib/true.pm true-0.18/META.yml true-0.18/t/ true-0.18/t/01_compile.t true-0.18/t/eval.t true-0.18/t/use.t true-0.18/t/use_subclass.t true-0.18/t/leak.t true-0.18/t/require_subclass.t true-0.18/t/version.t true-0.18/t/pod.t true-0.18/t/lib/ true-0.18/t/lib/bad.pl true-0.18/t/lib/DirectTopLevelUnimport.pm true-0.18/t/lib/DirectNestedUnimport.pm true-0.18/t/lib/Ugly.pm true-0.18/t/lib/Untrue2.pm true-0.18/t/lib/Contemporary/ true-0.18/t/lib/Contemporary/Perl.pm true-0.18/t/lib/Contemporary/Perl/ true-0.18/t/lib/Contemporary/Perl/Subclass/ true-0.18/t/lib/Contemporary/Perl/Subclass/Subclass.pm true-0.18/t/lib/Contemporary/Perl/Subclass.pm true-0.18/t/lib/Untrue1.pm true-0.18/t/lib/GoodWithSubclass.pm true-0.18/t/lib/good.pl true-0.18/t/lib/IndirectCompileTimeException.pm true-0.18/t/lib/UglyWithSubclass.pm true-0.18/t/lib/IndirectTopLevelUnimport.pm true-0.18/t/lib/Bad.pm true-0.18/t/lib/GoodWithSubSubclass.pm true-0.18/t/lib/IndirectTrueLoadUntrue.pm true-0.18/t/lib/good_with_sub_subclass.pl true-0.18/t/lib/Good.pm true-0.18/t/lib/IndirectNestedUnimport.pm true-0.18/t/lib/DirectTrueLoadUntrue.pm true-0.18/t/lib/TestSubclass.pm true-0.18/t/lib/good_with_subclass.pl true-0.18/t/lib/UglyWithSubSubclass.pm true-0.18/t/lib/DirectCompileTimeException.pm true-0.18/t/exception.todo true-0.18/t/require.t true-0.18/t/unimport.t true-0.18/MANIFEST Prepending C:\cpanfly-5.16\var\cpan\build\Type-Tiny-0.022-KBGAK2/blib/arch C:\cpanfly-5.16\var\cpan\build\Type-Tiny-0.022-KBGAK2/blib/lib to PERL5LIB for 'make' CPAN.pm: Building C/CH/CHOCOLATE/true-0.18.tar.gz >>> C:\Perl-5.16\bin\perl.exe Makefile.PL Timeout (max run time is 420s) C:\Perl-5.16\bin\perl.exe exits with 37.