PATH=C:\cpanfly-5.22-64\var\megalib\bin;C:\Perl-5.22-64\site\bin;C:\Perl-5.22-64\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\instantclient_11_2-64;C:\cpanfly-5.22-64\var\megalib\bin;C:\Perl-5.22-64\site\bin;C:\Perl-5.22-64\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\instantclient_11_2-64;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Git\cmd;C:\Program Files (x86)\CMake\bin Start 2016-05-21T06:41:04 ActivePerl-2201 CPAN-2.10 PATH=C:/CPANFL~4.22-/var/libs/bin;C:\CPANFL~4.22-\var\megalib\bin;C:\PERL-5~2.22-\site\bin;C:\PERL-5~2.22-\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\INSTAN~1;C:\CPANFL~4.22-\var\megalib\bin;C:\PERL-5~2.22-\site\bin;C:\PERL-5~2.22-\bin;C:\MinGW-64\bin;C:\cygwin\bin;C:\INSTAN~1;C:\p4;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WINDOW~1\v1.0\;C:\PROGRA~1\Git\cmd;C:\PROGRA~2\CMake\bin Reading 'C:\cpanfly-5.22-64\var\cpan\Metadata' Database was generated on Fri, 20 May 2016 23:53:54 GMT Fetching with LWP: http://ppm.activestate.com/CPAN/authors/id/P/PE/PERLANCAR/App-SahUtils-0.23.tar.gz Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\App-SahUtils-0.23.tar.gz ok App-SahUtils-0.23/ App-SahUtils-0.23/bin/ App-SahUtils-0.23/bin/coerce-with-sah App-SahUtils-0.23/bin/validate-with-sah App-SahUtils-0.23/bin/normalize-sah-schema App-SahUtils-0.23/bin/sah-to-human App-SahUtils-0.23/README App-SahUtils-0.23/lib/ App-SahUtils-0.23/lib/App/ App-SahUtils-0.23/lib/App/SahUtils.pm App-SahUtils-0.23/Makefile.PL App-SahUtils-0.23/Changes App-SahUtils-0.23/dist.ini App-SahUtils-0.23/LICENSE App-SahUtils-0.23/t/ App-SahUtils-0.23/t/00-compile.t App-SahUtils-0.23/t/release-rinci.t App-SahUtils-0.23/t/author-pod-syntax.t App-SahUtils-0.23/t/author-pod-coverage.t App-SahUtils-0.23/weaver.ini App-SahUtils-0.23/MANIFEST App-SahUtils-0.23/META.json App-SahUtils-0.23/META.yml Configuring P/PE/PERLANCAR/App-SahUtils-0.23.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite Data::Sah::Coerce 0.007 not found. We have 0.005. Warning: prerequisite Data::Sah::CoerceJS 0.007 not found. We have 0.005. Warning: prerequisite Perinci::CmdLine::Any 0.09 not found. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for App::SahUtils Writing MYMETA.yml and MYMETA.json PERLANCAR/App-SahUtils-0.23.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/App-SahUtils-0.23.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/App-SahUtils-0.23.tar.gz ---- Data::Sah::Coerce [requires] Perinci::CmdLine::Any [requires] Data::Sah::CoerceJS [requires] Running test for module 'Data::Sah::Coerce' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Data-Sah-Coerce-0.007.tar.gz ok Data-Sah-Coerce-0.007/ Data-Sah-Coerce-0.007/README Data-Sah-Coerce-0.007/lib/ Data-Sah-Coerce-0.007/lib/Data/ Data-Sah-Coerce-0.007/lib/Data/Sah/ Data-Sah-Coerce-0.007/lib/Data/Sah/CoerceCommon.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/date/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/date/float_epoch.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/date/str.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/date/obj_Date.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/bool/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/bool/str.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/bool/float.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/duration/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/duration/str_iso8601.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/js/duration/float_secs.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/date/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/date/str_iso8601.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/date/float_epoch.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/date/obj_TimeMoment.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/date/obj_DateTime.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/bool/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/bool/str.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/duration/ Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/duration/str_human.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/duration/str_iso8601.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/duration/obj_DateTimeDuration.pm Data-Sah-Coerce-0.007/lib/Data/Sah/Coerce/perl/duration/float_secs.pm Data-Sah-Coerce-0.007/lib/Data/Sah/CoerceJS.pm Data-Sah-Coerce-0.007/Makefile.PL Data-Sah-Coerce-0.007/Changes Data-Sah-Coerce-0.007/dist.ini Data-Sah-Coerce-0.007/LICENSE Data-Sah-Coerce-0.007/t/ Data-Sah-Coerce-0.007/t/perl-date.t Data-Sah-Coerce-0.007/t/00-compile.t Data-Sah-Coerce-0.007/t/js-duration.t Data-Sah-Coerce-0.007/t/01-basic.t Data-Sah-Coerce-0.007/t/perl-duration.t Data-Sah-Coerce-0.007/t/js-bool.t Data-Sah-Coerce-0.007/t/release-rinci.t Data-Sah-Coerce-0.007/t/perl-bool.t Data-Sah-Coerce-0.007/t/author-pod-syntax.t Data-Sah-Coerce-0.007/t/author-pod-coverage.t Data-Sah-Coerce-0.007/t/js-date.t Data-Sah-Coerce-0.007/weaver.ini Data-Sah-Coerce-0.007/MANIFEST Data-Sah-Coerce-0.007/META.json Data-Sah-Coerce-0.007/META.yml Configuring P/PE/PERLANCAR/Data-Sah-Coerce-0.007.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Data::Sah::Coerce Writing MYMETA.yml and MYMETA.json PERLANCAR/Data-Sah-Coerce-0.007.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Data-Sah-Coerce-0.007.tar.gz >>> dmake cp lib/Data/Sah/Coerce/perl/date/obj_TimeMoment.pm blib\lib\Data\Sah\Coerce\perl\date\obj_TimeMoment.pm cp lib/Data/Sah/Coerce/js/duration/str_iso8601.pm blib\lib\Data\Sah\Coerce\js\duration\str_iso8601.pm cp lib/Data/Sah/Coerce/perl/bool/str.pm blib\lib\Data\Sah\Coerce\perl\bool\str.pm cp lib/Data/Sah/Coerce/js/duration/float_secs.pm blib\lib\Data\Sah\Coerce\js\duration\float_secs.pm cp lib/Data/Sah/Coerce/js/date/str.pm blib\lib\Data\Sah\Coerce\js\date\str.pm cp lib/Data/Sah/Coerce/perl/date/str_iso8601.pm blib\lib\Data\Sah\Coerce\perl\date\str_iso8601.pm cp lib/Data/Sah/Coerce.pm blib\lib\Data\Sah\Coerce.pm cp lib/Data/Sah/Coerce/perl/date/obj_DateTime.pm blib\lib\Data\Sah\Coerce\perl\date\obj_DateTime.pm cp lib/Data/Sah/Coerce/js/bool/float.pm blib\lib\Data\Sah\Coerce\js\bool\float.pm cp lib/Data/Sah/Coerce/js/bool/str.pm blib\lib\Data\Sah\Coerce\js\bool\str.pm cp lib/Data/Sah/Coerce/js/date/obj_Date.pm blib\lib\Data\Sah\Coerce\js\date\obj_Date.pm cp lib/Data/Sah/Coerce/perl/duration/float_secs.pm blib\lib\Data\Sah\Coerce\perl\duration\float_secs.pm cp lib/Data/Sah/Coerce/js/date/float_epoch.pm blib\lib\Data\Sah\Coerce\js\date\float_epoch.pm cp lib/Data/Sah/Coerce/perl/date/float_epoch.pm blib\lib\Data\Sah\Coerce\perl\date\float_epoch.pm cp lib/Data/Sah/CoerceJS.pm blib\lib\Data\Sah\CoerceJS.pm cp lib/Data/Sah/CoerceCommon.pm blib\lib\Data\Sah\CoerceCommon.pm cp lib/Data/Sah/Coerce/perl/duration/str_human.pm blib\lib\Data\Sah\Coerce\perl\duration\str_human.pm cp lib/Data/Sah/Coerce/perl/duration/obj_DateTimeDuration.pm blib\lib\Data\Sah\Coerce\perl\duration\obj_DateTimeDuration.pm cp lib/Data/Sah/Coerce/perl/duration/str_iso8601.pm blib\lib\Data\Sah\Coerce\perl\duration\str_iso8601.pm PERLANCAR/Data-Sah-Coerce-0.007.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ........... 1..19 ok 1 - Data/Sah/Coerce.pm loaded ok ok 2 - Data/Sah/Coerce/js/bool/float.pm loaded ok ok 3 - Data/Sah/Coerce/js/bool/str.pm loaded ok ok 4 - Data/Sah/Coerce/js/date/float_epoch.pm loaded ok ok 5 - Data/Sah/Coerce/js/date/obj_Date.pm loaded ok ok 6 - Data/Sah/Coerce/js/date/str.pm loaded ok ok 7 - Data/Sah/Coerce/js/duration/float_secs.pm loaded ok ok 8 - Data/Sah/Coerce/js/duration/str_iso8601.pm loaded ok ok 9 - Data/Sah/Coerce/perl/bool/str.pm loaded ok ok 10 - Data/Sah/Coerce/perl/date/float_epoch.pm loaded ok ok 11 - Data/Sah/Coerce/perl/date/obj_DateTime.pm loaded ok ok 12 - Data/Sah/Coerce/perl/date/obj_TimeMoment.pm loaded ok ok 13 - Data/Sah/Coerce/perl/date/str_iso8601.pm loaded ok ok 14 - Data/Sah/Coerce/perl/duration/float_secs.pm loaded ok ok 15 - Data/Sah/Coerce/perl/duration/obj_DateTimeDuration.pm loaded ok ok 16 - Data/Sah/Coerce/perl/duration/str_human.pm loaded ok ok 17 - Data/Sah/Coerce/perl/duration/str_iso8601.pm loaded ok ok 18 - Data/Sah/CoerceCommon.pm loaded ok ok 19 - Data/Sah/CoerceJS.pm loaded ok ok Can't find node.js in PATH at C:\cpanfly-5.22-64\var\cpan\build\Data-Sah-Coerce-0.007-6BTvyt\blib\lib/Data/Sah/CoerceJS.pm line 129. # Child (opt:return_type=bool+val) exited without calling finalize() # Failed test 'opt:return_type=bool+val' # at C:/cpanfly-5.22-64/var/megalib/Test/Builder.pm line 279. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 2 just after 1. t/01-basic.t ............. # Subtest: opt:return_type=bool+val ok 1 ok 2 not ok 1 - opt:return_type=bool+val Dubious, test returned 2 (wstat 512, 0x200) Failed 1/1 subtests t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author Can't find node.js in PATH at C:\cpanfly-5.22-64\var\cpan\build\Data-Sah-Coerce-0.007-6BTvyt\blib\lib/Data/Sah/CoerceJS.pm line 129. # Child (coerce_to=boolean) exited without calling finalize() # Failed test 'coerce_to=boolean' # at C:/cpanfly-5.22-64/var/megalib/Test/Builder.pm line 279. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 2 just after 1. t/js-bool.t .............. # Subtest: coerce_to=boolean not ok 1 - coerce_to=boolean Dubious, test returned 2 (wstat 512, 0x200) Failed 1/1 subtests Can't find node.js in PATH at C:\cpanfly-5.22-64\var\cpan\build\Data-Sah-Coerce-0.007-6BTvyt\blib\lib/Data/Sah/CoerceJS.pm line 129. # Child (coerce_to=Date) exited without calling finalize() # Failed test 'coerce_to=Date' # at C:/cpanfly-5.22-64/var/megalib/Test/Builder.pm line 279. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 2 just after 1. t/js-date.t .............. # Subtest: coerce_to=Date not ok 1 - coerce_to=Date Dubious, test returned 2 (wstat 512, 0x200) Failed 1/1 subtests Can't find node.js in PATH at C:\cpanfly-5.22-64\var\cpan\build\Data-Sah-Coerce-0.007-6BTvyt\blib\lib/Data/Sah/CoerceJS.pm line 129. # Child (coerce_to=float(secs)) exited without calling finalize() # Failed test 'coerce_to=float(secs)' # at C:/cpanfly-5.22-64/var/megalib/Test/Builder.pm line 279. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 2 just after 1. t/js-duration.t .......... # Subtest: coerce_to=float(secs) not ok 1 - coerce_to=float(secs) Dubious, test returned 2 (wstat 512, 0x200) Failed 1/1 subtests t/perl-bool.t ............ # Subtest: coerce_to= # Subtest: uncoerced ok 1 - uncoerced ok 2 - uncoerced ok 3 - uncoerced ok 4 - uncoerced 1..4 ok 1 - uncoerced 1..1 ok 1 - coerce_to= # Subtest: coerce_to=, +rule str # Subtest: uncoerced ok 1 - uncoerced ok 2 - uncoerced ok 3 - uncoerced 1..3 ok 1 - uncoerced # Subtest: from str ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 1..7 ok 2 - from str 1..2 ok 2 - coerce_to=, +rule str 1..2 ok BUG: Unknown coerce_to value 'float(epoch)', please use int(epoch), DateTime, or Time::Moment at C:/cpanfly-5.22-64/var/megalib/Data/Sah/Coerce/perl/date/int_epoch.pm line 41. # Child (coerce_to=float(epoch)) exited without calling finalize() # Failed test 'coerce_to=float(epoch)' # at C:/cpanfly-5.22-64/var/megalib/Test/Builder.pm line 279. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 255 just after 1. t/perl-date.t ............ # Subtest: coerce_to=float(epoch) not ok 1 - coerce_to=float(epoch) Dubious, test returned 255 (wstat 65280, 0xff00) Failed 1/1 subtests t/perl-duration.t ........ # Subtest: coerce_to=float(secs) # Subtest: uncoerced ok 1 - uncoerced 1..1 ok 1 - uncoerced # Subtest: from float ok 1 1..1 ok 2 - from float # Subtest: from DateTime::Duration object ok 1 1..1 ok 3 - from DateTime::Duration object # Subtest: from human string ok 1 1..1 ok 4 - from human string # Subtest: from iso8601 string ok 1 1..1 ok 5 - from iso8601 string 1..5 ok 1 - coerce_to=float(secs) # Subtest: coerce_to=DateTime::Duration # Subtest: uncoerced ok 1 - uncoerced 1..1 ok 1 - uncoerced # Subtest: from float ok 1 ok 2 1..2 ok 2 - from float # Subtest: from DateTime::Duration object ok 1 ok 2 ok 3 ok 4 1..4 ok 3 - from DateTime::Duration object # Subtest: from human string ok 1 ok 2 ok 3 ok 4 1..4 ok 4 - from human string # Subtest: from iso8601 string ok 1 ok 2 ok 3 ok 4 1..4 ok 5 - from iso8601 string 1..5 ok 2 - coerce_to=DateTime::Duration 1..2 ok t/release-rinci.t ........ skipped: these tests are for release candidate testing Test Summary Report ------------------- t/01-basic.t (Wstat: 512 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 2 Parse errors: No plan found in TAP output t/js-bool.t (Wstat: 512 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 2 Parse errors: No plan found in TAP output t/js-date.t (Wstat: 512 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 2 Parse errors: No plan found in TAP output t/js-duration.t (Wstat: 512 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 2 Parse errors: No plan found in TAP output t/perl-date.t (Wstat: 65280 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 255 Parse errors: No plan found in TAP output Files=11, Tests=28, 4 wallclock secs ( 0.09 usr + 0.02 sys = 0.11 CPU) Result: FAIL Failed 5/11 test programs. 5/28 subtests failed. dmake: Error code 255, while making 'test_dynamic' PERLANCAR/Data-Sah-Coerce-0.007.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLANCAR/Data-Sah-Coerce-0.007.tar.gz Running test for module 'Perinci::CmdLine::Any' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-CmdLine-Any-0.12.tar.gz ok Perinci-CmdLine-Any-0.12/ Perinci-CmdLine-Any-0.12/README Perinci-CmdLine-Any-0.12/lib/ Perinci-CmdLine-Any-0.12/lib/Perinci/ Perinci-CmdLine-Any-0.12/lib/Perinci/CmdLine/ Perinci-CmdLine-Any-0.12/lib/Perinci/CmdLine/Any.pm Perinci-CmdLine-Any-0.12/Makefile.PL Perinci-CmdLine-Any-0.12/Changes Perinci-CmdLine-Any-0.12/dist.ini Perinci-CmdLine-Any-0.12/LICENSE Perinci-CmdLine-Any-0.12/t/ Perinci-CmdLine-Any-0.12/t/00-compile.t Perinci-CmdLine-Any-0.12/t/release-pod-coverage.t Perinci-CmdLine-Any-0.12/t/release-pod-syntax.t Perinci-CmdLine-Any-0.12/t/release-rinci.t Perinci-CmdLine-Any-0.12/weaver.ini Perinci-CmdLine-Any-0.12/MANIFEST Perinci-CmdLine-Any-0.12/META.json Perinci-CmdLine-Any-0.12/META.yml Configuring P/PE/PERLANCAR/Perinci-CmdLine-Any-0.12.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite Perinci::CmdLine::Lite 0 not found. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Perinci::CmdLine::Any Writing MYMETA.yml and MYMETA.json PERLANCAR/Perinci-CmdLine-Any-0.12.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Perinci-CmdLine-Any-0.12.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/Perinci-CmdLine-Any-0.12.tar.gz ---- Perinci::CmdLine::Lite [requires] Running test for module 'Perinci::CmdLine::Lite' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-CmdLine-Lite-1.55.tar.gz ok Perinci-CmdLine-Lite-1.55/ Perinci-CmdLine-Lite-1.55/README Perinci-CmdLine-Lite-1.55/lib/ Perinci-CmdLine-Lite-1.55/lib/Perinci/ Perinci-CmdLine-Lite-1.55/lib/Perinci/CmdLine/ Perinci-CmdLine-Lite-1.55/lib/Perinci/CmdLine/Lite.pm Perinci-CmdLine-Lite-1.55/lib/Perinci/CmdLine/Base.pm Perinci-CmdLine-Lite-1.55/lib/Perinci/CmdLine/Util/ Perinci-CmdLine-Lite-1.55/lib/Perinci/CmdLine/Util/Config.pm Perinci-CmdLine-Lite-1.55/Makefile.PL Perinci-CmdLine-Lite-1.55/share/ Perinci-CmdLine-Lite-1.55/share/templates/ Perinci-CmdLine-Lite-1.55/share/templates/description.txt Perinci-CmdLine-Lite-1.55/share/templates/synopsis.txt Perinci-CmdLine-Lite-1.55/Changes Perinci-CmdLine-Lite-1.55/dist.ini Perinci-CmdLine-Lite-1.55/LICENSE Perinci-CmdLine-Lite-1.55/t/ Perinci-CmdLine-Lite-1.55/t/00-compile.t Perinci-CmdLine-Lite-1.55/t/suite.t Perinci-CmdLine-Lite-1.55/t/release-rinci.t Perinci-CmdLine-Lite-1.55/t/author-pod-syntax.t Perinci-CmdLine-Lite-1.55/t/author-pod-coverage.t Perinci-CmdLine-Lite-1.55/weaver.ini Perinci-CmdLine-Lite-1.55/MANIFEST Perinci-CmdLine-Lite-1.55/META.json Perinci-CmdLine-Lite-1.55/META.yml Perinci-CmdLine-Lite-1.55/devscripts/ Perinci-CmdLine-Lite-1.55/devscripts/bench-startup Configuring P/PE/PERLANCAR/Perinci-CmdLine-Lite-1.55.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite Data::Sah 0.77 not found. We have 0.76. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Perinci::CmdLine::Lite Writing MYMETA.yml and MYMETA.json PERLANCAR/Perinci-CmdLine-Lite-1.55.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Perinci-CmdLine-Lite-1.55.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/Perinci-CmdLine-Lite-1.55.tar.gz ---- Test::Perinci::CmdLine [build_requires] Data::Sah [requires] YAML::Old [build_requires] Running test for module 'Test::Perinci::CmdLine' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Test-Perinci-CmdLine-1.39.tar.gz ok Test-Perinci-CmdLine-1.39/ Test-Perinci-CmdLine-1.39/README Test-Perinci-CmdLine-1.39/lib/ Test-Perinci-CmdLine-1.39/lib/Test/ Test-Perinci-CmdLine-1.39/lib/Test/Perinci/ Test-Perinci-CmdLine-1.39/lib/Test/Perinci/CmdLine.pm Test-Perinci-CmdLine-1.39/Makefile.PL Test-Perinci-CmdLine-1.39/Changes Test-Perinci-CmdLine-1.39/dist.ini Test-Perinci-CmdLine-1.39/LICENSE Test-Perinci-CmdLine-1.39/t/ Test-Perinci-CmdLine-1.39/t/00-compile.t Test-Perinci-CmdLine-1.39/t/release-rinci.t Test-Perinci-CmdLine-1.39/t/author-pod-syntax.t Test-Perinci-CmdLine-1.39/t/author-pod-coverage.t Test-Perinci-CmdLine-1.39/weaver.ini Test-Perinci-CmdLine-1.39/MANIFEST Test-Perinci-CmdLine-1.39/META.json Test-Perinci-CmdLine-1.39/META.yml Configuring P/PE/PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite IPC::System::Options 0.23 not found. We have 0.22. Warning: prerequisite Perinci::CmdLine::Gen 0.22 not found. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Test::Perinci::CmdLine Writing MYMETA.yml and MYMETA.json PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz ---- IPC::System::Options [requires] Perinci::CmdLine::Gen [requires] Running test for module 'IPC::System::Options' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\IPC-System-Options-0.24.tar.gz ok IPC-System-Options-0.24/ IPC-System-Options-0.24/META.json IPC-System-Options-0.24/LICENSE IPC-System-Options-0.24/Changes IPC-System-Options-0.24/META.yml IPC-System-Options-0.24/Makefile.PL IPC-System-Options-0.24/t/ IPC-System-Options-0.24/t/release-pod-syntax.t IPC-System-Options-0.24/t/release-pod-coverage.t IPC-System-Options-0.24/t/00-compile.t IPC-System-Options-0.24/README IPC-System-Options-0.24/dist.ini IPC-System-Options-0.24/lib/ IPC-System-Options-0.24/lib/IPC/ IPC-System-Options-0.24/lib/IPC/System/ IPC-System-Options-0.24/lib/IPC/System/Options.pm IPC-System-Options-0.24/MANIFEST IPC-System-Options-0.24/weaver.ini Configuring P/PE/PERLANCAR/IPC-System-Options-0.24.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite IPC::Run 0 not found. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for IPC::System::Options Writing MYMETA.yml and MYMETA.json PERLANCAR/IPC-System-Options-0.24.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/IPC-System-Options-0.24.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/IPC-System-Options-0.24.tar.gz ---- IPC::Run [requires] Running test for module 'IPC::Run' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\T\TO\TODDR\IPC-Run-0.94.tar.gz ok IPC-Run-0.94/ IPC-Run-0.94/abuse/ IPC-Run-0.94/Changes IPC-Run-0.94/eg/ IPC-Run-0.94/lib/ IPC-Run-0.94/LICENSE IPC-Run-0.94/Makefile.PL IPC-Run-0.94/MANIFEST IPC-Run-0.94/META.json IPC-Run-0.94/META.yml IPC-Run-0.94/README IPC-Run-0.94/t/ IPC-Run-0.94/TODO IPC-Run-0.94/t/97_meta.t IPC-Run-0.94/t/98_pod.t IPC-Run-0.94/t/98_pod_coverage.t IPC-Run-0.94/t/99_perl_minimum_version.t IPC-Run-0.94/t/adopt.t IPC-Run-0.94/t/binmode.t IPC-Run-0.94/t/bogus.t IPC-Run-0.94/t/filter.t IPC-Run-0.94/t/harness.t IPC-Run-0.94/t/io.t IPC-Run-0.94/t/kill_kill.t IPC-Run-0.94/t/lib/ IPC-Run-0.94/t/parallel.t IPC-Run-0.94/t/pty.t IPC-Run-0.94/t/pump.t IPC-Run-0.94/t/run.t IPC-Run-0.94/t/signal.t IPC-Run-0.94/t/timeout.t IPC-Run-0.94/t/timer.t IPC-Run-0.94/t/win32_compile.t IPC-Run-0.94/t/windows_search_path.t IPC-Run-0.94/t/lib/Test.pm IPC-Run-0.94/lib/IPC/ IPC-Run-0.94/lib/IPC/Run/ IPC-Run-0.94/lib/IPC/Run.pm IPC-Run-0.94/lib/IPC/Run/Debug.pm IPC-Run-0.94/lib/IPC/Run/IO.pm IPC-Run-0.94/lib/IPC/Run/Timer.pm IPC-Run-0.94/lib/IPC/Run/Win32Helper.pm IPC-Run-0.94/lib/IPC/Run/Win32IO.pm IPC-Run-0.94/lib/IPC/Run/Win32Pump.pm IPC-Run-0.94/eg/factorial IPC-Run-0.94/eg/factorial_pipe IPC-Run-0.94/eg/factorial_scalar IPC-Run-0.94/eg/run_daemon IPC-Run-0.94/eg/runsh IPC-Run-0.94/eg/runsu IPC-Run-0.94/eg/synopsis_scripting IPC-Run-0.94/abuse/blocking_debug_with_sub_coprocess IPC-Run-0.94/abuse/blocking_writes IPC-Run-0.94/abuse/broken_pipe_on_bad_executable_name IPC-Run-0.94/abuse/timers Configuring T/TO/TODDR/IPC-Run-0.94.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for IPC::Run Writing MYMETA.yml and MYMETA.json TODDR/IPC-Run-0.94.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for T/TO/TODDR/IPC-Run-0.94.tar.gz >>> dmake cp lib/IPC/Run/Timer.pm blib\lib\IPC\Run\Timer.pm cp lib/IPC/Run/Win32IO.pm blib\lib\IPC\Run\Win32IO.pm cp lib/IPC/Run/Debug.pm blib\lib\IPC\Run\Debug.pm cp lib/IPC/Run/Win32Helper.pm blib\lib\IPC\Run\Win32Helper.pm cp lib/IPC/Run/IO.pm blib\lib\IPC\Run\IO.pm cp lib/IPC/Run/Win32Pump.pm blib\lib\IPC\Run\Win32Pump.pm cp lib/IPC/Run.pm blib\lib\IPC\Run.pm TODDR/IPC-Run-0.94.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/97_meta.t .................. 1..2 ok 1 - META.yml contains valid YAML ok 2 - META.yml meets the designated specification ok t/98_pod.t ................... 1..7 ok 1 - POD test for blib/lib/IPC/Run.pm ok 2 - POD test for blib/lib/IPC/Run/Debug.pm ok 3 - POD test for blib/lib/IPC/Run/IO.pm ok 4 - POD test for blib/lib/IPC/Run/Timer.pm ok 5 - POD test for blib/lib/IPC/Run/Win32Helper.pm ok 6 - POD test for blib/lib/IPC/Run/Win32IO.pm ok 7 - POD test for blib/lib/IPC/Run/Win32Pump.pm ok Use of uninitialized value in subroutine entry at C:/cpanfly-5.22-64/var/megalib/Win32API/File.pm line 316. Use of uninitialized value $stdin_fh in concatenation (.) or string at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32Pump.pm line 71. t/98_pod_coverage.t .......... 1..7 ok 1 - Test IPC::Run that all modules are documented. ok 2 - Test IPC::Run::Debug that all modules are documented. ok 3 - Test IPC::Run::IO that all modules are documented. ok 4 - Test IPC::Run::Timer that all modules are documented. ok 5 - Test IPC::Run::Win32Helper that all modules are documented. # TODO These modules are not fully documented yet. ok 6 - Test IPC::Run::Win32IO that all modules are documented. # TODO These modules are not fully documented yet. not ok 7 - Test IPC::Run::Win32Pump that all modules are documented. # TODO These modules are not fully documented yet. # Failed (TODO) test 'Test IPC::Run::Win32Pump that all modules are documented.' # at t/98_pod_coverage.t line 42. # IPC::Run::Win32Pump: requiring 'IPC::Run::Win32Pump' failed ok t/99_perl_minimum_version.t .. skipped: no minimum perl version could be determined t/adopt.t .................... skipped: adopt not implemented yet t/binmode.t .................. 1..24 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 - no binary ok 7 ok 8 - out binary ok 9 ok 10 - out binary 0 ok 11 ok 12 - out binary 1 ok 13 ok 14 - reporter < \n ok 15 ok 16 - reporter < binary \n ok 17 ok 18 - reporter < binary \r\n ok 19 ok 20 - reporter < binary(0) \n ok 21 ok 22 - reporter < binary(1) \n ok 23 ok 24 - reporter < binary(1) \r\n ok t/bogus.t .................... 1..2 ok 1 - starting ./bogus_really_bogus ok 2 # skip Can't really exec() MSWin32 ok t/filter.t ................... 1..80 ok 1 - filter_tests didn't pass undef (EOF) through ok 2 - filter_tests didn't return 0 (please try again) when given a 0 ok 3 - filter_tests didn't return 0 (please try again) when given a second 0 ok 4 - filter_tests didn't return undef (EOF) after two 0s and an undef ok 5 - filter_tests didn't consume it's input ok 6 - filter_tests didn't return undef (EOF), tried 100 times ok 7 - filter_tests ok 8 ok 9 - filter_tests [] didn't pass undef (EOF) through ok 10 - filter_tests [] didn't return 0 (please try again) when given a 0 ok 11 - filter_tests [] didn't return 0 (please try again) when given a second 0 ok 12 - filter_tests [] didn't return undef (EOF) after two 0s and an undef ok 13 - filter_tests [] didn't consume it's input ok 14 - filter_tests [] didn't return undef (EOF), tried 100 times ok 15 - filter_tests [] ok 16 ok 17 - filter_tests [] 2 didn't pass undef (EOF) through ok 18 - filter_tests [] 2 didn't return 0 (please try again) when given a 0 ok 19 - filter_tests [] 2 didn't return 0 (please try again) when given a second 0 ok 20 - filter_tests [] 2 didn't return undef (EOF) after two 0s and an undef ok 21 - filter_tests [] 2 didn't consume it's input ok 22 - filter_tests [] 2 didn't return undef (EOF), tried 100 times ok 23 - filter_tests [] 2 ok 24 ok 25 - uc_filter didn't pass undef (EOF) through ok 26 - uc_filter didn't return 0 (please try again) when given a 0 ok 27 - uc_filter didn't return 0 (please try again) when given a second 0 ok 28 - uc_filter didn't return undef (EOF) after two 0s and an undef ok 29 - uc_filter didn't consume it's input ok 30 - uc_filter didn't return undef (EOF), tried 100 times ok 31 - uc_filter ok 32 ok 33 - chunking_filter by lines 1 didn't pass undef (EOF) through ok 34 - chunking_filter by lines 1 didn't return 0 (please try again) when given a 0 ok 35 - chunking_filter by lines 1 didn't return 0 (please try again) when given a second 0 ok 36 - chunking_filter by lines 1 didn't return undef (EOF) after two 0s and an undef ok 37 - chunking_filter by lines 1 didn't consume it's input ok 38 - chunking_filter by lines 1 didn't return undef (EOF), tried 100 times ok 39 - chunking_filter by lines 1 ok 40 ok 41 - chunking_filter by lines 2 didn't pass undef (EOF) through ok 42 - chunking_filter by lines 2 didn't return 0 (please try again) when given a 0 ok 43 - chunking_filter by lines 2 didn't return 0 (please try again) when given a second 0 ok 44 - chunking_filter by lines 2 didn't return undef (EOF) after two 0s and an undef ok 45 - chunking_filter by lines 2 didn't consume it's input ok 46 - chunking_filter by lines 2 didn't return undef (EOF), tried 100 times ok 47 - chunking_filter by lines 2 ok 48 ok 49 - chunking_filter by lines 2 didn't pass undef (EOF) through ok 50 - chunking_filter by lines 2 didn't return 0 (please try again) when given a 0 ok 51 - chunking_filter by lines 2 didn't return 0 (please try again) when given a second 0 ok 52 - chunking_filter by lines 2 didn't return undef (EOF) after two 0s and an undef ok 53 - chunking_filter by lines 2 didn't consume it's input ok 54 - chunking_filter by lines 2 didn't return undef (EOF), tried 100 times ok 55 - chunking_filter by lines 2 ok 56 ok 57 - chunking_filter by an odd separator didn't pass undef (EOF) through ok 58 - chunking_filter by an odd separator didn't return 0 (please try again) when given a 0 ok 59 - chunking_filter by an odd separator didn't return 0 (please try again) when given a second 0 ok 60 - chunking_filter by an odd separator didn't return undef (EOF) after two 0s and an undef ok 61 - chunking_filter by an odd separator didn't consume it's input ok 62 - chunking_filter by an odd separator didn't return undef (EOF), tried 100 times ok 63 - chunking_filter by an odd separator ok 64 ok 65 - chunking_filter 2 didn't pass undef (EOF) through ok 66 - chunking_filter 2 didn't return 0 (please try again) when given a 0 ok 67 - chunking_filter 2 didn't return 0 (please try again) when given a second 0 ok 68 - chunking_filter 2 didn't return undef (EOF) after two 0s and an undef ok 69 - chunking_filter 2 didn't consume it's input ok 70 - chunking_filter 2 didn't return undef (EOF), tried 100 times ok 71 - chunking_filter 2 ok 72 ok 73 - appending_filter didn't pass undef (EOF) through ok 74 - appending_filter didn't return 0 (please try again) when given a 0 ok 75 - appending_filter didn't return 0 (please try again) when given a second 0 ok 76 - appending_filter didn't return undef (EOF) after two 0s and an undef ok 77 - appending_filter didn't consume it's input ok 78 - appending_filter didn't return undef (EOF), tried 100 times ok 79 - appending_filter ok 80 ok t/harness.t .................. 1..120 ok 1 - ARRAY(0x5dce80) b > c 2>d 2> e >>f >> g 2>>h 2>> i ok 21 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 0, DEST ok 22 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 0, KFD ok 23 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 0, TRUNC ok 24 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 0, TYPE ok 25 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 1, DEST ok 26 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 1, KFD ok 27 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 1, TRUNC ok 28 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 1, TYPE ok 29 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 2, DEST ok 30 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 2, KFD ok 31 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 2, TRUNC ok 32 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 2, TYPE ok 33 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 3, DEST ok 34 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 3, KFD ok 35 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 3, TRUNC ok 36 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 3, TYPE ok 37 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 4, DEST ok 38 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 4, KFD ok 39 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 4, TRUNC ok 40 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 4, TYPE ok 41 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 5, DEST ok 42 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 5, KFD ok 43 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 5, TRUNC ok 44 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 5, TYPE ok 45 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 6, DEST ok 46 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 6, KFD ok 47 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 6, TRUNC ok 48 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 6, TYPE ok 49 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 7, DEST ok 50 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 7, KFD ok 51 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 7, TRUNC ok 52 - ARRAY(0x5dcfa0) >b > c 2>d 2> e >>f >> g 2>>h 2>> i: 7, TYPE ok 53 - ARRAY(0x5dcf88) >&b >& c &>d &> e ok 54 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 0, DEST ok 55 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 0, KFD ok 56 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 0, TRUNC ok 57 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 0, TYPE ok 58 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 1, KFD1 ok 59 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 1, KFD2 ok 60 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 1, TYPE ok 61 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 2, DEST ok 62 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 2, KFD ok 63 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 2, TRUNC ok 64 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 2, TYPE ok 65 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 3, KFD1 ok 66 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 3, KFD2 ok 67 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 3, TYPE ok 68 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 4, DEST ok 69 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 4, KFD ok 70 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 4, TRUNC ok 71 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 4, TYPE ok 72 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 5, KFD1 ok 73 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 5, KFD2 ok 74 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 5, TYPE ok 75 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 6, DEST ok 76 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 6, KFD ok 77 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 6, TRUNC ok 78 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 6, TYPE ok 79 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 7, KFD1 ok 80 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 7, KFD2 ok 81 - ARRAY(0x5dcf88) >&b >& c &>d &> e: 7, TYPE ok 82 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018) ok 83 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 0, DEST ok 84 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 0, FILTERS ok 85 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 0, KFD ok 86 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 0, TRUNC ok 87 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 0, TYPE ok 88 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 1, KFD1 ok 89 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 1, KFD2 ok 90 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 1, TYPE ok 91 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 2, DEST ok 92 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 2, FILTERS ok 93 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 2, KFD ok 94 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 2, TRUNC ok 95 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 2, TYPE ok 96 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 3, FILTERS ok 97 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 3, KFD ok 98 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 3, SOURCE ok 99 - ARRAY(0x5dce80) >& CODE(0x30e0108) CODE(0x30e0168) SCALAR(0x30d018) > CODE(0x30e01c8) CODE(0x30e0210) SCALAR(0x30d018) < CODE(0x30e0270) CODE(0x30e02b8) SCALAR(0x30d018): 3, TYPE ok 100 - ARRAY(0x5dcfa0) < SCALAR(0x30d018) > SCALAR(0x30d018) ok 101 - ARRAY(0x5dcfa0) < SCALAR(0x30d018) > SCALAR(0x30d018): 0, KFD ok 102 - ARRAY(0x5dcfa0) < SCALAR(0x30d018) > SCALAR(0x30d018): 0, SOURCE ok 103 - ARRAY(0x5dcfa0) < SCALAR(0x30d018) > SCALAR(0x30d018): 0, TYPE ok 104 - ARRAY(0x5dcfa0) < SCALAR(0x30d018) > SCALAR(0x30d018): 1, DEST ok 105 - ARRAY(0x5dcfa0) < SCALAR(0x30d018) > SCALAR(0x30d018): 1, KFD ok 106 - ARRAY(0x5dcfa0) < SCALAR(0x30d018) > SCALAR(0x30d018): 1, TYPE ok 107 - ARRAY(0x5dcf88) pipe SCALAR(0x30d018) ok 108 - ARRAY(0x5dcf88) pipe SCALAR(0x30d018): 0, KFD ok 109 - ARRAY(0x5dcf88) pipe SCALAR(0x30d018): 0, SOURCE ok 110 - ARRAY(0x5dcf88) pipe SCALAR(0x30d018): 0, TYPE ok 111 - ARRAY(0x5dcf88) pipe SCALAR(0x30d018): 1, DEST ok 112 - ARRAY(0x5dcf88) pipe SCALAR(0x30d018): 1, KFD ok 113 - ARRAY(0x5dcf88) pipe SCALAR(0x30d018): 1, TYPE ok 114 - ARRAY(0x5dce80) SCALAR(0x30d018) ok 115 - ARRAY(0x5dce80) SCALAR(0x30d018): 0, KFD ok 116 - ARRAY(0x5dce80) SCALAR(0x30d018): 0, SOURCE ok 117 - ARRAY(0x5dce80) SCALAR(0x30d018): 0, TYPE ok 118 - ARRAY(0x5dce80) SCALAR(0x30d018): 1, DEST ok 119 - ARRAY(0x5dce80) SCALAR(0x30d018): 1, KFD ok 120 - ARRAY(0x5dce80) SCALAR(0x30d018): 1, TYPE ok t/io.t ....................... 1..14 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 # skip MSWin32 does not allow select() on non-sockets ok 7 # skip MSWin32 does not allow select() on non-sockets ok 8 # skip MSWin32 does not allow select() on non-sockets ok 9 # skip MSWin32 does not allow select() on non-sockets ok 10 # skip MSWin32 does not allow select() on non-sockets ok 11 # skip MSWin32 does not allow select() on non-sockets ok 12 # skip MSWin32 does not allow select() on non-sockets ok 13 # skip MSWin32 does not allow select() on non-sockets ok 14 # skip MSWin32 does not allow select() on non-sockets ok t/kill_kill.t ................ skipped: Temporarily ignoring test failure on Win32 t/parallel.t ................. skipped: Parallel tests are dangerous on MSWin32 t/pty.t ...................... skipped: IO::Pty not installed Warning: unable to close filehandle GEN5 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. t/pump.t ..................... 1..27 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 - pos$out ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok # WARN: Warning: unable to close filehandle GEN5 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN14 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN19 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN24 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN28 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN37 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN42 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN52 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN57 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN67 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # WARN: Warning: unable to close filehandle GEN72 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # Failed test 'No warnings found during program call with empty path' # at t/run.t line 996. # got: 'Warning: unable to close filehandle GEN5 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. # ' # expected: undef # Looks like you failed 1 test of 268. t/run.t ...................... 1..268 ok 1 ok 2 - alt_casing_filter didn't pass undef (EOF) through ok 3 - alt_casing_filter didn't return 0 (please try again) when given a 0 ok 4 - alt_casing_filter didn't return 0 (please try again) when given a second 0 ok 5 - alt_casing_filter didn't return undef (EOF) after two 0s and an undef ok 6 - alt_casing_filter didn't consume it's input ok 7 - alt_casing_filter didn't return undef (EOF), tried 100 times ok 8 - alt_casing_filter ok 9 ok 10 ok 11 - case_inverting_filter didn't pass undef (EOF) through ok 12 - case_inverting_filter didn't return 0 (please try again) when given a 0 ok 13 - case_inverting_filter didn't return 0 (please try again) when given a second 0 ok 14 - case_inverting_filter didn't return undef (EOF) after two 0s and an undef ok 15 - case_inverting_filter didn't consume it's input ok 16 - case_inverting_filter didn't return undef (EOF), tried 100 times ok 17 - case_inverting_filter ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 # skip MSWin32's shell returns 0 even if last command doesn't ok 24 # skip MSWin32's shell returns 0 even if last command doesn't ok 25 # skip MSWin32's shell returns 0 even if last command doesn't ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 # skip Can't spawn subroutines on MSWin32 ok 35 # skip Can't spawn subroutines on MSWin32 ok 36 # skip Can't spawn subroutines on MSWin32 ok 37 # skip Can't spawn subroutines on MSWin32 ok 38 # skip Can't spawn subroutines on MSWin32 ok 39 ok 40 # skip Can't spawn subroutines on MSWin32 ok 41 # skip Can't spawn subroutines on MSWin32 ok 42 ok 43 ok 44 ok 45 ok 46 - eok at t/run.t line 246 ok 47 ok 48 ok 49 ok 50 - eok at t/run.t line 256 ok 51 ok 52 ok 53 ok 54 - eok at t/run.t line 268 ok 55 - eok at t/run.t line 269 ok 56 - eok at t/run.t line 270 ok 57 ok 58 ok 59 ok 60 - eok at t/run.t line 285 ok 61 - eok at t/run.t line 286 ok 62 - eok at t/run.t line 287 ok 63 ok 64 ok 65 ok 66 ok 67 ok 68 ok 69 ok 70 # skip Can't spawn subroutines on MSWin32 ok 71 # skip Can't spawn subroutines on MSWin32 ok 72 # skip Can't spawn subroutines on MSWin32 ok 73 # skip Can't spawn subroutines on MSWin32 ok 74 # skip Can't spawn subroutines on MSWin32 ok 75 # skip Can't spawn subroutines on MSWin32 ok 76 ok 77 ok 78 ok 79 - eok at t/run.t line 385 ok 80 - eok at t/run.t line 386 ok 81 ok 82 ok 83 ok 84 - eok at t/run.t line 400 ok 85 - eok at t/run.t line 401 ok 86 ok 87 ok 88 ok 89 - eok at t/run.t line 419 ok 90 - eok at t/run.t line 420 ok 91 ok 92 ok 93 ok 94 - eok at t/run.t line 438 ok 95 - eok at t/run.t line 439 ok 96 ok 97 ok 98 ok 99 - eok at t/run.t line 457 ok 100 - eok at t/run.t line 458 ok 101 ok 102 ok 103 ok 104 - eok at t/run.t line 482 ok 105 - eok at t/run.t line 483 ok 106 ok 107 ok 108 ok 109 - eok at t/run.t line 501 ok 110 - eok at t/run.t line 502 ok 111 ok 112 ok 113 ok 114 - eok at t/run.t line 521 ok 115 - eok at t/run.t line 522 ok 116 ok 117 ok 118 ok 119 - eok at t/run.t line 541 ok 120 - eok at t/run.t line 542 ok 121 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 122 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 123 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 124 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 125 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 126 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 127 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 128 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 129 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 130 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 131 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 132 ok 133 ok 134 ok 135 - eok at t/run.t line 609 ok 136 ok 137 ok 138 ok 139 ok 140 ok 141 ok 142 - eok at t/run.t line 645 ok 143 - eok at t/run.t line 646 ok 144 ok 145 ok 146 ok 147 - eok at t/run.t line 665 ok 148 - eok at t/run.t line 666 ok 149 ok 150 ok 151 ok 152 - eok at t/run.t line 687 ok 153 - eok at t/run.t line 688 ok 154 ok 155 ok 156 ok 157 ok 158 - eok at t/run.t line 700 ok 159 ok 160 ok 161 ok 162 ok 163 ok 164 ok 165 ok 166 ok 167 ok 168 ok 169 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 170 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 171 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 172 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 173 # skip MSWin32 does not allow redirection of file descriptors > 2 ok 174 ok 175 ok 176 ok 177 - eok at t/run.t line 780 ok 178 - eok at t/run.t line 781 ok 179 ok 180 ok 181 ok 182 ok 183 ok 184 ok 185 ok 186 ok 187 ok 188 ok 189 ok 190 ok 191 ok 192 ok 193 ok 194 ok 195 ok 196 ok 197 ok 198 ok 199 ok 200 - eok at t/run.t line 826 ok 201 - eok at t/run.t line 827 ok 202 ok 203 ok 204 ok 205 ok 206 ok 207 ok 208 - An object of class 'IPC::Run' isa 'IPC::Run' ok 209 ok 210 - eok at t/run.t line 860 ok 211 - eok at t/run.t line 861 ok 212 - eok at t/run.t line 862 ok 213 ok 214 - after pump_nb ok 215 - eok at t/run.t line 869 ok 216 - eok at t/run.t line 870 ok 217 - eok at t/run.t line 871 ok 218 ok 219 - after pump ok 220 ok 221 - eok at t/run.t line 879 ok 222 - eok at t/run.t line 880 ok 223 ok 224 ok 225 ok 226 ok 227 - eok at t/run.t line 886 ok 228 - eok at t/run.t line 887 ok 229 ok 230 ok 231 - eok at t/run.t line 903 ok 232 - eok at t/run.t line 904 ok 233 - eok at t/run.t line 905 ok 234 ok 235 ok 236 ok 237 ok 238 - eok at t/run.t line 912 ok 239 - eok at t/run.t line 913 ok 240 - eok at t/run.t line 914 ok 241 ok 242 ok 243 ok 244 ok 245 - eok at t/run.t line 923 ok 246 - eok at t/run.t line 924 ok 247 - eok at t/run.t line 925 ok 248 ok 249 ok 250 ok 251 ok 252 - eok at t/run.t line 934 ok 253 - eok at t/run.t line 935 ok 254 - eok at t/run.t line 936 ok 255 ok 256 ok 257 ok 258 ok 259 - eok at t/run.t line 957 ok 260 - eok at t/run.t line 958 ok 261 ok 262 ok 263 ok 264 - eok at t/run.t line 980 ok 265 - eok at t/run.t line 981 ok 266 - eok at t/run.t line 982 ok 267 - Error running bogus program when path is empty not ok 268 - No warnings found during program call with empty path Dubious, test returned 1 (wstat 256, 0x100) Failed 1/268 subtests (less 32 skipped subtests: 235 okay) t/signal.t ................... skipped: Skipping on Win32 Warning: unable to close filehandle GEN5 properly: Bad file descriptor at C:\cpanfly-5.22-64\var\cpan\build\IPC-Run-0.94-lsiMxb\blib\lib/IPC/Run/Win32IO.pm line 126. Warning: unable to close filehandle GEN25 properly: Bad file descriptor during global destruction. Warning: unable to close filehandle GEN15 properly: Bad file descriptor during global destruction. t/timeout.t .................. 1..26 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 - not too slow to reap ok t/timer.t .................... 1..72 ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 ok 12 ok 13 ok 14 ok 15 ok 16 ok 17 ok 18 ok 19 ok 20 ok 21 ok 22 ok 23 ok 24 ok 25 ok 26 ok 27 ok 28 ok 29 ok 30 ok 31 ok 32 ok 33 ok 34 ok 35 ok 36 ok 37 ok 38 ok 39 ok 40 ok 41 ok 42 ok 43 ok 44 ok 45 ok 46 ok 47 ok 48 ok 49 ok 50 ok 51 ok 52 ok 53 ok 54 ok 55 ok 56 ok 57 ok 58 ok 59 ok 60 ok 61 ok 62 ok 63 ok 64 ok 65 ok 66 ok 67 ok 68 ok 69 ok 70 ok 71 ok 72 - timer firing in run() ok Constant subroutine IPPROTO_TCP redefined at C:/cpanfly-5.22-64/var/megalib/Socket.pm line 4294967295. t/win32_compile.t ............ 1..1 ok 1 ok t/windows_search_path.t ...... 1..11 ok 1 - We're win32 mode? ok 2 - No error calling _search_path for './temp' ok 3 - Executable ./temp.EXE found ok 4 - No error calling _search_path for '.\temp' ok 5 - Executable .\temp.EXE found ok 6 - No error calling _search_path for './5.11.5/temp' ok 7 - Executable ./5.11.5/temp.EXE found ok 8 - No error calling _search_path for './5.11.5/temp' ok 9 - Executable ./5.11.5/temp.BAT found ok 10 - No error calling _search_path for './5.11.5/temp' ok 11 - Executable ./5.11.5/temp.COM found ok Test Summary Report ------------------- t/98_pod_coverage.t (Wstat: 0 Tests: 7 Failed: 0) TODO passed: 5-6 t/run.t (Wstat: 256 Tests: 268 Failed: 1) Failed test: 268 Non-zero exit status: 1 Files=20, Tests=661, 51 wallclock secs ( 0.28 usr + 0.05 sys = 0.33 CPU) Result: FAIL Failed 1/20 test programs. 1/661 subtests failed. dmake: Error code 255, while making 'test_dynamic' TODDR/IPC-Run-0.94.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports TODDR/IPC-Run-0.94.tar.gz PERLANCAR/IPC-System-Options-0.24.tar.gz Has already been unwrapped into directory C:\cpanfly-5.22-64\var\cpan\build\IPC-System-Options-0.24-MlU8J_ PERLANCAR/IPC-System-Options-0.24.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/IPC-System-Options-0.24.tar.gz Warning: Prerequisite 'IPC::Run => 0' for 'PERLANCAR/IPC-System-Options-0.24.tar.gz' failed when processing 'TODDR/IPC-Run-0.94.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> dmake cp lib/IPC/System/Options.pm blib\lib\IPC\System\Options.pm PERLANCAR/IPC-System-Options-0.24.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ............ 1..1 ok 1 - IPC/System/Options.pm loaded ok ok t/release-pod-coverage.t .. skipped: these tests are for release candidate testing t/release-pod-syntax.t .... skipped: these tests are for release candidate testing All tests successful. Files=3, Tests=1, 1 wallclock secs ( 0.06 usr + 0.00 sys = 0.06 CPU) Result: PASS PERLANCAR/IPC-System-Options-0.24.tar.gz Tests succeeded but one dependency not OK (IPC::Run) PERLANCAR/IPC-System-Options-0.24.tar.gz [dependencies] -- NA Running test for module 'Perinci::CmdLine::Gen' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-CmdLine-Gen-0.28.tar.gz ok Perinci-CmdLine-Gen-0.28/ Perinci-CmdLine-Gen-0.28/META.json Perinci-CmdLine-Gen-0.28/LICENSE Perinci-CmdLine-Gen-0.28/Changes Perinci-CmdLine-Gen-0.28/META.yml Perinci-CmdLine-Gen-0.28/Makefile.PL Perinci-CmdLine-Gen-0.28/t/ Perinci-CmdLine-Gen-0.28/t/release-pod-syntax.t Perinci-CmdLine-Gen-0.28/t/release-pod-coverage.t Perinci-CmdLine-Gen-0.28/t/release-rinci.t Perinci-CmdLine-Gen-0.28/t/00-compile.t Perinci-CmdLine-Gen-0.28/README Perinci-CmdLine-Gen-0.28/dist.ini Perinci-CmdLine-Gen-0.28/lib/ Perinci-CmdLine-Gen-0.28/lib/Perinci/ Perinci-CmdLine-Gen-0.28/lib/Perinci/CmdLine/ Perinci-CmdLine-Gen-0.28/lib/Perinci/CmdLine/Gen.pm Perinci-CmdLine-Gen-0.28/MANIFEST Perinci-CmdLine-Gen-0.28/weaver.ini Configuring P/PE/PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite Perinci::Access 0 not found. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Perinci::CmdLine::Gen Writing MYMETA.yml and MYMETA.json PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz ---- Perinci::Access [requires] Running test for module 'Perinci::Access' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-Access-0.44.tar.gz ok Perinci-Access-0.44/ Perinci-Access-0.44/README Perinci-Access-0.44/lib/ Perinci-Access-0.44/lib/Perinci/ Perinci-Access-0.44/lib/Perinci/Access/ Perinci-Access-0.44/lib/Perinci/Access/Manual/ Perinci-Access-0.44/lib/Perinci/Access/Manual/FAQ.pod Perinci-Access-0.44/lib/Perinci/Access/Manual/Examples.pod Perinci-Access-0.44/lib/Perinci/Access/Manual.pod Perinci-Access-0.44/lib/Perinci/Access.pm Perinci-Access-0.44/Makefile.PL Perinci-Access-0.44/Changes Perinci-Access-0.44/dist.ini Perinci-Access-0.44/LICENSE Perinci-Access-0.44/t/ Perinci-Access-0.44/t/00-compile.t Perinci-Access-0.44/t/01-basics.t Perinci-Access-0.44/t/author-pod-syntax.t Perinci-Access-0.44/t/author-pod-coverage.t Perinci-Access-0.44/weaver.ini Perinci-Access-0.44/MANIFEST Perinci-Access-0.44/META.json Perinci-Access-0.44/META.yml Configuring P/PE/PERLANCAR/Perinci-Access-0.44.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite Perinci::Access::Simple::Client 0.13 not found. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Perinci::Access Writing MYMETA.yml and MYMETA.json PERLANCAR/Perinci-Access-0.44.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Perinci-Access-0.44.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/Perinci-Access-0.44.tar.gz ---- Perinci::Access::Simple::Client [requires] Running test for module 'Perinci::Access::Simple::Client' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-Access-Simple-Client-0.21.tar.gz ok Perinci-Access-Simple-Client-0.21/ Perinci-Access-Simple-Client-0.21/Changes Perinci-Access-Simple-Client-0.21/LICENSE Perinci-Access-Simple-Client-0.21/MANIFEST Perinci-Access-Simple-Client-0.21/lib/ Perinci-Access-Simple-Client-0.21/lib/Perinci/ Perinci-Access-Simple-Client-0.21/lib/Perinci/Access/ Perinci-Access-Simple-Client-0.21/lib/Perinci/Access/Simple/ Perinci-Access-Simple-Client-0.21/lib/Perinci/Access/Simple/Client.pm Perinci-Access-Simple-Client-0.21/README Perinci-Access-Simple-Client-0.21/META.json Perinci-Access-Simple-Client-0.21/Makefile.PL Perinci-Access-Simple-Client-0.21/dist.ini Perinci-Access-Simple-Client-0.21/t/ Perinci-Access-Simple-Client-0.21/t/01-basics.t Perinci-Access-Simple-Client-0.21/t/author-pod-coverage.t Perinci-Access-Simple-Client-0.21/t/00-compile.t Perinci-Access-Simple-Client-0.21/t/author-pod-syntax.t Perinci-Access-Simple-Client-0.21/weaver.ini Perinci-Access-Simple-Client-0.21/META.yml Configuring P/PE/PERLANCAR/Perinci-Access-Simple-Client-0.21.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Perinci::Access::Simple::Client Writing MYMETA.yml and MYMETA.json PERLANCAR/Perinci-Access-Simple-Client-0.21.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Perinci-Access-Simple-Client-0.21.tar.gz >>> dmake cp lib/Perinci/Access/Simple/Client.pm blib\lib\Perinci\Access\Simple\Client.pm PERLANCAR/Perinci-Access-Simple-Client-0.21.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ........... 1..1 ok 1 - Perinci/Access/Simple/Client.pm loaded ok ok /tmp/abs path: No such file or directory at C:\cpanfly-5.22-64\var\cpan\build\Perinci-Access-Simple-Client-0.21-Aw99Wh\blib\lib/Perinci/Access/Simple/Client.pm line 110. # Child (riap+unix ok 2 (uri via extra, path is unescaped)) exited without calling finalize() # Failed test 'riap+unix ok 2 (uri via extra, path is unescaped)' # at C:/cpanfly-5.22-64/var/megalib/Test/Builder.pm line 279. # Tests were run but no plan was declared and done_testing() was not seen. # Looks like your test exited with 2 just after 7. t/01-basics.t ............ # Subtest: unknown scheme = 400 ok 1 - status 1..1 ok 1 - unknown scheme = 400 # Subtest: invalid riap+tcp 1 ok 1 - status 1..1 ok 2 - invalid riap+tcp 1 # Subtest: riap+tcp requires port ok 1 - status 1..1 ok 3 - riap+tcp requires port # Subtest: riap+tcp ok 1 ok 1 - status ok 2 - result 1..2 ok 4 - riap+tcp ok 1 # Subtest: riap+tcp ok 2 (uri via extra) ok 1 - status ok 2 - result 1..2 ok 5 - riap+tcp ok 2 (uri via extra) # Subtest: invalid riap+unix 1 ok 1 - status 1..1 ok 6 - invalid riap+unix 1 # Subtest: riap+unix ok 2 (uri via extra, path is unescaped) not ok 7 - riap+unix ok 2 (uri via extra, path is unescaped) Dubious, test returned 2 (wstat 512, 0x200) Failed 1/7 subtests t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author Test Summary Report ------------------- t/01-basics.t (Wstat: 512 Tests: 7 Failed: 1) Failed test: 7 Non-zero exit status: 2 Parse errors: No plan found in TAP output Files=4, Tests=8, 1 wallclock secs ( 0.05 usr + 0.02 sys = 0.06 CPU) Result: FAIL Failed 1/4 test programs. 1/8 subtests failed. dmake: Error code 255, while making 'test_dynamic' PERLANCAR/Perinci-Access-Simple-Client-0.21.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLANCAR/Perinci-Access-Simple-Client-0.21.tar.gz PERLANCAR/Perinci-Access-0.44.tar.gz Has already been unwrapped into directory C:\cpanfly-5.22-64\var\cpan\build\Perinci-Access-0.44-ZhBkWf PERLANCAR/Perinci-Access-0.44.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/Perinci-Access-0.44.tar.gz Warning: Prerequisite 'Perinci::Access::Simple::Client => 0.13' for 'PERLANCAR/Perinci-Access-0.44.tar.gz' failed when processing 'PERLANCAR/Perinci-Access-Simple-Client-0.21.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> dmake cp lib/Perinci/Access/Manual.pod blib\lib\Perinci\Access\Manual.pod cp lib/Perinci/Access.pm blib\lib\Perinci\Access.pm cp lib/Perinci/Access/Manual/FAQ.pod blib\lib\Perinci\Access\Manual\FAQ.pod cp lib/Perinci/Access/Manual/Examples.pod blib\lib\Perinci\Access\Manual\Examples.pod PERLANCAR/Perinci-Access-0.44.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ........... 1..1 ok 1 - Perinci/Access.pm loaded ok ok t/01-basics.t ............ ok 1 1..1 ok t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author All tests successful. Files=4, Tests=2, 0 wallclock secs ( 0.08 usr + 0.00 sys = 0.08 CPU) Result: PASS PERLANCAR/Perinci-Access-0.44.tar.gz Tests succeeded but one dependency not OK (Perinci::Access::Simple::Client) PERLANCAR/Perinci-Access-0.44.tar.gz [dependencies] -- NA PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz Has already been unwrapped into directory C:\cpanfly-5.22-64\var\cpan\build\Perinci-CmdLine-Gen-0.28-DXPQMy PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz Warning: Prerequisite 'Perinci::Access => 0' for 'PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz' failed when processing 'PERLANCAR/Perinci-Access-0.44.tar.gz' with 'make_test => NO one dependency not OK (Perinci::Access::Simple::Client)'. Continuing, but chances to succeed are limited. >>> dmake cp lib/Perinci/CmdLine/Gen.pm blib\lib\Perinci\CmdLine\Gen.pm PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ............ 1..1 ok 1 - Perinci/CmdLine/Gen.pm loaded ok ok t/release-pod-coverage.t .. skipped: these tests are for release candidate testing t/release-pod-syntax.t .... skipped: these tests are for release candidate testing t/release-rinci.t ......... skipped: these tests are for release candidate testing All tests successful. Files=4, Tests=1, 1 wallclock secs ( 0.08 usr + 0.01 sys = 0.09 CPU) Result: PASS PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz Tests succeeded but one dependency not OK (Perinci::Access) PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz [dependencies] -- NA PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz Has already been unwrapped into directory C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz Warning: Prerequisite 'Perinci::CmdLine::Gen => 0.22' for 'PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz' failed when processing 'PERLANCAR/Perinci-CmdLine-Gen-0.28.tar.gz' with 'make_test => NO one dependency not OK (Perinci::Access)'. Continuing, but chances to succeed are limited. Warning: Prerequisite 'IPC::System::Options => 0.23' for 'PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz' failed when processing 'PERLANCAR/IPC-System-Options-0.24.tar.gz' with 'make_test => NO one dependency not OK (IPC::Run)'. Continuing, but chances to succeed are limited. >>> dmake cp lib/Test/Perinci/CmdLine.pm blib\lib\Test\Perinci\CmdLine.pm PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t # Failed test 'Test/Perinci/CmdLine.pm loaded ok' # at t/00-compile.t line 37. # got: '512' # expected: '0' Can't locate Perinci/CmdLine/Gen.pm in @INC (you may need to install the Perinci::CmdLine::Gen module) (@INC contains: C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\arch C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\lib C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\lib C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\arch C:/cpanfly-5.22-64/var/megalib C:/cpanfly-5.22-64/var/megalib C:/Perl-5.22-64/site/lib C:/Perl-5.22-64/lib .) at C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\lib/Test/Perinci/CmdLine.pm line 11. Test::Perinci::CmdLine::BEGIN() called at C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\lib/Test/Perinci/CmdLine.pm line 11 eval {...} called at C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\lib/Test/Perinci/CmdLine.pm line 11 require Test/Perinci/CmdLine.pm called at -e line 1 BEGIN failed--compilation aborted at C:\cpanfly-5.22-64\var\cpan\build\Test-Perinci-CmdLine-1.39-vM2hRT\blib\lib/Test/Perinci/CmdLine.pm line 11. require Test/Perinci/CmdLine.pm called at -e line 1 Compilation failed in require at -e line 1. # Looks like you failed 1 test of 1. t/00-compile.t ........... 1..1 not ok 1 - Test/Perinci/CmdLine.pm loaded ok Dubious, test returned 1 (wstat 256, 0x100) Failed 1/1 subtests t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author t/release-rinci.t ........ skipped: these tests are for release candidate testing Test Summary Report ------------------- t/00-compile.t (Wstat: 256 Tests: 1 Failed: 1) Failed test: 1 Non-zero exit status: 1 Files=4, Tests=1, 1 wallclock secs ( 0.08 usr + 0.01 sys = 0.09 CPU) Result: FAIL Failed 1/4 test programs. 1/1 subtests failed. dmake: Error code 255, while making 'test_dynamic' PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz one dependency not OK (Perinci::CmdLine::Gen); additionally test harness failed dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLANCAR/Test-Perinci-CmdLine-1.39.tar.gz Running test for module 'Data::Sah' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\P\PE\PERLANCAR\Data-Sah-0.78.tar.gz ok Data-Sah-0.78/ Data-Sah-0.78/README Data-Sah-0.78/lib/ Data-Sah-0.78/lib/Test/ Data-Sah-0.78/lib/Test/Data/ Data-Sah-0.78/lib/Test/Data/Sah.pm Data-Sah-0.78/lib/Data/ Data-Sah-0.78/lib/Data/Sah/ Data-Sah-0.78/lib/Data/Sah/Human.pm Data-Sah-0.78/lib/Data/Sah/Lang/ Data-Sah-0.78/lib/Data/Sah/Lang/zh_CN.pm Data-Sah-0.78/lib/Data/Sah/Lang/fr_FR.pm Data-Sah-0.78/lib/Data/Sah/Lang/id_ID.pm Data-Sah-0.78/lib/Data/Sah/JS.pm Data-Sah-0.78/lib/Data/Sah/Type/ Data-Sah-0.78/lib/Data/Sah/Type/undef.pm Data-Sah-0.78/lib/Data/Sah/Type/hash.pm Data-Sah-0.78/lib/Data/Sah/Type/re.pm Data-Sah-0.78/lib/Data/Sah/Type/cistr.pm Data-Sah-0.78/lib/Data/Sah/Type/any.pm Data-Sah-0.78/lib/Data/Sah/Type/code.pm Data-Sah-0.78/lib/Data/Sah/Type/bool.pm Data-Sah-0.78/lib/Data/Sah/Type/all.pm Data-Sah-0.78/lib/Data/Sah/Type/num.pm Data-Sah-0.78/lib/Data/Sah/Type/Comparable.pm Data-Sah-0.78/lib/Data/Sah/Type/duration.pm Data-Sah-0.78/lib/Data/Sah/Type/array.pm Data-Sah-0.78/lib/Data/Sah/Type/Sortable.pm Data-Sah-0.78/lib/Data/Sah/Type/BaseType.pm Data-Sah-0.78/lib/Data/Sah/Type/date.pm Data-Sah-0.78/lib/Data/Sah/Type/str.pm Data-Sah-0.78/lib/Data/Sah/Type/obj.pm Data-Sah-0.78/lib/Data/Sah/Type/buf.pm Data-Sah-0.78/lib/Data/Sah/Type/HasElems.pm Data-Sah-0.78/lib/Data/Sah/Type/float.pm Data-Sah-0.78/lib/Data/Sah/Type/int.pm Data-Sah-0.78/lib/Data/Sah/Compiler.pm Data-Sah-0.78/lib/Data/Sah/Manual/ Data-Sah-0.78/lib/Data/Sah/Manual/Contributing.pod Data-Sah-0.78/lib/Data/Sah/Manual/Extending.pod Data-Sah-0.78/lib/Data/Sah/Manual/Developer.pod Data-Sah-0.78/lib/Data/Sah/Manual.pod Data-Sah-0.78/lib/Data/Sah/Util/ Data-Sah-0.78/lib/Data/Sah/Util/Role.pm Data-Sah-0.78/lib/Data/Sah/Util/Type/ Data-Sah-0.78/lib/Data/Sah/Util/Type/Date.pm Data-Sah-0.78/lib/Data/Sah/Util/Func.pm Data-Sah-0.78/lib/Data/Sah/Util/TypeX.pm Data-Sah-0.78/lib/Data/Sah/Compiler/ Data-Sah-0.78/lib/Data/Sah/Compiler/human/ Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/ Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/undef.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/hash.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/re.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/cistr.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/any.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/code.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/bool.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/all.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/num.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/Comparable.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/duration.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/array.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/Sortable.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/date.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/str.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/obj.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/buf.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/HasElems.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/float.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH/int.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human/TH.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/ Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/ Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/undef.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/hash.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/re.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/cistr.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/any.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/code.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/bool.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/all.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/num.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/duration.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/array.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/date.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/str.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/obj.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/buf.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/float.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH/int.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js/TH.pm Data-Sah-0.78/lib/Data/Sah/Compiler/human.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl.pm Data-Sah-0.78/lib/Data/Sah/Compiler/Prog/ Data-Sah-0.78/lib/Data/Sah/Compiler/Prog/TH/ Data-Sah-0.78/lib/Data/Sah/Compiler/Prog/TH/any.pm Data-Sah-0.78/lib/Data/Sah/Compiler/Prog/TH/all.pm Data-Sah-0.78/lib/Data/Sah/Compiler/Prog/TH.pm Data-Sah-0.78/lib/Data/Sah/Compiler/Prog.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/ Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/ Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/undef.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/hash.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/re.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/cistr.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/any.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/code.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/bool.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/all.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/num.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/duration.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/array.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/date.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/str.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/obj.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/buf.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/float.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH/int.pm Data-Sah-0.78/lib/Data/Sah/Compiler/perl/TH.pm Data-Sah-0.78/lib/Data/Sah/Compiler/TH.pm Data-Sah-0.78/lib/Data/Sah/Compiler/TextResultRole.pm Data-Sah-0.78/lib/Data/Sah/Compiler/js.pm Data-Sah-0.78/lib/Data/Sah/Lang.pm Data-Sah-0.78/lib/Data/Sah.pm Data-Sah-0.78/Makefile.PL Data-Sah-0.78/Changes Data-Sah-0.78/dist.ini Data-Sah-0.78/LICENSE Data-Sah-0.78/t/ Data-Sah-0.78/t/00-compile.t Data-Sah-0.78/t/01-basics.t Data-Sah-0.78/t/testlib.pl Data-Sah-0.78/t/perl-type-re.t Data-Sah-0.78/t/spectest-perl.t Data-Sah-0.78/t/util-type-date.t Data-Sah-0.78/t/human-id_ID.t Data-Sah-0.78/t/spectest-js.t Data-Sah-0.78/t/perl-type-date.t Data-Sah-0.78/t/human-en_US.t Data-Sah-0.78/t/perl-type-obj.t Data-Sah-0.78/t/js-type-date.t Data-Sah-0.78/t/perl-type-code.t Data-Sah-0.78/t/spectest-human.t- Data-Sah-0.78/t/perl-type-str.t Data-Sah-0.78/t/perl-type-float.t Data-Sah-0.78/t/99-various.t Data-Sah-0.78/t/js-type-duration.t Data-Sah-0.78/t/perl-type-duration.t Data-Sah-0.78/t/author-pod-syntax.t Data-Sah-0.78/t/perl-type-bool.t Data-Sah-0.78/t/author-pod-coverage.t Data-Sah-0.78/t/perl-misc.t Data-Sah-0.78/t/js-misc.t Data-Sah-0.78/weaver.ini Data-Sah-0.78/MANIFEST Data-Sah-0.78/META.json Data-Sah-0.78/META.yml Data-Sah-0.78/devscripts/ Data-Sah-0.78/devscripts/list-missing-translations Configuring P/PE/PERLANCAR/Data-Sah-0.78.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Warning: prerequisite Data::Sah::Coerce 0.006 not found. We have 0.005. Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for Data::Sah Writing MYMETA.yml and MYMETA.json PERLANCAR/Data-Sah-0.78.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for P/PE/PERLANCAR/Data-Sah-0.78.tar.gz ---- Unsatisfied dependencies detected during ---- ---- PERLANCAR/Data-Sah-0.78.tar.gz ---- Data::Sah::Coerce [requires] Running test for module 'Data::Sah::Coerce' PERLANCAR/Data-Sah-Coerce-0.007.tar.gz Has already been unwrapped into directory C:\cpanfly-5.22-64\var\cpan\build\Data-Sah-Coerce-0.007-6BTvyt PERLANCAR/Data-Sah-Coerce-0.007.tar.gz Has already been prepared PERLANCAR/Data-Sah-Coerce-0.007.tar.gz Has already been made PERLANCAR/Data-Sah-Coerce-0.007.tar.gz Won't repeat unsuccessful test during this command PERLANCAR/Data-Sah-0.78.tar.gz Has already been unwrapped into directory C:\cpanfly-5.22-64\var\cpan\build\Data-Sah-0.78-f69E2B PERLANCAR/Data-Sah-0.78.tar.gz Has already been prepared Running make for P/PE/PERLANCAR/Data-Sah-0.78.tar.gz Warning: Prerequisite 'Data::Sah::Coerce => 0.006' for 'PERLANCAR/Data-Sah-0.78.tar.gz' failed when processing 'PERLANCAR/Data-Sah-Coerce-0.007.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited. >>> dmake cp lib/Data/Sah/Compiler/TH.pm blib\lib\Data\Sah\Compiler\TH.pm cp lib/Data/Sah/Compiler/human/TH/Comparable.pm blib\lib\Data\Sah\Compiler\human\TH\Comparable.pm cp lib/Data/Sah/Compiler.pm blib\lib\Data\Sah\Compiler.pm cp lib/Data/Sah/Compiler/human/TH/Sortable.pm blib\lib\Data\Sah\Compiler\human\TH\Sortable.pm cp lib/Data/Sah/Compiler/human/TH/all.pm blib\lib\Data\Sah\Compiler\human\TH\all.pm cp lib/Data/Sah/Compiler/human/TH/HasElems.pm blib\lib\Data\Sah\Compiler\human\TH\HasElems.pm cp lib/Data/Sah/Compiler/human/TH.pm blib\lib\Data\Sah\Compiler\human\TH.pm cp lib/Data/Sah/Compiler/human/TH/array.pm blib\lib\Data\Sah\Compiler\human\TH\array.pm cp lib/Data/Sah/Compiler/human/TH/any.pm blib\lib\Data\Sah\Compiler\human\TH\any.pm cp lib/Data/Sah/Compiler/Prog.pm blib\lib\Data\Sah\Compiler\Prog.pm cp lib/Data/Sah/Compiler/Prog/TH/any.pm blib\lib\Data\Sah\Compiler\Prog\TH\any.pm cp lib/Data/Sah/Compiler/Prog/TH/all.pm blib\lib\Data\Sah\Compiler\Prog\TH\all.pm cp lib/Data/Sah.pm blib\lib\Data\Sah.pm cp lib/Data/Sah/Compiler/human.pm blib\lib\Data\Sah\Compiler\human.pm cp lib/Data/Sah/Compiler/TextResultRole.pm blib\lib\Data\Sah\Compiler\TextResultRole.pm cp lib/Data/Sah/Compiler/Prog/TH.pm blib\lib\Data\Sah\Compiler\Prog\TH.pm cp lib/Data/Sah/Compiler/human/TH/re.pm blib\lib\Data\Sah\Compiler\human\TH\re.pm cp lib/Data/Sah/Compiler/human/TH/bool.pm blib\lib\Data\Sah\Compiler\human\TH\bool.pm cp lib/Data/Sah/Compiler/human/TH/int.pm blib\lib\Data\Sah\Compiler\human\TH\int.pm cp lib/Data/Sah/Compiler/human/TH/code.pm blib\lib\Data\Sah\Compiler\human\TH\code.pm cp lib/Data/Sah/Compiler/human/TH/buf.pm blib\lib\Data\Sah\Compiler\human\TH\buf.pm cp lib/Data/Sah/Compiler/human/TH/obj.pm blib\lib\Data\Sah\Compiler\human\TH\obj.pm cp lib/Data/Sah/Compiler/js.pm blib\lib\Data\Sah\Compiler\js.pm cp lib/Data/Sah/Compiler/human/TH/hash.pm blib\lib\Data\Sah\Compiler\human\TH\hash.pm cp lib/Data/Sah/Compiler/human/TH/cistr.pm blib\lib\Data\Sah\Compiler\human\TH\cistr.pm cp lib/Data/Sah/Compiler/human/TH/float.pm blib\lib\Data\Sah\Compiler\human\TH\float.pm cp lib/Data/Sah/Compiler/human/TH/date.pm blib\lib\Data\Sah\Compiler\human\TH\date.pm cp lib/Data/Sah/Compiler/human/TH/undef.pm blib\lib\Data\Sah\Compiler\human\TH\undef.pm cp lib/Data/Sah/Compiler/human/TH/duration.pm blib\lib\Data\Sah\Compiler\human\TH\duration.pm cp lib/Data/Sah/Compiler/human/TH/str.pm blib\lib\Data\Sah\Compiler\human\TH\str.pm cp lib/Data/Sah/Compiler/human/TH/num.pm blib\lib\Data\Sah\Compiler\human\TH\num.pm cp lib/Data/Sah/Compiler/js/TH/re.pm blib\lib\Data\Sah\Compiler\js\TH\re.pm cp lib/Data/Sah/Compiler/js/TH/int.pm blib\lib\Data\Sah\Compiler\js\TH\int.pm cp lib/Data/Sah/Compiler/js/TH/buf.pm blib\lib\Data\Sah\Compiler\js\TH\buf.pm cp lib/Data/Sah/Compiler/js/TH/hash.pm blib\lib\Data\Sah\Compiler\js\TH\hash.pm cp lib/Data/Sah/Compiler/js/TH/num.pm blib\lib\Data\Sah\Compiler\js\TH\num.pm cp lib/Data/Sah/Compiler/js/TH/cistr.pm blib\lib\Data\Sah\Compiler\js\TH\cistr.pm cp lib/Data/Sah/Compiler/js/TH/all.pm blib\lib\Data\Sah\Compiler\js\TH\all.pm cp lib/Data/Sah/Compiler/js/TH/array.pm blib\lib\Data\Sah\Compiler\js\TH\array.pm cp lib/Data/Sah/Compiler/js/TH/bool.pm blib\lib\Data\Sah\Compiler\js\TH\bool.pm cp lib/Data/Sah/Compiler/js/TH/duration.pm blib\lib\Data\Sah\Compiler\js\TH\duration.pm cp lib/Data/Sah/Compiler/js/TH.pm blib\lib\Data\Sah\Compiler\js\TH.pm cp lib/Data/Sah/Compiler/js/TH/obj.pm blib\lib\Data\Sah\Compiler\js\TH\obj.pm cp lib/Data/Sah/Compiler/js/TH/any.pm blib\lib\Data\Sah\Compiler\js\TH\any.pm cp lib/Data/Sah/Compiler/js/TH/date.pm blib\lib\Data\Sah\Compiler\js\TH\date.pm cp lib/Data/Sah/Compiler/js/TH/float.pm blib\lib\Data\Sah\Compiler\js\TH\float.pm cp lib/Data/Sah/Compiler/js/TH/code.pm blib\lib\Data\Sah\Compiler\js\TH\code.pm cp lib/Data/Sah/Compiler/perl/TH/array.pm blib\lib\Data\Sah\Compiler\perl\TH\array.pm cp lib/Data/Sah/Compiler/perl/TH/duration.pm blib\lib\Data\Sah\Compiler\perl\TH\duration.pm cp lib/Data/Sah/Compiler/perl/TH/date.pm blib\lib\Data\Sah\Compiler\perl\TH\date.pm cp lib/Data/Sah/Compiler/perl/TH/code.pm blib\lib\Data\Sah\Compiler\perl\TH\code.pm cp lib/Data/Sah/Compiler/perl/TH/float.pm blib\lib\Data\Sah\Compiler\perl\TH\float.pm cp lib/Data/Sah/Compiler/perl/TH/any.pm blib\lib\Data\Sah\Compiler\perl\TH\any.pm cp lib/Data/Sah/Compiler/perl/TH/hash.pm blib\lib\Data\Sah\Compiler\perl\TH\hash.pm cp lib/Data/Sah/Compiler/perl.pm blib\lib\Data\Sah\Compiler\perl.pm cp lib/Data/Sah/Compiler/perl/TH/all.pm blib\lib\Data\Sah\Compiler\perl\TH\all.pm cp lib/Data/Sah/Compiler/perl/TH/bool.pm blib\lib\Data\Sah\Compiler\perl\TH\bool.pm cp lib/Data/Sah/Compiler/perl/TH.pm blib\lib\Data\Sah\Compiler\perl\TH.pm cp lib/Data/Sah/Compiler/perl/TH/buf.pm blib\lib\Data\Sah\Compiler\perl\TH\buf.pm cp lib/Data/Sah/Compiler/js/TH/str.pm blib\lib\Data\Sah\Compiler\js\TH\str.pm cp lib/Data/Sah/Compiler/js/TH/undef.pm blib\lib\Data\Sah\Compiler\js\TH\undef.pm cp lib/Data/Sah/Compiler/perl/TH/cistr.pm blib\lib\Data\Sah\Compiler\perl\TH\cistr.pm cp lib/Data/Sah/Type/Comparable.pm blib\lib\Data\Sah\Type\Comparable.pm cp lib/Data/Sah/JS.pm blib\lib\Data\Sah\JS.pm cp lib/Data/Sah/Lang/fr_FR.pm blib\lib\Data\Sah\Lang\fr_FR.pm cp lib/Data/Sah/Compiler/perl/TH/undef.pm blib\lib\Data\Sah\Compiler\perl\TH\undef.pm cp lib/Data/Sah/Type/BaseType.pm blib\lib\Data\Sah\Type\BaseType.pm cp lib/Data/Sah/Manual/Extending.pod blib\lib\Data\Sah\Manual\Extending.pod cp lib/Data/Sah/Compiler/perl/TH/int.pm blib\lib\Data\Sah\Compiler\perl\TH\int.pm cp lib/Data/Sah/Manual/Contributing.pod blib\lib\Data\Sah\Manual\Contributing.pod cp lib/Data/Sah/Compiler/perl/TH/re.pm blib\lib\Data\Sah\Compiler\perl\TH\re.pm cp lib/Data/Sah/Lang/id_ID.pm blib\lib\Data\Sah\Lang\id_ID.pm cp lib/Data/Sah/Compiler/perl/TH/obj.pm blib\lib\Data\Sah\Compiler\perl\TH\obj.pm cp lib/Data/Sah/Lang.pm blib\lib\Data\Sah\Lang.pm cp lib/Data/Sah/Compiler/perl/TH/num.pm blib\lib\Data\Sah\Compiler\perl\TH\num.pm cp lib/Data/Sah/Compiler/perl/TH/str.pm blib\lib\Data\Sah\Compiler\perl\TH\str.pm cp lib/Data/Sah/Human.pm blib\lib\Data\Sah\Human.pm cp lib/Data/Sah/Lang/zh_CN.pm blib\lib\Data\Sah\Lang\zh_CN.pm cp lib/Data/Sah/Manual/Developer.pod blib\lib\Data\Sah\Manual\Developer.pod cp lib/Data/Sah/Manual.pod blib\lib\Data\Sah\Manual.pod cp lib/Data/Sah/Type/code.pm blib\lib\Data\Sah\Type\code.pm cp lib/Data/Sah/Type/float.pm blib\lib\Data\Sah\Type\float.pm cp lib/Data/Sah/Type/undef.pm blib\lib\Data\Sah\Type\undef.pm cp lib/Data/Sah/Type/obj.pm blib\lib\Data\Sah\Type\obj.pm cp lib/Data/Sah/Type/int.pm blib\lib\Data\Sah\Type\int.pm cp lib/Data/Sah/Type/bool.pm blib\lib\Data\Sah\Type\bool.pm cp lib/Data/Sah/Type/num.pm blib\lib\Data\Sah\Type\num.pm cp lib/Data/Sah/Type/any.pm blib\lib\Data\Sah\Type\any.pm cp lib/Data/Sah/Type/Sortable.pm blib\lib\Data\Sah\Type\Sortable.pm cp lib/Data/Sah/Type/re.pm blib\lib\Data\Sah\Type\re.pm cp lib/Data/Sah/Type/cistr.pm blib\lib\Data\Sah\Type\cistr.pm cp lib/Data/Sah/Type/str.pm blib\lib\Data\Sah\Type\str.pm cp lib/Data/Sah/Type/date.pm blib\lib\Data\Sah\Type\date.pm cp lib/Data/Sah/Type/duration.pm blib\lib\Data\Sah\Type\duration.pm cp lib/Data/Sah/Util/Func.pm blib\lib\Data\Sah\Util\Func.pm cp lib/Data/Sah/Type/all.pm blib\lib\Data\Sah\Type\all.pm cp lib/Data/Sah/Type/hash.pm blib\lib\Data\Sah\Type\hash.pm cp lib/Data/Sah/Type/buf.pm blib\lib\Data\Sah\Type\buf.pm cp lib/Data/Sah/Type/array.pm blib\lib\Data\Sah\Type\array.pm cp lib/Data/Sah/Util/Role.pm blib\lib\Data\Sah\Util\Role.pm cp lib/Data/Sah/Type/HasElems.pm blib\lib\Data\Sah\Type\HasElems.pm cp lib/Test/Data/Sah.pm blib\lib\Test\Data\Sah.pm cp lib/Data/Sah/Util/Type/Date.pm blib\lib\Data\Sah\Util\Type\Date.pm cp lib/Data/Sah/Util/TypeX.pm blib\lib\Data\Sah\Util\TypeX.pm PERLANCAR/Data-Sah-0.78.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/00-compile.t ........... 1..100 ok 1 - Data/Sah.pm loaded ok ok 2 - Data/Sah/Compiler.pm loaded ok ok 3 - Data/Sah/Compiler/Prog.pm loaded ok ok 4 - Data/Sah/Compiler/Prog/TH.pm loaded ok ok 5 - Data/Sah/Compiler/Prog/TH/all.pm loaded ok ok 6 - Data/Sah/Compiler/Prog/TH/any.pm loaded ok ok 7 - Data/Sah/Compiler/TH.pm loaded ok ok 8 - Data/Sah/Compiler/TextResultRole.pm loaded ok ok 9 - Data/Sah/Compiler/human.pm loaded ok ok 10 - Data/Sah/Compiler/human/TH.pm loaded ok ok 11 - Data/Sah/Compiler/human/TH/Comparable.pm loaded ok ok 12 - Data/Sah/Compiler/human/TH/HasElems.pm loaded ok ok 13 - Data/Sah/Compiler/human/TH/Sortable.pm loaded ok ok 14 - Data/Sah/Compiler/human/TH/all.pm loaded ok ok 15 - Data/Sah/Compiler/human/TH/any.pm loaded ok ok 16 - Data/Sah/Compiler/human/TH/array.pm loaded ok ok 17 - Data/Sah/Compiler/human/TH/bool.pm loaded ok ok 18 - Data/Sah/Compiler/human/TH/buf.pm loaded ok ok 19 - Data/Sah/Compiler/human/TH/cistr.pm loaded ok ok 20 - Data/Sah/Compiler/human/TH/code.pm loaded ok ok 21 - Data/Sah/Compiler/human/TH/date.pm loaded ok ok 22 - Data/Sah/Compiler/human/TH/duration.pm loaded ok ok 23 - Data/Sah/Compiler/human/TH/float.pm loaded ok ok 24 - Data/Sah/Compiler/human/TH/hash.pm loaded ok ok 25 - Data/Sah/Compiler/human/TH/int.pm loaded ok ok 26 - Data/Sah/Compiler/human/TH/num.pm loaded ok ok 27 - Data/Sah/Compiler/human/TH/obj.pm loaded ok ok 28 - Data/Sah/Compiler/human/TH/re.pm loaded ok ok 29 - Data/Sah/Compiler/human/TH/str.pm loaded ok ok 30 - Data/Sah/Compiler/human/TH/undef.pm loaded ok ok 31 - Data/Sah/Compiler/js.pm loaded ok ok 32 - Data/Sah/Compiler/js/TH.pm loaded ok ok 33 - Data/Sah/Compiler/js/TH/all.pm loaded ok ok 34 - Data/Sah/Compiler/js/TH/any.pm loaded ok ok 35 - Data/Sah/Compiler/js/TH/array.pm loaded ok ok 36 - Data/Sah/Compiler/js/TH/bool.pm loaded ok ok 37 - Data/Sah/Compiler/js/TH/buf.pm loaded ok ok 38 - Data/Sah/Compiler/js/TH/cistr.pm loaded ok ok 39 - Data/Sah/Compiler/js/TH/code.pm loaded ok ok 40 - Data/Sah/Compiler/js/TH/date.pm loaded ok ok 41 - Data/Sah/Compiler/js/TH/duration.pm loaded ok ok 42 - Data/Sah/Compiler/js/TH/float.pm loaded ok ok 43 - Data/Sah/Compiler/js/TH/hash.pm loaded ok ok 44 - Data/Sah/Compiler/js/TH/int.pm loaded ok ok 45 - Data/Sah/Compiler/js/TH/num.pm loaded ok ok 46 - Data/Sah/Compiler/js/TH/obj.pm loaded ok ok 47 - Data/Sah/Compiler/js/TH/re.pm loaded ok ok 48 - Data/Sah/Compiler/js/TH/str.pm loaded ok ok 49 - Data/Sah/Compiler/js/TH/undef.pm loaded ok ok 50 - Data/Sah/Compiler/perl.pm loaded ok ok 51 - Data/Sah/Compiler/perl/TH.pm loaded ok ok 52 - Data/Sah/Compiler/perl/TH/all.pm loaded ok ok 53 - Data/Sah/Compiler/perl/TH/any.pm loaded ok ok 54 - Data/Sah/Compiler/perl/TH/array.pm loaded ok ok 55 - Data/Sah/Compiler/perl/TH/bool.pm loaded ok ok 56 - Data/Sah/Compiler/perl/TH/buf.pm loaded ok ok 57 - Data/Sah/Compiler/perl/TH/cistr.pm loaded ok ok 58 - Data/Sah/Compiler/perl/TH/code.pm loaded ok ok 59 - Data/Sah/Compiler/perl/TH/date.pm loaded ok ok 60 - Data/Sah/Compiler/perl/TH/duration.pm loaded ok ok 61 - Data/Sah/Compiler/perl/TH/float.pm loaded ok ok 62 - Data/Sah/Compiler/perl/TH/hash.pm loaded ok ok 63 - Data/Sah/Compiler/perl/TH/int.pm loaded ok ok 64 - Data/Sah/Compiler/perl/TH/num.pm loaded ok ok 65 - Data/Sah/Compiler/perl/TH/obj.pm loaded ok ok 66 - Data/Sah/Compiler/perl/TH/re.pm loaded ok ok 67 - Data/Sah/Compiler/perl/TH/str.pm loaded ok ok 68 - Data/Sah/Compiler/perl/TH/undef.pm loaded ok ok 69 - Data/Sah/Human.pm loaded ok ok 70 - Data/Sah/JS.pm loaded ok ok 71 - Data/Sah/Lang.pm loaded ok ok 72 - Data/Sah/Lang/fr_FR.pm loaded ok ok 73 - Data/Sah/Lang/id_ID.pm loaded ok ok 74 - Data/Sah/Lang/zh_CN.pm loaded ok ok 75 - Data/Sah/Type/BaseType.pm loaded ok ok 76 - Data/Sah/Type/Comparable.pm loaded ok ok 77 - Data/Sah/Type/HasElems.pm loaded ok ok 78 - Data/Sah/Type/Sortable.pm loaded ok ok 79 - Data/Sah/Type/all.pm loaded ok ok 80 - Data/Sah/Type/any.pm loaded ok ok 81 - Data/Sah/Type/array.pm loaded ok ok 82 - Data/Sah/Type/bool.pm loaded ok ok 83 - Data/Sah/Type/buf.pm loaded ok ok 84 - Data/Sah/Type/cistr.pm loaded ok ok 85 - Data/Sah/Type/code.pm loaded ok ok 86 - Data/Sah/Type/date.pm loaded ok ok 87 - Data/Sah/Type/duration.pm loaded ok ok 88 - Data/Sah/Type/float.pm loaded ok ok 89 - Data/Sah/Type/hash.pm loaded ok ok 90 - Data/Sah/Type/int.pm loaded ok ok 91 - Data/Sah/Type/num.pm loaded ok ok 92 - Data/Sah/Type/obj.pm loaded ok ok 93 - Data/Sah/Type/re.pm loaded ok ok 94 - Data/Sah/Type/str.pm loaded ok ok 95 - Data/Sah/Type/undef.pm loaded ok ok 96 - Data/Sah/Util/Func.pm loaded ok ok 97 - Data/Sah/Util/Role.pm loaded ok ok 98 - Data/Sah/Util/Type/Date.pm loaded ok ok 99 - Data/Sah/Util/TypeX.pm loaded ok ok 100 - Test/Data/Sah.pm loaded ok ok t/01-basics.t ............ # Subtest: compile() # Subtest: on_unhandled_clause option ok 1 - die (default) ok 2 - warn ok 3 - ignore 1..3 ok 1 - on_unhandled_clause option # Subtest: on_unhandled_attr option ok 1 - die (default) ok 2 - warn ok 3 - ignore 1..3 ok 2 - on_unhandled_attr option # Subtest: skip_clause option ok 1 - skip_clause in gen_validator() 1 ok 2 - skip_clause in gen_validator() 2 ok 3 - skip_clause in gen_validator() 3 1..3 ok 3 - skip_clause option 1..3 ok 1 - compile() 1..1 ok # node.js not available, skipping JS test t/99-various.t ........... # Subtest: [2014-01-03 ] req_keys clash between $_ and $dt # Subtest: perl ok 1 - [] validates ok 2 - ['a'] doesn't validate ok 3 - [{}] doesn't validate ok 4 - [{b=>1}] doesn't validate ok 5 - [{a=>1}] validates 1..5 ok 1 - perl 1..1 ok 1 - [2014-01-03 ] req_keys clash between $_ and $dt 1..1 ok t/author-pod-coverage.t .. skipped: these tests are for testing by the author t/author-pod-syntax.t .... skipped: these tests are for testing by the author t/human-en_US.t .......... # Subtest: integer ok 1 - result 1..1 ok 1 - integer # Subtest: integer ok 1 - result 1..1 ok 2 - integer # Subtest: integer, must be at least 1 ok 1 - result 1..1 ok 3 - integer, must be at least 1 # Subtest: integer, must be at least 1, must be at most 10 ok 1 - result 1..1 ok 4 - integer, must be at least 1, must be at most 10 # Subtest: integer, must be divisible by 2 and 5 ok 1 - result 1..1 ok 5 - integer, must be divisible by 2 and 5 # Subtest: integer, must be divisible by all of [2,3,5] ok 1 - result 1..1 ok 6 - integer, must be divisible by all of [2,3,5] # Subtest: integer, must be divisible by 2 or 5 ok 1 - result 1..1 ok 7 - integer, must be divisible by 2 or 5 # Subtest: integer, must be divisible by one of [2,3,5] ok 1 - result 1..1 ok 8 - integer, must be divisible by one of [2,3,5] # Subtest: integer, must not be divisible by 5 ok 1 - result 1..1 ok 9 - integer, must not be divisible by 5 # Subtest: array of integers ok 1 - result 1..1 ok 10 - array of integers # Subtest: (?^x:array .+ each\sarray\selement\smust\sbe: .+ # integer .+ at\sleast\s1) ok 1 - result 1..1 ok 11 - (?^x:array .+ each\sarray\selement\smust\sbe: .+ # integer .+ at\sleast\s1) # Subtest: array, 1st element must be: integer ok 1 - result 1..1 ok 12 - array, 1st element must be: integer # Subtest: (?^x:must\sbe\sall\sof\sthe\sfollowing: .+ # integer.+even .+ # integer.+divisible\sby\s5 .+ # ) ok 1 - result 1..1 ok 13 - (?^x:must\sbe\sall\sof\sthe\sfollowing: .+ # integer.+even .+ # integer.+divisible\sby\s5 .+ # ) # Subtest: hash, field f must be: decimal number, field i must be: (integer, must be at least 0) ok 1 - result 1..1 ok 14 - hash, field f must be: decimal number, field i must be: (integer, must be at least 0) 1..14 ok t/human-id_ID.t .......... # Subtest: bilangan bulat ok 1 - result 1..1 ok 1 - bilangan bulat # Subtest: larik, elemen ke-1 harus: bilangan bulat ok 1 - result 1..1 ok 2 - larik, elemen ke-1 harus: bilangan bulat 1..2 ok t/js-misc.t .............. skipped: node.js is not available t/js-type-date.t ......... skipped: node.js is not available t/js-type-duration.t ..... skipped: node.js is not available t/perl-misc.t ............ ok 1 - data [{ a => [] }, { a => [] }] should pass schema [ # "array", # { of => ["hash", "keys", { a => ["array", "of", "any"] }] }, # ] # Subtest: compile option: no_modules ok 1 - data -5 should pass schema ["int"] ok 2 - data 1.1 should not pass schema ["int"] ok 3 - data -5 should pass schema ["float"] ok 4 - data 1.1 should pass schema ["float"] ok 5 - data "2e-10" should pass schema ["float"] ok 6 - data NaN should pass schema ["float"] ok 7 - data "NaNx" should not pass schema ["float"] ok 8 - data Inf should pass schema ["float"] ok 9 - data "-inf" should pass schema ["float"] ok 10 - data "info" should not pass schema ["float"] ok 11 - data -5 should pass schema ["num"] ok 12 - data 1.1 should pass schema ["num"] ok 13 - data "2e-10" should pass schema ["num"] ok 14 - data NaN should pass schema ["num"] ok 15 - data "NaNx" should not pass schema ["num"] ok 16 - data Inf should pass schema ["num"] ok 17 - data "-inf" should pass schema ["num"] ok 18 - data "info" should not pass schema ["num"] ok 19 - data NaN should pass schema ["float", "is_nan", 1] ok 20 - data -5 should not pass schema ["float", "is_nan", 1] ok 21 - data NaN should not pass schema ["float", "is_nan", 0] ok 22 - data -5 should pass schema ["float", "is_nan", 0] ok 23 - data "inf" should pass schema ["float", "is_inf", 1] ok 24 - data "-inf" should pass schema ["float", "is_inf", 1] ok 25 - data -5 should not pass schema ["float", "is_inf", 1] ok 26 - data "inf" should not pass schema ["float", "is_inf", 0] ok 27 - data "-inf" should not pass schema ["float", "is_inf", 0] ok 28 - data -5 should pass schema ["float", "is_inf", 0] ok 29 - data "inf" should pass schema ["float", "is_pos_inf", 1] ok 30 - data "-inf" should not pass schema ["float", "is_pos_inf", 1] ok 31 - data -5 should not pass schema ["float", "is_pos_inf", 1] ok 32 - data "inf" should not pass schema ["float", "is_pos_inf", 0] ok 33 - data "-inf" should pass schema ["float", "is_pos_inf", 0] ok 34 - data -5 should pass schema ["float", "is_pos_inf", 0] ok 35 - data "inf" should not pass schema ["float", "is_neg_inf", 1] ok 36 - data "-inf" should pass schema ["float", "is_neg_inf", 1] ok 37 - data -5 should not pass schema ["float", "is_neg_inf", 1] ok 38 - data "inf" should pass schema ["float", "is_neg_inf", 0] ok 39 - data "-inf" should not pass schema ["float", "is_neg_inf", 0] ok 40 - data -5 should pass schema ["float", "is_neg_inf", 0] 1..40 ok 2 - compile option: no_modules # Subtest: compile option: core ok 1 - data -5 should pass schema ["int"] ok 2 - data 1.1 should not pass schema ["int"] ok 3 - data -5 should pass schema ["float"] ok 4 - data 1.1 should pass schema ["float"] ok 5 - data "2e-10" should pass schema ["float"] ok 6 - data NaN should pass schema ["float"] ok 7 - data "NaNx" should not pass schema ["float"] ok 8 - data Inf should pass schema ["float"] ok 9 - data "-inf" should pass schema ["float"] ok 10 - data "info" should not pass schema ["float"] ok 11 - data -5 should pass schema ["num"] ok 12 - data 1.1 should pass schema ["num"] ok 13 - data "2e-10" should pass schema ["num"] ok 14 - data NaN should pass schema ["num"] ok 15 - data "NaNx" should not pass schema ["num"] ok 16 - data Inf should pass schema ["num"] ok 17 - data "-inf" should pass schema ["num"] ok 18 - data "info" should not pass schema ["num"] ok 19 - data NaN should pass schema ["float", "is_nan", 1] ok 20 - data -5 should not pass schema ["float", "is_nan", 1] ok 21 - data NaN should not pass schema ["float", "is_nan", 0] ok 22 - data -5 should pass schema ["float", "is_nan", 0] ok 23 - data "inf" should pass schema ["float", "is_inf", 1] ok 24 - data "-inf" should pass schema ["float", "is_inf", 1] ok 25 - data -5 should not pass schema ["float", "is_inf", 1] ok 26 - data "inf" should not pass schema ["float", "is_inf", 0] ok 27 - data "-inf" should not pass schema ["float", "is_inf", 0] ok 28 - data -5 should pass schema ["float", "is_inf", 0] ok 29 - data "inf" should pass schema ["float", "is_pos_inf", 1] ok 30 - data "-inf" should not pass schema ["float", "is_pos_inf", 1] ok 31 - data -5 should not pass schema ["float", "is_pos_inf", 1] ok 32 - data "inf" should not pass schema ["float", "is_pos_inf", 0] ok 33 - data "-inf" should pass schema ["float", "is_pos_inf", 0] ok 34 - data -5 should pass schema ["float", "is_pos_inf", 0] ok 35 - data "inf" should not pass schema ["float", "is_neg_inf", 1] ok 36 - data "-inf" should pass schema ["float", "is_neg_inf", 1] ok 37 - data -5 should not pass schema ["float", "is_neg_inf", 1] ok 38 - data "inf" should pass schema ["float", "is_neg_inf", 0] ok 39 - data "-inf" should not pass schema ["float", "is_neg_inf", 0] ok 40 - data -5 should pass schema ["float", "is_neg_inf", 0] 1..40 ok 3 - compile option: core # Subtest: compile option: core_or_pp ok 1 - data -5 should pass schema ["int"] ok 2 - data 1.1 should not pass schema ["int"] ok 3 - data -5 should pass schema ["float"] ok 4 - data 1.1 should pass schema ["float"] ok 5 - data "2e-10" should pass schema ["float"] ok 6 - data NaN should pass schema ["float"] ok 7 - data "NaNx" should not pass schema ["float"] ok 8 - data Inf should pass schema ["float"] ok 9 - data "-inf" should pass schema ["float"] ok 10 - data "info" should not pass schema ["float"] ok 11 - data -5 should pass schema ["num"] ok 12 - data 1.1 should pass schema ["num"] ok 13 - data "2e-10" should pass schema ["num"] ok 14 - data NaN should pass schema ["num"] ok 15 - data "NaNx" should not pass schema ["num"] ok 16 - data Inf should pass schema ["num"] ok 17 - data "-inf" should pass schema ["num"] ok 18 - data "info" should not pass schema ["num"] ok 19 - data NaN should pass schema ["float", "is_nan", 1] ok 20 - data -5 should not pass schema ["float", "is_nan", 1] ok 21 - data NaN should not pass schema ["float", "is_nan", 0] ok 22 - data -5 should pass schema ["float", "is_nan", 0] ok 23 - data "inf" should pass schema ["float", "is_inf", 1] ok 24 - data "-inf" should pass schema ["float", "is_inf", 1] ok 25 - data -5 should not pass schema ["float", "is_inf", 1] ok 26 - data "inf" should not pass schema ["float", "is_inf", 0] ok 27 - data "-inf" should not pass schema ["float", "is_inf", 0] ok 28 - data -5 should pass schema ["float", "is_inf", 0] ok 29 - data "inf" should pass schema ["float", "is_pos_inf", 1] ok 30 - data "-inf" should not pass schema ["float", "is_pos_inf", 1] ok 31 - data -5 should not pass schema ["float", "is_pos_inf", 1] ok 32 - data "inf" should not pass schema ["float", "is_pos_inf", 0] ok 33 - data "-inf" should pass schema ["float", "is_pos_inf", 0] ok 34 - data -5 should pass schema ["float", "is_pos_inf", 0] ok 35 - data "inf" should not pass schema ["float", "is_neg_inf", 1] ok 36 - data "-inf" should pass schema ["float", "is_neg_inf", 1] ok 37 - data -5 should not pass schema ["float", "is_neg_inf", 1] ok 38 - data "inf" should pass schema ["float", "is_neg_inf", 0] ok 39 - data "-inf" should not pass schema ["float", "is_neg_inf", 0] ok 40 - data -5 should pass schema ["float", "is_neg_inf", 0] 1..40 ok 4 - compile option: core_or_pp # Subtest: compile option: pp ok 1 - data -5 should pass schema ["int"] ok 2 - data 1.1 should not pass schema ["int"] ok 3 - data -5 should pass schema ["float"] ok 4 - data 1.1 should pass schema ["float"] ok 5 - data "2e-10" should pass schema ["float"] ok 6 - data NaN should pass schema ["float"] ok 7 - data "NaNx" should not pass schema ["float"] ok 8 - data Inf should pass schema ["float"] ok 9 - data "-inf" should pass schema ["float"] ok 10 - data "info" should not pass schema ["float"] ok 11 - data -5 should pass schema ["num"] ok 12 - data 1.1 should pass schema ["num"] ok 13 - data "2e-10" should pass schema ["num"] ok 14 - data NaN should pass schema ["num"] ok 15 - data "NaNx" should not pass schema ["num"] ok 16 - data Inf should pass schema ["num"] ok 17 - data "-inf" should pass schema ["num"] ok 18 - data "info" should not pass schema ["num"] ok 19 - data NaN should pass schema ["float", "is_nan", 1] ok 20 - data -5 should not pass schema ["float", "is_nan", 1] ok 21 - data NaN should not pass schema ["float", "is_nan", 0] ok 22 - data -5 should pass schema ["float", "is_nan", 0] ok 23 - data "inf" should pass schema ["float", "is_inf", 1] ok 24 - data "-inf" should pass schema ["float", "is_inf", 1] ok 25 - data -5 should not pass schema ["float", "is_inf", 1] ok 26 - data "inf" should not pass schema ["float", "is_inf", 0] ok 27 - data "-inf" should not pass schema ["float", "is_inf", 0] ok 28 - data -5 should pass schema ["float", "is_inf", 0] ok 29 - data "inf" should pass schema ["float", "is_pos_inf", 1] ok 30 - data "-inf" should not pass schema ["float", "is_pos_inf", 1] ok 31 - data -5 should not pass schema ["float", "is_pos_inf", 1] ok 32 - data "inf" should not pass schema ["float", "is_pos_inf", 0] ok 33 - data "-inf" should pass schema ["float", "is_pos_inf", 0] ok 34 - data -5 should pass schema ["float", "is_pos_inf", 0] ok 35 - data "inf" should not pass schema ["float", "is_neg_inf", 1] ok 36 - data "-inf" should pass schema ["float", "is_neg_inf", 1] ok 37 - data -5 should not pass schema ["float", "is_neg_inf", 1] ok 38 - data "inf" should pass schema ["float", "is_neg_inf", 0] ok 39 - data "-inf" should not pass schema ["float", "is_neg_inf", 0] ok 40 - data -5 should pass schema ["float", "is_neg_inf", 0] 1..40 ok 5 - compile option: pp 1..5 ok t/perl-type-bool.t ....... ok 1 - data "" should pass schema ["bool*", "is_true", 0] ok 2 - data "a" should pass schema ["bool*", "is_true", 1] ok 3 - data 0.1 should pass schema ["bool*", "is_true", 1] 1..3 ok t/perl-type-code.t ....... ok 1 - data "a" should not pass schema ["code"] ok 2 - data sub { ... } should pass schema ["code"] 1..2 ok BUG: Unknown coerce_to value 'float(epoch)', please use int(epoch), DateTime, or Time::Moment at C:/cpanfly-5.22-64/var/megalib/Data/Sah/Coerce/perl/date/obj_DateTime.pm line 40. t/perl-type-date.t ....... Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run t/perl-type-duration.t ... ok 1 - data "P1Y2M" should pass schema ["duration"] ok 2 - data "2 days 13 hours" should pass schema ["duration"] ok 3 - data "2 xxx" should not pass schema ["duration"] ok 4 - data 1 should pass schema ["duration"] ok 5 - data 864000 should pass schema ["duration"] ok 6 - data "x" should not pass schema ["duration"] ok 7 - data "1Y2M" should not pass schema ["duration"] ok 8 - data bless({ # days => 0, # end_of_month => "wrap", # minutes => 0, # months => 14, # nanoseconds => 0, # seconds => 0, # }, "DateTime::Duration") should pass schema ["duration"] 1..8 ok t/perl-type-float.t ...... ok 1 - data 1 should not pass schema ["float", "is_nan", 1] ok 2 - data Inf should not pass schema ["float", "is_nan", 1] ok 3 - data NaN should pass schema ["float", "is_nan", 1] ok 4 - data 1 should not pass schema ["float", "is_inf", 1] ok 5 - data NaN should not pass schema ["float", "is_inf", 1] ok 6 - data -Inf should pass schema ["float", "is_inf", 1] ok 7 - data Inf should pass schema ["float", "is_inf", 1] ok 8 - data 1 should not pass schema ["float", "is_pos_inf", 1] ok 9 - data NaN should not pass schema ["float", "is_pos_inf", 1] ok 10 - data -Inf should not pass schema ["float", "is_pos_inf", 1] ok 11 - data Inf should pass schema ["float", "is_pos_inf", 1] ok 12 - data 1 should not pass schema ["float", "is_neg_inf", 1] ok 13 - data NaN should not pass schema ["float", "is_neg_inf", 1] ok 14 - data -Inf should pass schema ["float", "is_neg_inf", 1] ok 15 - data Inf should not pass schema ["float", "is_neg_inf", 1] 1..15 ok t/perl-type-obj.t ........ ok 1 - data "" should not pass schema ["obj*"] ok 2 - data [] should not pass schema ["obj*"] ok 3 - data {} should not pass schema ["obj*"] ok 4 - data bless({}, "Data::Sah") should pass schema ["obj*"] ok 5 - data bless({}, "Data::Sah") should pass schema ["obj*", "isa", "Exporter"] ok 6 - data bless({}, "Data::Sah") should not pass schema ["obj*", "isa", "Foo"] ok 7 - data bless({}, "Data::Sah") should pass schema ["obj*", "!isa", "Foo"] ok 8 - data bless({}, "Data::Sah") should pass schema ["obj*", "can", "get_compiler"] ok 9 - data bless({}, "Data::Sah") should pass schema ["obj*", "can&", ["get_compiler", "gen_validator"]] ok 10 - data bless({}, "Data::Sah") should not pass schema ["obj*", "can&", ["get_compiler", "foo"]] ok 11 - data bless({}, "Data::Sah") should pass schema ["obj*", "can|", ["get_compiler", "foo"]] 1..11 ok t/perl-type-re.t ......... ok 1 - data "" should pass schema ["re*"] ok 2 - data "x" should pass schema ["re*"] ok 3 - data qr// should pass schema ["re*"] ok 4 - data "(" should not pass schema ["re*"] ok 5 - data [] should not pass schema ["re*"] ok 6 - data {} should not pass schema ["re*"] 1..6 ok t/perl-type-str.t ........ ok 1 - data "a" should not pass schema ["str*", "match", qr|/|] ok 2 - data "a/" should pass schema ["str*", "match", qr|/|] 1..2 ok t/spectest-js.t .......... skipped: node.js is not available # Loading 10-type-all.json ... # Loading 10-type-any.json ... # Loading 10-type-array.json ... # Skipping test (tags=clause:check_each_index, type, type:array) array0115: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:array) array0116: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:array) array0117: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:array) array0118: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:array) array0119: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:array) array0120: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:array) array0127: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:array) array0128: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:array) array0129: prop:elems: properties are not yet implemented # Loading 10-type-bool.json ... # Skipping test (tags=clause:between, op, op:not, opshortcut, type, type:bool) bool0113: !between (nok): currently failing # Skipping test (tags=clause:between, op, op:not, opshortcut, type, type:bool) bool0114: !between (ok): currently failing # Skipping test (tags=clause:between, op, op:not, type, type:bool) bool0115: between.op=not (nok): currently failing # Skipping test (tags=clause:between, op, op:not, type, type:bool) bool0116: between.op=not (ok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0117: between& (no items): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0118: between& (ok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0119: between& (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0120: between& (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) bool0121: between& (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0123: between.op=and (ok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0124: between.op=and (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0125: between.op=and (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:and, type, type:bool) bool0126: between.op=and (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0127: between| (no items): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0128: between| (ok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0129: between| (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0130: between| (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) bool0131: between| (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0132: between.op=or (no items): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0133: between.op=or (ok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0134: between.op=or (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0135: between.op=or (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:or, type, type:bool) bool0136: between.op=or (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0137: between.op=none (empty items): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0138: between.op=none (nok + nok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0139: between.op=none (nok + ok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0140: between.op=none (ok + nok): currently failing # Skipping test (tags=clause:between, op, op:none, type, type:bool) bool0141: between.op=none (ok + ok): currently failing # Loading 10-type-buf.json ... # Skipping test (tags=clause:check_each_index, type, type:buf) buf0164: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:buf) buf0165: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:buf) buf0166: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:buf) buf0167: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:buf) buf0168: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:buf) buf0169: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:buf) buf0174: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:buf) buf0175: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:buf) buf0176: prop:elems: properties are not yet implemented # Loading 10-type-cistr.json ... # Skipping test (tags=clause:check_each_index, type, type:cistr) cistr0164: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:cistr) cistr0165: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:cistr) cistr0166: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:cistr) cistr0167: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:cistr) cistr0168: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:cistr) cistr0169: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:cistr) cistr0174: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:cistr) cistr0175: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:cistr) cistr0176: prop:elems: properties are not yet implemented # Loading 10-type-float.json ... # Loading 10-type-hash.json ... # Skipping test (tags=clause:check_each_index, type, type:hash) hash0119: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_key, type, type:hash) hash0120: check_each_key: clause check_each_key not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:hash) hash0121: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:check_each_value, type, type:hash) hash0122: check_each_value: clause check_each_value not yet implemented # Skipping test (tags=clause:uniq, type, type:hash) hash0123: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:hash) hash0124: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:hash) hash0125: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:hash) hash0126: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:hash) hash0131: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:hash) hash0132: prop:indices: properties are not yet implemented # Skipping test (tags=prop:keys, type, type:hash) hash0133: prop:keys: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:hash) hash0134: prop:elems: properties are not yet implemented # Skipping test (tags=prop:values, type, type:hash) hash0135: prop:values: properties are not yet implemented # Skipping test (tags=prop:keys, type, type:hash) hash0214: prop:keys: properties are not yet implemented # Skipping test (tags=prop:values, type, type:hash) hash0215: prop:values: properties are not yet implemented # Loading 10-type-int.json ... # Loading 10-type-num.json ... # Loading 10-type-obj.json ... # Skipping test (tags=prop:meths, type, type:obj) obj0003: prop:meths (nok): properties are not yet implemented # Skipping test (tags=prop:attrs, type, type:obj) obj0004: prop:attrs (nok): properties are not yet implemented # Loading 10-type-str.json ... # Skipping test (tags=clause:check_each_index, type, type:str) str0164: check_each_index: clause check_each_index not yet implemented # Skipping test (tags=clause:check_each_elem, type, type:str) str0165: check_each_elem: clause check_each_elem not yet implemented # Skipping test (tags=clause:uniq, type, type:str) str0166: uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:uniq, type, type:str) str0167: uniq=0: clause uniq not yet implemented # Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:str) str0168: !uniq=1: clause uniq not yet implemented # Skipping test (tags=clause:exists, type, type:str) str0169: exists: clause exists not yet implemented # Skipping test (tags=prop:len, type, type:str) str0174: prop:len: properties are not yet implemented # Skipping test (tags=prop:indices, type, type:str) str0175: prop:indices: properties are not yet implemented # Skipping test (tags=prop:elems, type, type:str) str0176: prop:elems: properties are not yet implemented # Loading 10-type-undef.json ... t/spectest-perl.t ........ # Subtest: 00-normalize_schema.json # Subtest: schema must be defined ok 1 - dies 1..1 ok 1 - schema must be defined # Subtest: string: type name must not be blank ok 1 - dies 1..1 ok 2 - string: type name must not be blank # Subtest: string: type name must be valid (ok) ok 1 - result ok 2 - doesn't die 1..2 ok 3 - string: type name must be valid (ok) # Subtest: string: type name must be valid (ok, has namespace) ok 1 - result ok 2 - doesn't die 1..2 ok 4 - string: type name must be valid (ok, has namespace) # Subtest: string: type name must be valid (fail, has whitespace) ok 1 - dies 1..1 ok 5 - string: type name must be valid (fail, has whitespace) # Subtest: string: type name must be valid (fail, starts with number) ok 1 - dies 1..1 ok 6 - string: type name must be valid (fail, starts with number) # Subtest: string: * suffix is allowed and normalized to req clause ok 1 - result ok 2 - doesn't die 1..2 ok 7 - string: * suffix is allowed and normalized to req clause # Subtest: string: multiple * suffix is not allowed ok 1 - dies 1..1 ok 8 - string: multiple * suffix is not allowed # Subtest: array: must not be empty ok 1 - dies 1..1 ok 9 - array: must not be empty # Subtest: array: type name must be valid (ok) ok 1 - result ok 2 - doesn't die 1..2 ok 10 - array: type name must be valid (ok) # Subtest: array: type name must be valid (fail, has whitespace) ok 1 - dies 1..1 ok 11 - array: type name must be valid (fail, has whitespace) # Subtest: array: * suffix is allowed and normalized to req clause ok 1 - result ok 2 - doesn't die 1..2 ok 12 - array: * suffix is allowed and normalized to req clause # Subtest: array: clause set must be hash (ok, empty) ok 1 - result ok 2 - doesn't die 1..2 ok 13 - array: clause set must be hash (ok, empty) # Subtest: array: clause set must be hash (ok, has some clauses) ok 1 - result ok 2 - doesn't die 1..2 ok 14 - array: clause set must be hash (ok, has some clauses) # Subtest: array: clause set must be hash (fail, string) ok 1 - dies 1..1 ok 15 - array: clause set must be hash (fail, string) # Subtest: array: clause set must be hash (fail, array) ok 1 - dies 1..1 ok 16 - array: clause set must be hash (fail, array) # Subtest: array: clause name must be valid (fail, has whitespace) ok 1 - dies 1..1 ok 17 - array: clause name must be valid (fail, has whitespace) # Subtest: array: clause name must be valid (fail, starts with number) ok 1 - dies 1..1 ok 18 - array: clause name must be valid (fail, starts with number) # Subtest: array: * suffix is allowed and normalized to req clause (2-element-array schema) ok 1 - result ok 2 - doesn't die 1..2 ok 19 - array: * suffix is allowed and normalized to req clause (2-element-array schema) # Subtest: array: * suffix is allowed and normalized to req clause (overrides existing req clause) ok 1 - result ok 2 - doesn't die 1..2 ok 20 - array: * suffix is allowed and normalized to req clause (overrides existing req clause) # Subtest: array: clause attribute name must be valid (ok) ok 1 - result ok 2 - doesn't die 1..2 ok 21 - array: clause attribute name must be valid (ok) # Subtest: array: clause attribute name must be valid (fail, has whitespace) ok 1 - dies 1..1 ok 22 - array: clause attribute name must be valid (fail, has whitespace) # Subtest: array: setting attribute on clause "" is permitted ok 1 - result ok 2 - doesn't die 1..2 ok 23 - array: setting attribute on clause "" is permitted # Subtest: array: setting value attribute on clause "" using syntax "" is not permitted ok 1 - dies 1..1 ok 24 - array: setting value attribute on clause "" using syntax "" is not permitted # Subtest: array: flattened clause set is permitted ok 1 - result ok 2 - doesn't die 1..2 ok 25 - array: flattened clause set is permitted # Subtest: array: flattened clause set is permitted (with * suffix) ok 1 - result ok 2 - doesn't die 1..2 ok 26 - array: flattened clause set is permitted (with * suffix) # Subtest: array: flattened clause set is permitted (fail, odd number of elements) ok 1 - dies 1..1 ok 27 - array: flattened clause set is permitted (fail, odd number of elements) # Subtest: array: expression (clause=) is allowed on clause and normalized ok 1 - result ok 2 - doesn't die 1..2 ok 28 - array: expression (clause=) is allowed on clause and normalized # Subtest: array: expression (clause=) is allowed on clause.attr and normalized ok 1 - result ok 2 - doesn't die 1..2 ok 29 - array: expression (clause=) is allowed on clause.attr and normalized # Subtest: array: expression (clause=) must not conflict with literal value (fail) ok 1 - dies 1..1 ok 30 - array: expression (clause=) must not conflict with literal value (fail) # Subtest: array: expression (clause.attr=) must not conflict with literal value (fail) ok 1 - dies 1..1 ok 31 - array: expression (clause.attr=) must not conflict with literal value (fail) # Subtest: array: !clause is normalized ok 1 - result ok 2 - doesn't die 1..2 ok 32 - array: !clause is normalized # Subtest: array: !clause.attr is not allowed ok 1 - dies 1..1 ok 33 - array: !clause.attr is not allowed # Subtest: array: clause| is normalized ok 1 - result ok 2 - doesn't die 1..2 ok 34 - array: clause| is normalized # Subtest: array: clause.attr| is not allowed ok 1 - dies 1..1 ok 35 - array: clause.attr| is not allowed # Subtest: array: clause| value must be array (fail, not array) ok 1 - dies 1..1 ok 36 - array: clause| value must be array (fail, not array) # Subtest: array: clause& is normalized ok 1 - result ok 2 - doesn't die 1..2 ok 37 - array: clause& is normalized # Subtest: array: clause.attr& is not allowed ok 1 - dies 1..1 ok 38 - array: clause.attr& is not allowed # Subtest: array: clause& value must be array (fail, not array) ok 1 - dies 1..1 ok 39 - array: clause& value must be array (fail, not array) # Subtest: array: !clause cannot be mixed with merge prefix ok 1 - dies 1..1 ok 40 - array: !clause cannot be mixed with merge prefix # Subtest: array: !clause cannot be mixed with expression ok 1 - dies 1..1 ok 41 - array: !clause cannot be mixed with expression # Subtest: array: clause| cannot be mixed with merge prefix ok 1 - dies 1..1 ok 42 - array: clause| cannot be mixed with merge prefix # Subtest: array: clause| cannot be mixed with expression ok 1 - dies 1..1 ok 43 - array: clause| cannot be mixed with expression # Subtest: array: clause& cannot be mixed with merge prefix ok 1 - dies 1..1 ok 44 - array: clause& cannot be mixed with merge prefix # Subtest: array: clause& cannot be mixed with expression ok 1 - dies 1..1 ok 45 - array: clause& cannot be mixed with expression # Subtest: array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c & !c) ok 1 - dies 1..1 ok 46 - array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c & !c) # Subtest: array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c & c|) ok 1 - dies 1..1 ok 47 - array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c & c|) # Subtest: array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c & c&) ok 1 - dies 1..1 ok 48 - array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c & c&) # Subtest: array: clause, !clause, clause&, and clause| must not conflict with one another (fail, !c & c|) ok 1 - dies 1..1 ok 49 - array: clause, !clause, clause&, and clause| must not conflict with one another (fail, !c & c|) # Subtest: array: clause, !clause, clause&, and clause| must not conflict with one another (fail, !c & c&) ok 1 - dies 1..1 ok 50 - array: clause, !clause, clause&, and clause| must not conflict with one another (fail, !c & c&) # Subtest: array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c| & c&) ok 1 - dies 1..1 ok 51 - array: clause, !clause, clause&, and clause| must not conflict with one another (fail, c| & c&) # Subtest: array: merge prefix in clause is allowed ok 1 - result ok 2 - doesn't die 1..2 ok 52 - array: merge prefix in clause is allowed # Subtest: array: clause(LANG) shortcut is allowed and normalized ok 1 - result ok 2 - doesn't die 1..2 ok 53 - array: clause(LANG) shortcut is allowed and normalized # Subtest: array: clause.attr(LANG) shortcut is allowed and normalized ok 1 - result ok 2 - doesn't die 1..2 ok 54 - array: clause.attr(LANG) shortcut is allowed and normalized # Subtest: array: clause(LANG) shortcut must not conflict with existing attribute ok 1 - dies 1..1 ok 55 - array: clause(LANG) shortcut must not conflict with existing attribute # Subtest: array: invalid clause(LANG) shortcut is not allowed (1) ok 1 - dies 1..1 ok 56 - array: invalid clause(LANG) shortcut is not allowed (1) # Subtest: array: invalid clause(LANG) shortcut is not allowed (2) ok 1 - dies 1..1 ok 57 - array: invalid clause(LANG) shortcut is not allowed (2) # Subtest: array: extras must be hash (ok) ok 1 - result ok 2 - doesn't die 1..2 ok 58 - array: extras must be hash (ok) # Subtest: array: extras must be hash (fail, not hash) ok 1 - dies 1..1 ok 59 - array: extras must be hash (fail, not hash) # Subtest: array: def in extras must be hash (ok) ok 1 - result ok 2 - doesn't die 1..2 ok 60 - array: def in extras must be hash (ok) # Subtest: array: def in extras must be hash (fail) ok 1 - dies 1..1 ok 61 - array: def in extras must be hash (fail) # Subtest: array: extra elements are not permitted ok 1 - dies 1..1 ok 62 - array: extra elements are not permitted # Subtest: hash form (old DS syntax) is no longer recognized ok 1 - dies 1..1 ok 63 - hash form (old DS syntax) is no longer recognized ok 64 1..64 ok 1 - 00-normalize_schema.json # Subtest: 01-merge_clause_sets.json # Subtest: no clause sets results in nothing done ok 1 - result ok 2 - doesn't die 1..2 ok 1 - no clause sets results in nothing done # Subtest: a single clause set results in nothing done ok 1 - result ok 2 - doesn't die 1..2 ok 2 - a single clause set results in nothing done # Subtest: no merge prefixes results in appending clause sets ok 1 - result ok 2 - doesn't die 1..2 ok 3 - no merge prefixes results in appending clause sets # Subtest: normal mode merging replaces clauses on the left ok 1 - result ok 2 - doesn't die 1..2 ok 4 - normal mode merging replaces clauses on the left # Subtest: additive mode merging adds values (array) ok 1 - result ok 2 - doesn't die 1..2 ok 5 - additive mode merging adds values (array) # Subtest: concative mode merging concatenates values (string) ok 1 - result ok 2 - doesn't die 1..2 ok 6 - concative mode merging concatenates values (string) # Subtest: subtractive mode merging concatenates values (int) ok 1 - result ok 2 - doesn't die 1..2 ok 7 - subtractive mode merging concatenates values (int) # Subtest: delete mode merging deletes values ok 1 - result ok 2 - doesn't die 1..2 ok 8 - delete mode merging deletes values # Subtest: keep mode prevents overriding of values ok 1 - result ok 2 - doesn't die 1..2 ok 9 - keep mode prevents overriding of values ok 10 1..10 ok 2 - 01-merge_clause_sets.json # Subtest: 10-type-all.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => 3, # 'name' => 'all0001: of (nok + nok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:all) all0001: of (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:all) all0001: of (nok + nok) # { # 'input' => 2, # 'name' => 'all0002: of (ok + nok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:all) all0002: of (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:all) all0002: of (ok + nok) # { # 'input' => 5, # 'name' => 'all0003: of (nok + ok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:all) all0003: of (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:all) all0003: of (nok + ok) # { # 'input' => 10, # 'name' => 'all0004: of (ok + ok)', # 'schema' => [ # 'all', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:all' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:all) all0004: of (ok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:all) all0004: of (ok + ok) ok 5 1..5 ok 3 - 10-type-all.json # Subtest: 10-type-any.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => 3, # 'name' => 'any0001: of (nok + nok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:any) any0001: of (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:any) any0001: of (nok + nok) # { # 'errors' => 2, # 'input' => [ # [] # ], # 'name' => 'any0002: of (nok + nok 2)', # 'schema' => [ # 'any', # 'of', # [ # 'str', # [ # 'array', # 'of', # 'str' # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:any) any0002: of (nok + nok 2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:any) any0002: of (nok + nok 2) # { # 'input' => 2, # 'name' => 'any0003: of (ok + nok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:any) any0003: of (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:any) any0003: of (ok + nok) # { # 'input' => 5, # 'name' => 'any0004: of (nok + ok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:any) any0004: of (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:any) any0004: of (nok + ok) # { # 'input' => 10, # 'name' => 'any0005: of (ok + ok)', # 'schema' => [ # 'any', # 'of', # [ # [ # 'int', # 'div_by', # 2 # ], # [ # 'int', # 'div_by', # 5 # ] # ] # ], # 'tags' => [ # 'type', # 'type:any' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:any) any0005: of (ok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:any) any0005: of (ok + ok) ok 6 1..6 ok 4 - 10-type-any.json # Subtest: 10-type-array.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => [], # 'name' => 'array0001: type check: must accept []', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0001: type check: must accept [] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:array) array0001: type check: must accept [] # { # 'input' => [ # 1, # 'a' # ], # 'name' => 'array0002: type check: must accept [1,"a"]', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0002: type check: must accept [1,"a"] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:array) array0002: type check: must accept [1,"a"] # { # 'input' => [ # [] # ], # 'name' => 'array0003: type check: must accept [[]]', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0003: type check: must accept [[]] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:array) array0003: type check: must accept [[]] # { # 'input' => 1, # 'name' => 'array0004: type check: must reject 1', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:array) array0004: type check: must reject 1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:array) array0004: type check: must reject 1 # { # 'input' => 'a', # 'name' => 'array0005: type check: must reject a', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:array) array0005: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:array) array0005: type check: must reject a # { # 'input' => {}, # 'name' => 'array0006: type check: must reject {}', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:array) array0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:array) array0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'array0007: must accept undefined value', # 'schema' => 'array', # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:array) array0007: must accept undefined value # { # 'input' => undef, # 'name' => 'array0008: defhash_v', # 'schema' => [ # 'array', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:array) array0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:array) array0008: defhash_v # { # 'input' => undef, # 'name' => 'array0009: v', # 'schema' => [ # 'array', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:array) array0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:array) array0009: v # { # 'input' => undef, # 'name' => 'array0010: c', # 'schema' => [ # 'array', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:array) array0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:array) array0010: c # { # 'input' => undef, # 'name' => 'array0011: default_lang', # 'schema' => [ # 'array', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:array) array0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:array) array0011: default_lang # { # 'input' => undef, # 'name' => 'array0012: name', # 'schema' => [ # 'array', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:array) array0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:array) array0012: name # { # 'input' => undef, # 'name' => 'array0013: summary', # 'schema' => [ # 'array', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:array) array0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:array) array0013: summary # { # 'input' => undef, # 'name' => 'array0014: description', # 'schema' => [ # 'array', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:array) array0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:array) array0014: description # { # 'input' => undef, # 'name' => 'array0015: tags', # 'schema' => [ # 'array', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:array) array0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:array) array0015: tags # { # 'input' => undef, # 'name' => 'array0016: req=0 must accept undefined value', # 'schema' => [ # 'array', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:array) array0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:array) array0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'array0017: req=1 must reject undefined value', # 'schema' => [ # 'array', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:array) array0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:array) array0017: req=1 must reject undefined value # { # 'input' => [ # 1 # ], # 'name' => 'array0018: forbidden=0 must accept defined value', # 'schema' => [ # 'array', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:array) array0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:array) array0018: forbidden=0 must accept defined value # { # 'input' => [ # 1 # ], # 'name' => 'array0019: forbidden=1 must reject defined value', # 'schema' => [ # 'array', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:array) array0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:array) array0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'array0020: default: must accept valid default []', # 'schema' => [ # 'array*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:array) array0020: default: must accept valid default [] ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:array) array0020: default: must accept valid default [] # { # 'input' => undef, # 'name' => 'array0021: default: must reject invalid default a', # 'schema' => [ # 'array*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:array) array0021: default: must reject invalid default a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:array) array0021: default: must reject invalid default a # { # 'dies' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0022: clause (dies, unknown clause)', # 'schema' => [ # 'array*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:array) array0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:array) array0022: clause (dies, unknown clause) # { # 'input' => [ # 1 # ], # 'name' => 'array0023: clause (ok)', # 'schema' => [ # 'array*', # 'clause', # [ # 'min_len', # 0 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:array) array0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:array) array0023: clause (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'array*', # 'clause', # [ # 'min_len', # 0 # ], # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:array) array0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:array) array0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0025: clause (nok)', # 'schema' => [ # 'array*', # 'clause', # [ # 'min_len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:array) array0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:array) array0025: clause (nok) # { # 'dies' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0026: clset (dies, unknown clause)', # 'schema' => [ # 'array*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:array) array0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:array) array0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0027: clset (dies, unknown attr)', # 'schema' => [ # 'array*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:array) array0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:array) array0027: clset (dies, unknown attr) # { # 'input' => [ # 1 # ], # 'name' => 'array0028: clset (empty = ok)', # 'schema' => [ # 'array*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:array) array0028: clset (empty = ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'array*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:array) array0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:array) array0029: clset (ignored clause/attr = ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0030: clset (ok + ok = ok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:array) array0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:array) array0030: clset (ok + ok = ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'array*', # 'clset', # { # 'min_len' => 0 # }, # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:array) array0031: clset (ok) + clause nok = nok # { # 'input' => [ # 1 # ], # 'name' => 'array0032: clset (ok + nok = nok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:array) array0032: clset (ok + nok = nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0033: clset (nok + ok = nok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:array) array0033: clset (nok + ok = nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0034: clset (nok + nok = nok)', # 'schema' => [ # 'array*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:array) array0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:array) array0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'array0035: ok', # 'schema' => [ # 'array', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:array) array0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:array) array0035: ok # { # 'input' => undef, # 'name' => 'array0036: ok + op not (nok)', # 'schema' => [ # 'array', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:array) array0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:array) array0036: ok + op not (nok) # { # 'input' => [], # 'name' => 'array0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'array', # 'is', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:array) array0037: .err_level=error (clause=is, ok) # { # 'input' => [ # 0 # ], # 'name' => 'array0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'array', # 'is', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:array) array0038: .err_level=error (clause=is, nok) # { # 'input' => [], # 'name' => 'array0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'array', # 'is', # [], # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:array) array0039: .err_level=warn (clause=is, ok) # { # 'input' => [ # 0 # ], # 'name' => 'array0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'array*', # 'is', # [], # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:array', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:array) array0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:array) array0040: .err_level=warn (clause=is, nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0041: is: must accept same value', # 'schema' => [ # 'array', # 'is', # [ # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:array) array0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:array) array0041: is: must accept same value # { # 'input' => [ # 1 # ], # 'name' => 'array0042: is: must reject different value', # 'schema' => [ # 'array', # 'is', # [ # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:array) array0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:array) array0042: is: must reject different value # { # 'input' => [ # 1 # ], # 'name' => 'array0043: !is (nok)', # 'schema' => [ # 'array', # '!is', # [ # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:array) array0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:array) array0043: !is (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0044: !is (ok)', # 'schema' => [ # 'array', # '!is', # [ # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:array) array0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:array) array0044: !is (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0045: is.op=not (nok)', # 'schema' => [ # 'array', # 'is', # [ # 1 # ], # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:array) array0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:array) array0045: is.op=not (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0046: is.op=not (ok)', # 'schema' => [ # 'array', # 'is', # [ # 2 # ], # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:array) array0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:array) array0046: is.op=not (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0047: is& (no items)', # 'schema' => [ # 'array', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0047: is& (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0048: is& (ok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 1 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0048: is& (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0049: is& (nok + ok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 2 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0050: is& (ok + nok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0051: is& (nok + nok)', # 'schema' => [ # 'array', # 'is&', # [ # [ # 2 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:array) array0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:array) array0051: is& (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0052: is.op=and (no items)', # 'schema' => [ # 'array', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:array) array0052: is.op=and (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0053: is.op=and (ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 1 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:array) array0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0054: is.op=and (nok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 1 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:array) array0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0055: is.op=and (ok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:array) array0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0056: is.op=and (nok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 2 # ] # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:array) array0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:array) array0056: is.op=and (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0057: is| (no items)', # 'schema' => [ # 'array', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0057: is| (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0058: is| (ok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 1 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0058: is| (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0059: is| (nok + ok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 2 # ], # [ # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0059: is| (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0060: is| (ok + nok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0061: is| (nok + nok)', # 'schema' => [ # 'array', # 'is|', # [ # [ # 2 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:array) array0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:array) array0061: is| (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0062: is.op=or (no items)', # 'schema' => [ # 'array', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:array) array0062: is.op=or (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0063: is.op=or (ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 1 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:array) array0063: is.op=or (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0064: is.op=or (nok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 1 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:array) array0064: is.op=or (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0065: is.op=or (ok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:array) array0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0066: is.op=or (nok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 2 # ] # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:array) array0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:array) array0066: is.op=or (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0067: is.op=none (empty items)', # 'schema' => [ # 'array', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:array) array0067: is.op=none (empty items) # { # 'input' => [ # 1 # ], # 'name' => 'array0068: is.op=none (nok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 2 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:array) array0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0069: is.op=none (nok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 2 # ], # [ # 1 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:array) array0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0070: is.op=none (ok + nok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:array) array0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0071: is.op=none (ok + ok)', # 'schema' => [ # 'array', # 'is', # [ # [ # 1 # ], # [ # 1 # ] # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:array) array0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:array) array0071: is.op=none (ok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0072: in: must accept valid choices', # 'schema' => [ # 'array', # 'in', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:array) array0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:array) array0072: in: must accept valid choices # { # 'input' => [ # 1 # ], # 'name' => 'array0073: in: must reject empty choices', # 'schema' => [ # 'array', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:array) array0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:array) array0073: in: must reject empty choices # { # 'input' => [ # 1 # ], # 'name' => 'array0074: !in (nok)', # 'schema' => [ # 'array', # '!in', # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:array) array0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:array) array0074: !in (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0075: !in (ok)', # 'schema' => [ # 'array', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:array) array0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:array) array0075: !in (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0076: in.op=not (nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # 1 # ], # [ # 2 # ] # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:array) array0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:array) array0076: in.op=not (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0077: in.op=not (ok)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:array) array0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:array) array0077: in.op=not (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0078: in& (no items)', # 'schema' => [ # 'array', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0078: in& (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0079: in& (ok)', # 'schema' => [ # 'array', # 'in&', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0079: in& (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0080: in& (nok + ok)', # 'schema' => [ # 'array', # 'in&', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0081: in& (ok + nok)', # 'schema' => [ # 'array', # 'in&', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0082: in& (nok + nok)', # 'schema' => [ # 'array', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:array) array0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:array) array0082: in& (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0083: in.op=and (no items)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:array) array0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:array) array0083: in.op=and (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0084: in.op=and (ok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:array) array0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0085: in.op=and (nok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:array) array0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0086: in.op=and (ok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:array) array0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0087: in.op=and (nok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:array) array0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:array) array0087: in.op=and (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0088: in| (no items)', # 'schema' => [ # 'array', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0088: in| (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0089: in| (ok)', # 'schema' => [ # 'array', # 'in|', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0089: in| (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0090: in| (nok + ok)', # 'schema' => [ # 'array', # 'in|', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0090: in| (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0091: in| (ok + nok)', # 'schema' => [ # 'array', # 'in|', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0092: in| (nok + nok)', # 'schema' => [ # 'array', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:array) array0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:array) array0092: in| (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0093: in.op=or (no items)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:array) array0093: in.op=or (no items) # { # 'input' => [ # 1 # ], # 'name' => 'array0094: in.op=or (ok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:array) array0094: in.op=or (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0095: in.op=or (nok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:array) array0095: in.op=or (nok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0096: in.op=or (ok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:array) array0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0097: in.op=or (nok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:array) array0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:array) array0097: in.op=or (nok + nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0098: in.op=none (empty items)', # 'schema' => [ # 'array', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:array) array0098: in.op=none (empty items) # { # 'input' => [ # 1 # ], # 'name' => 'array0099: in.op=none (nok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:array) array0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0100: in.op=none (nok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:array) array0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0101: in.op=none (ok + nok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:array) array0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => [ # 1 # ], # 'name' => 'array0102: in.op=none (ok + ok)', # 'schema' => [ # 'array', # 'in', # [ # [ # [ # 1 # ], # [ # 2 # ] # ], # [ # [ # 1 # ], # [ # 2 # ] # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:array) array0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:array) array0102: in.op=none (ok + ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0103: len (ok)', # 'schema' => [ # 'array', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:array) array0103: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:len, type, type:array) array0103: len (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0104: len (nok)', # 'schema' => [ # 'array', # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:array) array0104: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:len, type, type:array) array0104: len (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0105: min_len (ok)', # 'schema' => [ # 'array', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:array) array0105: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min_len, type, type:array) array0105: min_len (ok) # { # 'input' => [ # 1 # ], # 'name' => 'array0106: min_len (nok)', # 'schema' => [ # 'array', # 'min_len', # 2 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:array) array0106: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min_len, type, type:array) array0106: min_len (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0107: max_len (ok)', # 'schema' => [ # 'array', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:array) array0107: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:max_len, type, type:array) array0107: max_len (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0108: max_len (nok)', # 'schema' => [ # 'array', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:array) array0108: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:max_len, type, type:array) array0108: max_len (nok) # { # 'input' => [ # 1 # ], # 'name' => 'array0109: len_between (ok)', # 'schema' => [ # 'array', # 'len_between', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:array) array0109: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:len_between, type, type:array) array0109: len_between (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0110: len_between (nok)', # 'schema' => [ # 'array', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:array) array0110: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:len_between, type, type:array) array0110: len_between (nok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0111: each_index (ok)', # 'schema' => [ # 'array', # 'each_index', # [ # 'int', # 'max', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:array) array0111: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:each_index, type, type:array) array0111: each_index (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0112: each_index (nok)', # 'schema' => [ # 'array', # 'each_index', # [ # 'int', # 'xmax', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:array) array0112: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:each_index, type, type:array) array0112: each_index (nok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0113: each_elem (ok)', # 'schema' => [ # 'array', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:array) array0113: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:each_elem, type, type:array) array0113: each_elem (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0114: each_elem (nok)', # 'schema' => [ # 'array', # 'each_elem', # 'int' # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:array) array0114: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:each_elem, type, type:array) array0114: each_elem (nok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0121: elems (ok)', # 'schema' => [ # 'array', # 'elems', # [ # 'int', # 'float' # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0121: elems (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:elems, type, type:array) array0121: elems (ok) # { # 'input' => [ # 1, # '1.2' # ], # 'name' => 'array0122: elems (nok)', # 'schema' => [ # 'array', # 'elems', # [ # 'int', # 'int' # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 0 # } # Subtest: (tags=clause:elems, type, type:array) array0122: elems (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:elems, type, type:array) array0122: elems (nok) # { # 'invalid_inputs' => [ # [], # [ # 3 # ] # ], # 'name' => 'array0123: has', # 'schema' => [ # 'array', # 'has', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has' # ], # 'valid_inputs' => [ # [ # 1, # 2, # 3 # ], # [ # 1, # 3 # ] # ] # } # Subtest: (tags=clause:has, type, type:array) array0123: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 117 - (tags=clause:has, type, type:array) array0123: has # { # 'invalid_inputs' => [ # [ # 1, # 2, # 3 # ], # [ # 1, # 3 # ] # ], # 'name' => 'array0124: has + op.not', # 'schema' => [ # 'array', # '!has', # 1 # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # [], # [ # 3 # ] # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:array) array0124: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 118 - (tags=clause:has, op, op:not, opshortcut, type, type:array) array0124: has + op.not # { # 'invalid_inputs' => [ # [], # [ # 3 # ] # ], # 'name' => 'array0125: has + op.or', # 'schema' => [ # 'array', # 'has|', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # [ # 1, # 2, # 3 # ], # [ # 1, # 3 # ] # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:array) array0125: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 119 - (tags=clause:has, op, op:or, opshortcut, type, type:array) array0125: has + op.or # { # 'invalid_inputs' => [ # [ # 1, # 3 # ], # [], # [ # 3 # ] # ], # 'name' => 'array0126: has + op.and', # 'schema' => [ # 'array', # 'has&', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # [ # 1, # 2, # 3 # ] # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:array) array0126: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - validator (rt=full) returns hash 1..6 ok 120 - (tags=clause:has, op, op:and, opshortcut, type, type:array) array0126: has + op.and # { # 'input' => [ # undef, # 1 # ], # 'name' => 'array0130: elems (nok, first elem required)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 0 # } # Subtest: (tags=clause:elems, type, type:array) array0130: elems (nok, first elem required) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:elems, type, type:array) array0130: elems (nok, first elem required) # { # 'input' => [ # 1 # ], # 'name' => 'array0131: elems (ok, missing elem set to undef)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0131: elems (ok, missing elem set to undef) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:elems, type, type:array) array0131: elems (ok, missing elem set to undef) # { # 'input' => [ # 1, # undef # ], # 'name' => 'array0132: elems (ok, second elem optional)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0132: elems (ok, second elem optional) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:elems, type, type:array) array0132: elems (ok, second elem optional) # { # 'input' => [ # 1, # '1.1' # ], # 'name' => 'array0133: elems (ok 2)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0133: elems (ok 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:elems, type, type:array) array0133: elems (ok 2) # { # 'input' => [ # 1, # '1.1', # undef # ], # 'name' => 'array0134: elems (ok, extra elems ignored)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0134: elems (ok, extra elems ignored) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:elems, type, type:array) array0134: elems (ok, extra elems ignored) # { # 'input' => [ # 1, # '1.1', # 'foo' # ], # 'name' => 'array0135: elems (ok, extra elems ignored 2)', # 'schema' => [ # 'array', # { # 'elems' => [ # 'int*', # [ # 'float', # 'default', # 2 # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0135: elems (ok, extra elems ignored 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:elems, type, type:array) array0135: elems (ok, extra elems ignored 2) # { # 'input' => [ # 1 # ], # 'name' => 'array0136: elems (ok, create_default=0)', # 'output' => [ # 1 # ], # 'schema' => [ # 'array', # { # 'elems' => [ # 'int', # [ # 'int', # 'default', # 2 # ] # ], # 'elems.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0136: elems (ok, create_default=0) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 127 - (tags=clause:elems, type, type:array) array0136: elems (ok, create_default=0) # { # 'input' => [ # 1, # undef # ], # 'name' => 'array0137: elems (ok 2, create_default=0)', # 'output' => [ # 1, # 2 # ], # 'schema' => [ # 'array', # { # 'elems' => [ # 'int', # [ # 'int', # 'default', # 2 # ] # ], # 'elems.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:array', # 'clause:elems' # ], # 'valid' => 1 # } # Subtest: (tags=clause:elems, type, type:array) array0137: elems (ok 2, create_default=0) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 128 - (tags=clause:elems, type, type:array) array0137: elems (ok 2, create_default=0) ok 129 1..129 ok 5 - 10-type-array.json # Subtest: 10-type-bool.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => 0, # 'name' => 'bool0001: type check: must accept 0', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:bool) bool0001: type check: must accept 0 # { # 'input' => 1, # 'name' => 'bool0002: type check: must accept 1', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0002: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:bool) bool0002: type check: must accept 1 # { # 'input' => [], # 'name' => 'bool0003: type check: must reject []', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:bool) bool0003: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:bool) bool0003: type check: must reject [] # { # 'input' => {}, # 'name' => 'bool0004: type check: must reject {}', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:bool) bool0004: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:bool) bool0004: type check: must reject {} # { # 'input' => undef, # 'name' => 'bool0005: must accept undefined value', # 'schema' => 'bool', # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0005: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:bool) bool0005: must accept undefined value # { # 'input' => undef, # 'name' => 'bool0006: defhash_v', # 'schema' => [ # 'bool', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:bool) bool0006: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=clause:defhash_v, type, type:bool) bool0006: defhash_v # { # 'input' => undef, # 'name' => 'bool0007: v', # 'schema' => [ # 'bool', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:bool) bool0007: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=clause:v, type, type:bool) bool0007: v # { # 'input' => undef, # 'name' => 'bool0008: c', # 'schema' => [ # 'bool', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:bool) bool0008: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:c, type, type:bool) bool0008: c # { # 'input' => undef, # 'name' => 'bool0009: default_lang', # 'schema' => [ # 'bool', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:bool) bool0009: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:default_lang, type, type:bool) bool0009: default_lang # { # 'input' => undef, # 'name' => 'bool0010: name', # 'schema' => [ # 'bool', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:bool) bool0010: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:name, type, type:bool) bool0010: name # { # 'input' => undef, # 'name' => 'bool0011: summary', # 'schema' => [ # 'bool', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:bool) bool0011: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:summary, type, type:bool) bool0011: summary # { # 'input' => undef, # 'name' => 'bool0012: description', # 'schema' => [ # 'bool', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:bool) bool0012: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:description, type, type:bool) bool0012: description # { # 'input' => undef, # 'name' => 'bool0013: tags', # 'schema' => [ # 'bool', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:bool) bool0013: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:tags, type, type:bool) bool0013: tags # { # 'input' => undef, # 'name' => 'bool0014: req=0 must accept undefined value', # 'schema' => [ # 'bool', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:bool) bool0014: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:req, type, type:bool) bool0014: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'bool0015: req=1 must reject undefined value', # 'schema' => [ # 'bool', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:bool) bool0015: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:req, type, type:bool) bool0015: req=1 must reject undefined value # { # 'input' => 1, # 'name' => 'bool0016: forbidden=0 must accept defined value', # 'schema' => [ # 'bool', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:bool) bool0016: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:forbidden, type, type:bool) bool0016: forbidden=0 must accept defined value # { # 'input' => 1, # 'name' => 'bool0017: forbidden=1 must reject defined value', # 'schema' => [ # 'bool', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:bool) bool0017: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:forbidden, type, type:bool) bool0017: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'bool0018: default: must accept valid default 1', # 'schema' => [ # 'bool*', # 'default', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:bool) bool0018: default: must accept valid default 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:default, type, type:bool) bool0018: default: must accept valid default 1 # { # 'input' => undef, # 'name' => 'bool0019: default: must reject invalid default []', # 'schema' => [ # 'bool*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:bool) bool0019: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:default, type, type:bool) bool0019: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 1, # 'name' => 'bool0020: clause (dies, unknown clause)', # 'schema' => [ # 'bool*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:bool) bool0020: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 20 - (tags=clause:clause, type, type:bool) bool0020: clause (dies, unknown clause) # { # 'dies' => 1, # 'input' => 1, # 'name' => 'bool0021: clset (dies, unknown clause)', # 'schema' => [ # 'bool*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:bool) bool0021: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 21 - (tags=clause:clset, type, type:bool) bool0021: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 1, # 'name' => 'bool0022: clset (dies, unknown attr)', # 'schema' => [ # 'bool*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:bool) bool0022: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 22 - (tags=clause:clset, type, type:bool) bool0022: clset (dies, unknown attr) # { # 'input' => 1, # 'name' => 'bool0023: clset (empty = ok)', # 'schema' => [ # 'bool*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0023: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=type, type:bool) bool0023: clset (empty = ok) # { # 'input' => 1, # 'name' => 'bool0024: clset (ignored clause/attr = ok)', # 'schema' => [ # 'bool*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:bool) bool0024: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clset, type, type:bool) bool0024: clset (ignored clause/attr = ok) # { # 'input' => undef, # 'name' => 'bool0025: ok', # 'schema' => [ # 'bool', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:bool) bool0025: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:ok, type, type:bool) bool0025: ok # { # 'input' => undef, # 'name' => 'bool0026: ok + op not (nok)', # 'schema' => [ # 'bool', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:bool) bool0026: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:ok, op, op:not, type, type:bool) bool0026: ok + op not (nok) # { # 'input' => 1, # 'name' => 'bool0027: .err_level=error (clause=is, ok)', # 'schema' => [ # 'bool', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0027: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 27 - (tags=attr, attr:err_level, type, type:bool) bool0027: .err_level=error (clause=is, ok) # { # 'input' => 0, # 'name' => 'bool0028: .err_level=error (clause=is, nok)', # 'schema' => [ # 'bool', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0028: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=attr, attr:err_level, type, type:bool) bool0028: .err_level=error (clause=is, nok) # { # 'input' => 1, # 'name' => 'bool0029: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'bool', # 'is', # 1, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0029: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=attr, attr:err_level, type, type:bool) bool0029: .err_level=warn (clause=is, ok) # { # 'input' => 0, # 'name' => 'bool0030: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'bool*', # 'is', # 1, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:bool', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:bool) bool0030: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=attr, attr:err_level, type, type:bool) bool0030: .err_level=warn (clause=is, nok) # { # 'input' => 0, # 'name' => 'bool0031: is: must accept same value', # 'schema' => [ # 'bool', # 'is', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:bool) bool0031: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:is, type, type:bool) bool0031: is: must accept same value # { # 'input' => 0, # 'name' => 'bool0032: is: must reject different value', # 'schema' => [ # 'bool', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:bool) bool0032: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:is, type, type:bool) bool0032: is: must reject different value # { # 'input' => 0, # 'name' => 'bool0033: !is (nok)', # 'schema' => [ # 'bool', # '!is', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0033: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0033: !is (nok) # { # 'input' => 0, # 'name' => 'bool0034: !is (ok)', # 'schema' => [ # 'bool', # '!is', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0034: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:is, op, op:not, opshortcut, type, type:bool) bool0034: !is (ok) # { # 'input' => 0, # 'name' => 'bool0035: is.op=not (nok)', # 'schema' => [ # 'bool', # 'is', # 0, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:bool) bool0035: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:is, op, op:not, type, type:bool) bool0035: is.op=not (nok) # { # 'input' => 0, # 'name' => 'bool0036: is.op=not (ok)', # 'schema' => [ # 'bool', # 'is', # 1, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:bool) bool0036: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:is, op, op:not, type, type:bool) bool0036: is.op=not (ok) # { # 'input' => 0, # 'name' => 'bool0037: is& (no items)', # 'schema' => [ # 'bool', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0037: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0037: is& (no items) # { # 'input' => 0, # 'name' => 'bool0038: is& (ok)', # 'schema' => [ # 'bool', # 'is&', # [ # 0, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0038: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0038: is& (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0039: is& (nok + ok)', # 'schema' => [ # 'bool', # 'is&', # [ # 1, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0039: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0039: is& (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0040: is& (ok + nok)', # 'schema' => [ # 'bool', # 'is&', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0040: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0040: is& (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0041: is& (nok + nok)', # 'schema' => [ # 'bool', # 'is&', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0041: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, op, op:and, opshortcut, type, type:bool) bool0041: is& (nok + nok) # { # 'input' => 0, # 'name' => 'bool0042: is.op=and (no items)', # 'schema' => [ # 'bool', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0042: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=type, type:bool) bool0042: is.op=and (no items) # { # 'input' => 0, # 'name' => 'bool0043: is.op=and (ok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 0 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0043: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:and, type, type:bool) bool0043: is.op=and (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0044: is.op=and (nok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 0 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0044: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:and, type, type:bool) bool0044: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0045: is.op=and (ok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0045: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:and, type, type:bool) bool0045: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0046: is.op=and (nok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:bool) bool0046: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:and, type, type:bool) bool0046: is.op=and (nok + nok) # { # 'input' => 0, # 'name' => 'bool0047: is| (no items)', # 'schema' => [ # 'bool', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0047: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0047: is| (no items) # { # 'input' => 0, # 'name' => 'bool0048: is| (ok)', # 'schema' => [ # 'bool', # 'is|', # [ # 0, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0048: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0048: is| (ok) # { # 'input' => 0, # 'name' => 'bool0049: is| (nok + ok)', # 'schema' => [ # 'bool', # 'is|', # [ # 1, # 0 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0049: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0049: is| (nok + ok) # { # 'input' => 0, # 'name' => 'bool0050: is| (ok + nok)', # 'schema' => [ # 'bool', # 'is|', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0050: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0050: is| (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0051: is| (nok + nok)', # 'schema' => [ # 'bool', # 'is|', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0051: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:or, opshortcut, type, type:bool) bool0051: is| (nok + nok) # { # 'input' => 0, # 'name' => 'bool0052: is.op=or (no items)', # 'schema' => [ # 'bool', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0052: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:or, type, type:bool) bool0052: is.op=or (no items) # { # 'input' => 0, # 'name' => 'bool0053: is.op=or (ok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 0 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0053: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:or, type, type:bool) bool0053: is.op=or (ok) # { # 'input' => 0, # 'name' => 'bool0054: is.op=or (nok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 0 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0054: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:or, type, type:bool) bool0054: is.op=or (nok + ok) # { # 'input' => 0, # 'name' => 'bool0055: is.op=or (ok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0055: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:or, type, type:bool) bool0055: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0056: is.op=or (nok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:bool) bool0056: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:or, type, type:bool) bool0056: is.op=or (nok + nok) # { # 'input' => 0, # 'name' => 'bool0057: is.op=none (empty items)', # 'schema' => [ # 'bool', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0057: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:none, type, type:bool) bool0057: is.op=none (empty items) # { # 'input' => 0, # 'name' => 'bool0058: is.op=none (nok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0058: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:none, type, type:bool) bool0058: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0059: is.op=none (nok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 1, # 0 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0059: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:none, type, type:bool) bool0059: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0060: is.op=none (ok + nok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0060: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:none, type, type:bool) bool0060: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0061: is.op=none (ok + ok)', # 'schema' => [ # 'bool', # 'is', # [ # 0, # 0 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:bool) bool0061: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:none, type, type:bool) bool0061: is.op=none (ok + ok) # { # 'input' => 0, # 'name' => 'bool0062: in: must accept valid choices', # 'schema' => [ # 'bool', # 'in', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:bool) bool0062: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:in, type, type:bool) bool0062: in: must accept valid choices # { # 'input' => 0, # 'name' => 'bool0063: in: must reject empty choices', # 'schema' => [ # 'bool', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:bool) bool0063: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:in, type, type:bool) bool0063: in: must reject empty choices # { # 'input' => 0, # 'name' => 'bool0064: !in (nok)', # 'schema' => [ # 'bool', # '!in', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0064: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0064: !in (nok) # { # 'input' => 0, # 'name' => 'bool0065: !in (ok)', # 'schema' => [ # 'bool', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0065: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:in, op, op:not, opshortcut, type, type:bool) bool0065: !in (ok) # { # 'input' => 0, # 'name' => 'bool0066: in.op=not (nok)', # 'schema' => [ # 'bool', # 'in', # [ # 0, # 1 # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:bool) bool0066: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:in, op, op:not, type, type:bool) bool0066: in.op=not (nok) # { # 'input' => 0, # 'name' => 'bool0067: in.op=not (ok)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:bool) bool0067: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:in, op, op:not, type, type:bool) bool0067: in.op=not (ok) # { # 'input' => 0, # 'name' => 'bool0068: in& (no items)', # 'schema' => [ # 'bool', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0068: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0068: in& (no items) # { # 'input' => 0, # 'name' => 'bool0069: in& (ok)', # 'schema' => [ # 'bool', # 'in&', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0069: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0069: in& (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0070: in& (nok + ok)', # 'schema' => [ # 'bool', # 'in&', # [ # [], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0070: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0070: in& (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0071: in& (ok + nok)', # 'schema' => [ # 'bool', # 'in&', # [ # [ # 0, # 1 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0071: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0071: in& (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0072: in& (nok + nok)', # 'schema' => [ # 'bool', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0072: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, op, op:and, opshortcut, type, type:bool) bool0072: in& (nok + nok) # { # 'input' => 0, # 'name' => 'bool0073: in.op=and (no items)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0073: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=type, type:bool) bool0073: in.op=and (no items) # { # 'input' => 0, # 'name' => 'bool0074: in.op=and (ok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0074: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:and, type, type:bool) bool0074: in.op=and (ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0075: in.op=and (nok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [ # 0, # 1 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0075: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:and, type, type:bool) bool0075: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0076: in.op=and (ok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0076: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:and, type, type:bool) bool0076: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0077: in.op=and (nok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:bool) bool0077: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:and, type, type:bool) bool0077: in.op=and (nok + nok) # { # 'input' => 0, # 'name' => 'bool0078: in| (no items)', # 'schema' => [ # 'bool', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0078: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0078: in| (no items) # { # 'input' => 0, # 'name' => 'bool0079: in| (ok)', # 'schema' => [ # 'bool', # 'in|', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0079: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0079: in| (ok) # { # 'input' => 0, # 'name' => 'bool0080: in| (nok + ok)', # 'schema' => [ # 'bool', # 'in|', # [ # [], # [ # 0, # 1 # ] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0080: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0080: in| (nok + ok) # { # 'input' => 0, # 'name' => 'bool0081: in| (ok + nok)', # 'schema' => [ # 'bool', # 'in|', # [ # [ # 0, # 1 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0081: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0081: in| (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0082: in| (nok + nok)', # 'schema' => [ # 'bool', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0082: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:or, opshortcut, type, type:bool) bool0082: in| (nok + nok) # { # 'input' => 0, # 'name' => 'bool0083: in.op=or (no items)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0083: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:or, type, type:bool) bool0083: in.op=or (no items) # { # 'input' => 0, # 'name' => 'bool0084: in.op=or (ok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0084: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:or, type, type:bool) bool0084: in.op=or (ok) # { # 'input' => 0, # 'name' => 'bool0085: in.op=or (nok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [ # 0, # 1 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0085: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:or, type, type:bool) bool0085: in.op=or (nok + ok) # { # 'input' => 0, # 'name' => 'bool0086: in.op=or (ok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0086: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:or, type, type:bool) bool0086: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0087: in.op=or (nok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:bool) bool0087: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:or, type, type:bool) bool0087: in.op=or (nok + nok) # { # 'input' => 0, # 'name' => 'bool0088: in.op=none (empty items)', # 'schema' => [ # 'bool', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0088: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:none, type, type:bool) bool0088: in.op=none (empty items) # { # 'input' => 0, # 'name' => 'bool0089: in.op=none (nok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0089: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:none, type, type:bool) bool0089: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0090: in.op=none (nok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [], # [ # 0, # 1 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0090: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:none, type, type:bool) bool0090: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0091: in.op=none (ok + nok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0091: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:none, type, type:bool) bool0091: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 0, # 'name' => 'bool0092: in.op=none (ok + ok)', # 'schema' => [ # 'bool', # 'in', # [ # [ # 0, # 1 # ], # [ # 0, # 1 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:bool) bool0092: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:none, type, type:bool) bool0092: in.op=none (ok + ok) # { # 'input' => 1, # 'name' => 'bool0093: min: 1 0', # 'schema' => [ # 'bool', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:bool) bool0093: min: 1 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:min, type, type:bool) bool0093: min: 1 0 # { # 'input' => 1, # 'name' => 'bool0094: min: 1 1', # 'schema' => [ # 'bool', # 'min', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:bool) bool0094: min: 1 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:min, type, type:bool) bool0094: min: 1 1 # { # 'input' => 0, # 'name' => 'bool0095: min: 0 1 -> fail', # 'schema' => [ # 'bool', # 'min', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:bool) bool0095: min: 0 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:min, type, type:bool) bool0095: min: 0 1 -> fail # { # 'input' => 1, # 'name' => 'bool0096: xmin: 1 0', # 'schema' => [ # 'bool', # 'xmin', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:bool) bool0096: xmin: 1 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:xmin, type, type:bool) bool0096: xmin: 1 0 # { # 'input' => 1, # 'name' => 'bool0097: xmin: 1 1 -> fail', # 'schema' => [ # 'bool', # 'xmin', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:bool) bool0097: xmin: 1 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:xmin, type, type:bool) bool0097: xmin: 1 1 -> fail # { # 'input' => 0, # 'name' => 'bool0098: xmin: 0 1 -> fail', # 'schema' => [ # 'bool', # 'xmin', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:bool) bool0098: xmin: 0 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:xmin, type, type:bool) bool0098: xmin: 0 1 -> fail # { # 'input' => 1, # 'name' => 'bool0099: max: 1 0 -> fail', # 'schema' => [ # 'bool', # 'max', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:bool) bool0099: max: 1 0 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:max, type, type:bool) bool0099: max: 1 0 -> fail # { # 'input' => 1, # 'name' => 'bool0100: max: 1 1', # 'schema' => [ # 'bool', # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:bool) bool0100: max: 1 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:max, type, type:bool) bool0100: max: 1 1 # { # 'input' => 0, # 'name' => 'bool0101: max: 0 1', # 'schema' => [ # 'bool', # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:bool) bool0101: max: 0 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:max, type, type:bool) bool0101: max: 0 1 # { # 'input' => 1, # 'name' => 'bool0102: xmax: 1 0 -> fail', # 'schema' => [ # 'bool', # 'xmax', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:bool) bool0102: xmax: 1 0 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:xmax, type, type:bool) bool0102: xmax: 1 0 -> fail # { # 'input' => 1, # 'name' => 'bool0103: xmax: 1 1 -> fail', # 'schema' => [ # 'bool', # 'xmax', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:bool) bool0103: xmax: 1 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:xmax, type, type:bool) bool0103: xmax: 1 1 -> fail # { # 'input' => 0, # 'name' => 'bool0104: xmax: 0 1', # 'schema' => [ # 'bool', # 'xmax', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:bool) bool0104: xmax: 0 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:xmax, type, type:bool) bool0104: xmax: 0 1 # { # 'input' => 1, # 'name' => 'bool0105: between: 1 0 & 1', # 'schema' => [ # 'bool', # 'between', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:bool) bool0105: between: 1 0 & 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:between, type, type:bool) bool0105: between: 1 0 & 1 # { # 'input' => 1, # 'name' => 'bool0106: between: 1 0 & 1', # 'schema' => [ # 'bool', # 'between', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:bool) bool0106: between: 1 0 & 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:between, type, type:bool) bool0106: between: 1 0 & 1 # { # 'input' => 1, # 'name' => 'bool0107: between: 1 1 & 1', # 'schema' => [ # 'bool', # 'between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:bool) bool0107: between: 1 1 & 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:between, type, type:bool) bool0107: between: 1 1 & 1 # { # 'input' => 0, # 'name' => 'bool0108: between: 0 1 & 1 -> fail', # 'schema' => [ # 'bool', # 'between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:bool) bool0108: between: 0 1 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:between, type, type:bool) bool0108: between: 0 1 & 1 -> fail # { # 'input' => '1', # 'name' => 'bool0109: xbetween: 1 0 & 1', # 'schema' => [ # 'bool', # 'xbetween', # [ # 0, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0109: xbetween: 1 0 & 1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xbetween, type, type:bool) bool0109: xbetween: 1 0 & 1 # { # 'input' => '1', # 'name' => 'bool0110: xbetween: 1 0 & 1 -> fail', # 'schema' => [ # 'bool', # 'xbetween', # [ # 0, # '1' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0110: xbetween: 1 0 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:xbetween, type, type:bool) bool0110: xbetween: 1 0 & 1 -> fail # { # 'input' => '1', # 'name' => 'bool0111: xbetween: 1 1 & 1 -> fail', # 'schema' => [ # 'bool', # 'xbetween', # [ # '1', # '1' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0111: xbetween: 1 1 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:xbetween, type, type:bool) bool0111: xbetween: 1 1 & 1 -> fail # { # 'input' => 0, # 'name' => 'bool0112: xbetween: 0 1 & 1 -> fail', # 'schema' => [ # 'bool', # 'xbetween', # [ # '1', # '1' # ] # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:bool) bool0112: xbetween: 0 1 & 1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xbetween, type, type:bool) bool0112: xbetween: 0 1 & 1 -> fail # { # 'input' => 0, # 'name' => 'bool0122: between.op=and (no items)', # 'schema' => [ # 'bool', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:bool' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:bool) bool0122: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=type, type:bool) bool0122: between.op=and (no items) # { # 'input' => 1, # 'name' => 'bool0142: is_true: 1 (ok)', # 'schema' => [ # 'bool', # 'is_true', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0142: is_true: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:is_true, type, type:bool) bool0142: is_true: 1 (ok) # { # 'input' => 0, # 'name' => 'bool0143: is_true: 1 (nok)', # 'schema' => [ # 'bool', # 'is_true', # 1 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0143: is_true: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:is_true, type, type:bool) bool0143: is_true: 1 (nok) # { # 'input' => 0, # 'name' => 'bool0144: is_true: 0 (ok)', # 'schema' => [ # 'bool', # 'is_true', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0144: is_true: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:is_true, type, type:bool) bool0144: is_true: 0 (ok) # { # 'input' => 1, # 'name' => 'bool0145: is_true: 0 (nok)', # 'schema' => [ # 'bool', # 'is_true', # 0 # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0145: is_true: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:is_true, type, type:bool) bool0145: is_true: 0 (nok) # { # 'input' => 0, # 'name' => 'bool0146: is_true: undef (ok 1)', # 'schema' => [ # 'bool', # 'is_true', # undef # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0146: is_true: undef (ok 1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:is_true, type, type:bool) bool0146: is_true: undef (ok 1) # { # 'input' => 1, # 'name' => 'bool0147: is_true: undef (ok 2)', # 'schema' => [ # 'bool', # 'is_true', # undef # ], # 'tags' => [ # 'type', # 'type:bool', # 'clause:is_true' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_true, type, type:bool) bool0147: is_true: undef (ok 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:is_true, type, type:bool) bool0147: is_true: undef (ok 2) ok 120 1..120 ok 6 - 10-type-bool.json # Subtest: 10-type-buf.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => 0, # 'name' => 'buf0001: type check: must accept 0', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:buf) buf0001: type check: must accept 0 # { # 'input' => '1.1', # 'name' => 'buf0002: type check: must accept 1.1', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0002: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:buf) buf0002: type check: must accept 1.1 # { # 'input' => '', # 'name' => 'buf0003: type check: must accept ', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0003: type check: must accept ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:buf) buf0003: type check: must accept # { # 'input' => 'str # ', # 'name' => 'buf0004: type check: must accept str # ', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0004: type check: must accept str ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:buf) buf0004: type check: must accept str # # { # 'input' => [], # 'name' => 'buf0005: type check: must reject []', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:buf) buf0005: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:buf) buf0005: type check: must reject [] # { # 'input' => {}, # 'name' => 'buf0006: type check: must reject {}', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:buf) buf0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:buf) buf0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'buf0007: must accept undefined value', # 'schema' => 'buf', # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:buf) buf0007: must accept undefined value # { # 'input' => undef, # 'name' => 'buf0008: defhash_v', # 'schema' => [ # 'buf', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:buf) buf0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:buf) buf0008: defhash_v # { # 'input' => undef, # 'name' => 'buf0009: v', # 'schema' => [ # 'buf', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:buf) buf0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:buf) buf0009: v # { # 'input' => undef, # 'name' => 'buf0010: c', # 'schema' => [ # 'buf', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:buf) buf0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:buf) buf0010: c # { # 'input' => undef, # 'name' => 'buf0011: default_lang', # 'schema' => [ # 'buf', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:buf) buf0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:buf) buf0011: default_lang # { # 'input' => undef, # 'name' => 'buf0012: name', # 'schema' => [ # 'buf', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:buf) buf0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:buf) buf0012: name # { # 'input' => undef, # 'name' => 'buf0013: summary', # 'schema' => [ # 'buf', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:buf) buf0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:buf) buf0013: summary # { # 'input' => undef, # 'name' => 'buf0014: description', # 'schema' => [ # 'buf', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:buf) buf0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:buf) buf0014: description # { # 'input' => undef, # 'name' => 'buf0015: tags', # 'schema' => [ # 'buf', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:buf) buf0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:buf) buf0015: tags # { # 'input' => undef, # 'name' => 'buf0016: req=0 must accept undefined value', # 'schema' => [ # 'buf', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:buf) buf0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:buf) buf0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'buf0017: req=1 must reject undefined value', # 'schema' => [ # 'buf', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:buf) buf0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:buf) buf0017: req=1 must reject undefined value # { # 'input' => 'a', # 'name' => 'buf0018: forbidden=0 must accept defined value', # 'schema' => [ # 'buf', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:buf) buf0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:buf) buf0018: forbidden=0 must accept defined value # { # 'input' => 'a', # 'name' => 'buf0019: forbidden=1 must reject defined value', # 'schema' => [ # 'buf', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:buf) buf0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:buf) buf0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'buf0020: default: must accept valid default a', # 'schema' => [ # 'buf*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:buf) buf0020: default: must accept valid default a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:buf) buf0020: default: must accept valid default a # { # 'input' => undef, # 'name' => 'buf0021: default: must reject invalid default []', # 'schema' => [ # 'buf*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:buf) buf0021: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:buf) buf0021: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0022: clause (dies, unknown clause)', # 'schema' => [ # 'buf*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:buf) buf0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:buf) buf0022: clause (dies, unknown clause) # { # 'input' => 'a', # 'name' => 'buf0023: clause (ok)', # 'schema' => [ # 'buf*', # 'clause', # [ # 'match', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:buf) buf0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:buf) buf0023: clause (ok) # { # 'input' => 'a', # 'name' => 'buf0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'buf*', # 'clause', # [ # 'match', # 'a' # ], # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:buf) buf0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:buf) buf0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0025: clause (nok)', # 'schema' => [ # 'buf*', # 'clause', # [ # 'match', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:buf) buf0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:buf) buf0025: clause (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0026: clset (dies, unknown clause)', # 'schema' => [ # 'buf*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:buf) buf0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:buf) buf0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0027: clset (dies, unknown attr)', # 'schema' => [ # 'buf*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:buf) buf0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:buf) buf0027: clset (dies, unknown attr) # { # 'input' => 'a', # 'name' => 'buf0028: clset (empty = ok)', # 'schema' => [ # 'buf*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:buf) buf0028: clset (empty = ok) # { # 'input' => 'a', # 'name' => 'buf0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'buf*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:buf) buf0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:buf) buf0029: clset (ignored clause/attr = ok) # { # 'input' => 'a', # 'name' => 'buf0030: clset (ok + ok = ok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 1, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:buf) buf0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:buf) buf0030: clset (ok + ok = ok) # { # 'input' => 'a', # 'name' => 'buf0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'buf*', # 'clset', # { # 'match' => 'a' # }, # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:buf) buf0031: clset (ok) + clause nok = nok # { # 'input' => 'a', # 'name' => 'buf0032: clset (ok + nok = nok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 2, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:buf) buf0032: clset (ok + nok = nok) # { # 'input' => 'a', # 'name' => 'buf0033: clset (nok + ok = nok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 1, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:buf) buf0033: clset (nok + ok = nok) # { # 'input' => 'a', # 'name' => 'buf0034: clset (nok + nok = nok)', # 'schema' => [ # 'buf*', # 'clset', # { # 'len' => 2, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:buf) buf0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:buf) buf0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'buf0035: ok', # 'schema' => [ # 'buf', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:buf) buf0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:buf) buf0035: ok # { # 'input' => undef, # 'name' => 'buf0036: ok + op not (nok)', # 'schema' => [ # 'buf', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:buf) buf0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:buf) buf0036: ok + op not (nok) # { # 'input' => 'a', # 'name' => 'buf0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'buf', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:buf) buf0037: .err_level=error (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'buf0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'buf', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:buf) buf0038: .err_level=error (clause=is, nok) # { # 'input' => 'a', # 'name' => 'buf0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'buf', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:buf) buf0039: .err_level=warn (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'buf0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'buf*', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:buf', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:buf) buf0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:buf) buf0040: .err_level=warn (clause=is, nok) # { # 'input' => 'a', # 'name' => 'buf0041: is: must accept same value', # 'schema' => [ # 'buf', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:buf) buf0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:buf) buf0041: is: must accept same value # { # 'input' => 'a', # 'name' => 'buf0042: is: must reject different value', # 'schema' => [ # 'buf', # 'is', # 'b' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:buf) buf0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:buf) buf0042: is: must reject different value # { # 'input' => 'a', # 'name' => 'buf0043: !is (nok)', # 'schema' => [ # 'buf', # '!is', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0043: !is (nok) # { # 'input' => 'a', # 'name' => 'buf0044: !is (ok)', # 'schema' => [ # 'buf', # '!is', # 'b' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:buf) buf0044: !is (ok) # { # 'input' => 'a', # 'name' => 'buf0045: is.op=not (nok)', # 'schema' => [ # 'buf', # 'is', # 'a', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:buf) buf0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:buf) buf0045: is.op=not (nok) # { # 'input' => 'a', # 'name' => 'buf0046: is.op=not (ok)', # 'schema' => [ # 'buf', # 'is', # 'b', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:buf) buf0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:buf) buf0046: is.op=not (ok) # { # 'input' => 'a', # 'name' => 'buf0047: is& (no items)', # 'schema' => [ # 'buf', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0047: is& (no items) # { # 'input' => 'a', # 'name' => 'buf0048: is& (ok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0048: is& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0049: is& (nok + ok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0050: is& (ok + nok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0051: is& (nok + nok)', # 'schema' => [ # 'buf', # 'is&', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:buf) buf0051: is& (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0052: is.op=and (no items)', # 'schema' => [ # 'buf', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:buf) buf0052: is.op=and (no items) # { # 'input' => 'a', # 'name' => 'buf0053: is.op=and (ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:buf) buf0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0054: is.op=and (nok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:buf) buf0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0055: is.op=and (ok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:buf) buf0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0056: is.op=and (nok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:buf) buf0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:buf) buf0056: is.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0057: is| (no items)', # 'schema' => [ # 'buf', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0057: is| (no items) # { # 'input' => 'a', # 'name' => 'buf0058: is| (ok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0058: is| (ok) # { # 'input' => 'a', # 'name' => 'buf0059: is| (nok + ok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0059: is| (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0060: is| (ok + nok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0061: is| (nok + nok)', # 'schema' => [ # 'buf', # 'is|', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:buf) buf0061: is| (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0062: is.op=or (no items)', # 'schema' => [ # 'buf', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:buf) buf0062: is.op=or (no items) # { # 'input' => 'a', # 'name' => 'buf0063: is.op=or (ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:buf) buf0063: is.op=or (ok) # { # 'input' => 'a', # 'name' => 'buf0064: is.op=or (nok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:buf) buf0064: is.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0065: is.op=or (ok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:buf) buf0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0066: is.op=or (nok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:buf) buf0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:buf) buf0066: is.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0067: is.op=none (empty items)', # 'schema' => [ # 'buf', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:buf) buf0067: is.op=none (empty items) # { # 'input' => 'a', # 'name' => 'buf0068: is.op=none (nok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:buf) buf0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0069: is.op=none (nok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:buf) buf0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0070: is.op=none (ok + nok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:buf) buf0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0071: is.op=none (ok + ok)', # 'schema' => [ # 'buf', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:buf) buf0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:buf) buf0071: is.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'buf0072: in: must accept valid choices', # 'schema' => [ # 'buf', # 'in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:buf) buf0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:buf) buf0072: in: must accept valid choices # { # 'input' => 'a', # 'name' => 'buf0073: in: must reject empty choices', # 'schema' => [ # 'buf', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:buf) buf0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:buf) buf0073: in: must reject empty choices # { # 'input' => 'a', # 'name' => 'buf0074: !in (nok)', # 'schema' => [ # 'buf', # '!in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0074: !in (nok) # { # 'input' => 'a', # 'name' => 'buf0075: !in (ok)', # 'schema' => [ # 'buf', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:buf) buf0075: !in (ok) # { # 'input' => 'a', # 'name' => 'buf0076: in.op=not (nok)', # 'schema' => [ # 'buf', # 'in', # [ # 'a', # 'b' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:buf) buf0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:buf) buf0076: in.op=not (nok) # { # 'input' => 'a', # 'name' => 'buf0077: in.op=not (ok)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:buf) buf0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:buf) buf0077: in.op=not (ok) # { # 'input' => 'a', # 'name' => 'buf0078: in& (no items)', # 'schema' => [ # 'buf', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0078: in& (no items) # { # 'input' => 'a', # 'name' => 'buf0079: in& (ok)', # 'schema' => [ # 'buf', # 'in&', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0079: in& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0080: in& (nok + ok)', # 'schema' => [ # 'buf', # 'in&', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0081: in& (ok + nok)', # 'schema' => [ # 'buf', # 'in&', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0082: in& (nok + nok)', # 'schema' => [ # 'buf', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:buf) buf0082: in& (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0083: in.op=and (no items)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:buf) buf0083: in.op=and (no items) # { # 'input' => 'a', # 'name' => 'buf0084: in.op=and (ok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:buf) buf0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0085: in.op=and (nok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:buf) buf0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0086: in.op=and (ok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:buf) buf0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0087: in.op=and (nok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:buf) buf0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:buf) buf0087: in.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0088: in| (no items)', # 'schema' => [ # 'buf', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0088: in| (no items) # { # 'input' => 'a', # 'name' => 'buf0089: in| (ok)', # 'schema' => [ # 'buf', # 'in|', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0089: in| (ok) # { # 'input' => 'a', # 'name' => 'buf0090: in| (nok + ok)', # 'schema' => [ # 'buf', # 'in|', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0090: in| (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0091: in| (ok + nok)', # 'schema' => [ # 'buf', # 'in|', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0092: in| (nok + nok)', # 'schema' => [ # 'buf', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:buf) buf0092: in| (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0093: in.op=or (no items)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:buf) buf0093: in.op=or (no items) # { # 'input' => 'a', # 'name' => 'buf0094: in.op=or (ok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:buf) buf0094: in.op=or (ok) # { # 'input' => 'a', # 'name' => 'buf0095: in.op=or (nok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:buf) buf0095: in.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'buf0096: in.op=or (ok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:buf) buf0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0097: in.op=or (nok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:buf) buf0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:buf) buf0097: in.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'buf0098: in.op=none (empty items)', # 'schema' => [ # 'buf', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:buf) buf0098: in.op=none (empty items) # { # 'input' => 'a', # 'name' => 'buf0099: in.op=none (nok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:buf) buf0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0100: in.op=none (nok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:buf) buf0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0101: in.op=none (ok + nok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:buf) buf0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'buf0102: in.op=none (ok + ok)', # 'schema' => [ # 'buf', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:buf) buf0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:buf) buf0102: in.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'buf0103: min: a ', # 'schema' => [ # 'buf', # 'min', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:buf) buf0103: min: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:min, type, type:buf) buf0103: min: a # { # 'input' => 'a', # 'name' => 'buf0104: min: a a', # 'schema' => [ # 'buf', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:buf) buf0104: min: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:buf) buf0104: min: a a # { # 'input' => '', # 'name' => 'buf0105: min: a -> fail', # 'schema' => [ # 'buf', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:buf) buf0105: min: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:buf) buf0105: min: a -> fail # { # 'input' => 'a', # 'name' => 'buf0106: xmin: a ', # 'schema' => [ # 'buf', # 'xmin', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:buf) buf0106: xmin: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:xmin, type, type:buf) buf0106: xmin: a # { # 'input' => 'a', # 'name' => 'buf0107: xmin: a a -> fail', # 'schema' => [ # 'buf', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:buf) buf0107: xmin: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:buf) buf0107: xmin: a a -> fail # { # 'input' => '', # 'name' => 'buf0108: xmin: a -> fail', # 'schema' => [ # 'buf', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:buf) buf0108: xmin: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:buf) buf0108: xmin: a -> fail # { # 'input' => 'a', # 'name' => 'buf0109: max: a -> fail', # 'schema' => [ # 'buf', # 'max', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:buf) buf0109: max: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:max, type, type:buf) buf0109: max: a -> fail # { # 'input' => 'a', # 'name' => 'buf0110: max: a a', # 'schema' => [ # 'buf', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:buf) buf0110: max: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:buf) buf0110: max: a a # { # 'input' => '', # 'name' => 'buf0111: max: a', # 'schema' => [ # 'buf', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:buf) buf0111: max: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:buf) buf0111: max: a # { # 'input' => 'a', # 'name' => 'buf0112: xmax: a -> fail', # 'schema' => [ # 'buf', # 'xmax', # '' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:buf) buf0112: xmax: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xmax, type, type:buf) buf0112: xmax: a -> fail # { # 'input' => 'a', # 'name' => 'buf0113: xmax: a a -> fail', # 'schema' => [ # 'buf', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:buf) buf0113: xmax: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:buf) buf0113: xmax: a a -> fail # { # 'input' => '', # 'name' => 'buf0114: xmax: a', # 'schema' => [ # 'buf', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:buf) buf0114: xmax: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:buf) buf0114: xmax: a # { # 'input' => 'a', # 'name' => 'buf0115: between: a & ab', # 'schema' => [ # 'buf', # 'between', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:buf) buf0115: between: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:between, type, type:buf) buf0115: between: a & ab # { # 'input' => 'a', # 'name' => 'buf0116: between: a & a', # 'schema' => [ # 'buf', # 'between', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:buf) buf0116: between: a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:buf) buf0116: between: a & a # { # 'input' => 'a', # 'name' => 'buf0117: between: a a & a', # 'schema' => [ # 'buf', # 'between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:buf) buf0117: between: a a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:buf) buf0117: between: a a & a # { # 'input' => '', # 'name' => 'buf0118: between: a & ab -> fail', # 'schema' => [ # 'buf', # 'between', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:buf) buf0118: between: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:buf) buf0118: between: a & ab -> fail # { # 'input' => 'a', # 'name' => 'buf0119: xbetween: a & ab', # 'schema' => [ # 'buf', # 'xbetween', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0119: xbetween: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:xbetween, type, type:buf) buf0119: xbetween: a & ab # { # 'input' => 'a', # 'name' => 'buf0120: xbetween: a & a -> fail', # 'schema' => [ # 'buf', # 'xbetween', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0120: xbetween: a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:buf) buf0120: xbetween: a & a -> fail # { # 'input' => 'a', # 'name' => 'buf0121: xbetween: a a & a -> fail', # 'schema' => [ # 'buf', # 'xbetween', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0121: xbetween: a a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:buf) buf0121: xbetween: a a & a -> fail # { # 'input' => '', # 'name' => 'buf0122: xbetween: a & ab -> fail', # 'schema' => [ # 'buf', # 'xbetween', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:buf) buf0122: xbetween: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:buf) buf0122: xbetween: a & ab -> fail # { # 'input' => '', # 'name' => 'buf0123: !between (nok)', # 'schema' => [ # 'buf', # '!between', # [ # '', # '' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0123: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0123: !between (nok) # { # 'input' => '', # 'name' => 'buf0124: !between (ok)', # 'schema' => [ # 'buf', # '!between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0124: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:buf) buf0124: !between (ok) # { # 'input' => '', # 'name' => 'buf0125: between.op=not (nok)', # 'schema' => [ # 'buf', # 'between', # [ # '', # '' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:buf) buf0125: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, type, type:buf) buf0125: between.op=not (nok) # { # 'input' => '', # 'name' => 'buf0126: between.op=not (ok)', # 'schema' => [ # 'buf', # 'between', # [ # 'a', # 'a' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:buf) buf0126: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:buf) buf0126: between.op=not (ok) # { # 'input' => '', # 'name' => 'buf0127: between& (no items)', # 'schema' => [ # 'buf', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0127: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0127: between& (no items) # { # 'input' => '', # 'name' => 'buf0128: between& (ok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0128: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0128: between& (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0129: between& (nok + ok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0129: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0129: between& (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0130: between& (ok + nok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0130: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0130: between& (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0131: between& (nok + nok)', # 'schema' => [ # 'buf', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0131: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:buf) buf0131: between& (nok + nok) # { # 'input' => '', # 'name' => 'buf0132: between.op=and (no items)', # 'schema' => [ # 'buf', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:buf) buf0132: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=type, type:buf) buf0132: between.op=and (no items) # { # 'input' => '', # 'name' => 'buf0133: between.op=and (ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0133: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, type, type:buf) buf0133: between.op=and (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0134: between.op=and (nok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0134: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:buf) buf0134: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0135: between.op=and (ok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0135: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:buf) buf0135: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0136: between.op=and (nok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:buf) buf0136: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:buf) buf0136: between.op=and (nok + nok) # { # 'input' => '', # 'name' => 'buf0137: between| (no items)', # 'schema' => [ # 'buf', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0137: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0137: between| (no items) # { # 'input' => '', # 'name' => 'buf0138: between| (ok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0138: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0138: between| (ok) # { # 'input' => '', # 'name' => 'buf0139: between| (nok + ok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0139: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0139: between| (nok + ok) # { # 'input' => '', # 'name' => 'buf0140: between| (ok + nok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0140: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0140: between| (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0141: between| (nok + nok)', # 'schema' => [ # 'buf', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0141: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:buf) buf0141: between| (nok + nok) # { # 'input' => '', # 'name' => 'buf0142: between.op=or (no items)', # 'schema' => [ # 'buf', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0142: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, type, type:buf) buf0142: between.op=or (no items) # { # 'input' => '', # 'name' => 'buf0143: between.op=or (ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0143: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:buf) buf0143: between.op=or (ok) # { # 'input' => '', # 'name' => 'buf0144: between.op=or (nok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0144: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:buf) buf0144: between.op=or (nok + ok) # { # 'input' => '', # 'name' => 'buf0145: between.op=or (ok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0145: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:buf) buf0145: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0146: between.op=or (nok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:buf) buf0146: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:buf) buf0146: between.op=or (nok + nok) # { # 'input' => '', # 'name' => 'buf0147: between.op=none (empty items)', # 'schema' => [ # 'buf', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0147: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:none, type, type:buf) buf0147: between.op=none (empty items) # { # 'input' => '', # 'name' => 'buf0148: between.op=none (nok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0148: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:buf) buf0148: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0149: between.op=none (nok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0149: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:buf) buf0149: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0150: between.op=none (ok + nok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0150: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:buf) buf0150: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'buf0151: between.op=none (ok + ok)', # 'schema' => [ # 'buf', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:buf) buf0151: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:buf) buf0151: between.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'buf0152: len (ok)', # 'schema' => [ # 'buf', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:buf) buf0152: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:len, type, type:buf) buf0152: len (ok) # { # 'input' => 'a', # 'name' => 'buf0153: len (nok)', # 'schema' => [ # 'buf', # 'len', # 3 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:buf) buf0153: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:len, type, type:buf) buf0153: len (nok) # { # 'input' => 'a', # 'name' => 'buf0154: min_len (ok)', # 'schema' => [ # 'buf', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:buf) buf0154: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:min_len, type, type:buf) buf0154: min_len (ok) # { # 'input' => 'a', # 'name' => 'buf0155: min_len (nok)', # 'schema' => [ # 'buf', # 'min_len', # 3 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:buf) buf0155: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:min_len, type, type:buf) buf0155: min_len (nok) # { # 'input' => 'a', # 'name' => 'buf0156: max_len (ok)', # 'schema' => [ # 'buf', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:buf) buf0156: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:max_len, type, type:buf) buf0156: max_len (ok) # { # 'input' => 'abc', # 'name' => 'buf0157: max_len (nok)', # 'schema' => [ # 'buf', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:buf) buf0157: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=clause:max_len, type, type:buf) buf0157: max_len (nok) # { # 'input' => 'a', # 'name' => 'buf0158: len_between (ok)', # 'schema' => [ # 'buf', # 'len_between', # [ # 1, # 3 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:buf) buf0158: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=clause:len_between, type, type:buf) buf0158: len_between (ok) # { # 'input' => 'abc', # 'name' => 'buf0159: len_between (nok)', # 'schema' => [ # 'buf', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:buf) buf0159: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=clause:len_between, type, type:buf) buf0159: len_between (nok) # { # 'input' => 'abc', # 'name' => 'buf0160: each_index (ok)', # 'schema' => [ # 'buf', # 'each_index', # [ # 'int', # 'max', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:buf) buf0160: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=clause:each_index, type, type:buf) buf0160: each_index (ok) # { # 'input' => 'abc', # 'name' => 'buf0161: each_index (nok)', # 'schema' => [ # 'buf', # 'each_index', # [ # 'int', # 'xmax', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:buf) buf0161: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=clause:each_index, type, type:buf) buf0161: each_index (nok) # { # 'input' => 'abc', # 'name' => 'buf0162: each_elem (ok)', # 'schema' => [ # 'buf', # 'each_elem', # 'buf' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:buf) buf0162: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=clause:each_elem, type, type:buf) buf0162: each_elem (ok) # { # 'input' => 'abc', # 'name' => 'buf0163: each_elem (nok)', # 'schema' => [ # 'buf', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:buf) buf0163: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=clause:each_elem, type, type:buf) buf0163: each_elem (nok) # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'buf0170: has', # 'schema' => [ # 'buf', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, type, type:buf) buf0170: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 164 - (tags=clause:has, type, type:buf) buf0170: has # { # 'invalid_inputs' => [ # 'abc', # 'ac' # ], # 'name' => 'buf0171: has + op.not', # 'schema' => [ # 'buf', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # '', # 'A', # 'c' # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:buf) buf0171: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - invalid input [0] ok 6 - invalid input [1] ok 7 - validator (rt=full) returns hash 1..7 ok 165 - (tags=clause:has, op, op:not, opshortcut, type, type:buf) buf0171: has + op.not # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'buf0172: has + op.or', # 'schema' => [ # 'buf', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:buf) buf0172: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 166 - (tags=clause:has, op, op:or, opshortcut, type, type:buf) buf0172: has + op.or # { # 'invalid_inputs' => [ # 'ac', # '', # 'A', # 'c' # ], # 'name' => 'buf0173: has + op.and', # 'schema' => [ # 'buf', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc' # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:buf) buf0173: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - invalid input [3] ok 7 - validator (rt=full) returns hash 1..7 ok 167 - (tags=clause:has, op, op:and, opshortcut, type, type:buf) buf0173: has + op.and # { # 'input' => 'a', # 'name' => 'buf0177: encoding: (ok)', # 'schema' => [ # 'buf', # 'encoding', # 'utf8' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:encoding' # ], # 'valid' => 1 # } # Subtest: (tags=clause:encoding, type, type:buf) buf0177: encoding: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=clause:encoding, type, type:buf) buf0177: encoding: (ok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0178: encoding: (dies, unknown encoding)', # 'schema' => [ # 'buf', # 'encoding', # 'foo' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:encoding' # ] # } # Subtest: (tags=clause:encoding, type, type:buf) buf0178: encoding: (dies, unknown encoding) ok 1 - compile error 1..1 ok 169 - (tags=clause:encoding, type, type:buf) buf0178: encoding: (dies, unknown encoding) # { # 'input' => 'a', # 'name' => 'buf0179: match: (ok)', # 'schema' => [ # 'buf', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:match' # ], # 'valid' => 1 # } # Subtest: (tags=clause:match, type, type:buf) buf0179: match: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=clause:match, type, type:buf) buf0179: match: (ok) # { # 'input' => 'A', # 'name' => 'buf0180: match: (nok)', # 'schema' => [ # 'buf', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:match' # ], # 'valid' => 0 # } # Subtest: (tags=clause:match, type, type:buf) buf0180: match: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=clause:match, type, type:buf) buf0180: match: (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'buf0181: match: (dies, invalid regex)', # 'schema' => [ # 'buf', # 'match', # '(' # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:match' # ] # } # Subtest: (tags=clause:match, type, type:buf) buf0181: match: (dies, invalid regex) ok 1 - compile error 1..1 ok 172 - (tags=clause:match, type, type:buf) buf0181: match: (dies, invalid regex) # { # 'input' => 'a', # 'name' => 'buf0182: is_re: 1 (ok)', # 'schema' => [ # 'buf', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0182: is_re: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=clause:is_re, type, type:buf) buf0182: is_re: 1 (ok) # { # 'input' => 'a(', # 'name' => 'buf0183: is_re: 1 (nok)', # 'schema' => [ # 'buf', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0183: is_re: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=clause:is_re, type, type:buf) buf0183: is_re: 1 (nok) # { # 'input' => 'a(', # 'name' => 'buf0184: is_re: 0 (ok)', # 'schema' => [ # 'buf', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0184: is_re: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=clause:is_re, type, type:buf) buf0184: is_re: 0 (ok) # { # 'input' => 'a', # 'name' => 'buf0185: is_re: 0 (nok)', # 'schema' => [ # 'buf', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:buf', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:buf) buf0185: is_re: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=clause:is_re, type, type:buf) buf0185: is_re: 0 (nok) ok 177 1..177 ok 7 - 10-type-buf.json # Subtest: 10-type-cistr.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => 0, # 'name' => 'cistr0001: type check: must accept 0', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:cistr) cistr0001: type check: must accept 0 # { # 'input' => '1.1', # 'name' => 'cistr0002: type check: must accept 1.1', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0002: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:cistr) cistr0002: type check: must accept 1.1 # { # 'input' => '', # 'name' => 'cistr0003: type check: must accept ', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0003: type check: must accept ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:cistr) cistr0003: type check: must accept # { # 'input' => 'str # ', # 'name' => 'cistr0004: type check: must accept str # ', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0004: type check: must accept str ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:cistr) cistr0004: type check: must accept str # # { # 'input' => [], # 'name' => 'cistr0005: type check: must reject []', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:cistr) cistr0005: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:cistr) cistr0005: type check: must reject [] # { # 'input' => {}, # 'name' => 'cistr0006: type check: must reject {}', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:cistr) cistr0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:cistr) cistr0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'cistr0007: must accept undefined value', # 'schema' => 'cistr', # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:cistr) cistr0007: must accept undefined value # { # 'input' => undef, # 'name' => 'cistr0008: defhash_v', # 'schema' => [ # 'cistr', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:cistr) cistr0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:cistr) cistr0008: defhash_v # { # 'input' => undef, # 'name' => 'cistr0009: v', # 'schema' => [ # 'cistr', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:cistr) cistr0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:cistr) cistr0009: v # { # 'input' => undef, # 'name' => 'cistr0010: c', # 'schema' => [ # 'cistr', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:cistr) cistr0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:cistr) cistr0010: c # { # 'input' => undef, # 'name' => 'cistr0011: default_lang', # 'schema' => [ # 'cistr', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:cistr) cistr0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:cistr) cistr0011: default_lang # { # 'input' => undef, # 'name' => 'cistr0012: name', # 'schema' => [ # 'cistr', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:cistr) cistr0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:cistr) cistr0012: name # { # 'input' => undef, # 'name' => 'cistr0013: summary', # 'schema' => [ # 'cistr', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:cistr) cistr0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:cistr) cistr0013: summary # { # 'input' => undef, # 'name' => 'cistr0014: description', # 'schema' => [ # 'cistr', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:cistr) cistr0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:cistr) cistr0014: description # { # 'input' => undef, # 'name' => 'cistr0015: tags', # 'schema' => [ # 'cistr', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:cistr) cistr0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:cistr) cistr0015: tags # { # 'input' => undef, # 'name' => 'cistr0016: req=0 must accept undefined value', # 'schema' => [ # 'cistr', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:cistr) cistr0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:cistr) cistr0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'cistr0017: req=1 must reject undefined value', # 'schema' => [ # 'cistr', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:cistr) cistr0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:cistr) cistr0017: req=1 must reject undefined value # { # 'input' => 'a', # 'name' => 'cistr0018: forbidden=0 must accept defined value', # 'schema' => [ # 'cistr', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:cistr) cistr0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:cistr) cistr0018: forbidden=0 must accept defined value # { # 'input' => 'a', # 'name' => 'cistr0019: forbidden=1 must reject defined value', # 'schema' => [ # 'cistr', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:cistr) cistr0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:cistr) cistr0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'cistr0020: default: must accept valid default a', # 'schema' => [ # 'cistr*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:cistr) cistr0020: default: must accept valid default a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:cistr) cistr0020: default: must accept valid default a # { # 'input' => undef, # 'name' => 'cistr0021: default: must reject invalid default []', # 'schema' => [ # 'cistr*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:cistr) cistr0021: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:cistr) cistr0021: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0022: clause (dies, unknown clause)', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:cistr) cistr0022: clause (dies, unknown clause) # { # 'input' => 'a', # 'name' => 'cistr0023: clause (ok)', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'match', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:cistr) cistr0023: clause (ok) # { # 'input' => 'a', # 'name' => 'cistr0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'match', # 'a' # ], # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:cistr) cistr0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0025: clause (nok)', # 'schema' => [ # 'cistr*', # 'clause', # [ # 'match', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:cistr) cistr0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:cistr) cistr0025: clause (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0026: clset (dies, unknown clause)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:cistr) cistr0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0027: clset (dies, unknown attr)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:cistr) cistr0027: clset (dies, unknown attr) # { # 'input' => 'a', # 'name' => 'cistr0028: clset (empty = ok)', # 'schema' => [ # 'cistr*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:cistr) cistr0028: clset (empty = ok) # { # 'input' => 'a', # 'name' => 'cistr0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'cistr*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:cistr) cistr0029: clset (ignored clause/attr = ok) # { # 'input' => 'a', # 'name' => 'cistr0030: clset (ok + ok = ok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 1, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:cistr) cistr0030: clset (ok + ok = ok) # { # 'input' => 'a', # 'name' => 'cistr0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'cistr*', # 'clset', # { # 'match' => 'a' # }, # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:cistr) cistr0031: clset (ok) + clause nok = nok # { # 'input' => 'a', # 'name' => 'cistr0032: clset (ok + nok = nok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 2, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:cistr) cistr0032: clset (ok + nok = nok) # { # 'input' => 'a', # 'name' => 'cistr0033: clset (nok + ok = nok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 1, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:cistr) cistr0033: clset (nok + ok = nok) # { # 'input' => 'a', # 'name' => 'cistr0034: clset (nok + nok = nok)', # 'schema' => [ # 'cistr*', # 'clset', # { # 'len' => 2, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:cistr) cistr0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:cistr) cistr0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'cistr0035: ok', # 'schema' => [ # 'cistr', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:cistr) cistr0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:cistr) cistr0035: ok # { # 'input' => undef, # 'name' => 'cistr0036: ok + op not (nok)', # 'schema' => [ # 'cistr', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:cistr) cistr0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:cistr) cistr0036: ok + op not (nok) # { # 'input' => 'a', # 'name' => 'cistr0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'cistr', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:cistr) cistr0037: .err_level=error (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'cistr0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'cistr', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:cistr) cistr0038: .err_level=error (clause=is, nok) # { # 'input' => 'a', # 'name' => 'cistr0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'cistr', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:cistr) cistr0039: .err_level=warn (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'cistr0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'cistr*', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:cistr) cistr0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:cistr) cistr0040: .err_level=warn (clause=is, nok) # { # 'input' => 'a', # 'name' => 'cistr0041: is: must accept same value', # 'schema' => [ # 'cistr', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:cistr) cistr0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:cistr) cistr0041: is: must accept same value # { # 'input' => 'a', # 'name' => 'cistr0042: is: must reject different value', # 'schema' => [ # 'cistr', # 'is', # 'B' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:cistr) cistr0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:cistr) cistr0042: is: must reject different value # { # 'input' => 'a', # 'name' => 'cistr0043: !is (nok)', # 'schema' => [ # 'cistr', # '!is', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0043: !is (nok) # { # 'input' => 'a', # 'name' => 'cistr0044: !is (ok)', # 'schema' => [ # 'cistr', # '!is', # 'B' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:cistr) cistr0044: !is (ok) # { # 'input' => 'a', # 'name' => 'cistr0045: is.op=not (nok)', # 'schema' => [ # 'cistr', # 'is', # 'a', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:cistr) cistr0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:cistr) cistr0045: is.op=not (nok) # { # 'input' => 'a', # 'name' => 'cistr0046: is.op=not (ok)', # 'schema' => [ # 'cistr', # 'is', # 'B', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:cistr) cistr0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:cistr) cistr0046: is.op=not (ok) # { # 'input' => 'a', # 'name' => 'cistr0047: is& (no items)', # 'schema' => [ # 'cistr', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0047: is& (no items) # { # 'input' => 'a', # 'name' => 'cistr0048: is& (ok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0048: is& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0049: is& (nok + ok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'B', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0050: is& (ok + nok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0051: is& (nok + nok)', # 'schema' => [ # 'cistr', # 'is&', # [ # 'B', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:cistr) cistr0051: is& (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0052: is.op=and (no items)', # 'schema' => [ # 'cistr', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:cistr) cistr0052: is.op=and (no items) # { # 'input' => 'a', # 'name' => 'cistr0053: is.op=and (ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:cistr) cistr0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0054: is.op=and (nok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:cistr) cistr0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0055: is.op=and (ok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'B' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:cistr) cistr0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0056: is.op=and (nok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'B' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:cistr) cistr0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:cistr) cistr0056: is.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0057: is| (no items)', # 'schema' => [ # 'cistr', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0057: is| (no items) # { # 'input' => 'a', # 'name' => 'cistr0058: is| (ok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0058: is| (ok) # { # 'input' => 'a', # 'name' => 'cistr0059: is| (nok + ok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'B', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0059: is| (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0060: is| (ok + nok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0061: is| (nok + nok)', # 'schema' => [ # 'cistr', # 'is|', # [ # 'B', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:cistr) cistr0061: is| (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0062: is.op=or (no items)', # 'schema' => [ # 'cistr', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:cistr) cistr0062: is.op=or (no items) # { # 'input' => 'a', # 'name' => 'cistr0063: is.op=or (ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:cistr) cistr0063: is.op=or (ok) # { # 'input' => 'a', # 'name' => 'cistr0064: is.op=or (nok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:cistr) cistr0064: is.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0065: is.op=or (ok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'B' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:cistr) cistr0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0066: is.op=or (nok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'B' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:cistr) cistr0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:cistr) cistr0066: is.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0067: is.op=none (empty items)', # 'schema' => [ # 'cistr', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:cistr) cistr0067: is.op=none (empty items) # { # 'input' => 'a', # 'name' => 'cistr0068: is.op=none (nok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'B' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:cistr) cistr0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0069: is.op=none (nok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'B', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:cistr) cistr0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0070: is.op=none (ok + nok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'B' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:cistr) cistr0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0071: is.op=none (ok + ok)', # 'schema' => [ # 'cistr', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:cistr) cistr0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:cistr) cistr0071: is.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'cistr0072: in: must accept valid choices', # 'schema' => [ # 'cistr', # 'in', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:cistr) cistr0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:cistr) cistr0072: in: must accept valid choices # { # 'input' => 'a', # 'name' => 'cistr0073: in: must reject empty choices', # 'schema' => [ # 'cistr', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:cistr) cistr0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:cistr) cistr0073: in: must reject empty choices # { # 'input' => 'a', # 'name' => 'cistr0074: !in (nok)', # 'schema' => [ # 'cistr', # '!in', # [ # 'a', # 'B' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0074: !in (nok) # { # 'input' => 'a', # 'name' => 'cistr0075: !in (ok)', # 'schema' => [ # 'cistr', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:cistr) cistr0075: !in (ok) # { # 'input' => 'a', # 'name' => 'cistr0076: in.op=not (nok)', # 'schema' => [ # 'cistr', # 'in', # [ # 'a', # 'B' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:cistr) cistr0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:cistr) cistr0076: in.op=not (nok) # { # 'input' => 'a', # 'name' => 'cistr0077: in.op=not (ok)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:cistr) cistr0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:cistr) cistr0077: in.op=not (ok) # { # 'input' => 'a', # 'name' => 'cistr0078: in& (no items)', # 'schema' => [ # 'cistr', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0078: in& (no items) # { # 'input' => 'a', # 'name' => 'cistr0079: in& (ok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0079: in& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0080: in& (nok + ok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0081: in& (ok + nok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [ # 'a', # 'B' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0082: in& (nok + nok)', # 'schema' => [ # 'cistr', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:cistr) cistr0082: in& (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0083: in.op=and (no items)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:cistr) cistr0083: in.op=and (no items) # { # 'input' => 'a', # 'name' => 'cistr0084: in.op=and (ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:cistr) cistr0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0085: in.op=and (nok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:cistr) cistr0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0086: in.op=and (ok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:cistr) cistr0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0087: in.op=and (nok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:cistr) cistr0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:cistr) cistr0087: in.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0088: in| (no items)', # 'schema' => [ # 'cistr', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0088: in| (no items) # { # 'input' => 'a', # 'name' => 'cistr0089: in| (ok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0089: in| (ok) # { # 'input' => 'a', # 'name' => 'cistr0090: in| (nok + ok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [], # [ # 'a', # 'B' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0090: in| (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0091: in| (ok + nok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [ # 'a', # 'B' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0092: in| (nok + nok)', # 'schema' => [ # 'cistr', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:cistr) cistr0092: in| (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0093: in.op=or (no items)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:cistr) cistr0093: in.op=or (no items) # { # 'input' => 'a', # 'name' => 'cistr0094: in.op=or (ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:cistr) cistr0094: in.op=or (ok) # { # 'input' => 'a', # 'name' => 'cistr0095: in.op=or (nok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:cistr) cistr0095: in.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'cistr0096: in.op=or (ok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:cistr) cistr0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0097: in.op=or (nok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:cistr) cistr0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:cistr) cistr0097: in.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'cistr0098: in.op=none (empty items)', # 'schema' => [ # 'cistr', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:cistr) cistr0098: in.op=none (empty items) # { # 'input' => 'a', # 'name' => 'cistr0099: in.op=none (nok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:cistr) cistr0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0100: in.op=none (nok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:cistr) cistr0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0101: in.op=none (ok + nok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:cistr) cistr0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'cistr0102: in.op=none (ok + ok)', # 'schema' => [ # 'cistr', # 'in', # [ # [ # 'a', # 'B' # ], # [ # 'a', # 'B' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:cistr) cistr0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:cistr) cistr0102: in.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'cistr0103: min: a ', # 'schema' => [ # 'cistr', # 'min', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:cistr) cistr0103: min: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:min, type, type:cistr) cistr0103: min: a # { # 'input' => 'a', # 'name' => 'cistr0104: min: a a', # 'schema' => [ # 'cistr', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:cistr) cistr0104: min: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:cistr) cistr0104: min: a a # { # 'input' => '', # 'name' => 'cistr0105: min: a -> fail', # 'schema' => [ # 'cistr', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:cistr) cistr0105: min: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:cistr) cistr0105: min: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0106: xmin: a ', # 'schema' => [ # 'cistr', # 'xmin', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:cistr) cistr0106: xmin: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:xmin, type, type:cistr) cistr0106: xmin: a # { # 'input' => 'a', # 'name' => 'cistr0107: xmin: a a -> fail', # 'schema' => [ # 'cistr', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:cistr) cistr0107: xmin: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:cistr) cistr0107: xmin: a a -> fail # { # 'input' => '', # 'name' => 'cistr0108: xmin: a -> fail', # 'schema' => [ # 'cistr', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:cistr) cistr0108: xmin: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:cistr) cistr0108: xmin: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0109: max: a -> fail', # 'schema' => [ # 'cistr', # 'max', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:cistr) cistr0109: max: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:max, type, type:cistr) cistr0109: max: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0110: max: a a', # 'schema' => [ # 'cistr', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:cistr) cistr0110: max: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:cistr) cistr0110: max: a a # { # 'input' => '', # 'name' => 'cistr0111: max: a', # 'schema' => [ # 'cistr', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:cistr) cistr0111: max: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:cistr) cistr0111: max: a # { # 'input' => 'a', # 'name' => 'cistr0112: xmax: a -> fail', # 'schema' => [ # 'cistr', # 'xmax', # '' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:cistr) cistr0112: xmax: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xmax, type, type:cistr) cistr0112: xmax: a -> fail # { # 'input' => 'a', # 'name' => 'cistr0113: xmax: a a -> fail', # 'schema' => [ # 'cistr', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:cistr) cistr0113: xmax: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:cistr) cistr0113: xmax: a a -> fail # { # 'input' => '', # 'name' => 'cistr0114: xmax: a', # 'schema' => [ # 'cistr', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:cistr) cistr0114: xmax: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:cistr) cistr0114: xmax: a # { # 'input' => 'a', # 'name' => 'cistr0115: between: a & Ab', # 'schema' => [ # 'cistr', # 'between', # [ # '', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0115: between: a & Ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:between, type, type:cistr) cistr0115: between: a & Ab # { # 'input' => 'a', # 'name' => 'cistr0116: between: a & a', # 'schema' => [ # 'cistr', # 'between', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0116: between: a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:cistr) cistr0116: between: a & a # { # 'input' => 'a', # 'name' => 'cistr0117: between: a a & a', # 'schema' => [ # 'cistr', # 'between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0117: between: a a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:cistr) cistr0117: between: a a & a # { # 'input' => '', # 'name' => 'cistr0118: between: a & Ab -> fail', # 'schema' => [ # 'cistr', # 'between', # [ # 'a', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:cistr) cistr0118: between: a & Ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:cistr) cistr0118: between: a & Ab -> fail # { # 'input' => 'a', # 'name' => 'cistr0119: xbetween: a & Ab', # 'schema' => [ # 'cistr', # 'xbetween', # [ # '', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0119: xbetween: a & Ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:xbetween, type, type:cistr) cistr0119: xbetween: a & Ab # { # 'input' => 'a', # 'name' => 'cistr0120: xbetween: a & a -> fail', # 'schema' => [ # 'cistr', # 'xbetween', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0120: xbetween: a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:cistr) cistr0120: xbetween: a & a -> fail # { # 'input' => 'a', # 'name' => 'cistr0121: xbetween: a a & a -> fail', # 'schema' => [ # 'cistr', # 'xbetween', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0121: xbetween: a a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:cistr) cistr0121: xbetween: a a & a -> fail # { # 'input' => '', # 'name' => 'cistr0122: xbetween: a & Ab -> fail', # 'schema' => [ # 'cistr', # 'xbetween', # [ # 'a', # 'Ab' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:cistr) cistr0122: xbetween: a & Ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:cistr) cistr0122: xbetween: a & Ab -> fail # { # 'input' => '', # 'name' => 'cistr0123: !between (nok)', # 'schema' => [ # 'cistr', # '!between', # [ # '', # '' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0123: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0123: !between (nok) # { # 'input' => '', # 'name' => 'cistr0124: !between (ok)', # 'schema' => [ # 'cistr', # '!between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0124: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:cistr) cistr0124: !between (ok) # { # 'input' => '', # 'name' => 'cistr0125: between.op=not (nok)', # 'schema' => [ # 'cistr', # 'between', # [ # '', # '' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:cistr) cistr0125: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, type, type:cistr) cistr0125: between.op=not (nok) # { # 'input' => '', # 'name' => 'cistr0126: between.op=not (ok)', # 'schema' => [ # 'cistr', # 'between', # [ # 'a', # 'a' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:cistr) cistr0126: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:cistr) cistr0126: between.op=not (ok) # { # 'input' => '', # 'name' => 'cistr0127: between& (no items)', # 'schema' => [ # 'cistr', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0127: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0127: between& (no items) # { # 'input' => '', # 'name' => 'cistr0128: between& (ok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0128: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0128: between& (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0129: between& (nok + ok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0129: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0129: between& (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0130: between& (ok + nok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0130: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0130: between& (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0131: between& (nok + nok)', # 'schema' => [ # 'cistr', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0131: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:cistr) cistr0131: between& (nok + nok) # { # 'input' => '', # 'name' => 'cistr0132: between.op=and (no items)', # 'schema' => [ # 'cistr', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:cistr) cistr0132: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=type, type:cistr) cistr0132: between.op=and (no items) # { # 'input' => '', # 'name' => 'cistr0133: between.op=and (ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0133: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, type, type:cistr) cistr0133: between.op=and (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0134: between.op=and (nok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0134: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:cistr) cistr0134: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0135: between.op=and (ok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0135: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:cistr) cistr0135: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0136: between.op=and (nok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:cistr) cistr0136: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:cistr) cistr0136: between.op=and (nok + nok) # { # 'input' => '', # 'name' => 'cistr0137: between| (no items)', # 'schema' => [ # 'cistr', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0137: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0137: between| (no items) # { # 'input' => '', # 'name' => 'cistr0138: between| (ok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0138: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0138: between| (ok) # { # 'input' => '', # 'name' => 'cistr0139: between| (nok + ok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0139: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0139: between| (nok + ok) # { # 'input' => '', # 'name' => 'cistr0140: between| (ok + nok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0140: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0140: between| (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0141: between| (nok + nok)', # 'schema' => [ # 'cistr', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0141: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:cistr) cistr0141: between| (nok + nok) # { # 'input' => '', # 'name' => 'cistr0142: between.op=or (no items)', # 'schema' => [ # 'cistr', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0142: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, type, type:cistr) cistr0142: between.op=or (no items) # { # 'input' => '', # 'name' => 'cistr0143: between.op=or (ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0143: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:cistr) cistr0143: between.op=or (ok) # { # 'input' => '', # 'name' => 'cistr0144: between.op=or (nok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0144: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:cistr) cistr0144: between.op=or (nok + ok) # { # 'input' => '', # 'name' => 'cistr0145: between.op=or (ok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0145: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:cistr) cistr0145: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0146: between.op=or (nok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:cistr) cistr0146: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:cistr) cistr0146: between.op=or (nok + nok) # { # 'input' => '', # 'name' => 'cistr0147: between.op=none (empty items)', # 'schema' => [ # 'cistr', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0147: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:none, type, type:cistr) cistr0147: between.op=none (empty items) # { # 'input' => '', # 'name' => 'cistr0148: between.op=none (nok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0148: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:cistr) cistr0148: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0149: between.op=none (nok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0149: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:cistr) cistr0149: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0150: between.op=none (ok + nok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0150: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:cistr) cistr0150: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'cistr0151: between.op=none (ok + ok)', # 'schema' => [ # 'cistr', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:cistr) cistr0151: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:cistr) cistr0151: between.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'cistr0152: len (ok)', # 'schema' => [ # 'cistr', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:cistr) cistr0152: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:len, type, type:cistr) cistr0152: len (ok) # { # 'input' => 'a', # 'name' => 'cistr0153: len (nok)', # 'schema' => [ # 'cistr', # 'len', # 3 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:cistr) cistr0153: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:len, type, type:cistr) cistr0153: len (nok) # { # 'input' => 'a', # 'name' => 'cistr0154: min_len (ok)', # 'schema' => [ # 'cistr', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:cistr) cistr0154: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:min_len, type, type:cistr) cistr0154: min_len (ok) # { # 'input' => 'a', # 'name' => 'cistr0155: min_len (nok)', # 'schema' => [ # 'cistr', # 'min_len', # 3 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:cistr) cistr0155: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:min_len, type, type:cistr) cistr0155: min_len (nok) # { # 'input' => 'a', # 'name' => 'cistr0156: max_len (ok)', # 'schema' => [ # 'cistr', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:cistr) cistr0156: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:max_len, type, type:cistr) cistr0156: max_len (ok) # { # 'input' => 'abc', # 'name' => 'cistr0157: max_len (nok)', # 'schema' => [ # 'cistr', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:cistr) cistr0157: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=clause:max_len, type, type:cistr) cistr0157: max_len (nok) # { # 'input' => 'a', # 'name' => 'cistr0158: len_between (ok)', # 'schema' => [ # 'cistr', # 'len_between', # [ # 1, # 3 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:cistr) cistr0158: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=clause:len_between, type, type:cistr) cistr0158: len_between (ok) # { # 'input' => 'abc', # 'name' => 'cistr0159: len_between (nok)', # 'schema' => [ # 'cistr', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:cistr) cistr0159: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=clause:len_between, type, type:cistr) cistr0159: len_between (nok) # { # 'input' => 'abc', # 'name' => 'cistr0160: each_index (ok)', # 'schema' => [ # 'cistr', # 'each_index', # [ # 'int', # 'max', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:cistr) cistr0160: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=clause:each_index, type, type:cistr) cistr0160: each_index (ok) # { # 'input' => 'abc', # 'name' => 'cistr0161: each_index (nok)', # 'schema' => [ # 'cistr', # 'each_index', # [ # 'int', # 'xmax', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:cistr) cistr0161: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=clause:each_index, type, type:cistr) cistr0161: each_index (nok) # { # 'input' => 'abc', # 'name' => 'cistr0162: each_elem (ok)', # 'schema' => [ # 'cistr', # 'each_elem', # 'cistr' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:cistr) cistr0162: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=clause:each_elem, type, type:cistr) cistr0162: each_elem (ok) # { # 'input' => 'abc', # 'name' => 'cistr0163: each_elem (nok)', # 'schema' => [ # 'cistr', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:cistr) cistr0163: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=clause:each_elem, type, type:cistr) cistr0163: each_elem (nok) # { # 'invalid_inputs' => [ # '', # 'c' # ], # 'name' => 'cistr0170: has', # 'schema' => [ # 'cistr', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has' # ], # 'valid_inputs' => [ # 'abc', # 'Ac' # ] # } # Subtest: (tags=clause:has, type, type:cistr) cistr0170: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 164 - (tags=clause:has, type, type:cistr) cistr0170: has # { # 'invalid_inputs' => [ # 'abc', # 'Ac' # ], # 'name' => 'cistr0171: has + op.not', # 'schema' => [ # 'cistr', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # '', # 'c' # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:cistr) cistr0171: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 165 - (tags=clause:has, op, op:not, opshortcut, type, type:cistr) cistr0171: has + op.not # { # 'invalid_inputs' => [ # '', # 'c' # ], # 'name' => 'cistr0172: has + op.or', # 'schema' => [ # 'cistr', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc', # 'Ac' # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:cistr) cistr0172: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 166 - (tags=clause:has, op, op:or, opshortcut, type, type:cistr) cistr0172: has + op.or # { # 'invalid_inputs' => [ # 'Ac', # '', # 'c' # ], # 'name' => 'cistr0173: has + op.and', # 'schema' => [ # 'cistr', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc' # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:cistr) cistr0173: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - validator (rt=full) returns hash 1..6 ok 167 - (tags=clause:has, op, op:and, opshortcut, type, type:cistr) cistr0173: has + op.and # { # 'input' => 'a', # 'name' => 'cistr0177: encoding: (ok)', # 'schema' => [ # 'cistr', # 'encoding', # 'utf8' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:encoding' # ], # 'valid' => 1 # } # Subtest: (tags=clause:encoding, type, type:cistr) cistr0177: encoding: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=clause:encoding, type, type:cistr) cistr0177: encoding: (ok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0178: encoding: (dies, unknown encoding)', # 'schema' => [ # 'cistr', # 'encoding', # 'foo' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:encoding' # ] # } # Subtest: (tags=clause:encoding, type, type:cistr) cistr0178: encoding: (dies, unknown encoding) ok 1 - compile error 1..1 ok 169 - (tags=clause:encoding, type, type:cistr) cistr0178: encoding: (dies, unknown encoding) # { # 'input' => 'A', # 'name' => 'cistr0179: match: (ok)', # 'schema' => [ # 'cistr', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:match' # ], # 'valid' => 1 # } # Subtest: (tags=clause:match, type, type:cistr) cistr0179: match: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=clause:match, type, type:cistr) cistr0179: match: (ok) # { # 'input' => 'z', # 'name' => 'cistr0180: match: (nok)', # 'schema' => [ # 'cistr', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:match' # ], # 'valid' => 0 # } # Subtest: (tags=clause:match, type, type:cistr) cistr0180: match: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=clause:match, type, type:cistr) cistr0180: match: (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'cistr0181: match: (dies, invalid regex)', # 'schema' => [ # 'cistr', # 'match', # '(' # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:match' # ] # } # Subtest: (tags=clause:match, type, type:cistr) cistr0181: match: (dies, invalid regex) ok 1 - compile error 1..1 ok 172 - (tags=clause:match, type, type:cistr) cistr0181: match: (dies, invalid regex) # { # 'input' => 'a', # 'name' => 'cistr0182: is_re: 1 (ok)', # 'schema' => [ # 'cistr', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0182: is_re: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=clause:is_re, type, type:cistr) cistr0182: is_re: 1 (ok) # { # 'input' => 'a(', # 'name' => 'cistr0183: is_re: 1 (nok)', # 'schema' => [ # 'cistr', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0183: is_re: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=clause:is_re, type, type:cistr) cistr0183: is_re: 1 (nok) # { # 'input' => 'a(', # 'name' => 'cistr0184: is_re: 0 (ok)', # 'schema' => [ # 'cistr', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0184: is_re: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=clause:is_re, type, type:cistr) cistr0184: is_re: 0 (ok) # { # 'input' => 'a', # 'name' => 'cistr0185: is_re: 0 (nok)', # 'schema' => [ # 'cistr', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:cistr', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:cistr) cistr0185: is_re: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=clause:is_re, type, type:cistr) cistr0185: is_re: 0 (nok) ok 177 1..177 ok 8 - 10-type-cistr.json # Subtest: 10-type-float.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => '-1.1', # 'name' => 'float0001: type check: must accept -1.1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0001: type check: must accept -1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:float) float0001: type check: must accept -1.1 # { # 'input' => -1, # 'name' => 'float0002: type check: must accept -1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0002: type check: must accept -1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:float) float0002: type check: must accept -1 # { # 'input' => 0, # 'name' => 'float0003: type check: must accept 0', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0003: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:float) float0003: type check: must accept 0 # { # 'input' => 1, # 'name' => 'float0004: type check: must accept 1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0004: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:float) float0004: type check: must accept 1 # { # 'input' => '1.1', # 'name' => 'float0005: type check: must accept 1.1', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0005: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:float) float0005: type check: must accept 1.1 # { # 'input' => 'a', # 'name' => 'float0006: type check: must reject a', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:float) float0006: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:float) float0006: type check: must reject a # { # 'input' => [], # 'name' => 'float0007: type check: must reject []', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:float) float0007: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:float) float0007: type check: must reject [] # { # 'input' => {}, # 'name' => 'float0008: type check: must reject {}', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:float) float0008: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=type, type:float) float0008: type check: must reject {} # { # 'input' => undef, # 'name' => 'float0009: must accept undefined value', # 'schema' => 'float', # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0009: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=type, type:float) float0009: must accept undefined value # { # 'input' => undef, # 'name' => 'float0010: defhash_v', # 'schema' => [ # 'float', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:float) float0010: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:defhash_v, type, type:float) float0010: defhash_v # { # 'input' => undef, # 'name' => 'float0011: v', # 'schema' => [ # 'float', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:float) float0011: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:v, type, type:float) float0011: v # { # 'input' => undef, # 'name' => 'float0012: c', # 'schema' => [ # 'float', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:float) float0012: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:c, type, type:float) float0012: c # { # 'input' => undef, # 'name' => 'float0013: default_lang', # 'schema' => [ # 'float', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:float) float0013: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:default_lang, type, type:float) float0013: default_lang # { # 'input' => undef, # 'name' => 'float0014: name', # 'schema' => [ # 'float', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:float) float0014: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:name, type, type:float) float0014: name # { # 'input' => undef, # 'name' => 'float0015: summary', # 'schema' => [ # 'float', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:float) float0015: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:summary, type, type:float) float0015: summary # { # 'input' => undef, # 'name' => 'float0016: description', # 'schema' => [ # 'float', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:float) float0016: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:description, type, type:float) float0016: description # { # 'input' => undef, # 'name' => 'float0017: tags', # 'schema' => [ # 'float', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:float) float0017: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:tags, type, type:float) float0017: tags # { # 'input' => undef, # 'name' => 'float0018: req=0 must accept undefined value', # 'schema' => [ # 'float', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:float) float0018: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:req, type, type:float) float0018: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'float0019: req=1 must reject undefined value', # 'schema' => [ # 'float', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:float) float0019: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:req, type, type:float) float0019: req=1 must reject undefined value # { # 'input' => '1.1', # 'name' => 'float0020: forbidden=0 must accept defined value', # 'schema' => [ # 'float', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:float) float0020: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:forbidden, type, type:float) float0020: forbidden=0 must accept defined value # { # 'input' => '1.1', # 'name' => 'float0021: forbidden=1 must reject defined value', # 'schema' => [ # 'float', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:float) float0021: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:forbidden, type, type:float) float0021: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'float0022: default: must accept valid default 1.1', # 'schema' => [ # 'float*', # 'default', # '1.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:float) float0022: default: must accept valid default 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 22 - (tags=clause:default, type, type:float) float0022: default: must accept valid default 1.1 # { # 'input' => undef, # 'name' => 'float0023: default: must reject invalid default []', # 'schema' => [ # 'float*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:float) float0023: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:default, type, type:float) float0023: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'float0024: clause (dies, unknown clause)', # 'schema' => [ # 'float*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:float) float0024: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 24 - (tags=clause:clause, type, type:float) float0024: clause (dies, unknown clause) # { # 'input' => '1.1', # 'name' => 'float0025: clause (ok)', # 'schema' => [ # 'float*', # 'clause', # [ # 'min', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:float) float0025: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:float) float0025: clause (ok) # { # 'input' => '1.1', # 'name' => 'float0026: clause (ok) + clause nok = nok', # 'schema' => [ # 'float*', # 'clause', # [ # 'min', # 1 # ], # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:float) float0026: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:clause, type, type:float) float0026: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0027: clause (nok)', # 'schema' => [ # 'float*', # 'clause', # [ # 'min', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:float) float0027: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 27 - (tags=clause:clause, type, type:float) float0027: clause (nok) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'float0028: clset (dies, unknown clause)', # 'schema' => [ # 'float*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:float) float0028: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 28 - (tags=clause:clset, type, type:float) float0028: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'float0029: clset (dies, unknown attr)', # 'schema' => [ # 'float*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:float) float0029: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 29 - (tags=clause:clset, type, type:float) float0029: clset (dies, unknown attr) # { # 'input' => '1.1', # 'name' => 'float0030: clset (empty = ok)', # 'schema' => [ # 'float*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0030: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=type, type:float) float0030: clset (empty = ok) # { # 'input' => '1.1', # 'name' => 'float0031: clset (ignored clause/attr = ok)', # 'schema' => [ # 'float*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:float) float0031: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:float) float0031: clset (ignored clause/attr = ok) # { # 'input' => '1.1', # 'name' => 'float0032: clset (ok + ok = ok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => '1.1', # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:float) float0032: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:float) float0032: clset (ok + ok = ok) # { # 'input' => '1.1', # 'name' => 'float0033: clset (ok) + clause nok = nok', # 'schema' => [ # 'float*', # 'clset', # { # 'min' => 1 # }, # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0033: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:float) float0033: clset (ok) + clause nok = nok # { # 'input' => '1.1', # 'name' => 'float0034: clset (ok + nok = nok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => 1, # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0034: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:float) float0034: clset (ok + nok = nok) # { # 'input' => '1.1', # 'name' => 'float0035: clset (nok + ok = nok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => '1.1', # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0035: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:clset, type, type:float) float0035: clset (nok + ok = nok) # { # 'input' => '1.1', # 'name' => 'float0036: clset (nok + nok = nok)', # 'schema' => [ # 'float*', # 'clset', # { # 'max' => 1, # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:float) float0036: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:clset, type, type:float) float0036: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'float0037: ok', # 'schema' => [ # 'float', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:float) float0037: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:ok, type, type:float) float0037: ok # { # 'input' => undef, # 'name' => 'float0038: ok + op not (nok)', # 'schema' => [ # 'float', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:float) float0038: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=clause:ok, op, op:not, type, type:float) float0038: ok + op not (nok) # { # 'input' => '0.1', # 'name' => 'float0039: .err_level=error (clause=min, ok)', # 'schema' => [ # 'float', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0039: .err_level=error (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:float) float0039: .err_level=error (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'float0040: .err_level=error (clause=min, nok)', # 'schema' => [ # 'float', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0040: .err_level=error (clause=min, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:float) float0040: .err_level=error (clause=min, nok) # { # 'input' => '0.1', # 'name' => 'float0041: .err_level=warn (clause=min, ok)', # 'schema' => [ # 'float', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0041: .err_level=warn (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=attr, attr:err_level, type, type:float) float0041: .err_level=warn (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'float0042: .err_level=warn (clause=min, nok)', # 'schema' => [ # 'float*', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:float', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:float) float0042: .err_level=warn (clause=min, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=attr, attr:err_level, type, type:float) float0042: .err_level=warn (clause=min, nok) # { # 'input' => '1.1', # 'name' => 'float0043: is: must accept same value', # 'schema' => [ # 'float', # 'is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:float) float0043: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, type, type:float) float0043: is: must accept same value # { # 'input' => '1.1', # 'name' => 'float0044: is: must reject different value', # 'schema' => [ # 'float', # 'is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:float) float0044: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, type, type:float) float0044: is: must reject different value # { # 'input' => '1.1', # 'name' => 'float0045: !is (nok)', # 'schema' => [ # 'float', # '!is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:float) float0045: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, opshortcut, type, type:float) float0045: !is (nok) # { # 'input' => '1.1', # 'name' => 'float0046: !is (ok)', # 'schema' => [ # 'float', # '!is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:float) float0046: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, opshortcut, type, type:float) float0046: !is (ok) # { # 'input' => '1.1', # 'name' => 'float0047: is.op=not (nok)', # 'schema' => [ # 'float', # 'is', # '1.1', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:float) float0047: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:not, type, type:float) float0047: is.op=not (nok) # { # 'input' => '1.1', # 'name' => 'float0048: is.op=not (ok)', # 'schema' => [ # 'float', # 'is', # '1.2', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:float) float0048: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:not, type, type:float) float0048: is.op=not (ok) # { # 'input' => '1.1', # 'name' => 'float0049: is& (no items)', # 'schema' => [ # 'float', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0049: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0049: is& (no items) # { # 'input' => '1.1', # 'name' => 'float0050: is& (ok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0050: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0050: is& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0051: is& (nok + ok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0051: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0051: is& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0052: is& (ok + nok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0052: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0052: is& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0053: is& (nok + nok)', # 'schema' => [ # 'float', # 'is&', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:float) float0053: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, opshortcut, type, type:float) float0053: is& (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0054: is.op=and (no items)', # 'schema' => [ # 'float', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0054: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=type, type:float) float0054: is.op=and (no items) # { # 'input' => '1.1', # 'name' => 'float0055: is.op=and (ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0055: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:float) float0055: is.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0056: is.op=and (nok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0056: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:float) float0056: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0057: is.op=and (ok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0057: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:and, type, type:float) float0057: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0058: is.op=and (nok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:float) float0058: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:and, type, type:float) float0058: is.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0059: is| (no items)', # 'schema' => [ # 'float', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0059: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0059: is| (no items) # { # 'input' => '1.1', # 'name' => 'float0060: is| (ok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0060: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0060: is| (ok) # { # 'input' => '1.1', # 'name' => 'float0061: is| (nok + ok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0061: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0061: is| (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0062: is| (ok + nok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0062: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0062: is| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0063: is| (nok + nok)', # 'schema' => [ # 'float', # 'is|', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:float) float0063: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, opshortcut, type, type:float) float0063: is| (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0064: is.op=or (no items)', # 'schema' => [ # 'float', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0064: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:float) float0064: is.op=or (no items) # { # 'input' => '1.1', # 'name' => 'float0065: is.op=or (ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0065: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:float) float0065: is.op=or (ok) # { # 'input' => '1.1', # 'name' => 'float0066: is.op=or (nok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0066: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:float) float0066: is.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0067: is.op=or (ok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0067: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:or, type, type:float) float0067: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0068: is.op=or (nok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:float) float0068: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:or, type, type:float) float0068: is.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0069: is.op=none (empty items)', # 'schema' => [ # 'float', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0069: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:float) float0069: is.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'float0070: is.op=none (nok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0070: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:float) float0070: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0071: is.op=none (nok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0071: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:float) float0071: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0072: is.op=none (ok + nok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0072: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:is, op, op:none, type, type:float) float0072: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0073: is.op=none (ok + ok)', # 'schema' => [ # 'float', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:float) float0073: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:is, op, op:none, type, type:float) float0073: is.op=none (ok + ok) # { # 'input' => '1.1', # 'name' => 'float0074: in: must accept valid choices', # 'schema' => [ # 'float', # 'in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:float) float0074: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, type, type:float) float0074: in: must accept valid choices # { # 'input' => '1.1', # 'name' => 'float0075: in: must reject empty choices', # 'schema' => [ # 'float', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:float) float0075: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, type, type:float) float0075: in: must reject empty choices # { # 'input' => '1.1', # 'name' => 'float0076: !in (nok)', # 'schema' => [ # 'float', # '!in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:float) float0076: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, opshortcut, type, type:float) float0076: !in (nok) # { # 'input' => '1.1', # 'name' => 'float0077: !in (ok)', # 'schema' => [ # 'float', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:float) float0077: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, opshortcut, type, type:float) float0077: !in (ok) # { # 'input' => '1.1', # 'name' => 'float0078: in.op=not (nok)', # 'schema' => [ # 'float', # 'in', # [ # '1.1', # '1.2' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:float) float0078: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:not, type, type:float) float0078: in.op=not (nok) # { # 'input' => '1.1', # 'name' => 'float0079: in.op=not (ok)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:float) float0079: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:not, type, type:float) float0079: in.op=not (ok) # { # 'input' => '1.1', # 'name' => 'float0080: in& (no items)', # 'schema' => [ # 'float', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0080: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0080: in& (no items) # { # 'input' => '1.1', # 'name' => 'float0081: in& (ok)', # 'schema' => [ # 'float', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0081: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0081: in& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0082: in& (nok + ok)', # 'schema' => [ # 'float', # 'in&', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0082: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0082: in& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0083: in& (ok + nok)', # 'schema' => [ # 'float', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0083: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0083: in& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0084: in& (nok + nok)', # 'schema' => [ # 'float', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:float) float0084: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, opshortcut, type, type:float) float0084: in& (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0085: in.op=and (no items)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0085: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=type, type:float) float0085: in.op=and (no items) # { # 'input' => '1.1', # 'name' => 'float0086: in.op=and (ok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0086: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:float) float0086: in.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0087: in.op=and (nok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0087: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:float) float0087: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0088: in.op=and (ok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0088: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:and, type, type:float) float0088: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0089: in.op=and (nok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:float) float0089: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:and, type, type:float) float0089: in.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0090: in| (no items)', # 'schema' => [ # 'float', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0090: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0090: in| (no items) # { # 'input' => '1.1', # 'name' => 'float0091: in| (ok)', # 'schema' => [ # 'float', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0091: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0091: in| (ok) # { # 'input' => '1.1', # 'name' => 'float0092: in| (nok + ok)', # 'schema' => [ # 'float', # 'in|', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0092: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0092: in| (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0093: in| (ok + nok)', # 'schema' => [ # 'float', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0093: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0093: in| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0094: in| (nok + nok)', # 'schema' => [ # 'float', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:float) float0094: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, opshortcut, type, type:float) float0094: in| (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0095: in.op=or (no items)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0095: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:float) float0095: in.op=or (no items) # { # 'input' => '1.1', # 'name' => 'float0096: in.op=or (ok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0096: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:float) float0096: in.op=or (ok) # { # 'input' => '1.1', # 'name' => 'float0097: in.op=or (nok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0097: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:float) float0097: in.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'float0098: in.op=or (ok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0098: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:or, type, type:float) float0098: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0099: in.op=or (nok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:float) float0099: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:or, type, type:float) float0099: in.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'float0100: in.op=none (empty items)', # 'schema' => [ # 'float', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0100: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:float) float0100: in.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'float0101: in.op=none (nok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0101: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:float) float0101: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0102: in.op=none (nok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0102: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:float) float0102: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0103: in.op=none (ok + nok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0103: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:in, op, op:none, type, type:float) float0103: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'float0104: in.op=none (ok + ok)', # 'schema' => [ # 'float', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:float) float0104: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:in, op, op:none, type, type:float) float0104: in.op=none (ok + ok) # { # 'input' => '2.1', # 'name' => 'float0105: min: 2.1 -3.1', # 'schema' => [ # 'float', # 'min', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:float) float0105: min: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:float) float0105: min: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'float0106: min: 2.1 2.1', # 'schema' => [ # 'float', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:float) float0106: min: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min, type, type:float) float0106: min: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'float0107: min: -3.1 2.1 -> fail', # 'schema' => [ # 'float', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:float) float0107: min: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:min, type, type:float) float0107: min: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0108: xmin: 2.1 -3.1', # 'schema' => [ # 'float', # 'xmin', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:float) float0108: xmin: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:float) float0108: xmin: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'float0109: xmin: 2.1 2.1 -> fail', # 'schema' => [ # 'float', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:float) float0109: xmin: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xmin, type, type:float) float0109: xmin: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0110: xmin: -3.1 2.1 -> fail', # 'schema' => [ # 'float', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:float) float0110: xmin: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:xmin, type, type:float) float0110: xmin: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0111: max: 2.1 -3.1 -> fail', # 'schema' => [ # 'float', # 'max', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:float) float0111: max: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:float) float0111: max: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0112: max: 2.1 2.1', # 'schema' => [ # 'float', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:float) float0112: max: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:max, type, type:float) float0112: max: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'float0113: max: -3.1 2.1', # 'schema' => [ # 'float', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:float) float0113: max: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:max, type, type:float) float0113: max: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'float0114: xmax: 2.1 -3.1 -> fail', # 'schema' => [ # 'float', # 'xmax', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:float) float0114: xmax: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:float) float0114: xmax: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0115: xmax: 2.1 2.1 -> fail', # 'schema' => [ # 'float', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:float) float0115: xmax: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:xmax, type, type:float) float0115: xmax: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0116: xmax: -3.1 2.1', # 'schema' => [ # 'float', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:float) float0116: xmax: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:xmax, type, type:float) float0116: xmax: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'float0117: between: 2.1 -3.1 & 4.1', # 'schema' => [ # 'float', # 'between', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:float) float0117: between: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:float) float0117: between: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'float0118: between: 2.1 -3.1 & 2.1', # 'schema' => [ # 'float', # 'between', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:float) float0118: between: 2.1 -3.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:float) float0118: between: 2.1 -3.1 & 2.1 # { # 'input' => '2.1', # 'name' => 'float0119: between: 2.1 2.1 & 2.1', # 'schema' => [ # 'float', # 'between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:float) float0119: between: 2.1 2.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:between, type, type:float) float0119: between: 2.1 2.1 & 2.1 # { # 'input' => '-3.1', # 'name' => 'float0120: between: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'float', # 'between', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:float) float0120: between: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:between, type, type:float) float0120: between: -3.1 2.1 & 4.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0121: xbetween: 2.1 -3.1 & 4.1', # 'schema' => [ # 'float', # 'xbetween', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:float) float0121: xbetween: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:float) float0121: xbetween: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'float0122: xbetween: 2.1 -3.1 & 2.1 -> fail', # 'schema' => [ # 'float', # 'xbetween', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:float) float0122: xbetween: 2.1 -3.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:float) float0122: xbetween: 2.1 -3.1 & 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'float0123: xbetween: 2.1 2.1 & 2.1 -> fail', # 'schema' => [ # 'float', # 'xbetween', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:float) float0123: xbetween: 2.1 2.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:xbetween, type, type:float) float0123: xbetween: 2.1 2.1 & 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0124: xbetween: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'float', # 'xbetween', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:float) float0124: xbetween: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:xbetween, type, type:float) float0124: xbetween: -3.1 2.1 & 4.1 -> fail # { # 'input' => '-3.1', # 'name' => 'float0125: !between (nok)', # 'schema' => [ # 'float', # '!between', # [ # '-3.1', # '-3.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:float) float0125: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, opshortcut, type, type:float) float0125: !between (nok) # { # 'input' => '-3.1', # 'name' => 'float0126: !between (ok)', # 'schema' => [ # 'float', # '!between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:float) float0126: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, opshortcut, type, type:float) float0126: !between (ok) # { # 'input' => '-3.1', # 'name' => 'float0127: between.op=not (nok)', # 'schema' => [ # 'float', # 'between', # [ # '-3.1', # '-3.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:float) float0127: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:not, type, type:float) float0127: between.op=not (nok) # { # 'input' => '-3.1', # 'name' => 'float0128: between.op=not (ok)', # 'schema' => [ # 'float', # 'between', # [ # '2.1', # '2.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:float) float0128: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:not, type, type:float) float0128: between.op=not (ok) # { # 'input' => '-3.1', # 'name' => 'float0129: between& (no items)', # 'schema' => [ # 'float', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0129: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0129: between& (no items) # { # 'input' => '-3.1', # 'name' => 'float0130: between& (ok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0130: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0130: between& (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0131: between& (nok + ok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0131: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0131: between& (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0132: between& (ok + nok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0132: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0132: between& (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0133: between& (nok + nok)', # 'schema' => [ # 'float', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:float) float0133: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, opshortcut, type, type:float) float0133: between& (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0134: between.op=and (no items)', # 'schema' => [ # 'float', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:float) float0134: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=type, type:float) float0134: between.op=and (no items) # { # 'input' => '-3.1', # 'name' => 'float0135: between.op=and (ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0135: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:float) float0135: between.op=and (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0136: between.op=and (nok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0136: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:float) float0136: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0137: between.op=and (ok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0137: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:and, type, type:float) float0137: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0138: between.op=and (nok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:float) float0138: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:and, type, type:float) float0138: between.op=and (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0139: between| (no items)', # 'schema' => [ # 'float', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0139: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0139: between| (no items) # { # 'input' => '-3.1', # 'name' => 'float0140: between| (ok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0140: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0140: between| (ok) # { # 'input' => '-3.1', # 'name' => 'float0141: between| (nok + ok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0141: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0141: between| (nok + ok) # { # 'input' => '-3.1', # 'name' => 'float0142: between| (ok + nok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0142: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0142: between| (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0143: between| (nok + nok)', # 'schema' => [ # 'float', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:float) float0143: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, opshortcut, type, type:float) float0143: between| (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0144: between.op=or (no items)', # 'schema' => [ # 'float', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0144: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:float) float0144: between.op=or (no items) # { # 'input' => '-3.1', # 'name' => 'float0145: between.op=or (ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0145: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:float) float0145: between.op=or (ok) # { # 'input' => '-3.1', # 'name' => 'float0146: between.op=or (nok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0146: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:float) float0146: between.op=or (nok + ok) # { # 'input' => '-3.1', # 'name' => 'float0147: between.op=or (ok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0147: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:or, type, type:float) float0147: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0148: between.op=or (nok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:float) float0148: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:or, type, type:float) float0148: between.op=or (nok + nok) # { # 'input' => '-3.1', # 'name' => 'float0149: between.op=none (empty items)', # 'schema' => [ # 'float', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0149: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:float) float0149: between.op=none (empty items) # { # 'input' => '-3.1', # 'name' => 'float0150: between.op=none (nok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0150: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:float) float0150: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0151: between.op=none (nok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0151: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:float) float0151: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0152: between.op=none (ok + nok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0152: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:between, op, op:none, type, type:float) float0152: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'float0153: between.op=none (ok + ok)', # 'schema' => [ # 'float', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:float', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:float) float0153: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:between, op, op:none, type, type:float) float0153: between.op=none (ok + ok) ok 154 1..154 ok 9 - 10-type-float.json # Subtest: 10-type-hash.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => {}, # 'name' => 'hash0001: type check: must accept {}', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0001: type check: must accept {} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:hash) hash0001: type check: must accept {} # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0002: type check: must accept {a=>1}', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0002: type check: must accept {a=>1} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:hash) hash0002: type check: must accept {a=>1} # { # 'input' => { # '' => [] # }, # 'name' => 'hash0003: type check: must accept {=>[]}', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0003: type check: must accept {=>[]} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:hash) hash0003: type check: must accept {=>[]} # { # 'input' => 1, # 'name' => 'hash0004: type check: must reject 1', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0004: type check: must reject 1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:hash) hash0004: type check: must reject 1 # { # 'input' => 'a', # 'name' => 'hash0005: type check: must reject a', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0005: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:hash) hash0005: type check: must reject a # { # 'input' => [], # 'name' => 'hash0006: type check: must reject []', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0006: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:hash) hash0006: type check: must reject [] # { # 'input' => undef, # 'name' => 'hash0007: must accept undefined value', # 'schema' => 'hash', # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:hash) hash0007: must accept undefined value # { # 'input' => undef, # 'name' => 'hash0008: defhash_v', # 'schema' => [ # 'hash', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:hash) hash0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:hash) hash0008: defhash_v # { # 'input' => undef, # 'name' => 'hash0009: v', # 'schema' => [ # 'hash', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:hash) hash0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:hash) hash0009: v # { # 'input' => undef, # 'name' => 'hash0010: c', # 'schema' => [ # 'hash', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:hash) hash0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:hash) hash0010: c # { # 'input' => undef, # 'name' => 'hash0011: default_lang', # 'schema' => [ # 'hash', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:hash) hash0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:hash) hash0011: default_lang # { # 'input' => undef, # 'name' => 'hash0012: name', # 'schema' => [ # 'hash', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:hash) hash0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:hash) hash0012: name # { # 'input' => undef, # 'name' => 'hash0013: summary', # 'schema' => [ # 'hash', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:hash) hash0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:hash) hash0013: summary # { # 'input' => undef, # 'name' => 'hash0014: description', # 'schema' => [ # 'hash', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:hash) hash0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:hash) hash0014: description # { # 'input' => undef, # 'name' => 'hash0015: tags', # 'schema' => [ # 'hash', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:hash) hash0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:hash) hash0015: tags # { # 'input' => undef, # 'name' => 'hash0016: req=0 must accept undefined value', # 'schema' => [ # 'hash', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:hash) hash0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:hash) hash0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'hash0017: req=1 must reject undefined value', # 'schema' => [ # 'hash', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:hash) hash0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:hash) hash0017: req=1 must reject undefined value # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0018: forbidden=0 must accept defined value', # 'schema' => [ # 'hash', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:hash) hash0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:hash) hash0018: forbidden=0 must accept defined value # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0019: forbidden=1 must reject defined value', # 'schema' => [ # 'hash', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:hash) hash0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:hash) hash0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'hash0020: default: must accept valid default {}', # 'schema' => [ # 'hash*', # 'default', # {} # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:hash) hash0020: default: must accept valid default {} ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:hash) hash0020: default: must accept valid default {} # { # 'input' => undef, # 'name' => 'hash0021: default: must reject invalid default a', # 'schema' => [ # 'hash*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:hash) hash0021: default: must reject invalid default a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:hash) hash0021: default: must reject invalid default a # { # 'dies' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0022: clause (dies, unknown clause)', # 'schema' => [ # 'hash*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:hash) hash0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:hash) hash0022: clause (dies, unknown clause) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0023: clause (ok)', # 'schema' => [ # 'hash*', # 'clause', # [ # 'min_len', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:hash) hash0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:hash) hash0023: clause (ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'hash*', # 'clause', # [ # 'min_len', # 1 # ], # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:hash) hash0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:hash) hash0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0025: clause (nok)', # 'schema' => [ # 'hash*', # 'clause', # [ # 'min_len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:hash) hash0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:hash) hash0025: clause (nok) # { # 'dies' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0026: clset (dies, unknown clause)', # 'schema' => [ # 'hash*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:hash) hash0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:hash) hash0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0027: clset (dies, unknown attr)', # 'schema' => [ # 'hash*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:hash) hash0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:hash) hash0027: clset (dies, unknown attr) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0028: clset (empty = ok)', # 'schema' => [ # 'hash*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:hash) hash0028: clset (empty = ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'hash*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:hash) hash0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:hash) hash0029: clset (ignored clause/attr = ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0030: clset (ok + ok = ok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:hash) hash0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:hash) hash0030: clset (ok + ok = ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'hash*', # 'clset', # { # 'min_len' => 1 # }, # 'max_len', # 0 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:hash) hash0031: clset (ok) + clause nok = nok # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0032: clset (ok + nok = nok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:hash) hash0032: clset (ok + nok = nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0033: clset (nok + ok = nok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 1, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:hash) hash0033: clset (nok + ok = nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0034: clset (nok + nok = nok)', # 'schema' => [ # 'hash*', # 'clset', # { # 'max_len' => 0, # 'min_len' => 2 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:hash) hash0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:hash) hash0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'hash0035: ok', # 'schema' => [ # 'hash', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:hash) hash0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:hash) hash0035: ok # { # 'input' => undef, # 'name' => 'hash0036: ok + op not (nok)', # 'schema' => [ # 'hash', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:hash) hash0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:hash) hash0036: ok + op not (nok) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:hash) hash0037: .err_level=error (clause=is, ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:hash) hash0038: .err_level=error (clause=is, nok) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 0 # }, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:hash) hash0039: .err_level=warn (clause=is, ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'hash*', # 'is', # { # 'a' => 0 # }, # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:hash', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:hash) hash0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:hash) hash0040: .err_level=warn (clause=is, nok) # { # 'input' => {}, # 'name' => 'hash0041: is: must accept same value', # 'schema' => [ # 'hash', # 'is', # {} # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:hash) hash0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:hash) hash0041: is: must accept same value # { # 'input' => {}, # 'name' => 'hash0042: is: must reject different value', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:hash) hash0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:hash) hash0042: is: must reject different value # { # 'input' => {}, # 'name' => 'hash0043: !is (nok)', # 'schema' => [ # 'hash', # '!is', # {} # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0043: !is (nok) # { # 'input' => {}, # 'name' => 'hash0044: !is (ok)', # 'schema' => [ # 'hash', # '!is', # { # 'a' => 1 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:hash) hash0044: !is (ok) # { # 'input' => {}, # 'name' => 'hash0045: is.op=not (nok)', # 'schema' => [ # 'hash', # 'is', # {}, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:hash) hash0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:hash) hash0045: is.op=not (nok) # { # 'input' => {}, # 'name' => 'hash0046: is.op=not (ok)', # 'schema' => [ # 'hash', # 'is', # { # 'a' => 1 # }, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:hash) hash0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:hash) hash0046: is.op=not (ok) # { # 'input' => {}, # 'name' => 'hash0047: is& (no items)', # 'schema' => [ # 'hash', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0047: is& (no items) # { # 'input' => {}, # 'name' => 'hash0048: is& (ok)', # 'schema' => [ # 'hash', # 'is&', # [ # {}, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0048: is& (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0049: is& (nok + ok)', # 'schema' => [ # 'hash', # 'is&', # [ # { # 'a' => 1 # }, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0050: is& (ok + nok)', # 'schema' => [ # 'hash', # 'is&', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0051: is& (nok + nok)', # 'schema' => [ # 'hash', # 'is&', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:hash) hash0051: is& (nok + nok) # { # 'input' => {}, # 'name' => 'hash0052: is.op=and (no items)', # 'schema' => [ # 'hash', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:hash) hash0052: is.op=and (no items) # { # 'input' => {}, # 'name' => 'hash0053: is.op=and (ok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # {} # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:hash) hash0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0054: is.op=and (nok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # {} # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:hash) hash0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0055: is.op=and (ok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # { # 'a' => 1 # } # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:hash) hash0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0056: is.op=and (nok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:hash) hash0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:hash) hash0056: is.op=and (nok + nok) # { # 'input' => {}, # 'name' => 'hash0057: is| (no items)', # 'schema' => [ # 'hash', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0057: is| (no items) # { # 'input' => {}, # 'name' => 'hash0058: is| (ok)', # 'schema' => [ # 'hash', # 'is|', # [ # {}, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0058: is| (ok) # { # 'input' => {}, # 'name' => 'hash0059: is| (nok + ok)', # 'schema' => [ # 'hash', # 'is|', # [ # { # 'a' => 1 # }, # {} # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0059: is| (nok + ok) # { # 'input' => {}, # 'name' => 'hash0060: is| (ok + nok)', # 'schema' => [ # 'hash', # 'is|', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0061: is| (nok + nok)', # 'schema' => [ # 'hash', # 'is|', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:hash) hash0061: is| (nok + nok) # { # 'input' => {}, # 'name' => 'hash0062: is.op=or (no items)', # 'schema' => [ # 'hash', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:hash) hash0062: is.op=or (no items) # { # 'input' => {}, # 'name' => 'hash0063: is.op=or (ok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # {} # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:hash) hash0063: is.op=or (ok) # { # 'input' => {}, # 'name' => 'hash0064: is.op=or (nok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # {} # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:hash) hash0064: is.op=or (nok + ok) # { # 'input' => {}, # 'name' => 'hash0065: is.op=or (ok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # { # 'a' => 1 # } # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:hash) hash0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0066: is.op=or (nok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:hash) hash0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:hash) hash0066: is.op=or (nok + nok) # { # 'input' => {}, # 'name' => 'hash0067: is.op=none (empty items)', # 'schema' => [ # 'hash', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:hash) hash0067: is.op=none (empty items) # { # 'input' => {}, # 'name' => 'hash0068: is.op=none (nok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # { # 'a' => 1 # } # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:hash) hash0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0069: is.op=none (nok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # { # 'a' => 1 # }, # {} # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:hash) hash0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0070: is.op=none (ok + nok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # { # 'a' => 1 # } # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:hash) hash0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0071: is.op=none (ok + ok)', # 'schema' => [ # 'hash', # 'is', # [ # {}, # {} # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:hash) hash0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:hash) hash0071: is.op=none (ok + ok) # { # 'input' => {}, # 'name' => 'hash0072: in: must accept valid choices', # 'schema' => [ # 'hash', # 'in', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:hash) hash0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:hash) hash0072: in: must accept valid choices # { # 'input' => {}, # 'name' => 'hash0073: in: must reject empty choices', # 'schema' => [ # 'hash', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:hash) hash0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:hash) hash0073: in: must reject empty choices # { # 'input' => {}, # 'name' => 'hash0074: !in (nok)', # 'schema' => [ # 'hash', # '!in', # [ # {}, # { # 'a' => 1 # } # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0074: !in (nok) # { # 'input' => {}, # 'name' => 'hash0075: !in (ok)', # 'schema' => [ # 'hash', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:hash) hash0075: !in (ok) # { # 'input' => {}, # 'name' => 'hash0076: in.op=not (nok)', # 'schema' => [ # 'hash', # 'in', # [ # {}, # { # 'a' => 1 # } # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:hash) hash0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:hash) hash0076: in.op=not (nok) # { # 'input' => {}, # 'name' => 'hash0077: in.op=not (ok)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:hash) hash0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:hash) hash0077: in.op=not (ok) # { # 'input' => {}, # 'name' => 'hash0078: in& (no items)', # 'schema' => [ # 'hash', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0078: in& (no items) # { # 'input' => {}, # 'name' => 'hash0079: in& (ok)', # 'schema' => [ # 'hash', # 'in&', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0079: in& (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0080: in& (nok + ok)', # 'schema' => [ # 'hash', # 'in&', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0081: in& (ok + nok)', # 'schema' => [ # 'hash', # 'in&', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0082: in& (nok + nok)', # 'schema' => [ # 'hash', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:hash) hash0082: in& (nok + nok) # { # 'input' => {}, # 'name' => 'hash0083: in.op=and (no items)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:hash) hash0083: in.op=and (no items) # { # 'input' => {}, # 'name' => 'hash0084: in.op=and (ok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:hash) hash0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0085: in.op=and (nok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:hash) hash0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0086: in.op=and (ok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:hash) hash0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0087: in.op=and (nok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:hash) hash0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:hash) hash0087: in.op=and (nok + nok) # { # 'input' => {}, # 'name' => 'hash0088: in| (no items)', # 'schema' => [ # 'hash', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0088: in| (no items) # { # 'input' => {}, # 'name' => 'hash0089: in| (ok)', # 'schema' => [ # 'hash', # 'in|', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0089: in| (ok) # { # 'input' => {}, # 'name' => 'hash0090: in| (nok + ok)', # 'schema' => [ # 'hash', # 'in|', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0090: in| (nok + ok) # { # 'input' => {}, # 'name' => 'hash0091: in| (ok + nok)', # 'schema' => [ # 'hash', # 'in|', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0092: in| (nok + nok)', # 'schema' => [ # 'hash', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:hash) hash0092: in| (nok + nok) # { # 'input' => {}, # 'name' => 'hash0093: in.op=or (no items)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:hash) hash0093: in.op=or (no items) # { # 'input' => {}, # 'name' => 'hash0094: in.op=or (ok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:hash) hash0094: in.op=or (ok) # { # 'input' => {}, # 'name' => 'hash0095: in.op=or (nok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:hash) hash0095: in.op=or (nok + ok) # { # 'input' => {}, # 'name' => 'hash0096: in.op=or (ok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:hash) hash0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0097: in.op=or (nok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:hash) hash0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:hash) hash0097: in.op=or (nok + nok) # { # 'input' => {}, # 'name' => 'hash0098: in.op=none (empty items)', # 'schema' => [ # 'hash', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:hash) hash0098: in.op=none (empty items) # { # 'input' => {}, # 'name' => 'hash0099: in.op=none (nok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:hash) hash0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0100: in.op=none (nok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:hash) hash0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0101: in.op=none (ok + nok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:hash) hash0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => {}, # 'name' => 'hash0102: in.op=none (ok + ok)', # 'schema' => [ # 'hash', # 'in', # [ # [ # {}, # { # 'a' => 1 # } # ], # [ # {}, # { # 'a' => 1 # } # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:hash) hash0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:hash) hash0102: in.op=none (ok + ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0103: len (ok)', # 'schema' => [ # 'hash', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:hash) hash0103: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:len, type, type:hash) hash0103: len (ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0104: len (nok)', # 'schema' => [ # 'hash', # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:hash) hash0104: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:len, type, type:hash) hash0104: len (nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0105: min_len (ok)', # 'schema' => [ # 'hash', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:hash) hash0105: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min_len, type, type:hash) hash0105: min_len (ok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0106: min_len (nok)', # 'schema' => [ # 'hash', # 'min_len', # 2 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:hash) hash0106: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min_len, type, type:hash) hash0106: min_len (nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0107: max_len (ok)', # 'schema' => [ # 'hash', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:hash) hash0107: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:max_len, type, type:hash) hash0107: max_len (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0108: max_len (nok)', # 'schema' => [ # 'hash', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:hash) hash0108: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:max_len, type, type:hash) hash0108: max_len (nok) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0109: len_between (ok)', # 'schema' => [ # 'hash', # 'len_between', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:hash) hash0109: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:len_between, type, type:hash) hash0109: len_between (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0110: len_between (nok)', # 'schema' => [ # 'hash', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:hash) hash0110: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:len_between, type, type:hash) hash0110: len_between (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0111: each_index (ok)', # 'schema' => [ # 'hash', # 'each_index', # [ # 'str', # 'len', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:hash) hash0111: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:each_index, type, type:hash) hash0111: each_index (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0112: each_index (nok)', # 'schema' => [ # 'hash', # 'each_index', # [ # 'str', # 'len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:hash) hash0112: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:each_index, type, type:hash) hash0112: each_index (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0113: each_key (ok)', # 'schema' => [ # 'hash', # 'each_key', # [ # 'str', # 'len', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_key' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_key, type, type:hash) hash0113: each_key (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:each_key, type, type:hash) hash0113: each_key (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0114: each_key (nok)', # 'schema' => [ # 'hash', # 'each_key', # [ # 'str', # 'len', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_key' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_key, type, type:hash) hash0114: each_key (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:each_key, type, type:hash) hash0114: each_key (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0115: each_elem (ok)', # 'schema' => [ # 'hash', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:hash) hash0115: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:each_elem, type, type:hash) hash0115: each_elem (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0116: each_elem (nok)', # 'schema' => [ # 'hash', # 'each_elem', # 'int' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:hash) hash0116: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:each_elem, type, type:hash) hash0116: each_elem (nok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0117: each_value (ok)', # 'schema' => [ # 'hash', # 'each_value', # 'float' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_value' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_value, type, type:hash) hash0117: each_value (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:each_value, type, type:hash) hash0117: each_value (ok) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0118: each_value (nok)', # 'schema' => [ # 'hash', # 'each_value', # 'int' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:each_value' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_value, type, type:hash) hash0118: each_value (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:each_value, type, type:hash) hash0118: each_value (nok) # { # 'invalid_inputs' => [ # {}, # { # '3' => 'c' # } # ], # 'name' => 'hash0127: has', # 'schema' => [ # 'hash', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has' # ], # 'valid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # }, # { # '1' => 'a', # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, type, type:hash) hash0127: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 119 - (tags=clause:has, type, type:hash) hash0127: has # { # 'invalid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # }, # { # '1' => 'a', # '3' => 'c' # } # ], # 'name' => 'hash0128: has + op.not', # 'schema' => [ # 'hash', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # {}, # { # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:hash) hash0128: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 120 - (tags=clause:has, op, op:not, opshortcut, type, type:hash) hash0128: has + op.not # { # 'invalid_inputs' => [ # {}, # { # '3' => 'c' # } # ], # 'name' => 'hash0129: has + op.or', # 'schema' => [ # 'hash', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # }, # { # '1' => 'a', # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:hash) hash0129: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - validator (rt=full) returns hash 1..6 ok 121 - (tags=clause:has, op, op:or, opshortcut, type, type:hash) hash0129: has + op.or # { # 'invalid_inputs' => [ # { # '1' => 'a', # '3' => 'c' # }, # {}, # { # '3' => 'c' # } # ], # 'name' => 'hash0130: has + op.and', # 'schema' => [ # 'hash', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # { # '1' => 'a', # '2' => 'b', # '3' => 'c' # } # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:hash) hash0130: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - validator (rt=full) returns hash 1..6 ok 122 - (tags=clause:has, op, op:and, opshortcut, type, type:hash) hash0130: has + op.and # { # 'input' => {}, # 'name' => 'hash0136: keys: (ok, empty)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0136: keys: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:keys, type, type:hash) hash0136: keys: (ok, empty) # { # 'input' => { # 'a' => undef # }, # 'name' => 'hash0137: keys: (ok, only a, a valid 1)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0137: keys: (ok, only a, a valid 1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:keys, type, type:hash) hash0137: keys: (ok, only a, a valid 1) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0138: keys: (ok, only a, a valid 2)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0138: keys: (ok, only a, a valid 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:keys, type, type:hash) hash0138: keys: (ok, only a, a valid 2) # { # 'input' => { # 'a' => '1.1' # }, # 'name' => 'hash0139: keys: (nok, only a, a invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0139: keys: (nok, only a, a invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:keys, type, type:hash) hash0139: keys: (nok, only a, a invalid) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0140: keys: (ok, only a, valid 2)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0140: keys: (ok, only a, valid 2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:keys, type, type:hash) hash0140: keys: (ok, only a, valid 2) # { # 'input' => { # 'a' => 1, # 'b' => '1.1' # }, # 'name' => 'hash0141: keys: (ok, a & b, valid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0141: keys: (ok, a & b, valid) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:keys, type, type:hash) hash0141: keys: (ok, a & b, valid) # { # 'input' => { # 'a' => 1, # 'b' => undef # }, # 'name' => 'hash0142: keys: (nok, a & b, b invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0142: keys: (nok, a & b, b invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:keys, type, type:hash) hash0142: keys: (nok, a & b, b invalid) # { # 'input' => { # 'a' => '1.1', # 'b' => '1.1' # }, # 'name' => 'hash0143: keys: (nok, a & b, a invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0143: keys: (nok, a & b, a invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:keys, type, type:hash) hash0143: keys: (nok, a & b, a invalid) # { # 'input' => { # 'a' => '1.1', # 'b' => undef # }, # 'name' => 'hash0144: keys: (nok, a & b, a & b invalid)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0144: keys: (nok, a & b, a & b invalid) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:keys, type, type:hash) hash0144: keys: (nok, a & b, a & b invalid) # { # 'input' => { # 'a' => 1, # 'b' => '1.1', # 'c' => 1 # }, # 'name' => 'hash0145: keys: (nok, extra)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0145: keys: (nok, extra) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:keys, type, type:hash) hash0145: keys: (nok, extra) # { # 'input' => { # 'a' => 1, # 'b' => '1.1', # 'c' => 1 # }, # 'name' => 'hash0146: keys: (ok, extra, restrict=0)', # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => 'float*' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:keys, type, type:hash) hash0146: keys: (ok, extra, restrict=0) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:keys, type, type:hash) hash0146: keys: (ok, extra, restrict=0) # { # 'input' => {}, # 'name' => 'hash0147: keys (create_default=1) 1', # 'output' => { # 'b' => 2 # }, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0147: keys (create_default=1) 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 134 - (tags=clause:keys, type, type:hash) hash0147: keys (create_default=1) 1 # { # 'input' => { # 'b' => undef # }, # 'name' => 'hash0148: keys (create_default=1) 2', # 'output' => { # 'b' => 2 # }, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0148: keys (create_default=1) 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 135 - (tags=clause:keys, type, type:hash) hash0148: keys (create_default=1) 2 # { # 'input' => {}, # 'name' => 'hash0149: keys (create_default=0) 1', # 'output' => {}, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # }, # 'keys.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0149: keys (create_default=0) 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 136 - (tags=clause:keys, type, type:hash) hash0149: keys (create_default=0) 1 # { # 'input' => { # 'b' => undef # }, # 'name' => 'hash0150: keys (create_default=0) 2', # 'output' => { # 'b' => 2 # }, # 'schema' => [ # 'hash', # { # 'keys' => { # 'a' => 'int', # 'b' => [ # 'int', # 'default', # 2 # ] # }, # 'keys.create_default' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:keys, type, type:hash) hash0150: keys (create_default=0) 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - output ok 4 - valid (rt=str) ok 5 - validator (rt=full) returns hash ok 6 - errors (rt=full) ok 7 - warnings (rt=full) 1..7 ok 137 - (tags=clause:keys, type, type:hash) hash0150: keys (create_default=0) 2 # { # 'invalid_inputs' => [ # { # 'a' => 'x' # }, # { # 'b' => 'x' # }, # { # 'c' => 1 # } # ], # 'name' => 'hash0151: re_keys', # 'schema' => [ # 'hash', # { # 're_keys' => { # '[ab]' => 'int' # } # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:re_keys' # ], # 'valid_inputs' => [ # {}, # { # 'a' => 1 # }, # { # 'b' => 1 # } # ] # } # Subtest: (tags=clause:re_keys, type, type:hash) hash0151: re_keys ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - invalid input [0] ok 6 - invalid input [1] ok 7 - invalid input [2] ok 8 - validator (rt=full) returns hash 1..8 ok 138 - (tags=clause:re_keys, type, type:hash) hash0151: re_keys # { # 'invalid_inputs' => [ # { # 'a' => 'x' # }, # { # 'b' => 'x' # } # ], # 'name' => 'hash0152: re_keys (restrict=0)', # 'schema' => [ # 'hash', # { # 're_keys' => { # '[ab]' => 'int' # }, # 're_keys.restrict' => 0 # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:re_keys' # ], # 'valid_inputs' => [ # {}, # { # 'a' => 1 # }, # { # 'b' => 1 # }, # { # 'c' => 'x' # } # ] # } # Subtest: (tags=clause:re_keys, type, type:hash) hash0152: re_keys (restrict=0) ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - valid input [3] ok 6 - invalid input [0] ok 7 - invalid input [1] ok 8 - validator (rt=full) returns hash 1..8 ok 139 - (tags=clause:re_keys, type, type:hash) hash0152: re_keys (restrict=0) # { # 'input' => {}, # 'name' => 'hash0153: req_keys: (ok, empty req_keys, empty keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0153: req_keys: (ok, empty req_keys, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:req_keys, type, type:hash) hash0153: req_keys: (ok, empty req_keys, empty keys in input) # { # 'input' => { # 'a' => 1 # }, # 'name' => 'hash0154: req_keys: (ok, empty req_keys, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0154: req_keys: (ok, empty req_keys, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:req_keys, type, type:hash) hash0154: req_keys: (ok, empty req_keys, extra keys in input) # { # 'input' => { # 'a' => 1, # 'b' => 1 # }, # 'name' => 'hash0155: req_keys: (ok)', # 'schema' => [ # 'hash', # { # 'req_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0155: req_keys: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:req_keys, type, type:hash) hash0155: req_keys: (ok) # { # 'input' => { # 'a' => 1, # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0156: req_keys: (ok, extra keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0156: req_keys: (ok, extra keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:req_keys, type, type:hash) hash0156: req_keys: (ok, extra keys in input) # { # 'input' => { # 'b' => 1, # 'c' => 1 # }, # 'name' => 'hash0157: req_keys: (nok, missing req keys in input)', # 'schema' => [ # 'hash', # { # 'req_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:req_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req_keys, type, type:hash) hash0157: req_keys: (nok, missing req keys in input) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:req_keys, type, type:hash) hash0157: req_keys: (nok, missing req keys in input) # { # 'input' => {}, # 'name' => 'hash0158: allowed_keys: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'allowed_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys, type, type:hash) hash0158: allowed_keys: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:allowed_keys, type, type:hash) hash0158: allowed_keys: (ok, empty keys in input) # { # 'input' => { # 'a' => 1, # 'b' => undef # }, # 'name' => 'hash0159: allowed_keys: (ok)', # 'schema' => [ # 'hash', # { # 'allowed_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys, type, type:hash) hash0159: allowed_keys: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:allowed_keys, type, type:hash) hash0159: allowed_keys: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0160: allowed_keys: (nok, keys outside allowed list)', # 'schema' => [ # 'hash', # { # 'allowed_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:allowed_keys, type, type:hash) hash0160: allowed_keys: (nok, keys outside allowed list) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:allowed_keys, type, type:hash) hash0160: allowed_keys: (nok, keys outside allowed list) # { # 'input' => {}, # 'name' => 'hash0161: allowed_keys_re: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'allowed_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys_re, type, type:hash) hash0161: allowed_keys_re: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:allowed_keys_re, type, type:hash) hash0161: allowed_keys_re: (ok, empty keys in input) # { # 'input' => { # 'a' => 1, # 'b' => undef # }, # 'name' => 'hash0162: allowed_keys_re: (ok)', # 'schema' => [ # 'hash', # { # 'allowed_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:allowed_keys_re, type, type:hash) hash0162: allowed_keys_re: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:allowed_keys_re, type, type:hash) hash0162: allowed_keys_re: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0163: allowed_keys_re: (nok, keys outside allowed regex)', # 'schema' => [ # 'hash', # { # 'allowed_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:allowed_keys_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:allowed_keys_re, type, type:hash) hash0163: allowed_keys_re: (nok, keys outside allowed regex) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:allowed_keys_re, type, type:hash) hash0163: allowed_keys_re: (nok, keys outside allowed regex) # { # 'input' => {}, # 'name' => 'hash0164: forbidden_keys: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'forbidden_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys, type, type:hash) hash0164: forbidden_keys: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:forbidden_keys, type, type:hash) hash0164: forbidden_keys: (ok, empty keys in input) # { # 'input' => { # 'd' => 1, # 'e' => undef # }, # 'name' => 'hash0165: forbidden_keys: (ok)', # 'schema' => [ # 'hash', # { # 'forbidden_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys, type, type:hash) hash0165: forbidden_keys: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:forbidden_keys, type, type:hash) hash0165: forbidden_keys: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0166: forbidden_keys: (nok, keys in forbidden list)', # 'schema' => [ # 'hash', # { # 'forbidden_keys' => [ # 'a', # 'b', # 'c' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden_keys, type, type:hash) hash0166: forbidden_keys: (nok, keys in forbidden list) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:forbidden_keys, type, type:hash) hash0166: forbidden_keys: (nok, keys in forbidden list) # { # 'input' => {}, # 'name' => 'hash0167: forbidden_keys_re: (ok, empty keys in input)', # 'schema' => [ # 'hash', # { # 'forbidden_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys_re, type, type:hash) hash0167: forbidden_keys_re: (ok, empty keys in input) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:forbidden_keys_re, type, type:hash) hash0167: forbidden_keys_re: (ok, empty keys in input) # { # 'input' => { # 'd' => 1, # 'e' => undef # }, # 'name' => 'hash0168: forbidden_keys_re: (ok)', # 'schema' => [ # 'hash', # { # 'forbidden_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden_keys_re, type, type:hash) hash0168: forbidden_keys_re: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:forbidden_keys_re, type, type:hash) hash0168: forbidden_keys_re: (ok) # { # 'input' => { # 'a' => 1, # 'd' => undef # }, # 'name' => 'hash0169: forbidden_keys_re: (nok, keys in forbidden regex)', # 'schema' => [ # 'hash', # { # 'forbidden_keys_re' => '^(a|b|c)$' # } # ], # 'tags' => [ # 'type', # 'type:hash', # 'clause:forbidden_keys_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden_keys_re, type, type:hash) hash0169: forbidden_keys_re: (nok, keys in forbidden regex) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:forbidden_keys_re, type, type:hash) hash0169: forbidden_keys_re: (nok, keys in forbidden regex) # { # 'input' => {}, # 'name' => 'hash0170: choose_one_key: (ok, empty)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0170: choose_one_key: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=type, type:hash) hash0170: choose_one_key: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0171: choose_one_key: (ok, a)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0171: choose_one_key: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=type, type:hash) hash0171: choose_one_key: (ok, a) # { # 'input' => { # 'a' => 0, # 'd' => 0 # }, # 'name' => 'hash0172: choose_one_key: (ok, a+d)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0172: choose_one_key: (ok, a+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=type, type:hash) hash0172: choose_one_key: (ok, a+d) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0173: choose_one_key: (ok, b)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0173: choose_one_key: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=type, type:hash) hash0173: choose_one_key: (ok, b) # { # 'input' => { # 'b' => 0, # 'd' => 0 # }, # 'name' => 'hash0174: choose_one_key: (ok, b+d)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0174: choose_one_key: (ok, b+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=type, type:hash) hash0174: choose_one_key: (ok, b+d) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0175: choose_one_key: (nok, a+b)', # 'schema' => [ # 'hash', # { # 'choose_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0175: choose_one_key: (nok, a+b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=type, type:hash) hash0175: choose_one_key: (nok, a+b) # { # 'input' => {}, # 'name' => 'hash0176: choose_all_keys: (ok, empty)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0176: choose_all_keys: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=type, type:hash) hash0176: choose_all_keys: (ok, empty) # { # 'input' => { # 'd' => 0 # }, # 'name' => 'hash0177: choose_all_keys: (ok, d)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0177: choose_all_keys: (ok, d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 164 - (tags=type, type:hash) hash0177: choose_all_keys: (ok, d) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0178: choose_all_keys: (ok, a+b)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0178: choose_all_keys: (ok, a+b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 165 - (tags=type, type:hash) hash0178: choose_all_keys: (ok, a+b) # { # 'input' => { # 'a' => 0, # 'b' => 0, # 'd' => 0 # }, # 'name' => 'hash0179: choose_all_keys: (ok, a+b+d)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0179: choose_all_keys: (ok, a+b+d) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 166 - (tags=type, type:hash) hash0179: choose_all_keys: (ok, a+b+d) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0180: choose_all_keys: (nok, a)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0180: choose_all_keys: (nok, a) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 167 - (tags=type, type:hash) hash0180: choose_all_keys: (nok, a) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0181: choose_all_keys: (nok, b)', # 'schema' => [ # 'hash', # { # 'choose_all_keys' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0181: choose_all_keys: (nok, b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=type, type:hash) hash0181: choose_all_keys: (nok, b) # { # 'input' => {}, # 'name' => 'hash0182: req_one_key: (nok, empty)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0182: req_one_key: (nok, empty) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 169 - (tags=type, type:hash) hash0182: req_one_key: (nok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0183: req_one_key: (ok, a)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0183: req_one_key: (ok, a) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=type, type:hash) hash0183: req_one_key: (ok, a) # { # 'input' => { # 'b' => 0 # }, # 'name' => 'hash0184: req_one_key: (ok, b)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0184: req_one_key: (ok, b) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=type, type:hash) hash0184: req_one_key: (ok, b) # { # 'input' => { # 'a' => 0, # 'b' => 0 # }, # 'name' => 'hash0185: req_one_key: (nok, a+b)', # 'schema' => [ # 'hash', # { # 'req_one_key' => [ # 'a', # 'b' # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0185: req_one_key: (nok, a+b) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 172 - (tags=type, type:hash) hash0185: req_one_key: (nok, a+b) # { # 'input' => {}, # 'name' => 'hash0186: dep_any: (ok, empty)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0186: dep_any: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=type, type:hash) hash0186: dep_any: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0187: dep_any: (nok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0187: dep_any: (nok, a specified without d1/d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=type, type:hash) hash0187: dep_any: (nok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0188: dep_any: (ok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0188: dep_any: (ok, a specified with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=type, type:hash) hash0188: dep_any: (ok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0189: dep_any: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0189: dep_any: (ok, a specified with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=type, type:hash) hash0189: dep_any: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0190: dep_any: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0190: dep_any: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 177 - (tags=type, type:hash) hash0190: dep_any: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0191: dep_any: (ok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0191: dep_any: (ok, no a with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 178 - (tags=type, type:hash) hash0191: dep_any: (ok, no a with d1 & d2) # { # 'input' => {}, # 'name' => 'hash0192: dep_all: (ok, empty)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0192: dep_all: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 179 - (tags=type, type:hash) hash0192: dep_all: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0193: dep_all: (nok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0193: dep_all: (nok, a specified without d1/d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 180 - (tags=type, type:hash) hash0193: dep_all: (nok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0194: dep_all: (nok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0194: dep_all: (nok, a specified with d1) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 181 - (tags=type, type:hash) hash0194: dep_all: (nok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0195: dep_all: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0195: dep_all: (ok, a specified with d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 182 - (tags=type, type:hash) hash0195: dep_all: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0196: dep_all: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0196: dep_all: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 183 - (tags=type, type:hash) hash0196: dep_all: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0197: dep_all: (ok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0197: dep_all: (ok, no a with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 184 - (tags=type, type:hash) hash0197: dep_all: (ok, no a with d1 & d2) # { # 'input' => {}, # 'name' => 'hash0198: req_dep_any: (ok, empty)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0198: req_dep_any: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 185 - (tags=type, type:hash) hash0198: req_dep_any: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0199: req_dep_any: (ok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0199: req_dep_any: (ok, a specified without d1/d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 186 - (tags=type, type:hash) hash0199: req_dep_any: (ok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0200: req_dep_any: (ok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0200: req_dep_any: (ok, a specified with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 187 - (tags=type, type:hash) hash0200: req_dep_any: (ok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0201: req_dep_any: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0201: req_dep_any: (ok, a specified with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 188 - (tags=type, type:hash) hash0201: req_dep_any: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0202: req_dep_any: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0202: req_dep_any: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 189 - (tags=type, type:hash) hash0202: req_dep_any: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0 # }, # 'name' => 'hash0203: req_dep_any: (ok, no a with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0203: req_dep_any: (ok, no a with d1) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 190 - (tags=type, type:hash) hash0203: req_dep_any: (ok, no a with d1) # { # 'input' => { # 'd2' => 0 # }, # 'name' => 'hash0204: req_dep_any: (ok, no a with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0204: req_dep_any: (ok, no a with d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 191 - (tags=type, type:hash) hash0204: req_dep_any: (ok, no a with d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0205: req_dep_any: (ok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_any' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0205: req_dep_any: (ok, no a with d1 & d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 192 - (tags=type, type:hash) hash0205: req_dep_any: (ok, no a with d1 & d2) # { # 'input' => {}, # 'name' => 'hash0206: req_dep_all: (ok, empty)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0206: req_dep_all: (ok, empty) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 193 - (tags=type, type:hash) hash0206: req_dep_all: (ok, empty) # { # 'input' => { # 'a' => 0 # }, # 'name' => 'hash0207: req_dep_all: (ok, a specified without d1/d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0207: req_dep_all: (ok, a specified without d1/d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 194 - (tags=type, type:hash) hash0207: req_dep_all: (ok, a specified without d1/d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0 # }, # 'name' => 'hash0208: req_dep_all: (ok, a specified with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0208: req_dep_all: (ok, a specified with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 195 - (tags=type, type:hash) hash0208: req_dep_all: (ok, a specified with d1) # { # 'input' => { # 'a' => 0, # 'd2' => 0 # }, # 'name' => 'hash0209: req_dep_all: (ok, a specified with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0209: req_dep_all: (ok, a specified with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 196 - (tags=type, type:hash) hash0209: req_dep_all: (ok, a specified with d2) # { # 'input' => { # 'a' => 0, # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0210: req_dep_all: (ok, a specified with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0210: req_dep_all: (ok, a specified with d1 & d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 197 - (tags=type, type:hash) hash0210: req_dep_all: (ok, a specified with d1 & d2) # { # 'input' => { # 'd1' => 0 # }, # 'name' => 'hash0211: req_dep_all: (ok, no a with d1)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0211: req_dep_all: (ok, no a with d1) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 198 - (tags=type, type:hash) hash0211: req_dep_all: (ok, no a with d1) # { # 'input' => { # 'd2' => 0 # }, # 'name' => 'hash0212: req_dep_all: (ok, no a with d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:hash) hash0212: req_dep_all: (ok, no a with d2) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 199 - (tags=type, type:hash) hash0212: req_dep_all: (ok, no a with d2) # { # 'input' => { # 'd1' => 0, # 'd2' => 0 # }, # 'name' => 'hash0213: req_dep_all: (nok, no a with d1 & d2)', # 'schema' => [ # 'hash', # { # 'req_dep_all' => [ # 'a', # [ # 'd1', # 'd2' # ] # ] # } # ], # 'tags' => [ # 'type', # 'type:hash' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:hash) hash0213: req_dep_all: (nok, no a with d1 & d2) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 200 - (tags=type, type:hash) hash0213: req_dep_all: (nok, no a with d1 & d2) ok 201 1..201 ok 10 - 10-type-hash.json # Subtest: 10-type-int.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => -1, # 'name' => 'int0001: type check: must accept -1', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0001: type check: must accept -1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:int) int0001: type check: must accept -1 # { # 'input' => 0, # 'name' => 'int0002: type check: must accept 0', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0002: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:int) int0002: type check: must accept 0 # { # 'input' => 1, # 'name' => 'int0003: type check: must accept 1', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0003: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:int) int0003: type check: must accept 1 # { # 'input' => '1.1', # 'name' => 'int0004: type check: must reject 1.1', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0004: type check: must reject 1.1 ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:int) int0004: type check: must reject 1.1 # { # 'input' => 'a', # 'name' => 'int0005: type check: must reject a', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0005: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:int) int0005: type check: must reject a # { # 'input' => [], # 'name' => 'int0006: type check: must reject []', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0006: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:int) int0006: type check: must reject [] # { # 'input' => {}, # 'name' => 'int0007: type check: must reject {}', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:int) int0007: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:int) int0007: type check: must reject {} # { # 'input' => undef, # 'name' => 'int0008: must accept undefined value', # 'schema' => 'int', # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0008: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=type, type:int) int0008: must accept undefined value # { # 'input' => undef, # 'name' => 'int0009: defhash_v', # 'schema' => [ # 'int', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:int) int0009: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:defhash_v, type, type:int) int0009: defhash_v # { # 'input' => undef, # 'name' => 'int0010: v', # 'schema' => [ # 'int', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:int) int0010: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:v, type, type:int) int0010: v # { # 'input' => undef, # 'name' => 'int0011: c', # 'schema' => [ # 'int', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:int) int0011: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:c, type, type:int) int0011: c # { # 'input' => undef, # 'name' => 'int0012: default_lang', # 'schema' => [ # 'int', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:int) int0012: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:default_lang, type, type:int) int0012: default_lang # { # 'input' => undef, # 'name' => 'int0013: name', # 'schema' => [ # 'int', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:int) int0013: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:name, type, type:int) int0013: name # { # 'input' => undef, # 'name' => 'int0014: summary', # 'schema' => [ # 'int', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:int) int0014: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:summary, type, type:int) int0014: summary # { # 'input' => undef, # 'name' => 'int0015: description', # 'schema' => [ # 'int', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:int) int0015: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:description, type, type:int) int0015: description # { # 'input' => undef, # 'name' => 'int0016: tags', # 'schema' => [ # 'int', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:int) int0016: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:tags, type, type:int) int0016: tags # { # 'input' => undef, # 'name' => 'int0017: req=0 must accept undefined value', # 'schema' => [ # 'int', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:int) int0017: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:int) int0017: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'int0018: req=1 must reject undefined value', # 'schema' => [ # 'int', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:int) int0018: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:req, type, type:int) int0018: req=1 must reject undefined value # { # 'input' => 2, # 'name' => 'int0019: forbidden=0 must accept defined value', # 'schema' => [ # 'int', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:int) int0019: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:int) int0019: forbidden=0 must accept defined value # { # 'input' => 2, # 'name' => 'int0020: forbidden=1 must reject defined value', # 'schema' => [ # 'int', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:int) int0020: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:forbidden, type, type:int) int0020: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'int0021: default: must accept valid default 1', # 'schema' => [ # 'int*', # 'default', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:int) int0021: default: must accept valid default 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:int) int0021: default: must accept valid default 1 # { # 'input' => undef, # 'name' => 'int0022: default: must reject invalid default []', # 'schema' => [ # 'int*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:int) int0022: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 22 - (tags=clause:default, type, type:int) int0022: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 2, # 'name' => 'int0023: clause (dies, unknown clause)', # 'schema' => [ # 'int*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:int) int0023: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 23 - (tags=clause:clause, type, type:int) int0023: clause (dies, unknown clause) # { # 'input' => 2, # 'name' => 'int0024: clause (ok)', # 'schema' => [ # 'int*', # 'clause', # [ # 'min', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:int) int0024: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:int) int0024: clause (ok) # { # 'input' => 2, # 'name' => 'int0025: clause (ok) + clause nok = nok', # 'schema' => [ # 'int*', # 'clause', # [ # 'min', # 1 # ], # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:int) int0025: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:int) int0025: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 2, # 'name' => 'int0026: clause (nok)', # 'schema' => [ # 'int*', # 'clause', # [ # 'min', # 3 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:int) int0026: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:clause, type, type:int) int0026: clause (nok) # { # 'dies' => 1, # 'input' => 2, # 'name' => 'int0027: clset (dies, unknown clause)', # 'schema' => [ # 'int*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:int) int0027: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:int) int0027: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 2, # 'name' => 'int0028: clset (dies, unknown attr)', # 'schema' => [ # 'int*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:int) int0028: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 28 - (tags=clause:clset, type, type:int) int0028: clset (dies, unknown attr) # { # 'input' => 2, # 'name' => 'int0029: clset (empty = ok)', # 'schema' => [ # 'int*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0029: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=type, type:int) int0029: clset (empty = ok) # { # 'input' => 2, # 'name' => 'int0030: clset (ignored clause/attr = ok)', # 'schema' => [ # 'int*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:int) int0030: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:int) int0030: clset (ignored clause/attr = ok) # { # 'input' => 2, # 'name' => 'int0031: clset (ok + ok = ok)', # 'schema' => [ # 'int*', # 'clset', # { # 'max' => 2, # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:int) int0031: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:int) int0031: clset (ok + ok = ok) # { # 'input' => 2, # 'name' => 'int0032: clset (ok) + clause nok = nok', # 'schema' => [ # 'int*', # 'clset', # { # 'min' => 1 # }, # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0032: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:int) int0032: clset (ok) + clause nok = nok # { # 'input' => 2, # 'name' => 'int0033: clset (ok + nok = nok)', # 'schema' => [ # 'int*', # 'clset', # { # 'min' => 1, # 'xmax' => 2 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0033: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:int) int0033: clset (ok + nok = nok) # { # 'input' => 2, # 'name' => 'int0034: clset (nok + ok = nok)', # 'schema' => [ # 'int*', # 'clset', # { # 'max' => 2, # 'min' => 3 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0034: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:int) int0034: clset (nok + ok = nok) # { # 'input' => 2, # 'name' => 'int0035: clset (nok + nok = nok)', # 'schema' => [ # 'int*', # 'clset', # { # 'min' => 3, # 'xmax' => 2 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:int) int0035: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:clset, type, type:int) int0035: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'int0036: ok', # 'schema' => [ # 'int', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:int) int0036: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, type, type:int) int0036: ok # { # 'input' => undef, # 'name' => 'int0037: ok + op not (nok)', # 'schema' => [ # 'int', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:int) int0037: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:ok, op, op:not, type, type:int) int0037: ok + op not (nok) # { # 'input' => 9, # 'name' => 'int0038: .err_level=error (clause=div_by, ok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0038: .err_level=error (clause=div_by, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:int) int0038: .err_level=error (clause=div_by, ok) # { # 'input' => 8, # 'name' => 'int0039: .err_level=error (clause=div_by, nok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0039: .err_level=error (clause=div_by, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:int) int0039: .err_level=error (clause=div_by, nok) # { # 'input' => 9, # 'name' => 'int0040: .err_level=warn (clause=div_by, ok)', # 'schema' => [ # 'int', # 'div_by', # 3, # 'div_by.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0040: .err_level=warn (clause=div_by, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:int) int0040: .err_level=warn (clause=div_by, ok) # { # 'input' => 8, # 'name' => 'int0041: .err_level=warn (clause=div_by, nok)', # 'schema' => [ # 'int*', # 'div_by', # 3, # 'div_by.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:int', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:int) int0041: .err_level=warn (clause=div_by, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=attr, attr:err_level, type, type:int) int0041: .err_level=warn (clause=div_by, nok) # { # 'input' => 1, # 'name' => 'int0042: is: must accept same value', # 'schema' => [ # 'int', # 'is', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:int) int0042: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:int) int0042: is: must accept same value # { # 'input' => 1, # 'name' => 'int0043: is: must reject different value', # 'schema' => [ # 'int', # 'is', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:int) int0043: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, type, type:int) int0043: is: must reject different value # { # 'input' => 1, # 'name' => 'int0044: !is (nok)', # 'schema' => [ # 'int', # '!is', # 1 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:int) int0044: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:int) int0044: !is (nok) # { # 'input' => 1, # 'name' => 'int0045: !is (ok)', # 'schema' => [ # 'int', # '!is', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:int) int0045: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, opshortcut, type, type:int) int0045: !is (ok) # { # 'input' => 1, # 'name' => 'int0046: is.op=not (nok)', # 'schema' => [ # 'int', # 'is', # 1, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:int) int0046: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:int) int0046: is.op=not (nok) # { # 'input' => 1, # 'name' => 'int0047: is.op=not (ok)', # 'schema' => [ # 'int', # 'is', # 2, # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:int) int0047: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:not, type, type:int) int0047: is.op=not (ok) # { # 'input' => 1, # 'name' => 'int0048: is& (no items)', # 'schema' => [ # 'int', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0048: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0048: is& (no items) # { # 'input' => 1, # 'name' => 'int0049: is& (ok)', # 'schema' => [ # 'int', # 'is&', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0049: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0049: is& (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0050: is& (nok + ok)', # 'schema' => [ # 'int', # 'is&', # [ # 2, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0050: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0050: is& (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0051: is& (ok + nok)', # 'schema' => [ # 'int', # 'is&', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0051: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0051: is& (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0052: is& (nok + nok)', # 'schema' => [ # 'int', # 'is&', # [ # 2, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:int) int0052: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:and, opshortcut, type, type:int) int0052: is& (nok + nok) # { # 'input' => 1, # 'name' => 'int0053: is.op=and (no items)', # 'schema' => [ # 'int', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0053: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=type, type:int) int0053: is.op=and (no items) # { # 'input' => 1, # 'name' => 'int0054: is.op=and (ok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0054: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:int) int0054: is.op=and (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0055: is.op=and (nok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 1 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0055: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:int) int0055: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0056: is.op=and (ok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 2 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0056: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:int) int0056: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0057: is.op=and (nok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 2 # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:int) int0057: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:and, type, type:int) int0057: is.op=and (nok + nok) # { # 'input' => 1, # 'name' => 'int0058: is| (no items)', # 'schema' => [ # 'int', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0058: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0058: is| (no items) # { # 'input' => 1, # 'name' => 'int0059: is| (ok)', # 'schema' => [ # 'int', # 'is|', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0059: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0059: is| (ok) # { # 'input' => 1, # 'name' => 'int0060: is| (nok + ok)', # 'schema' => [ # 'int', # 'is|', # [ # 2, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0060: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0060: is| (nok + ok) # { # 'input' => 1, # 'name' => 'int0061: is| (ok + nok)', # 'schema' => [ # 'int', # 'is|', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0061: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0061: is| (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0062: is| (nok + nok)', # 'schema' => [ # 'int', # 'is|', # [ # 2, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:int) int0062: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, opshortcut, type, type:int) int0062: is| (nok + nok) # { # 'input' => 1, # 'name' => 'int0063: is.op=or (no items)', # 'schema' => [ # 'int', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0063: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:int) int0063: is.op=or (no items) # { # 'input' => 1, # 'name' => 'int0064: is.op=or (ok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0064: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:int) int0064: is.op=or (ok) # { # 'input' => 1, # 'name' => 'int0065: is.op=or (nok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 1 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0065: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:int) int0065: is.op=or (nok + ok) # { # 'input' => 1, # 'name' => 'int0066: is.op=or (ok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 2 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0066: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:int) int0066: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0067: is.op=or (nok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 2 # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:int) int0067: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:or, type, type:int) int0067: is.op=or (nok + nok) # { # 'input' => 1, # 'name' => 'int0068: is.op=none (empty items)', # 'schema' => [ # 'int', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0068: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:int) int0068: is.op=none (empty items) # { # 'input' => 1, # 'name' => 'int0069: is.op=none (nok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 2 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0069: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:int) int0069: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0070: is.op=none (nok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 2, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0070: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:int) int0070: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0071: is.op=none (ok + nok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 2 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0071: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:int) int0071: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0072: is.op=none (ok + ok)', # 'schema' => [ # 'int', # 'is', # [ # 1, # 1 # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:int) int0072: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:is, op, op:none, type, type:int) int0072: is.op=none (ok + ok) # { # 'input' => 1, # 'name' => 'int0073: in: must accept valid choices', # 'schema' => [ # 'int', # 'in', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:int) int0073: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:int) int0073: in: must accept valid choices # { # 'input' => 1, # 'name' => 'int0074: in: must reject empty choices', # 'schema' => [ # 'int', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:int) int0074: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, type, type:int) int0074: in: must reject empty choices # { # 'input' => 1, # 'name' => 'int0075: !in (nok)', # 'schema' => [ # 'int', # '!in', # [ # 1, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:int) int0075: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:int) int0075: !in (nok) # { # 'input' => 1, # 'name' => 'int0076: !in (ok)', # 'schema' => [ # 'int', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:int) int0076: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, opshortcut, type, type:int) int0076: !in (ok) # { # 'input' => 1, # 'name' => 'int0077: in.op=not (nok)', # 'schema' => [ # 'int', # 'in', # [ # 1, # 2 # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:int) int0077: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:int) int0077: in.op=not (nok) # { # 'input' => 1, # 'name' => 'int0078: in.op=not (ok)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:int) int0078: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:not, type, type:int) int0078: in.op=not (ok) # { # 'input' => 1, # 'name' => 'int0079: in& (no items)', # 'schema' => [ # 'int', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0079: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0079: in& (no items) # { # 'input' => 1, # 'name' => 'int0080: in& (ok)', # 'schema' => [ # 'int', # 'in&', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0080: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0080: in& (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0081: in& (nok + ok)', # 'schema' => [ # 'int', # 'in&', # [ # [], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0081: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0081: in& (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0082: in& (ok + nok)', # 'schema' => [ # 'int', # 'in&', # [ # [ # 1, # 2 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0082: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0082: in& (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0083: in& (nok + nok)', # 'schema' => [ # 'int', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:int) int0083: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:and, opshortcut, type, type:int) int0083: in& (nok + nok) # { # 'input' => 1, # 'name' => 'int0084: in.op=and (no items)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0084: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=type, type:int) int0084: in.op=and (no items) # { # 'input' => 1, # 'name' => 'int0085: in.op=and (ok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0085: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:int) int0085: in.op=and (ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0086: in.op=and (nok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [ # 1, # 2 # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0086: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:int) int0086: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0087: in.op=and (ok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0087: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:int) int0087: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0088: in.op=and (nok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:int) int0088: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:and, type, type:int) int0088: in.op=and (nok + nok) # { # 'input' => 1, # 'name' => 'int0089: in| (no items)', # 'schema' => [ # 'int', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0089: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0089: in| (no items) # { # 'input' => 1, # 'name' => 'int0090: in| (ok)', # 'schema' => [ # 'int', # 'in|', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0090: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0090: in| (ok) # { # 'input' => 1, # 'name' => 'int0091: in| (nok + ok)', # 'schema' => [ # 'int', # 'in|', # [ # [], # [ # 1, # 2 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0091: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0091: in| (nok + ok) # { # 'input' => 1, # 'name' => 'int0092: in| (ok + nok)', # 'schema' => [ # 'int', # 'in|', # [ # [ # 1, # 2 # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0092: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0092: in| (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0093: in| (nok + nok)', # 'schema' => [ # 'int', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:int) int0093: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, opshortcut, type, type:int) int0093: in| (nok + nok) # { # 'input' => 1, # 'name' => 'int0094: in.op=or (no items)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0094: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:int) int0094: in.op=or (no items) # { # 'input' => 1, # 'name' => 'int0095: in.op=or (ok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0095: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:int) int0095: in.op=or (ok) # { # 'input' => 1, # 'name' => 'int0096: in.op=or (nok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [ # 1, # 2 # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0096: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:int) int0096: in.op=or (nok + ok) # { # 'input' => 1, # 'name' => 'int0097: in.op=or (ok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0097: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:int) int0097: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0098: in.op=or (nok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:int) int0098: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:or, type, type:int) int0098: in.op=or (nok + nok) # { # 'input' => 1, # 'name' => 'int0099: in.op=none (empty items)', # 'schema' => [ # 'int', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0099: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:int) int0099: in.op=none (empty items) # { # 'input' => 1, # 'name' => 'int0100: in.op=none (nok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0100: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:int) int0100: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0101: in.op=none (nok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [], # [ # 1, # 2 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0101: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:int) int0101: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0102: in.op=none (ok + nok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0102: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:int) int0102: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 1, # 'name' => 'int0103: in.op=none (ok + ok)', # 'schema' => [ # 'int', # 'in', # [ # [ # 1, # 2 # ], # [ # 1, # 2 # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:int) int0103: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:in, op, op:none, type, type:int) int0103: in.op=none (ok + ok) # { # 'input' => 2, # 'name' => 'int0104: min: 2 -3', # 'schema' => [ # 'int', # 'min', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:int) int0104: min: 2 -3 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:int) int0104: min: 2 -3 # { # 'input' => 2, # 'name' => 'int0105: min: 2 2', # 'schema' => [ # 'int', # 'min', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:int) int0105: min: 2 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:int) int0105: min: 2 2 # { # 'input' => -3, # 'name' => 'int0106: min: -3 2 -> fail', # 'schema' => [ # 'int', # 'min', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:int) int0106: min: -3 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min, type, type:int) int0106: min: -3 2 -> fail # { # 'input' => 2, # 'name' => 'int0107: xmin: 2 -3', # 'schema' => [ # 'int', # 'xmin', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:int) int0107: xmin: 2 -3 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:int) int0107: xmin: 2 -3 # { # 'input' => 2, # 'name' => 'int0108: xmin: 2 2 -> fail', # 'schema' => [ # 'int', # 'xmin', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:int) int0108: xmin: 2 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:int) int0108: xmin: 2 2 -> fail # { # 'input' => -3, # 'name' => 'int0109: xmin: -3 2 -> fail', # 'schema' => [ # 'int', # 'xmin', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:int) int0109: xmin: -3 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xmin, type, type:int) int0109: xmin: -3 2 -> fail # { # 'input' => 2, # 'name' => 'int0110: max: 2 -3 -> fail', # 'schema' => [ # 'int', # 'max', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:int) int0110: max: 2 -3 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:int) int0110: max: 2 -3 -> fail # { # 'input' => 2, # 'name' => 'int0111: max: 2 2', # 'schema' => [ # 'int', # 'max', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:int) int0111: max: 2 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:int) int0111: max: 2 2 # { # 'input' => -3, # 'name' => 'int0112: max: -3 2', # 'schema' => [ # 'int', # 'max', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:int) int0112: max: -3 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:max, type, type:int) int0112: max: -3 2 # { # 'input' => 2, # 'name' => 'int0113: xmax: 2 -3 -> fail', # 'schema' => [ # 'int', # 'xmax', # -3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:int) int0113: xmax: 2 -3 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:int) int0113: xmax: 2 -3 -> fail # { # 'input' => 2, # 'name' => 'int0114: xmax: 2 2 -> fail', # 'schema' => [ # 'int', # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:int) int0114: xmax: 2 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:int) int0114: xmax: 2 2 -> fail # { # 'input' => -3, # 'name' => 'int0115: xmax: -3 2', # 'schema' => [ # 'int', # 'xmax', # 2 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:int) int0115: xmax: -3 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:xmax, type, type:int) int0115: xmax: -3 2 # { # 'input' => 2, # 'name' => 'int0116: between: 2 -3 & 4', # 'schema' => [ # 'int', # 'between', # [ # -3, # 4 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:int) int0116: between: 2 -3 & 4 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:int) int0116: between: 2 -3 & 4 # { # 'input' => 2, # 'name' => 'int0117: between: 2 -3 & 2', # 'schema' => [ # 'int', # 'between', # [ # -3, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:int) int0117: between: 2 -3 & 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:int) int0117: between: 2 -3 & 2 # { # 'input' => 2, # 'name' => 'int0118: between: 2 2 & 2', # 'schema' => [ # 'int', # 'between', # [ # 2, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:int) int0118: between: 2 2 & 2 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:int) int0118: between: 2 2 & 2 # { # 'input' => -3, # 'name' => 'int0119: between: -3 2 & 4 -> fail', # 'schema' => [ # 'int', # 'between', # [ # 2, # 4 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:int) int0119: between: -3 2 & 4 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:between, type, type:int) int0119: between: -3 2 & 4 -> fail # { # 'input' => '2', # 'name' => 'int0120: xbetween: 2 -3 & 4', # 'schema' => [ # 'int', # 'xbetween', # [ # -3, # 4 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:int) int0120: xbetween: 2 -3 & 4 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:int) int0120: xbetween: 2 -3 & 4 # { # 'input' => '2', # 'name' => 'int0121: xbetween: 2 -3 & 2 -> fail', # 'schema' => [ # 'int', # 'xbetween', # [ # -3, # '2' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:int) int0121: xbetween: 2 -3 & 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:int) int0121: xbetween: 2 -3 & 2 -> fail # { # 'input' => '2', # 'name' => 'int0122: xbetween: 2 2 & 2 -> fail', # 'schema' => [ # 'int', # 'xbetween', # [ # '2', # '2' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:int) int0122: xbetween: 2 2 & 2 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:int) int0122: xbetween: 2 2 & 2 -> fail # { # 'input' => -3, # 'name' => 'int0123: xbetween: -3 2 & 4 -> fail', # 'schema' => [ # 'int', # 'xbetween', # [ # '2', # '4' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:int) int0123: xbetween: -3 2 & 4 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:xbetween, type, type:int) int0123: xbetween: -3 2 & 4 -> fail # { # 'input' => -3, # 'name' => 'int0124: !between (nok)', # 'schema' => [ # 'int', # '!between', # [ # -3, # -3 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:int) int0124: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:int) int0124: !between (nok) # { # 'input' => -3, # 'name' => 'int0125: !between (ok)', # 'schema' => [ # 'int', # '!between', # [ # '2', # '2' # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:int) int0125: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, opshortcut, type, type:int) int0125: !between (ok) # { # 'input' => -3, # 'name' => 'int0126: between.op=not (nok)', # 'schema' => [ # 'int', # 'between', # [ # -3, # -3 # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:int) int0126: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:int) int0126: between.op=not (nok) # { # 'input' => -3, # 'name' => 'int0127: between.op=not (ok)', # 'schema' => [ # 'int', # 'between', # [ # '2', # '2' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:int) int0127: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:not, type, type:int) int0127: between.op=not (ok) # { # 'input' => -3, # 'name' => 'int0128: between& (no items)', # 'schema' => [ # 'int', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0128: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0128: between& (no items) # { # 'input' => -3, # 'name' => 'int0129: between& (ok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0129: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0129: between& (ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0130: between& (nok + ok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0130: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0130: between& (nok + ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0131: between& (ok + nok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0131: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0131: between& (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0132: between& (nok + nok)', # 'schema' => [ # 'int', # 'between&', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:int) int0132: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:between, op, op:and, opshortcut, type, type:int) int0132: between& (nok + nok) # { # 'input' => -3, # 'name' => 'int0133: between.op=and (no items)', # 'schema' => [ # 'int', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:int) int0133: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=type, type:int) int0133: between.op=and (no items) # { # 'input' => -3, # 'name' => 'int0134: between.op=and (ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0134: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:int) int0134: between.op=and (ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0135: between.op=and (nok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0135: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:int) int0135: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0136: between.op=and (ok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0136: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:int) int0136: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0137: between.op=and (nok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:int) int0137: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:and, type, type:int) int0137: between.op=and (nok + nok) # { # 'input' => -3, # 'name' => 'int0138: between| (no items)', # 'schema' => [ # 'int', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0138: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0138: between| (no items) # { # 'input' => -3, # 'name' => 'int0139: between| (ok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0139: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0139: between| (ok) # { # 'input' => -3, # 'name' => 'int0140: between| (nok + ok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0140: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0140: between| (nok + ok) # { # 'input' => -3, # 'name' => 'int0141: between| (ok + nok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0141: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0141: between| (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0142: between| (nok + nok)', # 'schema' => [ # 'int', # 'between|', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:int) int0142: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, opshortcut, type, type:int) int0142: between| (nok + nok) # { # 'input' => -3, # 'name' => 'int0143: between.op=or (no items)', # 'schema' => [ # 'int', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0143: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:int) int0143: between.op=or (no items) # { # 'input' => -3, # 'name' => 'int0144: between.op=or (ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0144: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:int) int0144: between.op=or (ok) # { # 'input' => -3, # 'name' => 'int0145: between.op=or (nok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0145: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:int) int0145: between.op=or (nok + ok) # { # 'input' => -3, # 'name' => 'int0146: between.op=or (ok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0146: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:int) int0146: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0147: between.op=or (nok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:int) int0147: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:or, type, type:int) int0147: between.op=or (nok + nok) # { # 'input' => -3, # 'name' => 'int0148: between.op=none (empty items)', # 'schema' => [ # 'int', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0148: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:int) int0148: between.op=none (empty items) # { # 'input' => -3, # 'name' => 'int0149: between.op=none (nok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0149: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:int) int0149: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0150: between.op=none (nok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # '2', # '2' # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0150: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:int) int0150: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0151: between.op=none (ok + nok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # '2', # '2' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0151: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:int) int0151: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => -3, # 'name' => 'int0152: between.op=none (ok + ok)', # 'schema' => [ # 'int', # 'between', # [ # [ # -3, # -3 # ], # [ # -3, # -3 # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:int) int0152: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:between, op, op:none, type, type:int) int0152: between.op=none (ok + ok) # { # 'input' => 10, # 'name' => 'int0153: mod: (nok)', # 'schema' => [ # 'int', # 'mod', # [ # 3, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:mod' # ], # 'valid' => 0 # } # Subtest: (tags=clause:mod, type, type:int) int0153: mod: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:mod, type, type:int) int0153: mod: (nok) # { # 'input' => 11, # 'name' => 'int0154: mod: (ok)', # 'schema' => [ # 'int', # 'mod', # [ # 3, # 2 # ] # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:mod' # ], # 'valid' => 1 # } # Subtest: (tags=clause:mod, type, type:int) int0154: mod: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:mod, type, type:int) int0154: mod: (ok) # { # 'input' => 7, # 'name' => 'int0155: div_by: (nok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:div_by' # ], # 'valid' => 0 # } # Subtest: (tags=clause:div_by, type, type:int) int0155: div_by: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:div_by, type, type:int) int0155: div_by: (nok) # { # 'input' => 6, # 'name' => 'int0156: div_by: (ok)', # 'schema' => [ # 'int', # 'div_by', # 3 # ], # 'tags' => [ # 'type', # 'type:int', # 'clause:div_by' # ], # 'valid' => 1 # } # Subtest: (tags=clause:div_by, type, type:int) int0156: div_by: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:div_by, type, type:int) int0156: div_by: (ok) ok 157 1..157 ok 11 - 10-type-int.json # Subtest: 10-type-num.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => '-1.1', # 'name' => 'num0001: type check: must accept -1.1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0001: type check: must accept -1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:num) num0001: type check: must accept -1.1 # { # 'input' => -1, # 'name' => 'num0002: type check: must accept -1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0002: type check: must accept -1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:num) num0002: type check: must accept -1 # { # 'input' => 0, # 'name' => 'num0003: type check: must accept 0', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0003: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:num) num0003: type check: must accept 0 # { # 'input' => 1, # 'name' => 'num0004: type check: must accept 1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0004: type check: must accept 1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:num) num0004: type check: must accept 1 # { # 'input' => '1.1', # 'name' => 'num0005: type check: must accept 1.1', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0005: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:num) num0005: type check: must accept 1.1 # { # 'input' => 'a', # 'name' => 'num0006: type check: must reject a', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:num) num0006: type check: must reject a ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:num) num0006: type check: must reject a # { # 'input' => [], # 'name' => 'num0007: type check: must reject []', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:num) num0007: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:num) num0007: type check: must reject [] # { # 'input' => {}, # 'name' => 'num0008: type check: must reject {}', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:num) num0008: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=type, type:num) num0008: type check: must reject {} # { # 'input' => undef, # 'name' => 'num0009: must accept undefined value', # 'schema' => 'num', # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0009: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=type, type:num) num0009: must accept undefined value # { # 'input' => undef, # 'name' => 'num0010: defhash_v', # 'schema' => [ # 'num', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:num) num0010: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:defhash_v, type, type:num) num0010: defhash_v # { # 'input' => undef, # 'name' => 'num0011: v', # 'schema' => [ # 'num', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:num) num0011: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:v, type, type:num) num0011: v # { # 'input' => undef, # 'name' => 'num0012: c', # 'schema' => [ # 'num', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:num) num0012: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:c, type, type:num) num0012: c # { # 'input' => undef, # 'name' => 'num0013: default_lang', # 'schema' => [ # 'num', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:num) num0013: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:default_lang, type, type:num) num0013: default_lang # { # 'input' => undef, # 'name' => 'num0014: name', # 'schema' => [ # 'num', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:num) num0014: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:name, type, type:num) num0014: name # { # 'input' => undef, # 'name' => 'num0015: summary', # 'schema' => [ # 'num', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:num) num0015: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:summary, type, type:num) num0015: summary # { # 'input' => undef, # 'name' => 'num0016: description', # 'schema' => [ # 'num', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:num) num0016: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:description, type, type:num) num0016: description # { # 'input' => undef, # 'name' => 'num0017: tags', # 'schema' => [ # 'num', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:num) num0017: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:tags, type, type:num) num0017: tags # { # 'input' => undef, # 'name' => 'num0018: req=0 must accept undefined value', # 'schema' => [ # 'num', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:num) num0018: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:req, type, type:num) num0018: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'num0019: req=1 must reject undefined value', # 'schema' => [ # 'num', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:num) num0019: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:req, type, type:num) num0019: req=1 must reject undefined value # { # 'input' => '1.1', # 'name' => 'num0020: forbidden=0 must accept defined value', # 'schema' => [ # 'num', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:num) num0020: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:forbidden, type, type:num) num0020: forbidden=0 must accept defined value # { # 'input' => '1.1', # 'name' => 'num0021: forbidden=1 must reject defined value', # 'schema' => [ # 'num', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:num) num0021: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:forbidden, type, type:num) num0021: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'num0022: default: must accept valid default 1.1', # 'schema' => [ # 'num*', # 'default', # '1.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:num) num0022: default: must accept valid default 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 22 - (tags=clause:default, type, type:num) num0022: default: must accept valid default 1.1 # { # 'input' => undef, # 'name' => 'num0023: default: must reject invalid default []', # 'schema' => [ # 'num*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:num) num0023: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:default, type, type:num) num0023: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'num0024: clause (dies, unknown clause)', # 'schema' => [ # 'num*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:num) num0024: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 24 - (tags=clause:clause, type, type:num) num0024: clause (dies, unknown clause) # { # 'input' => '1.1', # 'name' => 'num0025: clause (ok)', # 'schema' => [ # 'num*', # 'clause', # [ # 'min', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:num) num0025: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:num) num0025: clause (ok) # { # 'input' => '1.1', # 'name' => 'num0026: clause (ok) + clause nok = nok', # 'schema' => [ # 'num*', # 'clause', # [ # 'min', # 1 # ], # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:num) num0026: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 26 - (tags=clause:clause, type, type:num) num0026: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0027: clause (nok)', # 'schema' => [ # 'num*', # 'clause', # [ # 'min', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:num) num0027: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 27 - (tags=clause:clause, type, type:num) num0027: clause (nok) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'num0028: clset (dies, unknown clause)', # 'schema' => [ # 'num*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:num) num0028: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 28 - (tags=clause:clset, type, type:num) num0028: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => '1.1', # 'name' => 'num0029: clset (dies, unknown attr)', # 'schema' => [ # 'num*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:num) num0029: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 29 - (tags=clause:clset, type, type:num) num0029: clset (dies, unknown attr) # { # 'input' => '1.1', # 'name' => 'num0030: clset (empty = ok)', # 'schema' => [ # 'num*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0030: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=type, type:num) num0030: clset (empty = ok) # { # 'input' => '1.1', # 'name' => 'num0031: clset (ignored clause/attr = ok)', # 'schema' => [ # 'num*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:num) num0031: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:num) num0031: clset (ignored clause/attr = ok) # { # 'input' => '1.1', # 'name' => 'num0032: clset (ok + ok = ok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => '1.1', # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:num) num0032: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:num) num0032: clset (ok + ok = ok) # { # 'input' => '1.1', # 'name' => 'num0033: clset (ok) + clause nok = nok', # 'schema' => [ # 'num*', # 'clset', # { # 'min' => 1 # }, # 'max', # 1 # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0033: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:num) num0033: clset (ok) + clause nok = nok # { # 'input' => '1.1', # 'name' => 'num0034: clset (ok + nok = nok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => 1, # 'min' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0034: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:num) num0034: clset (ok + nok = nok) # { # 'input' => '1.1', # 'name' => 'num0035: clset (nok + ok = nok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => '1.1', # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0035: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:clset, type, type:num) num0035: clset (nok + ok = nok) # { # 'input' => '1.1', # 'name' => 'num0036: clset (nok + nok = nok)', # 'schema' => [ # 'num*', # 'clset', # { # 'max' => 1, # 'min' => 2 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:num) num0036: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:clset, type, type:num) num0036: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'num0037: ok', # 'schema' => [ # 'num', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:num) num0037: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=clause:ok, type, type:num) num0037: ok # { # 'input' => undef, # 'name' => 'num0038: ok + op not (nok)', # 'schema' => [ # 'num', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:num) num0038: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=clause:ok, op, op:not, type, type:num) num0038: ok + op not (nok) # { # 'input' => '0.1', # 'name' => 'num0039: .err_level=error (clause=min, ok)', # 'schema' => [ # 'num', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0039: .err_level=error (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:num) num0039: .err_level=error (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'num0040: .err_level=error (clause=min, nok)', # 'schema' => [ # 'num', # 'min', # 0 # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0040: .err_level=error (clause=min, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:num) num0040: .err_level=error (clause=min, nok) # { # 'input' => '0.1', # 'name' => 'num0041: .err_level=warn (clause=min, ok)', # 'schema' => [ # 'num', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0041: .err_level=warn (clause=min, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=attr, attr:err_level, type, type:num) num0041: .err_level=warn (clause=min, ok) # { # 'input' => '-0.1', # 'name' => 'num0042: .err_level=warn (clause=min, nok)', # 'schema' => [ # 'num*', # 'min', # 0, # 'min.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:num', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:num) num0042: .err_level=warn (clause=min, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=attr, attr:err_level, type, type:num) num0042: .err_level=warn (clause=min, nok) # { # 'input' => '1.1', # 'name' => 'num0043: is: must accept same value', # 'schema' => [ # 'num', # 'is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:num) num0043: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, type, type:num) num0043: is: must accept same value # { # 'input' => '1.1', # 'name' => 'num0044: is: must reject different value', # 'schema' => [ # 'num', # 'is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:num) num0044: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, type, type:num) num0044: is: must reject different value # { # 'input' => '1.1', # 'name' => 'num0045: !is (nok)', # 'schema' => [ # 'num', # '!is', # '1.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:num) num0045: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, opshortcut, type, type:num) num0045: !is (nok) # { # 'input' => '1.1', # 'name' => 'num0046: !is (ok)', # 'schema' => [ # 'num', # '!is', # '1.2' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:num) num0046: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, opshortcut, type, type:num) num0046: !is (ok) # { # 'input' => '1.1', # 'name' => 'num0047: is.op=not (nok)', # 'schema' => [ # 'num', # 'is', # '1.1', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:num) num0047: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:not, type, type:num) num0047: is.op=not (nok) # { # 'input' => '1.1', # 'name' => 'num0048: is.op=not (ok)', # 'schema' => [ # 'num', # 'is', # '1.2', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:num) num0048: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:not, type, type:num) num0048: is.op=not (ok) # { # 'input' => '1.1', # 'name' => 'num0049: is& (no items)', # 'schema' => [ # 'num', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0049: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0049: is& (no items) # { # 'input' => '1.1', # 'name' => 'num0050: is& (ok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0050: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0050: is& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0051: is& (nok + ok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0051: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0051: is& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0052: is& (ok + nok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0052: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0052: is& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0053: is& (nok + nok)', # 'schema' => [ # 'num', # 'is&', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:num) num0053: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, opshortcut, type, type:num) num0053: is& (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0054: is.op=and (no items)', # 'schema' => [ # 'num', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0054: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=type, type:num) num0054: is.op=and (no items) # { # 'input' => '1.1', # 'name' => 'num0055: is.op=and (ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0055: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:num) num0055: is.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0056: is.op=and (nok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0056: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:num) num0056: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0057: is.op=and (ok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0057: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:and, type, type:num) num0057: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0058: is.op=and (nok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:num) num0058: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:and, type, type:num) num0058: is.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0059: is| (no items)', # 'schema' => [ # 'num', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0059: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0059: is| (no items) # { # 'input' => '1.1', # 'name' => 'num0060: is| (ok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.1', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0060: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0060: is| (ok) # { # 'input' => '1.1', # 'name' => 'num0061: is| (nok + ok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.2', # '1.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0061: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0061: is| (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0062: is| (ok + nok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0062: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0062: is| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0063: is| (nok + nok)', # 'schema' => [ # 'num', # 'is|', # [ # '1.2', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:num) num0063: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, opshortcut, type, type:num) num0063: is| (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0064: is.op=or (no items)', # 'schema' => [ # 'num', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0064: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:num) num0064: is.op=or (no items) # { # 'input' => '1.1', # 'name' => 'num0065: is.op=or (ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0065: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:num) num0065: is.op=or (ok) # { # 'input' => '1.1', # 'name' => 'num0066: is.op=or (nok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0066: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:num) num0066: is.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0067: is.op=or (ok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0067: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:or, type, type:num) num0067: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0068: is.op=or (nok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:num) num0068: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:or, type, type:num) num0068: is.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0069: is.op=none (empty items)', # 'schema' => [ # 'num', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0069: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:num) num0069: is.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'num0070: is.op=none (nok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0070: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:num) num0070: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0071: is.op=none (nok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.2', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0071: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:num) num0071: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0072: is.op=none (ok + nok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.2' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0072: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:is, op, op:none, type, type:num) num0072: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0073: is.op=none (ok + ok)', # 'schema' => [ # 'num', # 'is', # [ # '1.1', # '1.1' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:num) num0073: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:is, op, op:none, type, type:num) num0073: is.op=none (ok + ok) # { # 'input' => '1.1', # 'name' => 'num0074: in: must accept valid choices', # 'schema' => [ # 'num', # 'in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:num) num0074: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, type, type:num) num0074: in: must accept valid choices # { # 'input' => '1.1', # 'name' => 'num0075: in: must reject empty choices', # 'schema' => [ # 'num', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:num) num0075: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, type, type:num) num0075: in: must reject empty choices # { # 'input' => '1.1', # 'name' => 'num0076: !in (nok)', # 'schema' => [ # 'num', # '!in', # [ # '1.1', # '1.2' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:num) num0076: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, opshortcut, type, type:num) num0076: !in (nok) # { # 'input' => '1.1', # 'name' => 'num0077: !in (ok)', # 'schema' => [ # 'num', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:num) num0077: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, opshortcut, type, type:num) num0077: !in (ok) # { # 'input' => '1.1', # 'name' => 'num0078: in.op=not (nok)', # 'schema' => [ # 'num', # 'in', # [ # '1.1', # '1.2' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:num) num0078: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:not, type, type:num) num0078: in.op=not (nok) # { # 'input' => '1.1', # 'name' => 'num0079: in.op=not (ok)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:num) num0079: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:not, type, type:num) num0079: in.op=not (ok) # { # 'input' => '1.1', # 'name' => 'num0080: in& (no items)', # 'schema' => [ # 'num', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0080: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0080: in& (no items) # { # 'input' => '1.1', # 'name' => 'num0081: in& (ok)', # 'schema' => [ # 'num', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0081: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0081: in& (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0082: in& (nok + ok)', # 'schema' => [ # 'num', # 'in&', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0082: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0082: in& (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0083: in& (ok + nok)', # 'schema' => [ # 'num', # 'in&', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0083: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0083: in& (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0084: in& (nok + nok)', # 'schema' => [ # 'num', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:num) num0084: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, opshortcut, type, type:num) num0084: in& (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0085: in.op=and (no items)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0085: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=type, type:num) num0085: in.op=and (no items) # { # 'input' => '1.1', # 'name' => 'num0086: in.op=and (ok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0086: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:num) num0086: in.op=and (ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0087: in.op=and (nok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0087: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:num) num0087: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0088: in.op=and (ok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0088: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:and, type, type:num) num0088: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0089: in.op=and (nok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:num) num0089: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:and, type, type:num) num0089: in.op=and (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0090: in| (no items)', # 'schema' => [ # 'num', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0090: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0090: in| (no items) # { # 'input' => '1.1', # 'name' => 'num0091: in| (ok)', # 'schema' => [ # 'num', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0091: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0091: in| (ok) # { # 'input' => '1.1', # 'name' => 'num0092: in| (nok + ok)', # 'schema' => [ # 'num', # 'in|', # [ # [], # [ # '1.1', # '1.2' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0092: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0092: in| (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0093: in| (ok + nok)', # 'schema' => [ # 'num', # 'in|', # [ # [ # '1.1', # '1.2' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0093: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0093: in| (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0094: in| (nok + nok)', # 'schema' => [ # 'num', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:num) num0094: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, opshortcut, type, type:num) num0094: in| (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0095: in.op=or (no items)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0095: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:num) num0095: in.op=or (no items) # { # 'input' => '1.1', # 'name' => 'num0096: in.op=or (ok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0096: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:num) num0096: in.op=or (ok) # { # 'input' => '1.1', # 'name' => 'num0097: in.op=or (nok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0097: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:num) num0097: in.op=or (nok + ok) # { # 'input' => '1.1', # 'name' => 'num0098: in.op=or (ok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0098: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:or, type, type:num) num0098: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0099: in.op=or (nok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:num) num0099: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:or, type, type:num) num0099: in.op=or (nok + nok) # { # 'input' => '1.1', # 'name' => 'num0100: in.op=none (empty items)', # 'schema' => [ # 'num', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0100: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:num) num0100: in.op=none (empty items) # { # 'input' => '1.1', # 'name' => 'num0101: in.op=none (nok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0101: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:num) num0101: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0102: in.op=none (nok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0102: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:num) num0102: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0103: in.op=none (ok + nok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0103: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:in, op, op:none, type, type:num) num0103: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '1.1', # 'name' => 'num0104: in.op=none (ok + ok)', # 'schema' => [ # 'num', # 'in', # [ # [ # '1.1', # '1.2' # ], # [ # '1.1', # '1.2' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:num) num0104: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:in, op, op:none, type, type:num) num0104: in.op=none (ok + ok) # { # 'input' => '2.1', # 'name' => 'num0105: min: 2.1 -3.1', # 'schema' => [ # 'num', # 'min', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:num) num0105: min: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:num) num0105: min: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'num0106: min: 2.1 2.1', # 'schema' => [ # 'num', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:num) num0106: min: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:min, type, type:num) num0106: min: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'num0107: min: -3.1 2.1 -> fail', # 'schema' => [ # 'num', # 'min', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:num) num0107: min: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:min, type, type:num) num0107: min: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0108: xmin: 2.1 -3.1', # 'schema' => [ # 'num', # 'xmin', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:num) num0108: xmin: 2.1 -3.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:num) num0108: xmin: 2.1 -3.1 # { # 'input' => '2.1', # 'name' => 'num0109: xmin: 2.1 2.1 -> fail', # 'schema' => [ # 'num', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:num) num0109: xmin: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:xmin, type, type:num) num0109: xmin: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0110: xmin: -3.1 2.1 -> fail', # 'schema' => [ # 'num', # 'xmin', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:num) num0110: xmin: -3.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:xmin, type, type:num) num0110: xmin: -3.1 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0111: max: 2.1 -3.1 -> fail', # 'schema' => [ # 'num', # 'max', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:num) num0111: max: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:num) num0111: max: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0112: max: 2.1 2.1', # 'schema' => [ # 'num', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:num) num0112: max: 2.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:max, type, type:num) num0112: max: 2.1 2.1 # { # 'input' => '-3.1', # 'name' => 'num0113: max: -3.1 2.1', # 'schema' => [ # 'num', # 'max', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:num) num0113: max: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:max, type, type:num) num0113: max: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'num0114: xmax: 2.1 -3.1 -> fail', # 'schema' => [ # 'num', # 'xmax', # '-3.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:num) num0114: xmax: 2.1 -3.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:num) num0114: xmax: 2.1 -3.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0115: xmax: 2.1 2.1 -> fail', # 'schema' => [ # 'num', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:num) num0115: xmax: 2.1 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:xmax, type, type:num) num0115: xmax: 2.1 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0116: xmax: -3.1 2.1', # 'schema' => [ # 'num', # 'xmax', # '2.1' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:num) num0116: xmax: -3.1 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:xmax, type, type:num) num0116: xmax: -3.1 2.1 # { # 'input' => '2.1', # 'name' => 'num0117: between: 2.1 -3.1 & 4.1', # 'schema' => [ # 'num', # 'between', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:num) num0117: between: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:num) num0117: between: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'num0118: between: 2.1 -3.1 & 2.1', # 'schema' => [ # 'num', # 'between', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:num) num0118: between: 2.1 -3.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:num) num0118: between: 2.1 -3.1 & 2.1 # { # 'input' => '2.1', # 'name' => 'num0119: between: 2.1 2.1 & 2.1', # 'schema' => [ # 'num', # 'between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:num) num0119: between: 2.1 2.1 & 2.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:between, type, type:num) num0119: between: 2.1 2.1 & 2.1 # { # 'input' => '-3.1', # 'name' => 'num0120: between: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'num', # 'between', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:num) num0120: between: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:between, type, type:num) num0120: between: -3.1 2.1 & 4.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0121: xbetween: 2.1 -3.1 & 4.1', # 'schema' => [ # 'num', # 'xbetween', # [ # '-3.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:num) num0121: xbetween: 2.1 -3.1 & 4.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:num) num0121: xbetween: 2.1 -3.1 & 4.1 # { # 'input' => '2.1', # 'name' => 'num0122: xbetween: 2.1 -3.1 & 2.1 -> fail', # 'schema' => [ # 'num', # 'xbetween', # [ # '-3.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:num) num0122: xbetween: 2.1 -3.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:num) num0122: xbetween: 2.1 -3.1 & 2.1 -> fail # { # 'input' => '2.1', # 'name' => 'num0123: xbetween: 2.1 2.1 & 2.1 -> fail', # 'schema' => [ # 'num', # 'xbetween', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:num) num0123: xbetween: 2.1 2.1 & 2.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:xbetween, type, type:num) num0123: xbetween: 2.1 2.1 & 2.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0124: xbetween: -3.1 2.1 & 4.1 -> fail', # 'schema' => [ # 'num', # 'xbetween', # [ # '2.1', # '4.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:num) num0124: xbetween: -3.1 2.1 & 4.1 -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:xbetween, type, type:num) num0124: xbetween: -3.1 2.1 & 4.1 -> fail # { # 'input' => '-3.1', # 'name' => 'num0125: !between (nok)', # 'schema' => [ # 'num', # '!between', # [ # '-3.1', # '-3.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:num) num0125: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, opshortcut, type, type:num) num0125: !between (nok) # { # 'input' => '-3.1', # 'name' => 'num0126: !between (ok)', # 'schema' => [ # 'num', # '!between', # [ # '2.1', # '2.1' # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:num) num0126: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, opshortcut, type, type:num) num0126: !between (ok) # { # 'input' => '-3.1', # 'name' => 'num0127: between.op=not (nok)', # 'schema' => [ # 'num', # 'between', # [ # '-3.1', # '-3.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:num) num0127: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:not, type, type:num) num0127: between.op=not (nok) # { # 'input' => '-3.1', # 'name' => 'num0128: between.op=not (ok)', # 'schema' => [ # 'num', # 'between', # [ # '2.1', # '2.1' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:num) num0128: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:not, type, type:num) num0128: between.op=not (ok) # { # 'input' => '-3.1', # 'name' => 'num0129: between& (no items)', # 'schema' => [ # 'num', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0129: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0129: between& (no items) # { # 'input' => '-3.1', # 'name' => 'num0130: between& (ok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0130: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0130: between& (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0131: between& (nok + ok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0131: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0131: between& (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0132: between& (ok + nok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0132: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0132: between& (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0133: between& (nok + nok)', # 'schema' => [ # 'num', # 'between&', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:num) num0133: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, opshortcut, type, type:num) num0133: between& (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0134: between.op=and (no items)', # 'schema' => [ # 'num', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:num) num0134: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=type, type:num) num0134: between.op=and (no items) # { # 'input' => '-3.1', # 'name' => 'num0135: between.op=and (ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0135: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:num) num0135: between.op=and (ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0136: between.op=and (nok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0136: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:num) num0136: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0137: between.op=and (ok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0137: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:and, type, type:num) num0137: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0138: between.op=and (nok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:num) num0138: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:and, type, type:num) num0138: between.op=and (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0139: between| (no items)', # 'schema' => [ # 'num', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0139: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0139: between| (no items) # { # 'input' => '-3.1', # 'name' => 'num0140: between| (ok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0140: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0140: between| (ok) # { # 'input' => '-3.1', # 'name' => 'num0141: between| (nok + ok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0141: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0141: between| (nok + ok) # { # 'input' => '-3.1', # 'name' => 'num0142: between| (ok + nok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0142: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0142: between| (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0143: between| (nok + nok)', # 'schema' => [ # 'num', # 'between|', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ] # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:num) num0143: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, opshortcut, type, type:num) num0143: between| (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0144: between.op=or (no items)', # 'schema' => [ # 'num', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0144: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:num) num0144: between.op=or (no items) # { # 'input' => '-3.1', # 'name' => 'num0145: between.op=or (ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0145: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:num) num0145: between.op=or (ok) # { # 'input' => '-3.1', # 'name' => 'num0146: between.op=or (nok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0146: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:num) num0146: between.op=or (nok + ok) # { # 'input' => '-3.1', # 'name' => 'num0147: between.op=or (ok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0147: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:or, type, type:num) num0147: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0148: between.op=or (nok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:num) num0148: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:or, type, type:num) num0148: between.op=or (nok + nok) # { # 'input' => '-3.1', # 'name' => 'num0149: between.op=none (empty items)', # 'schema' => [ # 'num', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0149: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:num) num0149: between.op=none (empty items) # { # 'input' => '-3.1', # 'name' => 'num0150: between.op=none (nok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0150: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:num) num0150: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0151: between.op=none (nok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '2.1', # '2.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0151: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:num) num0151: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0152: between.op=none (ok + nok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '2.1', # '2.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0152: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:between, op, op:none, type, type:num) num0152: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '-3.1', # 'name' => 'num0153: between.op=none (ok + ok)', # 'schema' => [ # 'num', # 'between', # [ # [ # '-3.1', # '-3.1' # ], # [ # '-3.1', # '-3.1' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:num', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:num) num0153: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:between, op, op:none, type, type:num) num0153: between.op=none (ok + ok) ok 154 1..154 ok 12 - 10-type-num.json # Subtest: 10-type-obj.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => 1, # 'name' => 'obj0001: can (nok)', # 'schema' => [ # 'obj', # { # 'can' => 'foo' # } # ], # 'tags' => [ # 'type', # 'type:obj', # 'clause:can' # ], # 'valid' => 0 # } # Subtest: (tags=clause:can, type, type:obj) obj0001: can (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=clause:can, type, type:obj) obj0001: can (nok) # { # 'input' => 1, # 'name' => 'obj0002: isa (nok)', # 'schema' => [ # 'obj', # { # 'isa' => 'foo' # } # ], # 'tags' => [ # 'type', # 'type:obj', # 'clause:isa' # ], # 'valid' => 0 # } # Subtest: (tags=clause:isa, type, type:obj) obj0002: isa (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=clause:isa, type, type:obj) obj0002: isa (nok) ok 3 1..3 ok 13 - 10-type-obj.json # Subtest: 10-type-str.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => 0, # 'name' => 'str0001: type check: must accept 0', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0001: type check: must accept 0 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:str) str0001: type check: must accept 0 # { # 'input' => '1.1', # 'name' => 'str0002: type check: must accept 1.1', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0002: type check: must accept 1.1 ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:str) str0002: type check: must accept 1.1 # { # 'input' => '', # 'name' => 'str0003: type check: must accept ', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0003: type check: must accept ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 3 - (tags=type, type:str) str0003: type check: must accept # { # 'input' => 'str # ', # 'name' => 'str0004: type check: must accept str # ', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0004: type check: must accept str ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 4 - (tags=type, type:str) str0004: type check: must accept str # # { # 'input' => [], # 'name' => 'str0005: type check: must reject []', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:str) str0005: type check: must reject [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 5 - (tags=type, type:str) str0005: type check: must reject [] # { # 'input' => {}, # 'name' => 'str0006: type check: must reject {}', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:str) str0006: type check: must reject {} ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 6 - (tags=type, type:str) str0006: type check: must reject {} # { # 'input' => undef, # 'name' => 'str0007: must accept undefined value', # 'schema' => 'str', # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0007: must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 7 - (tags=type, type:str) str0007: must accept undefined value # { # 'input' => undef, # 'name' => 'str0008: defhash_v', # 'schema' => [ # 'str', # 'defhash_v', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:defhash_v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:defhash_v, type, type:str) str0008: defhash_v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 8 - (tags=clause:defhash_v, type, type:str) str0008: defhash_v # { # 'input' => undef, # 'name' => 'str0009: v', # 'schema' => [ # 'str', # 'v', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:v' # ], # 'valid' => 1 # } # Subtest: (tags=clause:v, type, type:str) str0009: v ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 9 - (tags=clause:v, type, type:str) str0009: v # { # 'input' => undef, # 'name' => 'str0010: c', # 'schema' => [ # 'str', # 'c.foo.bar', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:c' # ], # 'valid' => 1 # } # Subtest: (tags=clause:c, type, type:str) str0010: c ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 10 - (tags=clause:c, type, type:str) str0010: c # { # 'input' => undef, # 'name' => 'str0011: default_lang', # 'schema' => [ # 'str', # 'default_lang', # 'id_ID' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:default_lang' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default_lang, type, type:str) str0011: default_lang ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 11 - (tags=clause:default_lang, type, type:str) str0011: default_lang # { # 'input' => undef, # 'name' => 'str0012: name', # 'schema' => [ # 'str', # 'name', # 'some name' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:name' # ], # 'valid' => 1 # } # Subtest: (tags=clause:name, type, type:str) str0012: name ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 12 - (tags=clause:name, type, type:str) str0012: name # { # 'input' => undef, # 'name' => 'str0013: summary', # 'schema' => [ # 'str', # 'summary', # 'some summary' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:summary' # ], # 'valid' => 1 # } # Subtest: (tags=clause:summary, type, type:str) str0013: summary ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 13 - (tags=clause:summary, type, type:str) str0013: summary # { # 'input' => undef, # 'name' => 'str0014: description', # 'schema' => [ # 'str', # 'description', # 'some description and `markdown`' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:description' # ], # 'valid' => 1 # } # Subtest: (tags=clause:description, type, type:str) str0014: description ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 14 - (tags=clause:description, type, type:str) str0014: description # { # 'input' => undef, # 'name' => 'str0015: tags', # 'schema' => [ # 'str', # 'tags', # [ # 'some', # 'tags' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:tags' # ], # 'valid' => 1 # } # Subtest: (tags=clause:tags, type, type:str) str0015: tags ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 15 - (tags=clause:tags, type, type:str) str0015: tags # { # 'input' => undef, # 'name' => 'str0016: req=0 must accept undefined value', # 'schema' => [ # 'str', # 'req', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:req' # ], # 'valid' => 1 # } # Subtest: (tags=clause:req, type, type:str) str0016: req=0 must accept undefined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 16 - (tags=clause:req, type, type:str) str0016: req=0 must accept undefined value # { # 'input' => undef, # 'name' => 'str0017: req=1 must reject undefined value', # 'schema' => [ # 'str', # 'req', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:req' # ], # 'valid' => 0 # } # Subtest: (tags=clause:req, type, type:str) str0017: req=1 must reject undefined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 17 - (tags=clause:req, type, type:str) str0017: req=1 must reject undefined value # { # 'input' => 'a', # 'name' => 'str0018: forbidden=0 must accept defined value', # 'schema' => [ # 'str', # 'forbidden', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:forbidden' # ], # 'valid' => 1 # } # Subtest: (tags=clause:forbidden, type, type:str) str0018: forbidden=0 must accept defined value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 18 - (tags=clause:forbidden, type, type:str) str0018: forbidden=0 must accept defined value # { # 'input' => 'a', # 'name' => 'str0019: forbidden=1 must reject defined value', # 'schema' => [ # 'str', # 'forbidden', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:forbidden' # ], # 'valid' => 0 # } # Subtest: (tags=clause:forbidden, type, type:str) str0019: forbidden=1 must reject defined value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 19 - (tags=clause:forbidden, type, type:str) str0019: forbidden=1 must reject defined value # { # 'input' => undef, # 'name' => 'str0020: default: must accept valid default a', # 'schema' => [ # 'str*', # 'default', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:default' # ], # 'valid' => 1 # } # Subtest: (tags=clause:default, type, type:str) str0020: default: must accept valid default a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 20 - (tags=clause:default, type, type:str) str0020: default: must accept valid default a # { # 'input' => undef, # 'name' => 'str0021: default: must reject invalid default []', # 'schema' => [ # 'str*', # 'default', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:default' # ], # 'valid' => 0 # } # Subtest: (tags=clause:default, type, type:str) str0021: default: must reject invalid default [] ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 21 - (tags=clause:default, type, type:str) str0021: default: must reject invalid default [] # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0022: clause (dies, unknown clause)', # 'schema' => [ # 'str*', # 'clause', # [ # 'foo', # 1 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ] # } # Subtest: (tags=clause:clause, type, type:str) str0022: clause (dies, unknown clause) ok 1 - compile error 1..1 ok 22 - (tags=clause:clause, type, type:str) str0022: clause (dies, unknown clause) # { # 'input' => 'a', # 'name' => 'str0023: clause (ok)', # 'schema' => [ # 'str*', # 'clause', # [ # 'match', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clause, type, type:str) str0023: clause (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 23 - (tags=clause:clause, type, type:str) str0023: clause (ok) # { # 'input' => 'a', # 'name' => 'str0024: clause (ok) + clause nok = nok', # 'schema' => [ # 'str*', # 'clause', # [ # 'match', # 'a' # ], # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:str) str0024: clause (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 24 - (tags=clause:clause, type, type:str) str0024: clause (ok) + clause nok = nok # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0025: clause (nok)', # 'schema' => [ # 'str*', # 'clause', # [ # 'match', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clause' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clause, type, type:str) str0025: clause (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 25 - (tags=clause:clause, type, type:str) str0025: clause (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0026: clset (dies, unknown clause)', # 'schema' => [ # 'str*', # 'clset', # { # 'foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:str) str0026: clset (dies, unknown clause) ok 1 - compile error 1..1 ok 26 - (tags=clause:clset, type, type:str) str0026: clset (dies, unknown clause) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0027: clset (dies, unknown attr)', # 'schema' => [ # 'str*', # 'clset', # { # 'min_len' => 1, # 'min_len.foo' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ] # } # Subtest: (tags=clause:clset, type, type:str) str0027: clset (dies, unknown attr) ok 1 - compile error 1..1 ok 27 - (tags=clause:clset, type, type:str) str0027: clset (dies, unknown attr) # { # 'input' => 'a', # 'name' => 'str0028: clset (empty = ok)', # 'schema' => [ # 'str*', # 'clset', # {} # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0028: clset (empty = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 28 - (tags=type, type:str) str0028: clset (empty = ok) # { # 'input' => 'a', # 'name' => 'str0029: clset (ignored clause/attr = ok)', # 'schema' => [ # 'str*', # 'clset', # { # '_foo' => 1, # 'foo._bar' => 2 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:str) str0029: clset (ignored clause/attr = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 29 - (tags=clause:clset, type, type:str) str0029: clset (ignored clause/attr = ok) # { # 'input' => 'a', # 'name' => 'str0030: clset (ok + ok = ok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 1, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 1 # } # Subtest: (tags=clause:clset, type, type:str) str0030: clset (ok + ok = ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 30 - (tags=clause:clset, type, type:str) str0030: clset (ok + ok = ok) # { # 'input' => 'a', # 'name' => 'str0031: clset (ok) + clause nok = nok', # 'schema' => [ # 'str*', # 'clset', # { # 'match' => 'a' # }, # 'len', # 2 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0031: clset (ok) + clause nok = nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 31 - (tags=clause:clset, type, type:str) str0031: clset (ok) + clause nok = nok # { # 'input' => 'a', # 'name' => 'str0032: clset (ok + nok = nok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 2, # 'match' => 'a' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0032: clset (ok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 32 - (tags=clause:clset, type, type:str) str0032: clset (ok + nok = nok) # { # 'input' => 'a', # 'name' => 'str0033: clset (nok + ok = nok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 1, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0033: clset (nok + ok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 33 - (tags=clause:clset, type, type:str) str0033: clset (nok + ok = nok) # { # 'input' => 'a', # 'name' => 'str0034: clset (nok + nok = nok)', # 'schema' => [ # 'str*', # 'clset', # { # 'len' => 2, # 'match' => 'b' # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:clset' # ], # 'valid' => 0 # } # Subtest: (tags=clause:clset, type, type:str) str0034: clset (nok + nok = nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 34 - (tags=clause:clset, type, type:str) str0034: clset (nok + nok = nok) # { # 'input' => undef, # 'name' => 'str0035: ok', # 'schema' => [ # 'str', # { # 'ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:ok' # ], # 'valid' => 1 # } # Subtest: (tags=clause:ok, type, type:str) str0035: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 35 - (tags=clause:ok, type, type:str) str0035: ok # { # 'input' => undef, # 'name' => 'str0036: ok + op not (nok)', # 'schema' => [ # 'str', # { # '!ok' => 1 # } # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:ok', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:ok, op, op:not, type, type:str) str0036: ok + op not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 36 - (tags=clause:ok, op, op:not, type, type:str) str0036: ok + op not (nok) # { # 'input' => 'a', # 'name' => 'str0037: .err_level=error (clause=is, ok)', # 'schema' => [ # 'str', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0037: .err_level=error (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 37 - (tags=attr, attr:err_level, type, type:str) str0037: .err_level=error (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'str0038: .err_level=error (clause=is, nok)', # 'schema' => [ # 'str', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 0 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0038: .err_level=error (clause=is, nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 38 - (tags=attr, attr:err_level, type, type:str) str0038: .err_level=error (clause=is, nok) # { # 'input' => 'a', # 'name' => 'str0039: .err_level=warn (clause=is, ok)', # 'schema' => [ # 'str', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0039: .err_level=warn (clause=is, ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 39 - (tags=attr, attr:err_level, type, type:str) str0039: .err_level=warn (clause=is, ok) # { # 'input' => 'a # ', # 'name' => 'str0040: .err_level=warn (clause=is, nok)', # 'schema' => [ # 'str*', # 'is', # 'a', # 'is.err_level', # 'warn' # ], # 'tags' => [ # 'type', # 'type:str', # 'attr', # 'attr:err_level' # ], # 'valid' => 1, # 'warnings' => 1 # } # Subtest: (tags=attr, attr:err_level, type, type:str) str0040: .err_level=warn (clause=is, nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 40 - (tags=attr, attr:err_level, type, type:str) str0040: .err_level=warn (clause=is, nok) # { # 'input' => 'a', # 'name' => 'str0041: is: must accept same value', # 'schema' => [ # 'str', # 'is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, type, type:str) str0041: is: must accept same value ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 41 - (tags=clause:is, type, type:str) str0041: is: must accept same value # { # 'input' => 'a', # 'name' => 'str0042: is: must reject different value', # 'schema' => [ # 'str', # 'is', # 'b' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, type, type:str) str0042: is: must reject different value ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 42 - (tags=clause:is, type, type:str) str0042: is: must reject different value # { # 'input' => 'a', # 'name' => 'str0043: !is (nok)', # 'schema' => [ # 'str', # '!is', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:str) str0043: !is (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 43 - (tags=clause:is, op, op:not, opshortcut, type, type:str) str0043: !is (nok) # { # 'input' => 'a', # 'name' => 'str0044: !is (ok)', # 'schema' => [ # 'str', # '!is', # 'b' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, opshortcut, type, type:str) str0044: !is (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 44 - (tags=clause:is, op, op:not, opshortcut, type, type:str) str0044: !is (ok) # { # 'input' => 'a', # 'name' => 'str0045: is.op=not (nok)', # 'schema' => [ # 'str', # 'is', # 'a', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:not, type, type:str) str0045: is.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 45 - (tags=clause:is, op, op:not, type, type:str) str0045: is.op=not (nok) # { # 'input' => 'a', # 'name' => 'str0046: is.op=not (ok)', # 'schema' => [ # 'str', # 'is', # 'b', # 'is.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:not, type, type:str) str0046: is.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 46 - (tags=clause:is, op, op:not, type, type:str) str0046: is.op=not (ok) # { # 'input' => 'a', # 'name' => 'str0047: is& (no items)', # 'schema' => [ # 'str', # 'is&', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0047: is& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 47 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0047: is& (no items) # { # 'input' => 'a', # 'name' => 'str0048: is& (ok)', # 'schema' => [ # 'str', # 'is&', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0048: is& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 48 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0048: is& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0049: is& (nok + ok)', # 'schema' => [ # 'str', # 'is&', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0049: is& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 49 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0049: is& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0050: is& (ok + nok)', # 'schema' => [ # 'str', # 'is&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0050: is& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 50 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0050: is& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0051: is& (nok + nok)', # 'schema' => [ # 'str', # 'is&', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, opshortcut, type, type:str) str0051: is& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 51 - (tags=clause:is, op, op:and, opshortcut, type, type:str) str0051: is& (nok + nok) # { # 'input' => 'a', # 'name' => 'str0052: is.op=and (no items)', # 'schema' => [ # 'str', # 'is', # [], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0052: is.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 52 - (tags=type, type:str) str0052: is.op=and (no items) # { # 'input' => 'a', # 'name' => 'str0053: is.op=and (ok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0053: is.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 53 - (tags=clause:is, op, op:and, type, type:str) str0053: is.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0054: is.op=and (nok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0054: is.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 54 - (tags=clause:is, op, op:and, type, type:str) str0054: is.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0055: is.op=and (ok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0055: is.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 55 - (tags=clause:is, op, op:and, type, type:str) str0055: is.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0056: is.op=and (nok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:and, type, type:str) str0056: is.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 56 - (tags=clause:is, op, op:and, type, type:str) str0056: is.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'str0057: is| (no items)', # 'schema' => [ # 'str', # 'is|', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0057: is| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 57 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0057: is| (no items) # { # 'input' => 'a', # 'name' => 'str0058: is| (ok)', # 'schema' => [ # 'str', # 'is|', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0058: is| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 58 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0058: is| (ok) # { # 'input' => 'a', # 'name' => 'str0059: is| (nok + ok)', # 'schema' => [ # 'str', # 'is|', # [ # 'b', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0059: is| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 59 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0059: is| (nok + ok) # { # 'input' => 'a', # 'name' => 'str0060: is| (ok + nok)', # 'schema' => [ # 'str', # 'is|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0060: is| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 60 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0060: is| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0061: is| (nok + nok)', # 'schema' => [ # 'str', # 'is|', # [ # 'b', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, opshortcut, type, type:str) str0061: is| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 61 - (tags=clause:is, op, op:or, opshortcut, type, type:str) str0061: is| (nok + nok) # { # 'input' => 'a', # 'name' => 'str0062: is.op=or (no items)', # 'schema' => [ # 'str', # 'is', # [], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0062: is.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 62 - (tags=clause:is, op, op:or, type, type:str) str0062: is.op=or (no items) # { # 'input' => 'a', # 'name' => 'str0063: is.op=or (ok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0063: is.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 63 - (tags=clause:is, op, op:or, type, type:str) str0063: is.op=or (ok) # { # 'input' => 'a', # 'name' => 'str0064: is.op=or (nok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0064: is.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 64 - (tags=clause:is, op, op:or, type, type:str) str0064: is.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'str0065: is.op=or (ok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0065: is.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 65 - (tags=clause:is, op, op:or, type, type:str) str0065: is.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0066: is.op=or (nok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:or, type, type:str) str0066: is.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 66 - (tags=clause:is, op, op:or, type, type:str) str0066: is.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'str0067: is.op=none (empty items)', # 'schema' => [ # 'str', # 'is', # [], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0067: is.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 67 - (tags=clause:is, op, op:none, type, type:str) str0067: is.op=none (empty items) # { # 'input' => 'a', # 'name' => 'str0068: is.op=none (nok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0068: is.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 68 - (tags=clause:is, op, op:none, type, type:str) str0068: is.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0069: is.op=none (nok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'b', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0069: is.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 69 - (tags=clause:is, op, op:none, type, type:str) str0069: is.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0070: is.op=none (ok + nok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'b' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0070: is.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 70 - (tags=clause:is, op, op:none, type, type:str) str0070: is.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0071: is.op=none (ok + ok)', # 'schema' => [ # 'str', # 'is', # [ # 'a', # 'a' # ], # 'is.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is, op, op:none, type, type:str) str0071: is.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 71 - (tags=clause:is, op, op:none, type, type:str) str0071: is.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'str0072: in: must accept valid choices', # 'schema' => [ # 'str', # 'in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, type, type:str) str0072: in: must accept valid choices ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 72 - (tags=clause:in, type, type:str) str0072: in: must accept valid choices # { # 'input' => 'a', # 'name' => 'str0073: in: must reject empty choices', # 'schema' => [ # 'str', # 'in', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, type, type:str) str0073: in: must reject empty choices ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 73 - (tags=clause:in, type, type:str) str0073: in: must reject empty choices # { # 'input' => 'a', # 'name' => 'str0074: !in (nok)', # 'schema' => [ # 'str', # '!in', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:str) str0074: !in (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 74 - (tags=clause:in, op, op:not, opshortcut, type, type:str) str0074: !in (nok) # { # 'input' => 'a', # 'name' => 'str0075: !in (ok)', # 'schema' => [ # 'str', # '!in', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, opshortcut, type, type:str) str0075: !in (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 75 - (tags=clause:in, op, op:not, opshortcut, type, type:str) str0075: !in (ok) # { # 'input' => 'a', # 'name' => 'str0076: in.op=not (nok)', # 'schema' => [ # 'str', # 'in', # [ # 'a', # 'b' # ], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:not, type, type:str) str0076: in.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 76 - (tags=clause:in, op, op:not, type, type:str) str0076: in.op=not (nok) # { # 'input' => 'a', # 'name' => 'str0077: in.op=not (ok)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:not, type, type:str) str0077: in.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 77 - (tags=clause:in, op, op:not, type, type:str) str0077: in.op=not (ok) # { # 'input' => 'a', # 'name' => 'str0078: in& (no items)', # 'schema' => [ # 'str', # 'in&', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0078: in& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 78 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0078: in& (no items) # { # 'input' => 'a', # 'name' => 'str0079: in& (ok)', # 'schema' => [ # 'str', # 'in&', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0079: in& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 79 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0079: in& (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0080: in& (nok + ok)', # 'schema' => [ # 'str', # 'in&', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0080: in& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 80 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0080: in& (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0081: in& (ok + nok)', # 'schema' => [ # 'str', # 'in&', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0081: in& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 81 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0081: in& (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0082: in& (nok + nok)', # 'schema' => [ # 'str', # 'in&', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, opshortcut, type, type:str) str0082: in& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 82 - (tags=clause:in, op, op:and, opshortcut, type, type:str) str0082: in& (nok + nok) # { # 'input' => 'a', # 'name' => 'str0083: in.op=and (no items)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0083: in.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 83 - (tags=type, type:str) str0083: in.op=and (no items) # { # 'input' => 'a', # 'name' => 'str0084: in.op=and (ok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0084: in.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 84 - (tags=clause:in, op, op:and, type, type:str) str0084: in.op=and (ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0085: in.op=and (nok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0085: in.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 85 - (tags=clause:in, op, op:and, type, type:str) str0085: in.op=and (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0086: in.op=and (ok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0086: in.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 86 - (tags=clause:in, op, op:and, type, type:str) str0086: in.op=and (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0087: in.op=and (nok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [] # ], # 'in.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:and, type, type:str) str0087: in.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 87 - (tags=clause:in, op, op:and, type, type:str) str0087: in.op=and (nok + nok) # { # 'input' => 'a', # 'name' => 'str0088: in| (no items)', # 'schema' => [ # 'str', # 'in|', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0088: in| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 88 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0088: in| (no items) # { # 'input' => 'a', # 'name' => 'str0089: in| (ok)', # 'schema' => [ # 'str', # 'in|', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0089: in| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 89 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0089: in| (ok) # { # 'input' => 'a', # 'name' => 'str0090: in| (nok + ok)', # 'schema' => [ # 'str', # 'in|', # [ # [], # [ # 'a', # 'b' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0090: in| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 90 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0090: in| (nok + ok) # { # 'input' => 'a', # 'name' => 'str0091: in| (ok + nok)', # 'schema' => [ # 'str', # 'in|', # [ # [ # 'a', # 'b' # ], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0091: in| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 91 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0091: in| (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0092: in| (nok + nok)', # 'schema' => [ # 'str', # 'in|', # [ # [], # [] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, opshortcut, type, type:str) str0092: in| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 92 - (tags=clause:in, op, op:or, opshortcut, type, type:str) str0092: in| (nok + nok) # { # 'input' => 'a', # 'name' => 'str0093: in.op=or (no items)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0093: in.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 93 - (tags=clause:in, op, op:or, type, type:str) str0093: in.op=or (no items) # { # 'input' => 'a', # 'name' => 'str0094: in.op=or (ok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0094: in.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 94 - (tags=clause:in, op, op:or, type, type:str) str0094: in.op=or (ok) # { # 'input' => 'a', # 'name' => 'str0095: in.op=or (nok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0095: in.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 95 - (tags=clause:in, op, op:or, type, type:str) str0095: in.op=or (nok + ok) # { # 'input' => 'a', # 'name' => 'str0096: in.op=or (ok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0096: in.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 96 - (tags=clause:in, op, op:or, type, type:str) str0096: in.op=or (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0097: in.op=or (nok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [] # ], # 'in.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:or, type, type:str) str0097: in.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 97 - (tags=clause:in, op, op:or, type, type:str) str0097: in.op=or (nok + nok) # { # 'input' => 'a', # 'name' => 'str0098: in.op=none (empty items)', # 'schema' => [ # 'str', # 'in', # [], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0098: in.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 98 - (tags=clause:in, op, op:none, type, type:str) str0098: in.op=none (empty items) # { # 'input' => 'a', # 'name' => 'str0099: in.op=none (nok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0099: in.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 99 - (tags=clause:in, op, op:none, type, type:str) str0099: in.op=none (nok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0100: in.op=none (nok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0100: in.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 100 - (tags=clause:in, op, op:none, type, type:str) str0100: in.op=none (nok + ok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0101: in.op=none (ok + nok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0101: in.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 101 - (tags=clause:in, op, op:none, type, type:str) str0101: in.op=none (ok + nok) # { # 'errors' => 1, # 'input' => 'a', # 'name' => 'str0102: in.op=none (ok + ok)', # 'schema' => [ # 'str', # 'in', # [ # [ # 'a', # 'b' # ], # [ # 'a', # 'b' # ] # ], # 'in.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:in', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:in, op, op:none, type, type:str) str0102: in.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 102 - (tags=clause:in, op, op:none, type, type:str) str0102: in.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'str0103: min: a ', # 'schema' => [ # 'str', # 'min', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:str) str0103: min: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 103 - (tags=clause:min, type, type:str) str0103: min: a # { # 'input' => 'a', # 'name' => 'str0104: min: a a', # 'schema' => [ # 'str', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min, type, type:str) str0104: min: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 104 - (tags=clause:min, type, type:str) str0104: min: a a # { # 'input' => '', # 'name' => 'str0105: min: a -> fail', # 'schema' => [ # 'str', # 'min', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min, type, type:str) str0105: min: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 105 - (tags=clause:min, type, type:str) str0105: min: a -> fail # { # 'input' => 'a', # 'name' => 'str0106: xmin: a ', # 'schema' => [ # 'str', # 'xmin', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmin' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmin, type, type:str) str0106: xmin: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 106 - (tags=clause:xmin, type, type:str) str0106: xmin: a # { # 'input' => 'a', # 'name' => 'str0107: xmin: a a -> fail', # 'schema' => [ # 'str', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:str) str0107: xmin: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 107 - (tags=clause:xmin, type, type:str) str0107: xmin: a a -> fail # { # 'input' => '', # 'name' => 'str0108: xmin: a -> fail', # 'schema' => [ # 'str', # 'xmin', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmin' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmin, type, type:str) str0108: xmin: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 108 - (tags=clause:xmin, type, type:str) str0108: xmin: a -> fail # { # 'input' => 'a', # 'name' => 'str0109: max: a -> fail', # 'schema' => [ # 'str', # 'max', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max, type, type:str) str0109: max: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 109 - (tags=clause:max, type, type:str) str0109: max: a -> fail # { # 'input' => 'a', # 'name' => 'str0110: max: a a', # 'schema' => [ # 'str', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:str) str0110: max: a a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 110 - (tags=clause:max, type, type:str) str0110: max: a a # { # 'input' => '', # 'name' => 'str0111: max: a', # 'schema' => [ # 'str', # 'max', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max, type, type:str) str0111: max: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 111 - (tags=clause:max, type, type:str) str0111: max: a # { # 'input' => 'a', # 'name' => 'str0112: xmax: a -> fail', # 'schema' => [ # 'str', # 'xmax', # '' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:str) str0112: xmax: a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 112 - (tags=clause:xmax, type, type:str) str0112: xmax: a -> fail # { # 'input' => 'a', # 'name' => 'str0113: xmax: a a -> fail', # 'schema' => [ # 'str', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmax' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xmax, type, type:str) str0113: xmax: a a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 113 - (tags=clause:xmax, type, type:str) str0113: xmax: a a -> fail # { # 'input' => '', # 'name' => 'str0114: xmax: a', # 'schema' => [ # 'str', # 'xmax', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xmax' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xmax, type, type:str) str0114: xmax: a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 114 - (tags=clause:xmax, type, type:str) str0114: xmax: a # { # 'input' => 'a', # 'name' => 'str0115: between: a & ab', # 'schema' => [ # 'str', # 'between', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:str) str0115: between: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 115 - (tags=clause:between, type, type:str) str0115: between: a & ab # { # 'input' => 'a', # 'name' => 'str0116: between: a & a', # 'schema' => [ # 'str', # 'between', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:str) str0116: between: a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 116 - (tags=clause:between, type, type:str) str0116: between: a & a # { # 'input' => 'a', # 'name' => 'str0117: between: a a & a', # 'schema' => [ # 'str', # 'between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, type, type:str) str0117: between: a a & a ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 117 - (tags=clause:between, type, type:str) str0117: between: a a & a # { # 'input' => '', # 'name' => 'str0118: between: a & ab -> fail', # 'schema' => [ # 'str', # 'between', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, type, type:str) str0118: between: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 118 - (tags=clause:between, type, type:str) str0118: between: a & ab -> fail # { # 'input' => 'a', # 'name' => 'str0119: xbetween: a & ab', # 'schema' => [ # 'str', # 'xbetween', # [ # '', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 1 # } # Subtest: (tags=clause:xbetween, type, type:str) str0119: xbetween: a & ab ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 119 - (tags=clause:xbetween, type, type:str) str0119: xbetween: a & ab # { # 'input' => 'a', # 'name' => 'str0120: xbetween: a & a -> fail', # 'schema' => [ # 'str', # 'xbetween', # [ # '', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:str) str0120: xbetween: a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 120 - (tags=clause:xbetween, type, type:str) str0120: xbetween: a & a -> fail # { # 'input' => 'a', # 'name' => 'str0121: xbetween: a a & a -> fail', # 'schema' => [ # 'str', # 'xbetween', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:str) str0121: xbetween: a a & a -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 121 - (tags=clause:xbetween, type, type:str) str0121: xbetween: a a & a -> fail # { # 'input' => '', # 'name' => 'str0122: xbetween: a & ab -> fail', # 'schema' => [ # 'str', # 'xbetween', # [ # 'a', # 'ab' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:xbetween' # ], # 'valid' => 0 # } # Subtest: (tags=clause:xbetween, type, type:str) str0122: xbetween: a & ab -> fail ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 122 - (tags=clause:xbetween, type, type:str) str0122: xbetween: a & ab -> fail # { # 'input' => '', # 'name' => 'str0123: !between (nok)', # 'schema' => [ # 'str', # '!between', # [ # '', # '' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:str) str0123: !between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 123 - (tags=clause:between, op, op:not, opshortcut, type, type:str) str0123: !between (nok) # { # 'input' => '', # 'name' => 'str0124: !between (ok)', # 'schema' => [ # 'str', # '!between', # [ # 'a', # 'a' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, opshortcut, type, type:str) str0124: !between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 124 - (tags=clause:between, op, op:not, opshortcut, type, type:str) str0124: !between (ok) # { # 'input' => '', # 'name' => 'str0125: between.op=not (nok)', # 'schema' => [ # 'str', # 'between', # [ # '', # '' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:not, type, type:str) str0125: between.op=not (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 125 - (tags=clause:between, op, op:not, type, type:str) str0125: between.op=not (nok) # { # 'input' => '', # 'name' => 'str0126: between.op=not (ok)', # 'schema' => [ # 'str', # 'between', # [ # 'a', # 'a' # ], # 'between.op', # 'not' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:not' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:not, type, type:str) str0126: between.op=not (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 126 - (tags=clause:between, op, op:not, type, type:str) str0126: between.op=not (ok) # { # 'input' => '', # 'name' => 'str0127: between& (no items)', # 'schema' => [ # 'str', # 'between&', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0127: between& (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 127 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0127: between& (no items) # { # 'input' => '', # 'name' => 'str0128: between& (ok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0128: between& (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 128 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0128: between& (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0129: between& (nok + ok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0129: between& (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 129 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0129: between& (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0130: between& (ok + nok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0130: between& (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 130 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0130: between& (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0131: between& (nok + nok)', # 'schema' => [ # 'str', # 'between&', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, opshortcut, type, type:str) str0131: between& (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 131 - (tags=clause:between, op, op:and, opshortcut, type, type:str) str0131: between& (nok + nok) # { # 'input' => '', # 'name' => 'str0132: between.op=and (no items)', # 'schema' => [ # 'str', # 'between', # [], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:str) str0132: between.op=and (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 132 - (tags=type, type:str) str0132: between.op=and (no items) # { # 'input' => '', # 'name' => 'str0133: between.op=and (ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0133: between.op=and (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 133 - (tags=clause:between, op, op:and, type, type:str) str0133: between.op=and (ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0134: between.op=and (nok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0134: between.op=and (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 134 - (tags=clause:between, op, op:and, type, type:str) str0134: between.op=and (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0135: between.op=and (ok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0135: between.op=and (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 135 - (tags=clause:between, op, op:and, type, type:str) str0135: between.op=and (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0136: between.op=and (nok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'and' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:and' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:and, type, type:str) str0136: between.op=and (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 136 - (tags=clause:between, op, op:and, type, type:str) str0136: between.op=and (nok + nok) # { # 'input' => '', # 'name' => 'str0137: between| (no items)', # 'schema' => [ # 'str', # 'between|', # [] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0137: between| (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 137 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0137: between| (no items) # { # 'input' => '', # 'name' => 'str0138: between| (ok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0138: between| (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 138 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0138: between| (ok) # { # 'input' => '', # 'name' => 'str0139: between| (nok + ok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0139: between| (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 139 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0139: between| (nok + ok) # { # 'input' => '', # 'name' => 'str0140: between| (ok + nok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0140: between| (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 140 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0140: between| (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0141: between| (nok + nok)', # 'schema' => [ # 'str', # 'between|', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, opshortcut, type, type:str) str0141: between| (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 141 - (tags=clause:between, op, op:or, opshortcut, type, type:str) str0141: between| (nok + nok) # { # 'input' => '', # 'name' => 'str0142: between.op=or (no items)', # 'schema' => [ # 'str', # 'between', # [], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0142: between.op=or (no items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 142 - (tags=clause:between, op, op:or, type, type:str) str0142: between.op=or (no items) # { # 'input' => '', # 'name' => 'str0143: between.op=or (ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0143: between.op=or (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 143 - (tags=clause:between, op, op:or, type, type:str) str0143: between.op=or (ok) # { # 'input' => '', # 'name' => 'str0144: between.op=or (nok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0144: between.op=or (nok + ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 144 - (tags=clause:between, op, op:or, type, type:str) str0144: between.op=or (nok + ok) # { # 'input' => '', # 'name' => 'str0145: between.op=or (ok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0145: between.op=or (ok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 145 - (tags=clause:between, op, op:or, type, type:str) str0145: between.op=or (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0146: between.op=or (nok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'or' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:or' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:or, type, type:str) str0146: between.op=or (nok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 146 - (tags=clause:between, op, op:or, type, type:str) str0146: between.op=or (nok + nok) # { # 'input' => '', # 'name' => 'str0147: between.op=none (empty items)', # 'schema' => [ # 'str', # 'between', # [], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0147: between.op=none (empty items) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 147 - (tags=clause:between, op, op:none, type, type:str) str0147: between.op=none (empty items) # { # 'input' => '', # 'name' => 'str0148: between.op=none (nok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 1 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0148: between.op=none (nok + nok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 148 - (tags=clause:between, op, op:none, type, type:str) str0148: between.op=none (nok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0149: between.op=none (nok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # 'a', # 'a' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0149: between.op=none (nok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 149 - (tags=clause:between, op, op:none, type, type:str) str0149: between.op=none (nok + ok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0150: between.op=none (ok + nok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # 'a', # 'a' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0150: between.op=none (ok + nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 150 - (tags=clause:between, op, op:none, type, type:str) str0150: between.op=none (ok + nok) # { # 'errors' => 1, # 'input' => '', # 'name' => 'str0151: between.op=none (ok + ok)', # 'schema' => [ # 'str', # 'between', # [ # [ # '', # '' # ], # [ # '', # '' # ] # ], # 'between.op', # 'none' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:between', # 'op', # 'op:none' # ], # 'valid' => 0 # } # Subtest: (tags=clause:between, op, op:none, type, type:str) str0151: between.op=none (ok + ok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 151 - (tags=clause:between, op, op:none, type, type:str) str0151: between.op=none (ok + ok) # { # 'input' => 'a', # 'name' => 'str0152: len (ok)', # 'schema' => [ # 'str', # 'len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len, type, type:str) str0152: len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 152 - (tags=clause:len, type, type:str) str0152: len (ok) # { # 'input' => 'a', # 'name' => 'str0153: len (nok)', # 'schema' => [ # 'str', # 'len', # 3 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len, type, type:str) str0153: len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 153 - (tags=clause:len, type, type:str) str0153: len (nok) # { # 'input' => 'a', # 'name' => 'str0154: min_len (ok)', # 'schema' => [ # 'str', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:min_len, type, type:str) str0154: min_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 154 - (tags=clause:min_len, type, type:str) str0154: min_len (ok) # { # 'input' => 'a', # 'name' => 'str0155: min_len (nok)', # 'schema' => [ # 'str', # 'min_len', # 3 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:min_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:min_len, type, type:str) str0155: min_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 155 - (tags=clause:min_len, type, type:str) str0155: min_len (nok) # { # 'input' => 'a', # 'name' => 'str0156: max_len (ok)', # 'schema' => [ # 'str', # 'min_len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max_len' # ], # 'valid' => 1 # } # Subtest: (tags=clause:max_len, type, type:str) str0156: max_len (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 156 - (tags=clause:max_len, type, type:str) str0156: max_len (ok) # { # 'input' => 'abc', # 'name' => 'str0157: max_len (nok)', # 'schema' => [ # 'str', # 'max_len', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:max_len' # ], # 'valid' => 0 # } # Subtest: (tags=clause:max_len, type, type:str) str0157: max_len (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 157 - (tags=clause:max_len, type, type:str) str0157: max_len (nok) # { # 'input' => 'a', # 'name' => 'str0158: len_between (ok)', # 'schema' => [ # 'str', # 'len_between', # [ # 1, # 3 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len_between' # ], # 'valid' => 1 # } # Subtest: (tags=clause:len_between, type, type:str) str0158: len_between (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 158 - (tags=clause:len_between, type, type:str) str0158: len_between (ok) # { # 'input' => 'abc', # 'name' => 'str0159: len_between (nok)', # 'schema' => [ # 'str', # 'len_between', # [ # 1, # 1 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:len_between' # ], # 'valid' => 0 # } # Subtest: (tags=clause:len_between, type, type:str) str0159: len_between (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 159 - (tags=clause:len_between, type, type:str) str0159: len_between (nok) # { # 'input' => 'abc', # 'name' => 'str0160: each_index (ok)', # 'schema' => [ # 'str', # 'each_index', # [ # 'int', # 'max', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_index' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_index, type, type:str) str0160: each_index (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 160 - (tags=clause:each_index, type, type:str) str0160: each_index (ok) # { # 'input' => 'abc', # 'name' => 'str0161: each_index (nok)', # 'schema' => [ # 'str', # 'each_index', # [ # 'int', # 'xmax', # 2 # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_index' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_index, type, type:str) str0161: each_index (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 161 - (tags=clause:each_index, type, type:str) str0161: each_index (nok) # { # 'input' => 'abc', # 'name' => 'str0162: each_elem (ok)', # 'schema' => [ # 'str', # 'each_elem', # 'str' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_elem' # ], # 'valid' => 1 # } # Subtest: (tags=clause:each_elem, type, type:str) str0162: each_elem (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 162 - (tags=clause:each_elem, type, type:str) str0162: each_elem (ok) # { # 'input' => 'abc', # 'name' => 'str0163: each_elem (nok)', # 'schema' => [ # 'str', # 'each_elem', # 'float' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:each_elem' # ], # 'valid' => 0 # } # Subtest: (tags=clause:each_elem, type, type:str) str0163: each_elem (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 163 - (tags=clause:each_elem, type, type:str) str0163: each_elem (nok) # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'str0170: has', # 'schema' => [ # 'str', # 'has', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, type, type:str) str0170: has ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 164 - (tags=clause:has, type, type:str) str0170: has # { # 'invalid_inputs' => [ # 'abc', # 'ac' # ], # 'name' => 'str0171: has + op.not', # 'schema' => [ # 'str', # '!has', # 'a' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has', # 'op', # 'op:not', # 'opshortcut' # ], # 'valid_inputs' => [ # '', # 'A', # 'c' # ] # } # Subtest: (tags=clause:has, op, op:not, opshortcut, type, type:str) str0171: has + op.not ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - valid input [2] ok 5 - invalid input [0] ok 6 - invalid input [1] ok 7 - validator (rt=full) returns hash 1..7 ok 165 - (tags=clause:has, op, op:not, opshortcut, type, type:str) str0171: has + op.not # { # 'invalid_inputs' => [ # '', # 'A', # 'c' # ], # 'name' => 'str0172: has + op.or', # 'schema' => [ # 'str', # 'has|', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has', # 'op', # 'op:or', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc', # 'ac' # ] # } # Subtest: (tags=clause:has, op, op:or, opshortcut, type, type:str) str0172: has + op.or ok 1 - compile success ok 2 - valid input [0] ok 3 - valid input [1] ok 4 - invalid input [0] ok 5 - invalid input [1] ok 6 - invalid input [2] ok 7 - validator (rt=full) returns hash 1..7 ok 166 - (tags=clause:has, op, op:or, opshortcut, type, type:str) str0172: has + op.or # { # 'invalid_inputs' => [ # 'ac', # '', # 'A', # 'c' # ], # 'name' => 'str0173: has + op.and', # 'schema' => [ # 'str', # 'has&', # [ # 'a', # 'b' # ] # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:has', # 'op', # 'op:and', # 'opshortcut' # ], # 'valid_inputs' => [ # 'abc' # ] # } # Subtest: (tags=clause:has, op, op:and, opshortcut, type, type:str) str0173: has + op.and ok 1 - compile success ok 2 - valid input [0] ok 3 - invalid input [0] ok 4 - invalid input [1] ok 5 - invalid input [2] ok 6 - invalid input [3] ok 7 - validator (rt=full) returns hash 1..7 ok 167 - (tags=clause:has, op, op:and, opshortcut, type, type:str) str0173: has + op.and # { # 'input' => 'a', # 'name' => 'str0177: encoding: (ok)', # 'schema' => [ # 'str', # 'encoding', # 'utf8' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:encoding' # ], # 'valid' => 1 # } # Subtest: (tags=clause:encoding, type, type:str) str0177: encoding: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 168 - (tags=clause:encoding, type, type:str) str0177: encoding: (ok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0178: encoding: (dies, unknown encoding)', # 'schema' => [ # 'str', # 'encoding', # 'foo' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:encoding' # ] # } # Subtest: (tags=clause:encoding, type, type:str) str0178: encoding: (dies, unknown encoding) ok 1 - compile error 1..1 ok 169 - (tags=clause:encoding, type, type:str) str0178: encoding: (dies, unknown encoding) # { # 'input' => 'a', # 'name' => 'str0179: match: (ok)', # 'schema' => [ # 'str', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:match' # ], # 'valid' => 1 # } # Subtest: (tags=clause:match, type, type:str) str0179: match: (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 170 - (tags=clause:match, type, type:str) str0179: match: (ok) # { # 'input' => 'A', # 'name' => 'str0180: match: (nok)', # 'schema' => [ # 'str', # 'match', # '[abc]' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:match' # ], # 'valid' => 0 # } # Subtest: (tags=clause:match, type, type:str) str0180: match: (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 171 - (tags=clause:match, type, type:str) str0180: match: (nok) # { # 'dies' => 1, # 'input' => 'a', # 'name' => 'str0181: match: (dies, invalid regex)', # 'schema' => [ # 'str', # 'match', # '(' # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:match' # ] # } # Subtest: (tags=clause:match, type, type:str) str0181: match: (dies, invalid regex) ok 1 - compile error 1..1 ok 172 - (tags=clause:match, type, type:str) str0181: match: (dies, invalid regex) # { # 'input' => 'a', # 'name' => 'str0182: is_re: 1 (ok)', # 'schema' => [ # 'str', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:str) str0182: is_re: 1 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 173 - (tags=clause:is_re, type, type:str) str0182: is_re: 1 (ok) # { # 'input' => 'a(', # 'name' => 'str0183: is_re: 1 (nok)', # 'schema' => [ # 'str', # 'is_re', # 1 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:str) str0183: is_re: 1 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 174 - (tags=clause:is_re, type, type:str) str0183: is_re: 1 (nok) # { # 'input' => 'a(', # 'name' => 'str0184: is_re: 0 (ok)', # 'schema' => [ # 'str', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 1 # } # Subtest: (tags=clause:is_re, type, type:str) str0184: is_re: 0 (ok) ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 175 - (tags=clause:is_re, type, type:str) str0184: is_re: 0 (ok) # { # 'input' => 'a', # 'name' => 'str0185: is_re: 0 (nok)', # 'schema' => [ # 'str', # 'is_re', # 0 # ], # 'tags' => [ # 'type', # 'type:str', # 'clause:is_re' # ], # 'valid' => 0 # } # Subtest: (tags=clause:is_re, type, type:str) str0185: is_re: 0 (nok) ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 176 - (tags=clause:is_re, type, type:str) str0185: is_re: 0 (nok) ok 177 1..177 ok 14 - 10-type-str.json # Subtest: 10-type-undef.json # Test version: v0.9.36 (generated by devscripts/gen-type-spectest on Thu Jun 11 14:24:01 2015) # { # 'input' => undef, # 'name' => 'undef0001: ok', # 'schema' => [ # 'undef' # ], # 'tags' => [ # 'type', # 'type:undef' # ], # 'valid' => 1 # } # Subtest: (tags=type, type:undef) undef0001: ok ok 1 - compile success ok 2 - valid (rt=bool) ok 3 - valid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 1 - (tags=type, type:undef) undef0001: ok # { # 'input' => 0, # 'name' => 'undef0002: nok', # 'schema' => [ # 'undef' # ], # 'tags' => [ # 'type', # 'type:undef' # ], # 'valid' => 0 # } # Subtest: (tags=type, type:undef) undef0002: nok ok 1 - compile success ok 2 - invalid (rt=bool) ok 3 - invalid (rt=str) ok 4 - validator (rt=full) returns hash ok 5 - errors (rt=full) ok 6 - warnings (rt=full) 1..6 ok 2 - (tags=type, type:undef) undef0002: nok ok 3 1..3 ok 15 - 10-type-undef.json 1..15 ok t/util-type-date.t ....... # Subtest: coerce_date (Time::Moment) ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 1..11 ok 1 - coerce_date (Time::Moment) # Subtest: coerce_date (DateTime) ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 1..11 ok 2 - coerce_date (DateTime) # Subtest: coerce_date (Time::Piece) ok 1 ok 2 ok 3 ok 4 ok 5 ok 6 ok 7 ok 8 ok 9 ok 10 ok 11 1..11 ok 3 - coerce_date (Time::Piece) 1..3 ok Test Summary Report ------------------- t/perl-type-date.t (Wstat: 65280 Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output Files=22, Tests=188, 44 wallclock secs ( 2.39 usr + 0.16 sys = 2.54 CPU) Result: FAIL Failed 1/22 test programs. 0/188 subtests failed. dmake: Error code 255, while making 'test_dynamic' PERLANCAR/Data-Sah-0.78.tar.gz dmake test TEST_VERBOSE=1 -- NOT OK //hint// to see the cpan-testers results for installing this module, try: reports PERLANCAR/Data-Sah-0.78.tar.gz Running test for module 'YAML::Old' Checksum for C:\cpanfly-5.22-64\var\cpan\sources\authors\id\I\IN\INGY\YAML-Old-1.07.tar.gz ok YAML-Old-1.07/ YAML-Old-1.07/META.yml YAML-Old-1.07/LICENSE YAML-Old-1.07/Makefile.PL YAML-Old-1.07/README YAML-Old-1.07/t/ YAML-Old-1.07/t/dump-perl-types-512.t YAML-Old-1.07/t/load-spec.t YAML-Old-1.07/t/dump-file-utf8.t YAML-Old-1.07/t/node-info.t YAML-Old-1.07/t/dump-stringify.t YAML-Old-1.07/t/inbox.t YAML-Old-1.07/t/basic-tests.t YAML-Old-1.07/t/references.t YAML-Old-1.07/t/dump-code.t YAML-Old-1.07/t/dump-works.t YAML-Old-1.07/t/load-passes.t YAML-Old-1.07/t/2-scalars.t YAML-Old-1.07/t/dump-file.t YAML-Old-1.07/t/regexp.t YAML-Old-1.07/t/dump-tests-512.t YAML-Old-1.07/t/load-fails.t YAML-Old-1.07/t/bugs-emailed.t YAML-Old-1.07/t/dump-nested.t YAML-Old-1.07/t/dump-synopsis.t YAML-Old-1.07/t/dump-basics.t YAML-Old-1.07/t/marshall.t YAML-Old-1.07/t/TestYAMLBase.pm YAML-Old-1.07/t/load-slides.t YAML-Old-1.07/t/dump-opts.t YAML-Old-1.07/t/dump-perl-types.t YAML-Old-1.07/t/release-pod-syntax.t YAML-Old-1.07/t/freeze-thaw.t YAML-Old-1.07/t/changes.t YAML-Old-1.07/t/export.t YAML-Old-1.07/t/TestYAML.pm YAML-Old-1.07/t/long-quoted-value.yaml YAML-Old-1.07/t/dump-perl-types-514.t YAML-Old-1.07/t/global-api.t YAML-Old-1.07/t/svk.t YAML-Old-1.07/t/dump-tests.t YAML-Old-1.07/t/bugs-rt.t YAML-Old-1.07/t/000-compile-modules.t YAML-Old-1.07/t/test.t YAML-Old-1.07/t/load-works.t YAML-Old-1.07/t/rt-90593.t YAML-Old-1.07/t/dump-tests-514.t YAML-Old-1.07/t/pugs-objects.t YAML-Old-1.07/t/svk-config.yaml YAML-Old-1.07/t/load-tests.t YAML-Old-1.07/t/dump-blessed.t YAML-Old-1.07/t/errors.t YAML-Old-1.07/xt/ YAML-Old-1.07/xt/pmv.t YAML-Old-1.07/xt/meta.t YAML-Old-1.07/xt/pod.t YAML-Old-1.07/lib/ YAML-Old-1.07/lib/YAML/ YAML-Old-1.07/lib/YAML/Old.pm YAML-Old-1.07/lib/YAML/Old.pod YAML-Old-1.07/lib/YAML/Old/ YAML-Old-1.07/lib/YAML/Old/Dumper.pm YAML-Old-1.07/lib/YAML/Old/Marshall.pm YAML-Old-1.07/lib/YAML/Old/Loader.pm YAML-Old-1.07/lib/YAML/Old/Tag.pm YAML-Old-1.07/lib/YAML/Old/Mo.pm YAML-Old-1.07/lib/YAML/Old/Types.pm YAML-Old-1.07/lib/YAML/Old/Error.pm YAML-Old-1.07/lib/YAML/Old/Node.pm YAML-Old-1.07/lib/YAML/Old/Loader/ YAML-Old-1.07/lib/YAML/Old/Loader/Base.pm YAML-Old-1.07/lib/YAML/Old/Dumper/ YAML-Old-1.07/lib/YAML/Old/Dumper/Base.pm YAML-Old-1.07/MANIFEST YAML-Old-1.07/Changes YAML-Old-1.07/CONTRIBUTING YAML-Old-1.07/META.json Configuring I/IN/INGY/YAML-Old-1.07.tar.gz with Makefile.PL >>> C:\Perl-5.22-64\bin\perl.exe Makefile.PL Checking if your kit is complete... Looks good Have \cpanfl~4.22-\var\megalib Want \perl-5~2.22-\lib Your perl and your Config.pm seem to have different ideas about the architecture they are running on. Perl thinks: [megalib] Config says: [MSWin32-x64-multi-thread] This may or may not cause problems. Please check your installation of perl if you have problems building this extension. Generating a dmake-style Makefile Writing Makefile for YAML::Old Writing MYMETA.yml and MYMETA.json INGY/YAML-Old-1.07.tar.gz C:\Perl-5.22-64\bin\perl.exe Makefile.PL -- OK Running make for I/IN/INGY/YAML-Old-1.07.tar.gz >>> dmake cp lib/YAML/Old.pm blib\lib\YAML\Old.pm cp lib/YAML/Old/Mo.pm blib\lib\YAML\Old\Mo.pm cp lib/YAML/Old/Loader/Base.pm blib\lib\YAML\Old\Loader\Base.pm cp lib/YAML/Old/Node.pm blib\lib\YAML\Old\Node.pm cp lib/YAML/Old/Types.pm blib\lib\YAML\Old\Types.pm cp lib/YAML/Old/Tag.pm blib\lib\YAML\Old\Tag.pm cp lib/YAML/Old/Dumper.pm blib\lib\YAML\Old\Dumper.pm cp lib/YAML/Old/Loader.pm blib\lib\YAML\Old\Loader.pm cp lib/YAML/Old/Error.pm blib\lib\YAML\Old\Error.pm cp lib/YAML/Old.pod blib\lib\YAML\Old.pod cp lib/YAML/Old/Marshall.pm blib\lib\YAML\Old\Marshall.pm cp lib/YAML/Old/Dumper/Base.pm blib\lib\YAML\Old\Dumper\Base.pm INGY/YAML-Old-1.07.tar.gz dmake -- OK Running make test >>> dmake test TEST_VERBOSE=1 "C:\Perl-5.22-64\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t/*.t t/000-compile-modules.t .. ok 1 - use YAML::Old; ok 2 - use YAML::Old::Dumper; ok 3 - use YAML::Old::Error; ok 4 - use YAML::Old::Loader; ok 5 - use YAML::Old::Marshall; ok 6 - use YAML::Old::Mo; ok 7 - use YAML::Old::Node; ok 8 - use YAML::Old::Tag; ok 9 - use YAML::Old::Types; ok 10 - use YAML::Old::Dumper::Base; ok 11 - use YAML::Old::Loader::Base; 1..11 ok Timeout (max run time is 300s) C:\Perl-5.22-64\bin\perl.exe exits with 37.