PATH=C:\Program Files\Microsoft Platform SDK\Bin;C:\Program Files\Microsoft Platform SDK\Bin\WinNT;C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin;C:\cygwin\bin;C:\cpanfly-5.14\var\megalib\bin;C:\Perl-5.14\site\bin;C:\Perl-5.14\bin;C:\cygwin\bin;C:\Program Files\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\instantclient_11_2;C:\cygwin\bin;C:\Program Files\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\mysql\bin
Start 2014-12-11T00:28:16
ActivePerl-1400 CPAN-2.00
LIB=C:\PROGRA~1\MICROS~3\VC98\Lib\PSDK;C:\PROGRA~1\MICROS~2\Lib;C:\PROGRA~1\MICROS~3\VC98\Lib;C:\PROGRA~1\MICROS~3\VC98\MFC\Lib
INCLUDE=C:\PROGRA~1\MICROS~2\Include;C:\PROGRA~1\MICROS~3\VC98\ATL\Include;C:\PROGRA~1\MICROS~3\VC98\Include;C:\PROGRA~1\MICROS~3\VC98\MFC\Include
PATH=C:/CPANFL~1.14/var/libs/bin;C:\PROGRA~1\MICROS~2\Bin;C:\PROGRA~1\MICROS~2\Bin\WinNT;C:\PROGRA~1\MICROS~3\VC98\Bin;C:\PROGRA~1\MICROS~3\Common\MSDev98\Bin;C:\cygwin\bin;C:\CPANFL~1.14\var\megalib\bin;C:\Perl-5.14\site\bin;C:\Perl-5.14\bin;C:\cygwin\bin;C:\PROGRA~1\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\INSTAN~1;C:\cygwin\bin;C:\PROGRA~1\Perforce;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\WINDOWS\system32\WINDOW~2\v1.0;C:\mysql\bin
Reading 'C:\cpanfly-5.14\var\cpan\Metadata'
Database was generated on Thu, 11 Dec 2014 07:53:20 GMT
Running make for P/PE/PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
Fetching with LWP:
http://cpan.nas1.activestate.com/authors/id/P/PE/PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-Access-Perl-0.78.tar.gz ok
Perinci-Access-Perl-0.78/
Perinci-Access-Perl-0.78/README
Perinci-Access-Perl-0.78/lib/
Perinci-Access-Perl-0.78/lib/Perinci/
Perinci-Access-Perl-0.78/lib/Perinci/Access/
Perinci-Access-Perl-0.78/lib/Perinci/Access/Schemeless.pm
Perinci-Access-Perl-0.78/lib/Perinci/Access/Perl.pm
Perinci-Access-Perl-0.78/Makefile.PL
Perinci-Access-Perl-0.78/Changes
Perinci-Access-Perl-0.78/dist.ini
Perinci-Access-Perl-0.78/LICENSE
Perinci-Access-Perl-0.78/t/
Perinci-Access-Perl-0.78/t/00-compile.t
Perinci-Access-Perl-0.78/t/schemeless-patch.t
Perinci-Access-Perl-0.78/t/perl.t
Perinci-Access-Perl-0.78/t/release-pod-coverage.t
Perinci-Access-Perl-0.78/t/release-pod-syntax.t
Perinci-Access-Perl-0.78/t/release-rinci.t
Perinci-Access-Perl-0.78/t/schemeless.t
Perinci-Access-Perl-0.78/weaver.ini
Perinci-Access-Perl-0.78/MANIFEST
Perinci-Access-Perl-0.78/META.json
Perinci-Access-Perl-0.78/META.yml
CPAN.pm: Building P/PE/PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Warning: prerequisite Perinci::Sub::Complete 0.67 not found.
Warning: prerequisite Perinci::Sub::Wrapper 0.62 not found. We have 0.15.
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for Perinci::Access::Perl
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- PERLANCAR/Perinci-Access-Perl-0.78.tar.gz ----
Perinci::Sub::Wrapper [requires]
Perinci::Sub::Complete [requires]
Running make test
Delayed until after prerequisites
Running test for module 'Perinci::Sub::Wrapper'
Running make for P/PE/PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
Fetching with LWP:
http://cpan.nas1.activestate.com/authors/id/P/PE/PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-Sub-Wrapper-0.67.tar.gz ok
Perinci-Sub-Wrapper-0.67/
Perinci-Sub-Wrapper-0.67/README
Perinci-Sub-Wrapper-0.67/lib/
Perinci-Sub-Wrapper-0.67/lib/Test/
Perinci-Sub-Wrapper-0.67/lib/Test/Perinci/
Perinci-Sub-Wrapper-0.67/lib/Test/Perinci/Sub/
Perinci-Sub-Wrapper-0.67/lib/Test/Perinci/Sub/Wrapper.pm
Perinci-Sub-Wrapper-0.67/lib/Perinci/
Perinci-Sub-Wrapper-0.67/lib/Perinci/Sub/
Perinci-Sub-Wrapper-0.67/lib/Perinci/Sub/Wrapper.pm
Perinci-Sub-Wrapper-0.67/Makefile.PL
Perinci-Sub-Wrapper-0.67/Changes
Perinci-Sub-Wrapper-0.67/dist.ini
Perinci-Sub-Wrapper-0.67/LICENSE
Perinci-Sub-Wrapper-0.67/t/
Perinci-Sub-Wrapper-0.67/t/00-compile.t
Perinci-Sub-Wrapper-0.67/t/01-basics.t
Perinci-Sub-Wrapper-0.67/t/opt-log.t
Perinci-Sub-Wrapper-0.67/t/release-pod-coverage.t
Perinci-Sub-Wrapper-0.67/t/opt-validate_result.t
Perinci-Sub-Wrapper-0.67/t/release-pod-syntax.t
Perinci-Sub-Wrapper-0.67/t/prop-result.t
Perinci-Sub-Wrapper-0.67/t/opt-sub_name.t
Perinci-Sub-Wrapper-0.67/t/prop-args_as.t
Perinci-Sub-Wrapper-0.67/t/prop-args.t
Perinci-Sub-Wrapper-0.67/t/release-rinci.t
Perinci-Sub-Wrapper-0.67/t/opt-validate_args.t
Perinci-Sub-Wrapper-0.67/t/prop-result_naked.t
Perinci-Sub-Wrapper-0.67/t/prop-features.t
Perinci-Sub-Wrapper-0.67/t/prop-deps.t
Perinci-Sub-Wrapper-0.67/t/opt-_schema_is_normalized.t
Perinci-Sub-Wrapper-0.67/t/00-sanity.t
Perinci-Sub-Wrapper-0.67/weaver.ini
Perinci-Sub-Wrapper-0.67/MANIFEST
Perinci-Sub-Wrapper-0.67/META.json
Perinci-Sub-Wrapper-0.67/META.yml
CPAN.pm: Building P/PE/PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Warning: prerequisite Data::Sah 0.14 not found.
Warning: prerequisite String::LineNumber 0 not found.
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for Perinci::Sub::Wrapper
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz ----
Data::Sah [requires]
String::LineNumber [requires]
Running make test
Delayed until after prerequisites
Running test for module 'Data::Sah'
Running make for P/PE/PERLANCAR/Data-Sah-0.32.tar.gz
Fetching with LWP:
http://cpan.nas1.activestate.com/authors/id/P/PE/PERLANCAR/Data-Sah-0.32.tar.gz
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\Data-Sah-0.32.tar.gz ok
Data-Sah-0.32/
Data-Sah-0.32/README
Data-Sah-0.32/lib/
Data-Sah-0.32/lib/Data/
Data-Sah-0.32/lib/Data/Sah/
Data-Sah-0.32/lib/Data/Sah/Human.pm
Data-Sah-0.32/lib/Data/Sah/Lang/
Data-Sah-0.32/lib/Data/Sah/Lang/zh_CN.pm
Data-Sah-0.32/lib/Data/Sah/Lang/fr_FR.pm
Data-Sah-0.32/lib/Data/Sah/Lang/id_ID.pm
Data-Sah-0.32/lib/Data/Sah/JS.pm
Data-Sah-0.32/lib/Data/Sah/Type/
Data-Sah-0.32/lib/Data/Sah/Type/undef.pm
Data-Sah-0.32/lib/Data/Sah/Type/hash.pm
Data-Sah-0.32/lib/Data/Sah/Type/re.pm
Data-Sah-0.32/lib/Data/Sah/Type/cistr.pm
Data-Sah-0.32/lib/Data/Sah/Type/any.pm
Data-Sah-0.32/lib/Data/Sah/Type/code.pm
Data-Sah-0.32/lib/Data/Sah/Type/bool.pm
Data-Sah-0.32/lib/Data/Sah/Type/all.pm
Data-Sah-0.32/lib/Data/Sah/Type/num.pm
Data-Sah-0.32/lib/Data/Sah/Type/Comparable.pm
Data-Sah-0.32/lib/Data/Sah/Type/array.pm
Data-Sah-0.32/lib/Data/Sah/Type/Sortable.pm
Data-Sah-0.32/lib/Data/Sah/Type/BaseType.pm
Data-Sah-0.32/lib/Data/Sah/Type/date.pm
Data-Sah-0.32/lib/Data/Sah/Type/str.pm
Data-Sah-0.32/lib/Data/Sah/Type/obj.pm
Data-Sah-0.32/lib/Data/Sah/Type/buf.pm
Data-Sah-0.32/lib/Data/Sah/Type/HasElems.pm
Data-Sah-0.32/lib/Data/Sah/Type/float.pm
Data-Sah-0.32/lib/Data/Sah/Type/int.pm
Data-Sah-0.32/lib/Data/Sah/Compiler.pm
Data-Sah-0.32/lib/Data/Sah/Manual/
Data-Sah-0.32/lib/Data/Sah/Manual/Contributing.pod
Data-Sah-0.32/lib/Data/Sah/Manual/Extending.pod
Data-Sah-0.32/lib/Data/Sah/Util/
Data-Sah-0.32/lib/Data/Sah/Util/Role.pm
Data-Sah-0.32/lib/Data/Sah/Util/Func.pm
Data-Sah-0.32/lib/Data/Sah/Util/TypeX.pm
Data-Sah-0.32/lib/Data/Sah/Util/Type.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/
Data-Sah-0.32/lib/Data/Sah/Compiler/human/
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/undef.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/hash.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/re.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/cistr.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/any.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/code.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/bool.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/all.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/num.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/Comparable.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/array.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/Sortable.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/date.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/str.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/obj.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/buf.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/HasElems.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/float.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH/int.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human/TH.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/undef.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/hash.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/re.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/cistr.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/any.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/code.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/bool.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/all.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/num.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/array.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/date.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/str.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/obj.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/buf.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/float.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH/int.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js/TH.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/human.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/Prog/
Data-Sah-0.32/lib/Data/Sah/Compiler/Prog/TH/
Data-Sah-0.32/lib/Data/Sah/Compiler/Prog/TH/any.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/Prog/TH/all.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/Prog/TH.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/Prog.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/undef.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/hash.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/re.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/cistr.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/any.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/code.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/bool.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/all.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/num.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/array.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/date.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/str.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/obj.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/buf.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/float.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH/int.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/perl/TH.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/TH.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/TextResultRole.pm
Data-Sah-0.32/lib/Data/Sah/Compiler/js.pm
Data-Sah-0.32/lib/Data/Sah/Lang.pm
Data-Sah-0.32/lib/Data/Sah.pm
Data-Sah-0.32/Makefile.PL
Data-Sah-0.32/Changes
Data-Sah-0.32/dist.ini
Data-Sah-0.32/LICENSE
Data-Sah-0.32/t/
Data-Sah-0.32/t/00-compile.t
Data-Sah-0.32/t/01-basics.t
Data-Sah-0.32/t/testlib.pl
Data-Sah-0.32/t/perl-type-re.t
Data-Sah-0.32/t/util-type.t
Data-Sah-0.32/t/spectest-perl.t
Data-Sah-0.32/t/human-id_ID.t
Data-Sah-0.32/t/release-pod-coverage.t
Data-Sah-0.32/t/spectest-js.t
Data-Sah-0.32/t/perl-type-date.t
Data-Sah-0.32/t/human-en_US.t
Data-Sah-0.32/t/perl-type-obj.t
Data-Sah-0.32/t/js-type-date.t
Data-Sah-0.32/t/release-pod-syntax.t
Data-Sah-0.32/t/perl-type-code.t
Data-Sah-0.32/t/spectest-human.t-
Data-Sah-0.32/t/perl-type-str.t
Data-Sah-0.32/t/perl-type-float.t
Data-Sah-0.32/t/99-various.t
Data-Sah-0.32/t/release-rinci.t
Data-Sah-0.32/t/perl-type-bool.t
Data-Sah-0.32/weaver.ini
Data-Sah-0.32/MANIFEST
Data-Sah-0.32/META.json
Data-Sah-0.32/META.yml
Data-Sah-0.32/devscripts/
Data-Sah-0.32/devscripts/list-missing-translations
CPAN.pm: Building P/PE/PERLANCAR/Data-Sah-0.32.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Warning: prerequisite String::Indent 0 not found.
Warning: prerequisite String::LineNumber 0 not found.
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for Data::Sah
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- PERLANCAR/Data-Sah-0.32.tar.gz ----
String::LineNumber [requires]
String::Indent [requires]
Running make test
Delayed until after prerequisites
Running test for module 'String::LineNumber'
Running make for P/PE/PERLANCAR/String-LineNumber-0.01.tar.gz
Fetching with LWP:
http://cpan.nas1.activestate.com/authors/id/P/PE/PERLANCAR/String-LineNumber-0.01.tar.gz
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\String-LineNumber-0.01.tar.gz ok
String-LineNumber-0.01/
String-LineNumber-0.01/README
String-LineNumber-0.01/lib/
String-LineNumber-0.01/lib/String/
String-LineNumber-0.01/lib/String/LineNumber.pm
String-LineNumber-0.01/Makefile.PL
String-LineNumber-0.01/Changes
String-LineNumber-0.01/dist.ini
String-LineNumber-0.01/LICENSE
String-LineNumber-0.01/t/
String-LineNumber-0.01/t/00-compile.t
String-LineNumber-0.01/t/01-basics.t
String-LineNumber-0.01/t/release-pod-coverage.t
String-LineNumber-0.01/t/release-pod-syntax.t
String-LineNumber-0.01/t/release-rinci.t
String-LineNumber-0.01/weaver.ini
String-LineNumber-0.01/MANIFEST
String-LineNumber-0.01/META.json
String-LineNumber-0.01/META.yml
CPAN.pm: Building P/PE/PERLANCAR/String-LineNumber-0.01.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for String::LineNumber
Writing MYMETA.yml and MYMETA.json
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/String/LineNumber.pm blib\lib\String\LineNumber.pm
PERLANCAR/String-LineNumber-0.01.tar.gz
nmake -- OK
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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 - String/LineNumber.pm loaded ok
ok
t\01-basics.t .............
ok 1 - linenum 1
ok 2 - linenum opt:width
ok 3 - linenum opt:zeropad
ok 4 - linenum opt:skip_empty
1..4
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=5, Tests=5, 1 wallclock secs ( 0.06 usr + 0.01 sys = 0.08 CPU)
Result: PASS
PERLANCAR/String-LineNumber-0.01.tar.gz
nmake test TEST_VERBOSE=1 -- OK
perlancar <perlancar@gmail.com>
Give line number to each line of string
>>> (cd C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR && tar cvf - String-LineNumber-0.01.ppd blib) | gzip -c >C:/cpanfly-5.14/var/REPO/P/PE/PERLANCAR/String-LineNumber-0.01.tar.gz
String-LineNumber-0.01.ppd
blib/
blib/lib/
blib/lib/String/
blib/lib/String/LineNumber.pm
>>> mv C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/String-LineNumber-0.01.ppd C:/cpanfly-5.14/var/REPO/P/PE/PERLANCAR
Running test for module 'String::Indent'
Running make for P/PE/PERLANCAR/String-Indent-0.01.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Fetching with LWP:
http://cpan.nas1.activestate.com/authors/id/P/PE/PERLANCAR/String-Indent-0.01.tar.gz
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\String-Indent-0.01.tar.gz ok
String-Indent-0.01/
String-Indent-0.01/README
String-Indent-0.01/lib/
String-Indent-0.01/lib/String/
String-Indent-0.01/lib/String/Indent.pm
String-Indent-0.01/Makefile.PL
String-Indent-0.01/Changes
String-Indent-0.01/dist.ini
String-Indent-0.01/LICENSE
String-Indent-0.01/t/
String-Indent-0.01/t/00-compile.t
String-Indent-0.01/t/01-basics.t
String-Indent-0.01/t/release-pod-coverage.t
String-Indent-0.01/t/release-pod-syntax.t
String-Indent-0.01/t/release-rinci.t
String-Indent-0.01/weaver.ini
String-Indent-0.01/MANIFEST
String-Indent-0.01/META.json
String-Indent-0.01/META.yml
Prepending C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/String-Indent-0.01.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for String::Indent
Writing MYMETA.yml and MYMETA.json
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/String/Indent.pm blib\lib\String\Indent.pm
PERLANCAR/String-Indent-0.01.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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 - String/Indent.pm loaded ok
ok
t\01-basics.t .............
ok 1 - indent 1
ok 2 - indent 2
1..2
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=5, Tests=3, 1 wallclock secs ( 0.05 usr + 0.02 sys = 0.06 CPU)
Result: PASS
PERLANCAR/String-Indent-0.01.tar.gz
nmake test TEST_VERBOSE=1 -- OK
perlancar <perlancar@gmail.com>
String indenting routines
>>> (cd C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s && tar cvf - String-Indent-0.01.ppd blib) | gzip -c >C:/cpanfly-5.14/var/REPO/P/PE/PERLANCAR/String-Indent-0.01.tar.gz
String-Indent-0.01.ppd
blib/
blib/lib/
blib/lib/String/
blib/lib/String/Indent.pm
>>> mv C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/String-Indent-0.01.ppd C:/cpanfly-5.14/var/REPO/P/PE/PERLANCAR
Running make for P/PE/PERLANCAR/Data-Sah-0.32.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Has already been unwrapped into directory C:\cpanfly-5.14\var\cpan\build\Data-Sah-0.32-Eislrr
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Data-Sah-0.32.tar.gz
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/Data/Sah/Compiler.pm blib\lib\Data\Sah\Compiler.pm
cp lib/Data/Sah/Compiler/Prog.pm blib\lib\Data\Sah\Compiler\Prog.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/human/TH/Sortable.pm blib\lib\Data\Sah\Compiler\human\TH\Sortable.pm
cp lib/Data/Sah/Compiler/TextResultRole.pm blib\lib\Data\Sah\Compiler\TextResultRole.pm
cp lib/Data/Sah/Compiler/human/TH/all.pm blib\lib\Data\Sah\Compiler\human\TH\all.pm
cp lib/Data/Sah/Compiler/Prog/TH.pm blib\lib\Data\Sah\Compiler\Prog\TH.pm
cp lib/Data/Sah/Compiler/human.pm blib\lib\Data\Sah\Compiler\human.pm
cp lib/Data/Sah/Compiler/human/TH/HasElems.pm blib\lib\Data\Sah\Compiler\human\TH\HasElems.pm
cp lib/Data/Sah.pm blib\lib\Data\Sah.pm
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/human/TH.pm blib\lib\Data\Sah\Compiler\human\TH.pm
cp lib/Data/Sah/Compiler/Prog/TH/all.pm blib\lib\Data\Sah\Compiler\Prog\TH\all.pm
cp lib/Data/Sah/Compiler/Prog/TH/any.pm blib\lib\Data\Sah\Compiler\Prog\TH\any.pm
cp lib/Data/Sah/Compiler/human/TH/num.pm blib\lib\Data\Sah\Compiler\human\TH\num.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/cistr.pm blib\lib\Data\Sah\Compiler\human\TH\cistr.pm
cp lib/Data/Sah/Compiler/js/TH.pm blib\lib\Data\Sah\Compiler\js\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/hash.pm blib\lib\Data\Sah\Compiler\human\TH\hash.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/bool.pm blib\lib\Data\Sah\Compiler\human\TH\bool.pm
cp lib/Data/Sah/Compiler/human/TH/obj.pm blib\lib\Data\Sah\Compiler\human\TH\obj.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/float.pm blib\lib\Data\Sah\Compiler\human\TH\float.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/code.pm blib\lib\Data\Sah\Compiler\human\TH\code.pm
cp lib/Data/Sah/Compiler/js.pm blib\lib\Data\Sah\Compiler\js.pm
cp lib/Data/Sah/Compiler/js/TH/undef.pm blib\lib\Data\Sah\Compiler\js\TH\undef.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/str.pm blib\lib\Data\Sah\Compiler\js\TH\str.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/re.pm blib\lib\Data\Sah\Compiler\js\TH\re.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/array.pm blib\lib\Data\Sah\Compiler\js\TH\array.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/any.pm blib\lib\Data\Sah\Compiler\js\TH\any.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/code.pm blib\lib\Data\Sah\Compiler\js\TH\code.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/cistr.pm blib\lib\Data\Sah\Compiler\js\TH\cistr.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/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/perl/TH/num.pm blib\lib\Data\Sah\Compiler\perl\TH\num.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/all.pm blib\lib\Data\Sah\Compiler\perl\TH\all.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/obj.pm blib\lib\Data\Sah\Compiler\perl\TH\obj.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.pm blib\lib\Data\Sah\Compiler\perl.pm
cp lib/Data/Sah/Compiler/perl/TH/int.pm blib\lib\Data\Sah\Compiler\perl\TH\int.pm
cp lib/Data/Sah/Compiler/perl/TH.pm blib\lib\Data\Sah\Compiler\perl\TH.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/buf.pm blib\lib\Data\Sah\Compiler\perl\TH\buf.pm
cp lib/Data/Sah/Compiler/perl/TH/cistr.pm blib\lib\Data\Sah\Compiler\perl\TH\cistr.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/TH/date.pm blib\lib\Data\Sah\Compiler\perl\TH\date.pm
cp lib/Data/Sah/Type/bool.pm blib\lib\Data\Sah\Type\bool.pm
cp lib/Data/Sah/Type/array.pm blib\lib\Data\Sah\Type\array.pm
cp lib/Data/Sah/Manual/Extending.pod blib\lib\Data\Sah\Manual\Extending.pod
cp lib/Data/Sah/Manual/Contributing.pod blib\lib\Data\Sah\Manual\Contributing.pod
cp lib/Data/Sah/Type/Sortable.pm blib\lib\Data\Sah\Type\Sortable.pm
cp lib/Data/Sah/Lang/id_ID.pm blib\lib\Data\Sah\Lang\id_ID.pm
cp lib/Data/Sah/Lang/zh_CN.pm blib\lib\Data\Sah\Lang\zh_CN.pm
cp lib/Data/Sah/Type/any.pm blib\lib\Data\Sah\Type\any.pm
cp lib/Data/Sah/Compiler/perl/TH/str.pm blib\lib\Data\Sah\Compiler\perl\TH\str.pm
cp lib/Data/Sah/Compiler/perl/TH/re.pm blib\lib\Data\Sah\Compiler\perl\TH\re.pm
cp lib/Data/Sah/JS.pm blib\lib\Data\Sah\JS.pm
cp lib/Data/Sah/Type/all.pm blib\lib\Data\Sah\Type\all.pm
cp lib/Data/Sah/Type/BaseType.pm blib\lib\Data\Sah\Type\BaseType.pm
cp lib/Data/Sah/Human.pm blib\lib\Data\Sah\Human.pm
cp lib/Data/Sah/Compiler/perl/TH/undef.pm blib\lib\Data\Sah\Compiler\perl\TH\undef.pm
cp lib/Data/Sah/Lang/fr_FR.pm blib\lib\Data\Sah\Lang\fr_FR.pm
cp lib/Data/Sah/Lang.pm blib\lib\Data\Sah\Lang.pm
cp lib/Data/Sah/Type/Comparable.pm blib\lib\Data\Sah\Type\Comparable.pm
cp lib/Data/Sah/Type/HasElems.pm blib\lib\Data\Sah\Type\HasElems.pm
cp lib/Data/Sah/Type/hash.pm blib\lib\Data\Sah\Type\hash.pm
cp lib/Data/Sah/Type/re.pm blib\lib\Data\Sah\Type\re.pm
cp lib/Data/Sah/Type/str.pm blib\lib\Data\Sah\Type\str.pm
cp lib/Data/Sah/Type/float.pm blib\lib\Data\Sah\Type\float.pm
cp lib/Data/Sah/Util/Type.pm blib\lib\Data\Sah\Util\Type.pm
cp lib/Data/Sah/Type/cistr.pm blib\lib\Data\Sah\Type\cistr.pm
cp lib/Data/Sah/Util/Role.pm blib\lib\Data\Sah\Util\Role.pm
cp lib/Data/Sah/Type/buf.pm blib\lib\Data\Sah\Type\buf.pm
cp lib/Data/Sah/Type/undef.pm blib\lib\Data\Sah\Type\undef.pm
cp lib/Data/Sah/Util/Func.pm blib\lib\Data\Sah\Util\Func.pm
cp lib/Data/Sah/Type/int.pm blib\lib\Data\Sah\Type\int.pm
cp lib/Data/Sah/Type/obj.pm blib\lib\Data\Sah\Type\obj.pm
cp lib/Data/Sah/Type/code.pm blib\lib\Data\Sah\Type\code.pm
cp lib/Data/Sah/Type/date.pm blib\lib\Data\Sah\Type\date.pm
cp lib/Data/Sah/Type/num.pm blib\lib\Data\Sah\Type\num.pm
cp lib/Data/Sah/Util/TypeX.pm blib\lib\Data\Sah\Util\TypeX.pm
PERLANCAR/Data-Sah-0.32.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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..95
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/float.pm loaded ok
ok 23 - Data/Sah/Compiler/human/TH/hash.pm loaded ok
ok 24 - Data/Sah/Compiler/human/TH/int.pm loaded ok
ok 25 - Data/Sah/Compiler/human/TH/num.pm loaded ok
ok 26 - Data/Sah/Compiler/human/TH/obj.pm loaded ok
ok 27 - Data/Sah/Compiler/human/TH/re.pm loaded ok
ok 28 - Data/Sah/Compiler/human/TH/str.pm loaded ok
ok 29 - Data/Sah/Compiler/human/TH/undef.pm loaded ok
ok 30 - Data/Sah/Compiler/js.pm loaded ok
ok 31 - Data/Sah/Compiler/js/TH.pm loaded ok
ok 32 - Data/Sah/Compiler/js/TH/all.pm loaded ok
ok 33 - Data/Sah/Compiler/js/TH/any.pm loaded ok
ok 34 - Data/Sah/Compiler/js/TH/array.pm loaded ok
ok 35 - Data/Sah/Compiler/js/TH/bool.pm loaded ok
ok 36 - Data/Sah/Compiler/js/TH/buf.pm loaded ok
ok 37 - Data/Sah/Compiler/js/TH/cistr.pm loaded ok
ok 38 - Data/Sah/Compiler/js/TH/code.pm loaded ok
ok 39 - Data/Sah/Compiler/js/TH/date.pm loaded ok
ok 40 - Data/Sah/Compiler/js/TH/float.pm loaded ok
ok 41 - Data/Sah/Compiler/js/TH/hash.pm loaded ok
ok 42 - Data/Sah/Compiler/js/TH/int.pm loaded ok
ok 43 - Data/Sah/Compiler/js/TH/num.pm loaded ok
ok 44 - Data/Sah/Compiler/js/TH/obj.pm loaded ok
ok 45 - Data/Sah/Compiler/js/TH/re.pm loaded ok
ok 46 - Data/Sah/Compiler/js/TH/str.pm loaded ok
ok 47 - Data/Sah/Compiler/js/TH/undef.pm loaded ok
ok 48 - Data/Sah/Compiler/perl.pm loaded ok
ok 49 - Data/Sah/Compiler/perl/TH.pm loaded ok
ok 50 - Data/Sah/Compiler/perl/TH/all.pm loaded ok
ok 51 - Data/Sah/Compiler/perl/TH/any.pm loaded ok
ok 52 - Data/Sah/Compiler/perl/TH/array.pm loaded ok
ok 53 - Data/Sah/Compiler/perl/TH/bool.pm loaded ok
ok 54 - Data/Sah/Compiler/perl/TH/buf.pm loaded ok
ok 55 - Data/Sah/Compiler/perl/TH/cistr.pm loaded ok
ok 56 - Data/Sah/Compiler/perl/TH/code.pm loaded ok
ok 57 - Data/Sah/Compiler/perl/TH/date.pm loaded ok
ok 58 - Data/Sah/Compiler/perl/TH/float.pm loaded ok
ok 59 - Data/Sah/Compiler/perl/TH/hash.pm loaded ok
ok 60 - Data/Sah/Compiler/perl/TH/int.pm loaded ok
ok 61 - Data/Sah/Compiler/perl/TH/num.pm loaded ok
ok 62 - Data/Sah/Compiler/perl/TH/obj.pm loaded ok
ok 63 - Data/Sah/Compiler/perl/TH/re.pm loaded ok
ok 64 - Data/Sah/Compiler/perl/TH/str.pm loaded ok
ok 65 - Data/Sah/Compiler/perl/TH/undef.pm loaded ok
ok 66 - Data/Sah/Human.pm loaded ok
ok 67 - Data/Sah/JS.pm loaded ok
ok 68 - Data/Sah/Lang.pm loaded ok
ok 69 - Data/Sah/Lang/fr_FR.pm loaded ok
ok 70 - Data/Sah/Lang/id_ID.pm loaded ok
ok 71 - Data/Sah/Lang/zh_CN.pm loaded ok
ok 72 - Data/Sah/Type/BaseType.pm loaded ok
ok 73 - Data/Sah/Type/Comparable.pm loaded ok
ok 74 - Data/Sah/Type/HasElems.pm loaded ok
ok 75 - Data/Sah/Type/Sortable.pm loaded ok
ok 76 - Data/Sah/Type/all.pm loaded ok
ok 77 - Data/Sah/Type/any.pm loaded ok
ok 78 - Data/Sah/Type/array.pm loaded ok
ok 79 - Data/Sah/Type/bool.pm loaded ok
ok 80 - Data/Sah/Type/buf.pm loaded ok
ok 81 - Data/Sah/Type/cistr.pm loaded ok
ok 82 - Data/Sah/Type/code.pm loaded ok
ok 83 - Data/Sah/Type/date.pm loaded ok
ok 84 - Data/Sah/Type/float.pm loaded ok
ok 85 - Data/Sah/Type/hash.pm loaded ok
ok 86 - Data/Sah/Type/int.pm loaded ok
ok 87 - Data/Sah/Type/num.pm loaded ok
ok 88 - Data/Sah/Type/obj.pm loaded ok
ok 89 - Data/Sah/Type/re.pm loaded ok
ok 90 - Data/Sah/Type/str.pm loaded ok
ok 91 - Data/Sah/Type/undef.pm loaded ok
ok 92 - Data/Sah/Util/Func.pm loaded ok
ok 93 - Data/Sah/Util/Role.pm loaded ok
ok 94 - Data/Sah/Util/Type.pm loaded ok
ok 95 - Data/Sah/Util/TypeX.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
ok 2 - skip_clause in gen_validator() 1
ok 3 - skip_clause in gen_validator() 2
ok 4 - skip_clause in gen_validator() 3
1..4
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\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-type-date.t .......... skipped: node.js is not available
t\perl-type-bool.t ........
ok 1
ok 2
ok 3
1..3
ok
t\perl-type-code.t ........
ok 1
ok 2
1..2
ok
t\perl-type-date.t ........
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
1..15
ok
# Failed test 'NaN vs ["float", "is_inf", 1]'
# at t\perl-type-float.t line 38.
# Failed test 'NaN vs ["float", "is_pos_inf", 1]'
# at t\perl-type-float.t line 38.
# Failed test '-Inf vs ["float", "is_pos_inf", 1]'
# at t\perl-type-float.t line 38.
# Failed test 'NaN vs ["float", "is_neg_inf", 1]'
# at t\perl-type-float.t line 38.
# Failed test 'Inf vs ["float", "is_neg_inf", 1]'
# at t\perl-type-float.t line 38.
# Looks like you failed 5 tests of 15.
t\perl-type-float.t .......
ok 1 - 1 vs ["float", "is_nan", 1]
ok 2 - Inf vs ["float", "is_nan", 1]
ok 3 - NaN vs ["float", "is_nan", 1]
ok 4 - 1 vs ["float", "is_inf", 1]
not ok 5 - NaN vs ["float", "is_inf", 1]
ok 6 - -Inf vs ["float", "is_inf", 1]
ok 7 - Inf vs ["float", "is_inf", 1]
ok 8 - 1 vs ["float", "is_pos_inf", 1]
not ok 9 - NaN vs ["float", "is_pos_inf", 1]
not ok 10 - -Inf vs ["float", "is_pos_inf", 1]
ok 11 - Inf vs ["float", "is_pos_inf", 1]
ok 12 - 1 vs ["float", "is_neg_inf", 1]
not ok 13 - NaN vs ["float", "is_neg_inf", 1]
ok 14 - -Inf vs ["float", "is_neg_inf", 1]
not ok 15 - Inf vs ["float", "is_neg_inf", 1]
1..15
Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/15 subtests
t\perl-type-obj.t .........
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
t\perl-type-re.t ..........
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
ok
t\perl-type-str.t .........
ok 1
ok 2
1..2
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
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) check_each_index: clause check_each_index not yet implemented
# Skipping test (tags=clause:check_each_elem, type, type:array) check_each_elem: clause check_each_elem not yet implemented
# Skipping test (tags=clause:uniq, type, type:array) uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, type, type:array) uniq=0: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:array) !uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:exists, type, type:array) exists: clause exists not yet implemented
# Skipping test (tags=prop:len, type, type:array) prop:len: properties are not yet implemented
# Skipping test (tags=prop:indices, type, type:array) prop:indices: properties are not yet implemented
# Skipping test (tags=prop:elems, type, type:array) prop:elems: properties are not yet implemented
# Loading 10-type-bool.json ...
# Skipping test (tags=clause:between, op, op:not, opshortcut, type, type:bool) !between (nok): currently failing
# Skipping test (tags=clause:between, op, op:not, opshortcut, type, type:bool) !between (ok): currently failing
# Skipping test (tags=clause:between, op, op:not, type, type:bool) between.op=not (nok): currently failing
# Skipping test (tags=clause:between, op, op:not, type, type:bool) between.op=not (ok): currently failing
# Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) between& (no items): currently failing
# Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) between& (ok): currently failing
# Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) between& (nok + ok): currently failing
# Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) between& (ok + nok): currently failing
# Skipping test (tags=clause:between, op, op:and, opshortcut, type, type:bool) between& (nok + nok): currently failing
# Skipping test (tags=clause:between, op, op:and, type, type:bool) between.op=and (ok): currently failing
# Skipping test (tags=clause:between, op, op:and, type, type:bool) between.op=and (nok + ok): currently failing
# Skipping test (tags=clause:between, op, op:and, type, type:bool) between.op=and (ok + nok): currently failing
# Skipping test (tags=clause:between, op, op:and, type, type:bool) between.op=and (nok + nok): currently failing
# Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) between| (no items): currently failing
# Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) between| (ok): currently failing
# Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) between| (nok + ok): currently failing
# Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) between| (ok + nok): currently failing
# Skipping test (tags=clause:between, op, op:or, opshortcut, type, type:bool) between| (nok + nok): currently failing
# Skipping test (tags=clause:between, op, op:or, type, type:bool) between.op=or (no items): currently failing
# Skipping test (tags=clause:between, op, op:or, type, type:bool) between.op=or (ok): currently failing
# Skipping test (tags=clause:between, op, op:or, type, type:bool) between.op=or (nok + ok): currently failing
# Skipping test (tags=clause:between, op, op:or, type, type:bool) between.op=or (ok + nok): currently failing
# Skipping test (tags=clause:between, op, op:or, type, type:bool) between.op=or (nok + nok): currently failing
# Skipping test (tags=clause:between, op, op:none, type, type:bool) between.op=none (empty items): currently failing
# Skipping test (tags=clause:between, op, op:none, type, type:bool) between.op=none (nok + nok): currently failing
# Skipping test (tags=clause:between, op, op:none, type, type:bool) between.op=none (nok + ok): currently failing
# Skipping test (tags=clause:between, op, op:none, type, type:bool) between.op=none (ok + nok): currently failing
# Skipping test (tags=clause:between, op, op:none, type, type:bool) between.op=none (ok + ok): currently failing
# Loading 10-type-buf.json ...
# Skipping test (tags=clause:check_each_index, type, type:buf) check_each_index: clause check_each_index not yet implemented
# Skipping test (tags=clause:check_each_elem, type, type:buf) check_each_elem: clause check_each_elem not yet implemented
# Skipping test (tags=clause:uniq, type, type:buf) uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, type, type:buf) uniq=0: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:buf) !uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:exists, type, type:buf) exists: clause exists not yet implemented
# Skipping test (tags=prop:len, type, type:buf) prop:len: properties are not yet implemented
# Skipping test (tags=prop:indices, type, type:buf) prop:indices: properties are not yet implemented
# Skipping test (tags=prop:elems, type, type:buf) prop:elems: properties are not yet implemented
# Loading 10-type-cistr.json ...
# Skipping test (tags=clause:check_each_index, type, type:cistr) check_each_index: clause check_each_index not yet implemented
# Skipping test (tags=clause:check_each_elem, type, type:cistr) check_each_elem: clause check_each_elem not yet implemented
# Skipping test (tags=clause:uniq, type, type:cistr) uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, type, type:cistr) uniq=0: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:cistr) !uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:exists, type, type:cistr) exists: clause exists not yet implemented
# Skipping test (tags=prop:len, type, type:cistr) prop:len: properties are not yet implemented
# Skipping test (tags=prop:indices, type, type:cistr) prop:indices: properties are not yet implemented
# Skipping test (tags=prop:elems, type, type:cistr) 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) check_each_index: clause check_each_index not yet implemented
# Skipping test (tags=clause:check_each_key, type, type:hash) check_each_key: clause check_each_key not yet implemented
# Skipping test (tags=clause:check_each_elem, type, type:hash) check_each_elem: clause check_each_elem not yet implemented
# Skipping test (tags=clause:check_each_value, type, type:hash) check_each_value: clause check_each_value not yet implemented
# Skipping test (tags=clause:uniq, type, type:hash) uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, type, type:hash) uniq=0: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:hash) !uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:exists, type, type:hash) exists: clause exists not yet implemented
# Skipping test (tags=prop:len, type, type:hash) prop:len: properties are not yet implemented
# Skipping test (tags=prop:indices, type, type:hash) prop:indices: properties are not yet implemented
# Skipping test (tags=prop:keys, type, type:hash) prop:keys: properties are not yet implemented
# Skipping test (tags=prop:elems, type, type:hash) prop:elems: properties are not yet implemented
# Skipping test (tags=prop:values, type, type:hash) prop:values: properties are not yet implemented
# Skipping test (tags=prop:keys, type, type:hash) prop:keys: properties are not yet implemented
# Skipping test (tags=prop:values, type, type:hash) 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) prop:meths (nok): properties are not yet implemented
# Skipping test (tags=prop:attrs, type, type:obj) prop:attrs (nok): properties are not yet implemented
# Loading 10-type-str.json ...
# Skipping test (tags=clause:check_each_index, type, type:str) check_each_index: clause check_each_index not yet implemented
# Skipping test (tags=clause:check_each_elem, type, type:str) check_each_elem: clause check_each_elem not yet implemented
# Skipping test (tags=clause:uniq, type, type:str) uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, type, type:str) uniq=0: clause uniq not yet implemented
# Skipping test (tags=clause:uniq, op, op:not, opshortcut, type, type:str) !uniq=1: clause uniq not yet implemented
# Skipping test (tags=clause:exists, type, type:str) exists: clause exists not yet implemented
# Skipping test (tags=prop:len, type, type:str) prop:len: properties are not yet implemented
# Skipping test (tags=prop:indices, type, type:str) prop:indices: properties are not yet implemented
# Skipping test (tags=prop:elems, type, type:str) 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.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => 3,
# 'name' => '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) 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) of (nok + nok)
# {
# 'input' => 2,
# 'name' => '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) 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) of (ok + nok)
# {
# 'input' => 5,
# 'name' => '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) 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) of (nok + ok)
# {
# 'input' => 10,
# 'name' => '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) 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) of (ok + ok)
ok 5
1..5
ok 3 - 10-type-all.json
# Subtest: 10-type-any.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => 3,
# 'name' => '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) 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) of (nok + nok)
# {
# 'input' => 2,
# 'name' => '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) 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 2 - (tags=type, type:any) of (ok + nok)
# {
# 'input' => 5,
# 'name' => '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) 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 3 - (tags=type, type:any) of (nok + ok)
# {
# 'input' => 10,
# 'name' => '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) 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:any) of (ok + ok)
ok 5
1..5
ok 4 - 10-type-any.json
# Subtest: 10-type-array.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => [],
# 'name' => 'type check: must accept []',
# 'schema' => 'array',
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:array) 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) type check: must accept []
# {
# 'input' => [
# '1',
# 'a'
# ],
# 'name' => 'type check: must accept [1, "a"]',
# 'schema' => 'array',
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:array) 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) type check: must accept [1, "a"]
# {
# 'input' => [
# []
# ],
# 'name' => 'type check: must accept [[]]',
# 'schema' => 'array',
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:array) 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) type check: must accept [[]]
# {
# 'input' => 1,
# 'name' => 'type check: must reject 1',
# 'schema' => 'array',
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:array) 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) type check: must reject 1
# {
# 'input' => 'a',
# 'name' => 'type check: must reject a',
# 'schema' => 'array',
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:array) 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) type check: must reject a
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'array',
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:array) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'array',
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:array) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'array',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:array) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'array',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:array) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'array',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:array) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'array',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:array) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'array',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:array) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'array',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:array) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'array',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:array) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => 'default: must accept valid default []',
# 'schema' => [
# 'array*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:default'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:default, type, type:array) 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) default: must accept valid default []
# {
# 'input' => undef,
# 'name' => '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) 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) default: must reject invalid default a
# {
# 'dies' => 1,
# 'input' => [
# 1
# ],
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'array*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:array) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 22 - (tags=clause:clause, type, type:array) clause (dies, unknown clause)
# {
# 'input' => [
# 1
# ],
# 'name' => 'clause (ok)',
# 'schema' => [
# 'array*',
# 'clause',
# [
# 'min_len',
# 0
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:array) 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) clause (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => 'clause (nok)',
# 'schema' => [
# 'array*',
# 'clause',
# [
# 'min_len',
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:array) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => [
# 1
# ],
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'array*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:array) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 26 - (tags=clause:clset, type, type:array) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 27 - (tags=clause:clset, type, type:array) clset (dies, unknown attr)
# {
# 'input' => [
# 1
# ],
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'array*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:array) 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) clset (empty = ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'array',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:array) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => [],
# 'name' => '.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) .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) .err_level=error (clause=is, ok)
# {
# 'input' => [
# 0
# ],
# 'name' => '.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) .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) .err_level=error (clause=is, nok)
# {
# 'input' => [],
# 'name' => '.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) .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) .err_level=warn (clause=is, ok)
# {
# 'input' => [
# 0
# ],
# 'name' => '.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) .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) .err_level=warn (clause=is, nok)
# {
# 'input' => [
# 1
# ],
# 'name' => 'is: must accept same value',
# 'schema' => [
# 'array',
# 'is',
# [
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:is'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:is, type, type:array) 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) is: must accept same value
# {
# 'input' => [
# 1
# ],
# 'name' => 'is: must reject different value',
# 'schema' => [
# 'array',
# 'is',
# [
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:is'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:is, type, type:array) 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) is: must reject different value
# {
# 'input' => [
# 1
# ],
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is& (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'array',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:array) 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) is.op=and (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is| (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is| (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => [
# 1
# ],
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'array',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:array) 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) in: must reject empty choices
# {
# 'input' => [
# 1
# ],
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in& (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'array',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:array'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:array) 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) in.op=and (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in| (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in| (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => [
# 1
# ],
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => [
# 1
# ],
# 'name' => 'len (ok)',
# 'schema' => [
# 'array',
# 'len',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:len'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:len, type, type:array) 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) len (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => 'len (nok)',
# 'schema' => [
# 'array',
# 'len',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:len'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:len, type, type:array) 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) len (nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) min_len (ok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) min_len (nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) max_len (ok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => '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) 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) max_len (nok)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) len_between (ok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => '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) 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) len_between (nok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => '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) 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) each_index (ok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => '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) 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) each_index (nok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => '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) 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) each_elem (ok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => '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) 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) each_elem (nok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => 'elems (ok)',
# 'schema' => [
# 'array',
# 'elems',
# [
# 'int',
# 'float'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:elems'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:elems, type, type:array) 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) elems (ok)
# {
# 'input' => [
# 1,
# '1.2'
# ],
# 'name' => 'elems (nok)',
# 'schema' => [
# 'array',
# 'elems',
# [
# 'int',
# 'int'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:array',
# 'clause:elems'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:elems, type, type:array) 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) elems (nok)
# {
# 'invalid_inputs' => [
# [],
# [
# 3
# ]
# ],
# 'name' => '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) 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) has
# {
# 'invalid_inputs' => [
# [
# 1,
# 2,
# 3
# ],
# [
# 1,
# 3
# ]
# ],
# 'name' => '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) 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) has + op.not
# {
# 'invalid_inputs' => [
# [],
# [
# 3
# ]
# ],
# 'name' => '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) 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) has + op.or
# {
# 'invalid_inputs' => [
# [
# 1,
# 3
# ],
# [],
# [
# 3
# ]
# ],
# 'name' => '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) 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) has + op.and
# {
# 'input' => [
# undef,
# 1
# ],
# 'name' => '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) 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) elems (nok, first elem required)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) elems (ok, missing elem set to undef)
# {
# 'input' => [
# 1,
# undef
# ],
# 'name' => '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) 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) elems (ok, second elem optional)
# {
# 'input' => [
# 1,
# '1.1'
# ],
# 'name' => '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) 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) elems (ok 2)
# {
# 'input' => [
# 1,
# '1.1',
# undef
# ],
# 'name' => '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) 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) elems (ok, extra elems ignored)
# {
# 'input' => [
# 1,
# '1.1',
# 'foo'
# ],
# 'name' => '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) 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) elems (ok, extra elems ignored 2)
# {
# 'input' => [
# 1
# ],
# 'name' => '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) 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) elems (ok, create_default=0)
# {
# 'input' => [
# 1,
# undef
# ],
# 'name' => '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) 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) 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.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => 0,
# 'name' => 'type check: must accept 0',
# 'schema' => 'bool',
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:bool) 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) type check: must accept 0
# {
# 'input' => 1,
# 'name' => 'type check: must accept 1',
# 'schema' => 'bool',
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:bool) 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) type check: must accept 1
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'bool',
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:bool) 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) type check: must reject []
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'bool',
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:bool) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'bool',
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:bool) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'bool',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:bool) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'bool',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:bool) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'bool',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:bool) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'bool',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:bool) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'bool',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:bool) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'bool',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:bool) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'bool',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:bool) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => 1,
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => 1,
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => '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) 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) default: must accept valid default 1
# {
# 'input' => undef,
# 'name' => 'default: must reject invalid default []',
# 'schema' => [
# 'bool*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:default'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:default, type, type:bool) 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) default: must reject invalid default []
# {
# 'dies' => 1,
# 'input' => 1,
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'bool*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:bool) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 20 - (tags=clause:clause, type, type:bool) clause (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => 1,
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'bool*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:bool) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 21 - (tags=clause:clset, type, type:bool) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => 1,
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 22 - (tags=clause:clset, type, type:bool) clset (dies, unknown attr)
# {
# 'input' => 1,
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'bool*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:bool) 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) clset (empty = ok)
# {
# 'input' => 1,
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'bool',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:bool) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => 1,
# 'name' => '.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) .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) .err_level=error (clause=is, ok)
# {
# 'input' => 0,
# 'name' => '.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) .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) .err_level=error (clause=is, nok)
# {
# 'input' => 1,
# 'name' => '.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) .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) .err_level=warn (clause=is, ok)
# {
# 'input' => 0,
# 'name' => '.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) .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) .err_level=warn (clause=is, nok)
# {
# 'input' => 0,
# 'name' => 'is: must accept same value',
# 'schema' => [
# 'bool',
# 'is',
# 0
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:is'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:is, type, type:bool) 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) is: must accept same value
# {
# 'input' => 0,
# 'name' => 'is: must reject different value',
# 'schema' => [
# 'bool',
# 'is',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:is'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:is, type, type:bool) 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) is: must reject different value
# {
# 'input' => 0,
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => 0,
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) is& (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => 0,
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'bool',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:bool) 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) is.op=and (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => 0,
# 'name' => '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) 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) is| (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) is| (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => 0,
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => 0,
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => 0,
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => 0,
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'bool',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:bool) 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) in: must reject empty choices
# {
# 'input' => 0,
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => 0,
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) in& (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => 0,
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'bool',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:bool) 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) in.op=and (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => 0,
# 'name' => '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) 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) in| (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) in| (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => 0,
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => 0,
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 0,
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => 1,
# 'name' => 'min: 1 0',
# 'schema' => [
# 'bool',
# 'min',
# 0
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:bool) 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) min: 1 0
# {
# 'input' => 1,
# 'name' => 'min: 1 1',
# 'schema' => [
# 'bool',
# 'min',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:bool) 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) min: 1 1
# {
# 'input' => 0,
# 'name' => 'min: 0 1 -> fail',
# 'schema' => [
# 'bool',
# 'min',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:min'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:min, type, type:bool) 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) min: 0 1 -> fail
# {
# 'input' => 1,
# 'name' => 'xmin: 1 0',
# 'schema' => [
# 'bool',
# 'xmin',
# 0
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:xmin'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmin, type, type:bool) 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) xmin: 1 0
# {
# 'input' => 1,
# 'name' => 'xmin: 1 1 -> fail',
# 'schema' => [
# 'bool',
# 'xmin',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:bool) 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) xmin: 1 1 -> fail
# {
# 'input' => 0,
# 'name' => 'xmin: 0 1 -> fail',
# 'schema' => [
# 'bool',
# 'xmin',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:bool) 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) xmin: 0 1 -> fail
# {
# 'input' => 1,
# 'name' => 'max: 1 0 -> fail',
# 'schema' => [
# 'bool',
# 'max',
# 0
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:max'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:max, type, type:bool) 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) max: 1 0 -> fail
# {
# 'input' => 1,
# 'name' => 'max: 1 1',
# 'schema' => [
# 'bool',
# 'max',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:bool) 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) max: 1 1
# {
# 'input' => 0,
# 'name' => 'max: 0 1',
# 'schema' => [
# 'bool',
# 'max',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:bool) 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) max: 0 1
# {
# 'input' => 1,
# 'name' => 'xmax: 1 0 -> fail',
# 'schema' => [
# 'bool',
# 'xmax',
# 0
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:bool) 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) xmax: 1 0 -> fail
# {
# 'input' => 1,
# 'name' => 'xmax: 1 1 -> fail',
# 'schema' => [
# 'bool',
# 'xmax',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:bool) 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) xmax: 1 1 -> fail
# {
# 'input' => 0,
# 'name' => 'xmax: 0 1',
# 'schema' => [
# 'bool',
# 'xmax',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:xmax'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmax, type, type:bool) 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) xmax: 0 1
# {
# 'input' => 1,
# 'name' => 'between: 1 0 & 1',
# 'schema' => [
# 'bool',
# 'between',
# [
# 0,
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:bool) 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) between: 1 0 & 1
# {
# 'input' => 1,
# 'name' => 'between: 1 0 & 1',
# 'schema' => [
# 'bool',
# 'between',
# [
# 0,
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:bool) 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) between: 1 0 & 1
# {
# 'input' => 1,
# 'name' => 'between: 1 1 & 1',
# 'schema' => [
# 'bool',
# 'between',
# [
# 1,
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:bool) 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) between: 1 1 & 1
# {
# 'input' => 0,
# 'name' => '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) 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) between: 0 1 & 1 -> fail
# {
# 'input' => '1',
# 'name' => 'xbetween: 1 0 & 1',
# 'schema' => [
# 'bool',
# 'xbetween',
# [
# 0,
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:bool',
# 'clause:xbetween'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xbetween, type, type:bool) 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) xbetween: 1 0 & 1
# {
# 'input' => '1',
# 'name' => '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) 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) xbetween: 1 0 & 1 -> fail
# {
# 'input' => '1',
# 'name' => '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) 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) xbetween: 1 1 & 1 -> fail
# {
# 'input' => 0,
# 'name' => '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) 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) xbetween: 0 1 & 1 -> fail
# {
# 'input' => 0,
# 'name' => 'between.op=and (no items)',
# 'schema' => [
# 'bool',
# 'between',
# [],
# 'between.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:bool'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:bool) 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) between.op=and (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) is_true: 1 (ok)
# {
# 'input' => 0,
# 'name' => '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) 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) is_true: 1 (nok)
# {
# 'input' => 0,
# 'name' => '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) 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) is_true: 0 (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) is_true: 0 (nok)
# {
# 'input' => 0,
# 'name' => '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) 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) is_true: undef (ok 1)
# {
# 'input' => 1,
# 'name' => '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) 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) is_true: undef (ok 2)
ok 120
1..120
ok 6 - 10-type-bool.json
# Subtest: 10-type-buf.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => 0,
# 'name' => 'type check: must accept 0',
# 'schema' => 'buf',
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) type check: must accept 0
# {
# 'input' => '1.1',
# 'name' => 'type check: must accept 1.1',
# 'schema' => 'buf',
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) type check: must accept 1.1
# {
# 'input' => '',
# 'name' => 'type check: must accept ',
# 'schema' => 'buf',
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) type check: must accept
# {
# 'input' => 'str
# ',
# 'name' => 'type check: must accept str
# ',
# 'schema' => 'buf',
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) type check: must accept str
#
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'buf',
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:buf) 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) type check: must reject []
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'buf',
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:buf) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'buf',
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'buf',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:buf) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'buf',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:buf) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'buf',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:buf) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'buf',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:buf) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'buf',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:buf) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'buf',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:buf) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'buf',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:buf) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => 'a',
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => 'a',
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => '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) 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) default: must accept valid default a
# {
# 'input' => undef,
# 'name' => 'default: must reject invalid default []',
# 'schema' => [
# 'buf*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:default'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:default, type, type:buf) 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) default: must reject invalid default []
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'buf*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:buf) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 22 - (tags=clause:clause, type, type:buf) clause (dies, unknown clause)
# {
# 'input' => 'a',
# 'name' => 'clause (ok)',
# 'schema' => [
# 'buf*',
# 'clause',
# [
# 'match',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:buf) 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) clause (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => 'clause (nok)',
# 'schema' => [
# 'buf*',
# 'clause',
# [
# 'match',
# 'b'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:buf) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'buf*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:buf) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 26 - (tags=clause:clset, type, type:buf) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 27 - (tags=clause:clset, type, type:buf) clset (dies, unknown attr)
# {
# 'input' => 'a',
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'buf*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) clset (empty = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'buf',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:buf) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => 'a',
# 'name' => '.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) .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) .err_level=error (clause=is, ok)
# {
# 'input' => 'a
# ',
# 'name' => '.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) .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) .err_level=error (clause=is, nok)
# {
# 'input' => 'a',
# 'name' => '.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) .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) .err_level=warn (clause=is, ok)
# {
# 'input' => 'a
# ',
# 'name' => '.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) .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) .err_level=warn (clause=is, nok)
# {
# 'input' => 'a',
# 'name' => 'is: must accept same value',
# 'schema' => [
# 'buf',
# 'is',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:is'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:is, type, type:buf) 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) is: must accept same value
# {
# 'input' => 'a',
# 'name' => 'is: must reject different value',
# 'schema' => [
# 'buf',
# 'is',
# 'b'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:is'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:is, type, type:buf) 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) is: must reject different value
# {
# 'input' => 'a',
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => 'a',
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is& (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => 'a',
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'buf',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) is.op=and (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => 'a',
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'buf',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:buf) 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) in: must reject empty choices
# {
# 'input' => 'a',
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => 'a',
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in& (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => 'a',
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'buf',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) in.op=and (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => 'min: a ',
# 'schema' => [
# 'buf',
# 'min',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:buf) 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) min: a
# {
# 'input' => 'a',
# 'name' => 'min: a a',
# 'schema' => [
# 'buf',
# 'min',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:buf) 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) min: a a
# {
# 'input' => '',
# 'name' => 'min: a -> fail',
# 'schema' => [
# 'buf',
# 'min',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:min'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:min, type, type:buf) 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) min: a -> fail
# {
# 'input' => 'a',
# 'name' => 'xmin: a ',
# 'schema' => [
# 'buf',
# 'xmin',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xmin'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmin, type, type:buf) 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) xmin: a
# {
# 'input' => 'a',
# 'name' => 'xmin: a a -> fail',
# 'schema' => [
# 'buf',
# 'xmin',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:buf) 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) xmin: a a -> fail
# {
# 'input' => '',
# 'name' => 'xmin: a -> fail',
# 'schema' => [
# 'buf',
# 'xmin',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:buf) 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) xmin: a -> fail
# {
# 'input' => 'a',
# 'name' => 'max: a -> fail',
# 'schema' => [
# 'buf',
# 'max',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:max'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:max, type, type:buf) 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) max: a -> fail
# {
# 'input' => 'a',
# 'name' => 'max: a a',
# 'schema' => [
# 'buf',
# 'max',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:buf) 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) max: a a
# {
# 'input' => '',
# 'name' => 'max: a',
# 'schema' => [
# 'buf',
# 'max',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:buf) 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) max: a
# {
# 'input' => 'a',
# 'name' => 'xmax: a -> fail',
# 'schema' => [
# 'buf',
# 'xmax',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:buf) 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) xmax: a -> fail
# {
# 'input' => 'a',
# 'name' => 'xmax: a a -> fail',
# 'schema' => [
# 'buf',
# 'xmax',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:buf) 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) xmax: a a -> fail
# {
# 'input' => '',
# 'name' => 'xmax: a',
# 'schema' => [
# 'buf',
# 'xmax',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xmax'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmax, type, type:buf) 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) xmax: a
# {
# 'input' => 'a',
# 'name' => 'between: a & ab',
# 'schema' => [
# 'buf',
# 'between',
# [
# '',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:buf) 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) between: a & ab
# {
# 'input' => 'a',
# 'name' => 'between: a & a',
# 'schema' => [
# 'buf',
# 'between',
# [
# '',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:buf) 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) between: a & a
# {
# 'input' => 'a',
# 'name' => 'between: a a & a',
# 'schema' => [
# 'buf',
# 'between',
# [
# 'a',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:buf) 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) between: a a & a
# {
# 'input' => '',
# 'name' => 'between: a & ab -> fail',
# 'schema' => [
# 'buf',
# 'between',
# [
# 'a',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:between'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:between, type, type:buf) 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) between: a & ab -> fail
# {
# 'input' => 'a',
# 'name' => 'xbetween: a & ab',
# 'schema' => [
# 'buf',
# 'xbetween',
# [
# '',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xbetween'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xbetween, type, type:buf) 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) xbetween: a & ab
# {
# 'input' => 'a',
# 'name' => 'xbetween: a & a -> fail',
# 'schema' => [
# 'buf',
# 'xbetween',
# [
# '',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xbetween'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xbetween, type, type:buf) 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) xbetween: a & a -> fail
# {
# 'input' => 'a',
# 'name' => '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) 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) xbetween: a a & a -> fail
# {
# 'input' => '',
# 'name' => 'xbetween: a & ab -> fail',
# 'schema' => [
# 'buf',
# 'xbetween',
# [
# 'a',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:xbetween'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xbetween, type, type:buf) 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) xbetween: a & ab -> fail
# {
# 'input' => '',
# 'name' => '!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) !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) !between (nok)
# {
# 'input' => '',
# 'name' => '!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) !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) !between (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=not (nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=not (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between& (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between& (ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (nok + nok)
# {
# 'input' => '',
# 'name' => 'between.op=and (no items)',
# 'schema' => [
# 'buf',
# 'between',
# [],
# 'between.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:buf'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:buf) 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) between.op=and (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between| (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (nok + ok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between| (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (nok + ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=or (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=none (empty items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => 'len (ok)',
# 'schema' => [
# 'buf',
# 'len',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:len'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:len, type, type:buf) 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) len (ok)
# {
# 'input' => 'a',
# 'name' => 'len (nok)',
# 'schema' => [
# 'buf',
# 'len',
# 3
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:len'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:len, type, type:buf) 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) len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) min_len (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) min_len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) max_len (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) max_len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) len_between (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) len_between (nok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_index (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_index (nok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_elem (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_elem (nok)
# {
# 'invalid_inputs' => [
# '',
# 'A',
# 'c'
# ],
# 'name' => 'has',
# 'schema' => [
# 'buf',
# 'has',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:has'
# ],
# 'valid_inputs' => [
# 'abc',
# 'ac'
# ]
# }
# Subtest: (tags=clause:has, type, type:buf) 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) has
# {
# 'invalid_inputs' => [
# 'abc',
# 'ac'
# ],
# 'name' => '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) 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) has + op.not
# {
# 'invalid_inputs' => [
# '',
# 'A',
# 'c'
# ],
# 'name' => '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) 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) has + op.or
# {
# 'invalid_inputs' => [
# 'ac',
# '',
# 'A',
# 'c'
# ],
# 'name' => '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) 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) has + op.and
# {
# 'input' => 'a',
# 'name' => 'encoding: (ok)',
# 'schema' => [
# 'buf',
# 'encoding',
# 'utf8'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:encoding'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:encoding, type, type:buf) 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) encoding: (ok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'encoding: (dies, unknown encoding)',
# 'schema' => [
# 'buf',
# 'encoding',
# 'foo'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:encoding'
# ]
# }
# Subtest: (tags=clause:encoding, type, type:buf) encoding: (dies, unknown encoding)
ok 1 - compile error
1..1
ok 169 - (tags=clause:encoding, type, type:buf) encoding: (dies, unknown encoding)
# {
# 'input' => 'a',
# 'name' => 'match: (ok)',
# 'schema' => [
# 'buf',
# 'match',
# '[abc]'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:match'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:match, type, type:buf) 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) match: (ok)
# {
# 'input' => 'A',
# 'name' => 'match: (nok)',
# 'schema' => [
# 'buf',
# 'match',
# '[abc]'
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:match'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:match, type, type:buf) 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) match: (nok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'match: (dies, invalid regex)',
# 'schema' => [
# 'buf',
# 'match',
# '('
# ],
# 'tags' => [
# 'type',
# 'type:buf',
# 'clause:match'
# ]
# }
# Subtest: (tags=clause:match, type, type:buf) match: (dies, invalid regex)
ok 1 - compile error
1..1
ok 172 - (tags=clause:match, type, type:buf) match: (dies, invalid regex)
# {
# 'input' => 'a',
# 'name' => '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) 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) is_re: 1 (ok)
# {
# 'input' => 'a(',
# 'name' => '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) 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) is_re: 1 (nok)
# {
# 'input' => 'a(',
# 'name' => '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) 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) is_re: 0 (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is_re: 0 (nok)
ok 177
1..177
ok 7 - 10-type-buf.json
# Subtest: 10-type-cistr.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => 0,
# 'name' => 'type check: must accept 0',
# 'schema' => 'cistr',
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) type check: must accept 0
# {
# 'input' => '1.1',
# 'name' => 'type check: must accept 1.1',
# 'schema' => 'cistr',
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) type check: must accept 1.1
# {
# 'input' => '',
# 'name' => 'type check: must accept ',
# 'schema' => 'cistr',
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) type check: must accept
# {
# 'input' => 'str
# ',
# 'name' => 'type check: must accept str
# ',
# 'schema' => 'cistr',
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) type check: must accept str
#
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'cistr',
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:cistr) 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) type check: must reject []
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'cistr',
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:cistr) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'cistr',
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'cistr',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:cistr) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'cistr',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:cistr) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'cistr',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:cistr) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'cistr',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:cistr) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'cistr',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:cistr) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'cistr',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:cistr) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'cistr',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:cistr) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => 'a',
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => 'a',
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => '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) 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) default: must accept valid default a
# {
# 'input' => undef,
# 'name' => 'default: must reject invalid default []',
# 'schema' => [
# 'cistr*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:default'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:default, type, type:cistr) 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) default: must reject invalid default []
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'cistr*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:cistr) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 22 - (tags=clause:clause, type, type:cistr) clause (dies, unknown clause)
# {
# 'input' => 'a',
# 'name' => 'clause (ok)',
# 'schema' => [
# 'cistr*',
# 'clause',
# [
# 'match',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:cistr) 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) clause (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => 'clause (nok)',
# 'schema' => [
# 'cistr*',
# 'clause',
# [
# 'match',
# 'b'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:cistr) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'cistr*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:cistr) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 26 - (tags=clause:clset, type, type:cistr) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 27 - (tags=clause:clset, type, type:cistr) clset (dies, unknown attr)
# {
# 'input' => 'a',
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'cistr*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) clset (empty = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'cistr',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:cistr) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => 'a',
# 'name' => '.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) .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) .err_level=error (clause=is, ok)
# {
# 'input' => 'a
# ',
# 'name' => '.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) .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) .err_level=error (clause=is, nok)
# {
# 'input' => 'a',
# 'name' => '.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) .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) .err_level=warn (clause=is, ok)
# {
# 'input' => 'a
# ',
# 'name' => '.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) .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) .err_level=warn (clause=is, nok)
# {
# 'input' => 'a',
# 'name' => 'is: must accept same value',
# 'schema' => [
# 'cistr',
# 'is',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:is'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:is, type, type:cistr) 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) is: must accept same value
# {
# 'input' => 'a',
# 'name' => 'is: must reject different value',
# 'schema' => [
# 'cistr',
# 'is',
# 'B'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:is'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:is, type, type:cistr) 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) is: must reject different value
# {
# 'input' => 'a',
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => 'a',
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is& (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => 'a',
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'cistr',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) is.op=and (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => 'a',
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'cistr',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:cistr) 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) in: must reject empty choices
# {
# 'input' => 'a',
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => 'a',
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in& (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => 'a',
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'cistr',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) in.op=and (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => 'min: a ',
# 'schema' => [
# 'cistr',
# 'min',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:cistr) 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) min: a
# {
# 'input' => 'a',
# 'name' => 'min: a a',
# 'schema' => [
# 'cistr',
# 'min',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:cistr) 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) min: a a
# {
# 'input' => '',
# 'name' => 'min: a -> fail',
# 'schema' => [
# 'cistr',
# 'min',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:min'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:min, type, type:cistr) 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) min: a -> fail
# {
# 'input' => 'a',
# 'name' => 'xmin: a ',
# 'schema' => [
# 'cistr',
# 'xmin',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xmin'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmin, type, type:cistr) 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) xmin: a
# {
# 'input' => 'a',
# 'name' => 'xmin: a a -> fail',
# 'schema' => [
# 'cistr',
# 'xmin',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:cistr) 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) xmin: a a -> fail
# {
# 'input' => '',
# 'name' => 'xmin: a -> fail',
# 'schema' => [
# 'cistr',
# 'xmin',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:cistr) 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) xmin: a -> fail
# {
# 'input' => 'a',
# 'name' => 'max: a -> fail',
# 'schema' => [
# 'cistr',
# 'max',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:max'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:max, type, type:cistr) 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) max: a -> fail
# {
# 'input' => 'a',
# 'name' => 'max: a a',
# 'schema' => [
# 'cistr',
# 'max',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:cistr) 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) max: a a
# {
# 'input' => '',
# 'name' => 'max: a',
# 'schema' => [
# 'cistr',
# 'max',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:cistr) 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) max: a
# {
# 'input' => 'a',
# 'name' => 'xmax: a -> fail',
# 'schema' => [
# 'cistr',
# 'xmax',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:cistr) 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) xmax: a -> fail
# {
# 'input' => 'a',
# 'name' => 'xmax: a a -> fail',
# 'schema' => [
# 'cistr',
# 'xmax',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:cistr) 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) xmax: a a -> fail
# {
# 'input' => '',
# 'name' => 'xmax: a',
# 'schema' => [
# 'cistr',
# 'xmax',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xmax'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmax, type, type:cistr) 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) xmax: a
# {
# 'input' => 'a',
# 'name' => 'between: a & Ab',
# 'schema' => [
# 'cistr',
# 'between',
# [
# '',
# 'Ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:cistr) 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) between: a & Ab
# {
# 'input' => 'a',
# 'name' => 'between: a & a',
# 'schema' => [
# 'cistr',
# 'between',
# [
# '',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:cistr) 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) between: a & a
# {
# 'input' => 'a',
# 'name' => 'between: a a & a',
# 'schema' => [
# 'cistr',
# 'between',
# [
# 'a',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:cistr) 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) between: a a & a
# {
# 'input' => '',
# 'name' => 'between: a & Ab -> fail',
# 'schema' => [
# 'cistr',
# 'between',
# [
# 'a',
# 'Ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:between'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:between, type, type:cistr) 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) between: a & Ab -> fail
# {
# 'input' => 'a',
# 'name' => 'xbetween: a & Ab',
# 'schema' => [
# 'cistr',
# 'xbetween',
# [
# '',
# 'Ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xbetween'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xbetween, type, type:cistr) 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) xbetween: a & Ab
# {
# 'input' => 'a',
# 'name' => 'xbetween: a & a -> fail',
# 'schema' => [
# 'cistr',
# 'xbetween',
# [
# '',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xbetween'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xbetween, type, type:cistr) 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) xbetween: a & a -> fail
# {
# 'input' => 'a',
# 'name' => '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) 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) xbetween: a a & a -> fail
# {
# 'input' => '',
# 'name' => 'xbetween: a & Ab -> fail',
# 'schema' => [
# 'cistr',
# 'xbetween',
# [
# 'a',
# 'Ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:xbetween'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xbetween, type, type:cistr) 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) xbetween: a & Ab -> fail
# {
# 'input' => '',
# 'name' => '!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) !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) !between (nok)
# {
# 'input' => '',
# 'name' => '!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) !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) !between (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=not (nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=not (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between& (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between& (ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (nok + nok)
# {
# 'input' => '',
# 'name' => 'between.op=and (no items)',
# 'schema' => [
# 'cistr',
# 'between',
# [],
# 'between.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:cistr'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:cistr) 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) between.op=and (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between| (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (nok + ok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between| (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (nok + ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=or (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=none (empty items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => 'len (ok)',
# 'schema' => [
# 'cistr',
# 'len',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:len'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:len, type, type:cistr) 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) len (ok)
# {
# 'input' => 'a',
# 'name' => 'len (nok)',
# 'schema' => [
# 'cistr',
# 'len',
# 3
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:len'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:len, type, type:cistr) 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) len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) min_len (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) min_len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) max_len (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) max_len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) len_between (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) len_between (nok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_index (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_index (nok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_elem (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_elem (nok)
# {
# 'invalid_inputs' => [
# '',
# 'c'
# ],
# 'name' => 'has',
# 'schema' => [
# 'cistr',
# 'has',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:has'
# ],
# 'valid_inputs' => [
# 'abc',
# 'Ac'
# ]
# }
# Subtest: (tags=clause:has, type, type:cistr) 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) has
# {
# 'invalid_inputs' => [
# 'abc',
# 'Ac'
# ],
# 'name' => '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) 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) has + op.not
# {
# 'invalid_inputs' => [
# '',
# 'c'
# ],
# 'name' => '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) 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) has + op.or
# {
# 'invalid_inputs' => [
# 'Ac',
# '',
# 'c'
# ],
# 'name' => '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) 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) has + op.and
# {
# 'input' => 'a',
# 'name' => 'encoding: (ok)',
# 'schema' => [
# 'cistr',
# 'encoding',
# 'utf8'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:encoding'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:encoding, type, type:cistr) 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) encoding: (ok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'encoding: (dies, unknown encoding)',
# 'schema' => [
# 'cistr',
# 'encoding',
# 'foo'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:encoding'
# ]
# }
# Subtest: (tags=clause:encoding, type, type:cistr) encoding: (dies, unknown encoding)
ok 1 - compile error
1..1
ok 169 - (tags=clause:encoding, type, type:cistr) encoding: (dies, unknown encoding)
# {
# 'input' => 'A',
# 'name' => 'match: (ok)',
# 'schema' => [
# 'cistr',
# 'match',
# '[abc]'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:match'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:match, type, type:cistr) 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) match: (ok)
# {
# 'input' => 'z',
# 'name' => 'match: (nok)',
# 'schema' => [
# 'cistr',
# 'match',
# '[abc]'
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:match'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:match, type, type:cistr) 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) match: (nok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'match: (dies, invalid regex)',
# 'schema' => [
# 'cistr',
# 'match',
# '('
# ],
# 'tags' => [
# 'type',
# 'type:cistr',
# 'clause:match'
# ]
# }
# Subtest: (tags=clause:match, type, type:cistr) match: (dies, invalid regex)
ok 1 - compile error
1..1
ok 172 - (tags=clause:match, type, type:cistr) match: (dies, invalid regex)
# {
# 'input' => 'a',
# 'name' => '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) 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) is_re: 1 (ok)
# {
# 'input' => 'a(',
# 'name' => '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) 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) is_re: 1 (nok)
# {
# 'input' => 'a(',
# 'name' => '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) 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) is_re: 0 (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is_re: 0 (nok)
ok 177
1..177
ok 8 - 10-type-cistr.json
# Subtest: 10-type-float.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => '-1.1',
# 'name' => 'type check: must accept -1.1',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) type check: must accept -1.1
# {
# 'input' => -1,
# 'name' => 'type check: must accept -1',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) type check: must accept -1
# {
# 'input' => 0,
# 'name' => 'type check: must accept 0',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) type check: must accept 0
# {
# 'input' => 1,
# 'name' => 'type check: must accept 1',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) type check: must accept 1
# {
# 'input' => '1.1',
# 'name' => 'type check: must accept 1.1',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) type check: must accept 1.1
# {
# 'input' => 'a',
# 'name' => 'type check: must reject a',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:float) 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) type check: must reject a
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:float) 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) type check: must reject []
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:float) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'float',
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'float',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:float) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'float',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:float) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'float',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:float) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'float',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:float) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'float',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:float) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'float',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:float) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'float',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:float) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => '1.1',
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => '1.1',
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => '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) 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) default: must accept valid default 1.1
# {
# 'input' => undef,
# 'name' => 'default: must reject invalid default []',
# 'schema' => [
# 'float*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:default'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:default, type, type:float) 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) default: must reject invalid default []
# {
# 'dies' => 1,
# 'input' => '1.1',
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'float*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:float) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 24 - (tags=clause:clause, type, type:float) clause (dies, unknown clause)
# {
# 'input' => '1.1',
# 'name' => 'clause (ok)',
# 'schema' => [
# 'float*',
# 'clause',
# [
# 'min',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:float) 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) clause (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => 'clause (nok)',
# 'schema' => [
# 'float*',
# 'clause',
# [
# 'min',
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:float) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => '1.1',
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'float*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:float) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 28 - (tags=clause:clset, type, type:float) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => '1.1',
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 29 - (tags=clause:clset, type, type:float) clset (dies, unknown attr)
# {
# 'input' => '1.1',
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'float*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) clset (empty = ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'float',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:float) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => '0.1',
# 'name' => '.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) .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) .err_level=error (clause=min, ok)
# {
# 'input' => '-0.1',
# 'name' => '.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) .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) .err_level=error (clause=min, nok)
# {
# 'input' => '0.1',
# 'name' => '.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) .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) .err_level=warn (clause=min, ok)
# {
# 'input' => '-0.1',
# 'name' => '.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) .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) .err_level=warn (clause=min, nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is: must accept same value
# {
# 'input' => '1.1',
# 'name' => '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) 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) is: must reject different value
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is& (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => '1.1',
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'float',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) is.op=and (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => '1.1',
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'float',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:float',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:float) 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) in: must reject empty choices
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in& (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => '1.1',
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'float',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) in.op=and (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => '2.1',
# 'name' => '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) 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) min: 2.1 -3.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) min: 2.1 2.1
# {
# 'input' => '-3.1',
# 'name' => '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) 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) min: -3.1 2.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmin: 2.1 -3.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmin: 2.1 2.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '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) 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) xmin: -3.1 2.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) max: 2.1 -3.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) max: 2.1 2.1
# {
# 'input' => '-3.1',
# 'name' => '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) 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) max: -3.1 2.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmax: 2.1 -3.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmax: 2.1 2.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '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) 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) xmax: -3.1 2.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) between: 2.1 -3.1 & 4.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) between: 2.1 -3.1 & 2.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) between: 2.1 2.1 & 2.1
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between: -3.1 2.1 & 4.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xbetween: 2.1 -3.1 & 4.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) xbetween: 2.1 -3.1 & 2.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xbetween: 2.1 2.1 & 2.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '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) 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) xbetween: -3.1 2.1 & 4.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '!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) !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) !between (nok)
# {
# 'input' => '-3.1',
# 'name' => '!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) !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) !between (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=not (nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=not (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between& (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between& (ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between& (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => 'between.op=and (no items)',
# 'schema' => [
# 'float',
# 'between',
# [],
# 'between.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:float'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:float) 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) between.op=and (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (nok + ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between| (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (nok + ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (empty items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (ok + ok)
ok 154
1..154
ok 9 - 10-type-float.json
# Subtest: 10-type-hash.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => {},
# 'name' => 'type check: must accept {}',
# 'schema' => 'hash',
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:hash) 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) type check: must accept {}
# {
# 'input' => {
# 'a' => '1'
# },
# 'name' => 'type check: must accept { a => 1 }',
# 'schema' => 'hash',
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:hash) 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) type check: must accept { a => 1 }
# {
# 'input' => {
# '' => []
# },
# 'name' => 'type check: must accept { "" => [] }',
# 'schema' => 'hash',
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:hash) 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) type check: must accept { "" => [] }
# {
# 'input' => 1,
# 'name' => 'type check: must reject 1',
# 'schema' => 'hash',
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:hash) 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) type check: must reject 1
# {
# 'input' => 'a',
# 'name' => 'type check: must reject a',
# 'schema' => 'hash',
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:hash) 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) type check: must reject a
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'hash',
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:hash) 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) type check: must reject []
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'hash',
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:hash) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'hash',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:hash) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'hash',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:hash) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'hash',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:hash) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'hash',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:hash) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'hash',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:hash) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'hash',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:hash) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'hash',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:hash) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => 'default: must accept valid default {}',
# 'schema' => [
# 'hash*',
# 'default',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:default'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:default, type, type:hash) 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) default: must accept valid default {}
# {
# 'input' => undef,
# 'name' => '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) 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) default: must reject invalid default a
# {
# 'dies' => 1,
# 'input' => {
# 'a' => 1
# },
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'hash*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:hash) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 22 - (tags=clause:clause, type, type:hash) clause (dies, unknown clause)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => 'clause (ok)',
# 'schema' => [
# 'hash*',
# 'clause',
# [
# 'min_len',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:hash) 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) clause (ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => {
# 'a' => 1
# },
# 'name' => 'clause (nok)',
# 'schema' => [
# 'hash*',
# 'clause',
# [
# 'min_len',
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:hash) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => {
# 'a' => 1
# },
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'hash*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:hash) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 26 - (tags=clause:clset, type, type:hash) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 27 - (tags=clause:clset, type, type:hash) clset (dies, unknown attr)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'hash*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:hash) 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) clset (empty = ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'hash',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:hash) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => {
# 'a' => 0
# },
# 'name' => '.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) .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) .err_level=error (clause=is, ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '.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) .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) .err_level=error (clause=is, nok)
# {
# 'input' => {
# 'a' => 0
# },
# 'name' => '.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) .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) .err_level=warn (clause=is, ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '.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) .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) .err_level=warn (clause=is, nok)
# {
# 'input' => {},
# 'name' => 'is: must accept same value',
# 'schema' => [
# 'hash',
# 'is',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:is'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:is, type, type:hash) 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) is: must accept same value
# {
# 'input' => {},
# 'name' => '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) 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) is: must reject different value
# {
# 'input' => {},
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => {},
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => {},
# 'name' => '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) 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) is& (no items)
# {
# 'input' => {},
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => {},
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'hash',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:hash) 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) is.op=and (no items)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => {},
# 'name' => '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) 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) is| (no items)
# {
# 'input' => {},
# 'name' => '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) 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) is| (ok)
# {
# 'input' => {},
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => {},
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => {},
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => {},
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => {},
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'hash',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:hash) 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) in: must reject empty choices
# {
# 'input' => {},
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => {},
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => {},
# 'name' => '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) 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) in& (no items)
# {
# 'input' => {},
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => {},
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'hash',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:hash'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:hash) 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) in.op=and (no items)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => {},
# 'name' => '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) 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) in| (no items)
# {
# 'input' => {},
# 'name' => '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) 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) in| (ok)
# {
# 'input' => {},
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => {},
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => {},
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => {},
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => 'len (ok)',
# 'schema' => [
# 'hash',
# 'len',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:len'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:len, type, type:hash) 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) len (ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => 'len (nok)',
# 'schema' => [
# 'hash',
# 'len',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:hash',
# 'clause:len'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:len, type, type:hash) 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) len (nok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) min_len (ok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) min_len (nok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) max_len (ok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) max_len (nok)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) len_between (ok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) len_between (nok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_index (ok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_index (nok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_key (ok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_key (nok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_elem (ok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_elem (nok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_value (ok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) each_value (nok)
# {
# 'invalid_inputs' => [
# {},
# {
# '3' => 'c'
# }
# ],
# 'name' => '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) 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) has
# {
# 'invalid_inputs' => [
# {
# '1' => 'a',
# '2' => 'b',
# '3' => 'c'
# },
# {
# '1' => 'a',
# '3' => 'c'
# }
# ],
# 'name' => '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) 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) has + op.not
# {
# 'invalid_inputs' => [
# {},
# {
# '3' => 'c'
# }
# ],
# 'name' => '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) 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) has + op.or
# {
# 'invalid_inputs' => [
# {
# '1' => 'a',
# '3' => 'c'
# },
# {},
# {
# '3' => 'c'
# }
# ],
# 'name' => '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) 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) has + op.and
# {
# 'input' => {},
# 'name' => '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) 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) keys: (ok, empty)
# {
# 'input' => {
# 'a' => undef
# },
# 'name' => '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) 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) keys: (ok, only a, a valid 1)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) keys: (ok, only a, a valid 2)
# {
# 'input' => {
# 'a' => '1.1'
# },
# 'name' => '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) 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) keys: (nok, only a, a invalid)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) keys: (ok, only a, valid 2)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1'
# },
# 'name' => '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) 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) keys: (ok, a & b, valid)
# {
# 'input' => {
# 'a' => 1,
# 'b' => undef
# },
# 'name' => '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) 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) keys: (nok, a & b, b invalid)
# {
# 'input' => {
# 'a' => '1.1',
# 'b' => '1.1'
# },
# 'name' => '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) 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) keys: (nok, a & b, a invalid)
# {
# 'input' => {
# 'a' => '1.1',
# 'b' => undef
# },
# 'name' => '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) 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) keys: (nok, a & b, a & b invalid)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1',
# 'c' => 1
# },
# 'name' => '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) 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) keys: (nok, extra)
# {
# 'input' => {
# 'a' => 1,
# 'b' => '1.1',
# 'c' => 1
# },
# 'name' => '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) 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) keys: (ok, extra, restrict=0)
# {
# 'input' => {},
# 'name' => '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) 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) keys (create_default=1) 1
# {
# 'input' => {
# 'b' => undef
# },
# 'name' => '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) 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) keys (create_default=1) 2
# {
# 'input' => {},
# 'name' => '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) 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) keys (create_default=0) 1
# {
# 'input' => {
# 'b' => undef
# },
# 'name' => '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) 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) keys (create_default=0) 2
# {
# 'invalid_inputs' => [
# {
# 'a' => 'x'
# },
# {
# 'b' => 'x'
# },
# {
# 'c' => 1
# }
# ],
# 'name' => '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) 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) re_keys
# {
# 'invalid_inputs' => [
# {
# 'a' => 'x'
# },
# {
# 'b' => 'x'
# }
# ],
# 'name' => '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) 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) re_keys (restrict=0)
# {
# 'input' => {},
# 'name' => '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) 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) req_keys: (ok, empty req_keys, empty keys in input)
# {
# 'input' => {
# 'a' => 1
# },
# 'name' => '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) 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) req_keys: (ok, empty req_keys, extra keys in input)
# {
# 'input' => {
# 'a' => 1,
# 'b' => 1
# },
# 'name' => '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) 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) req_keys: (ok)
# {
# 'input' => {
# 'a' => 1,
# 'b' => 1,
# 'c' => 1
# },
# 'name' => '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) 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) req_keys: (ok, extra keys in input)
# {
# 'input' => {
# 'b' => 1,
# 'c' => 1
# },
# 'name' => '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) 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) req_keys: (nok, missing req keys in input)
# {
# 'input' => {},
# 'name' => '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) 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) allowed_keys: (ok, empty keys in input)
# {
# 'input' => {
# 'a' => 1,
# 'b' => undef
# },
# 'name' => '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) 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) allowed_keys: (ok)
# {
# 'input' => {
# 'a' => 1,
# 'd' => undef
# },
# 'name' => '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) 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) allowed_keys: (nok, keys outside allowed list)
# {
# 'input' => {},
# 'name' => '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) 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) allowed_keys_re: (ok, empty keys in input)
# {
# 'input' => {
# 'a' => 1,
# 'b' => undef
# },
# 'name' => '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) 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) allowed_keys_re: (ok)
# {
# 'input' => {
# 'a' => 1,
# 'd' => undef
# },
# 'name' => '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) 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) allowed_keys_re: (nok, keys outside allowed regex)
# {
# 'input' => {},
# 'name' => '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) 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) forbidden_keys: (ok, empty keys in input)
# {
# 'input' => {
# 'd' => 1,
# 'e' => undef
# },
# 'name' => '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) 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) forbidden_keys: (ok)
# {
# 'input' => {
# 'a' => 1,
# 'd' => undef
# },
# 'name' => '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) 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) forbidden_keys: (nok, keys in forbidden list)
# {
# 'input' => {},
# 'name' => '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) 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) forbidden_keys_re: (ok, empty keys in input)
# {
# 'input' => {
# 'd' => 1,
# 'e' => undef
# },
# 'name' => '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) 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) forbidden_keys_re: (ok)
# {
# 'input' => {
# 'a' => 1,
# 'd' => undef
# },
# 'name' => '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) 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) forbidden_keys_re: (nok, keys in forbidden regex)
ok 157
1..157
ok 10 - 10-type-hash.json
# Subtest: 10-type-int.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => -1,
# 'name' => 'type check: must accept -1',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) type check: must accept -1
# {
# 'input' => 0,
# 'name' => 'type check: must accept 0',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) type check: must accept 0
# {
# 'input' => 1,
# 'name' => 'type check: must accept 1',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) type check: must accept 1
# {
# 'input' => '1.1',
# 'name' => 'type check: must reject 1.1',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:int) 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) type check: must reject 1.1
# {
# 'input' => 'a',
# 'name' => 'type check: must reject a',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:int) 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) type check: must reject a
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:int) 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) type check: must reject []
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:int) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'int',
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'int',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:int) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'int',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:int) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'int',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:int) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'int',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:int) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'int',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:int) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'int',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:int) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'int',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:int) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => 2,
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => 2,
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => '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) 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) default: must accept valid default 1
# {
# 'input' => undef,
# 'name' => 'default: must reject invalid default []',
# 'schema' => [
# 'int*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:default'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:default, type, type:int) 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) default: must reject invalid default []
# {
# 'dies' => 1,
# 'input' => 2,
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'int*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:int) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 23 - (tags=clause:clause, type, type:int) clause (dies, unknown clause)
# {
# 'input' => 2,
# 'name' => 'clause (ok)',
# 'schema' => [
# 'int*',
# 'clause',
# [
# 'min',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:int) 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) clause (ok)
# {
# 'input' => 2,
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => 2,
# 'name' => 'clause (nok)',
# 'schema' => [
# 'int*',
# 'clause',
# [
# 'min',
# 3
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:int) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => 2,
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'int*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:int) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 27 - (tags=clause:clset, type, type:int) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => 2,
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 28 - (tags=clause:clset, type, type:int) clset (dies, unknown attr)
# {
# 'input' => 2,
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'int*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) clset (empty = ok)
# {
# 'input' => 2,
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => 2,
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => 2,
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => 2,
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => 2,
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => 2,
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'int',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:int) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => 9,
# 'name' => '.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) .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) .err_level=error (clause=div_by, ok)
# {
# 'input' => 8,
# 'name' => '.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) .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) .err_level=error (clause=div_by, nok)
# {
# 'input' => 9,
# 'name' => '.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) .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) .err_level=warn (clause=div_by, ok)
# {
# 'input' => 8,
# 'name' => '.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) .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) .err_level=warn (clause=div_by, nok)
# {
# 'input' => 1,
# 'name' => 'is: must accept same value',
# 'schema' => [
# 'int',
# 'is',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:is'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:is, type, type:int) 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) is: must accept same value
# {
# 'input' => 1,
# 'name' => 'is: must reject different value',
# 'schema' => [
# 'int',
# 'is',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:is'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:is, type, type:int) 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) is: must reject different value
# {
# 'input' => 1,
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => 1,
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) is& (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => 1,
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'int',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) is.op=and (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => 1,
# 'name' => '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) 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) is| (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) is| (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => 1,
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => 1,
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => 1,
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => 1,
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'int',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:int) 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) in: must reject empty choices
# {
# 'input' => 1,
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => 1,
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) in& (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => 1,
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'int',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) in.op=and (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => 1,
# 'name' => '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) 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) in| (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) in| (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => 1,
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => 1,
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 1,
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => 2,
# 'name' => 'min: 2 -3',
# 'schema' => [
# 'int',
# 'min',
# -3
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:int) 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) min: 2 -3
# {
# 'input' => 2,
# 'name' => 'min: 2 2',
# 'schema' => [
# 'int',
# 'min',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:int) 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) min: 2 2
# {
# 'input' => -3,
# 'name' => 'min: -3 2 -> fail',
# 'schema' => [
# 'int',
# 'min',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:min'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:min, type, type:int) 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) min: -3 2 -> fail
# {
# 'input' => 2,
# 'name' => 'xmin: 2 -3',
# 'schema' => [
# 'int',
# 'xmin',
# -3
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:xmin'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmin, type, type:int) 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) xmin: 2 -3
# {
# 'input' => 2,
# 'name' => 'xmin: 2 2 -> fail',
# 'schema' => [
# 'int',
# 'xmin',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:int) 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) xmin: 2 2 -> fail
# {
# 'input' => -3,
# 'name' => 'xmin: -3 2 -> fail',
# 'schema' => [
# 'int',
# 'xmin',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:int) 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) xmin: -3 2 -> fail
# {
# 'input' => 2,
# 'name' => 'max: 2 -3 -> fail',
# 'schema' => [
# 'int',
# 'max',
# -3
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:max'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:max, type, type:int) 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) max: 2 -3 -> fail
# {
# 'input' => 2,
# 'name' => 'max: 2 2',
# 'schema' => [
# 'int',
# 'max',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:int) 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) max: 2 2
# {
# 'input' => -3,
# 'name' => 'max: -3 2',
# 'schema' => [
# 'int',
# 'max',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:int) 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) max: -3 2
# {
# 'input' => 2,
# 'name' => 'xmax: 2 -3 -> fail',
# 'schema' => [
# 'int',
# 'xmax',
# -3
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:int) 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) xmax: 2 -3 -> fail
# {
# 'input' => 2,
# 'name' => 'xmax: 2 2 -> fail',
# 'schema' => [
# 'int',
# 'xmax',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:int) 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) xmax: 2 2 -> fail
# {
# 'input' => -3,
# 'name' => 'xmax: -3 2',
# 'schema' => [
# 'int',
# 'xmax',
# 2
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:xmax'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmax, type, type:int) 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) xmax: -3 2
# {
# 'input' => 2,
# 'name' => 'between: 2 -3 & 4',
# 'schema' => [
# 'int',
# 'between',
# [
# -3,
# 4
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:int) 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) between: 2 -3 & 4
# {
# 'input' => 2,
# 'name' => 'between: 2 -3 & 2',
# 'schema' => [
# 'int',
# 'between',
# [
# -3,
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:int) 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) between: 2 -3 & 2
# {
# 'input' => 2,
# 'name' => 'between: 2 2 & 2',
# 'schema' => [
# 'int',
# 'between',
# [
# 2,
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:int) 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) between: 2 2 & 2
# {
# 'input' => -3,
# 'name' => '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) 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) between: -3 2 & 4 -> fail
# {
# 'input' => '2',
# 'name' => 'xbetween: 2 -3 & 4',
# 'schema' => [
# 'int',
# 'xbetween',
# [
# -3,
# 4
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:xbetween'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xbetween, type, type:int) 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) xbetween: 2 -3 & 4
# {
# 'input' => '2',
# 'name' => '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) 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) xbetween: 2 -3 & 2 -> fail
# {
# 'input' => '2',
# 'name' => '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) 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) xbetween: 2 2 & 2 -> fail
# {
# 'input' => -3,
# 'name' => '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) 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) xbetween: -3 2 & 4 -> fail
# {
# 'input' => -3,
# 'name' => '!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) !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) !between (nok)
# {
# 'input' => -3,
# 'name' => '!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) !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) !between (ok)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=not (nok)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=not (ok)
# {
# 'input' => -3,
# 'name' => '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) 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) between& (no items)
# {
# 'input' => -3,
# 'name' => '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) 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) between& (ok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between& (nok + ok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between& (ok + nok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between& (nok + nok)
# {
# 'input' => -3,
# 'name' => 'between.op=and (no items)',
# 'schema' => [
# 'int',
# 'between',
# [],
# 'between.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:int'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:int) 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) between.op=and (no items)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=and (ok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between.op=and (nok + nok)
# {
# 'input' => -3,
# 'name' => '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) 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) between| (no items)
# {
# 'input' => -3,
# 'name' => '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) 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) between| (ok)
# {
# 'input' => -3,
# 'name' => '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) 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) between| (nok + ok)
# {
# 'input' => -3,
# 'name' => '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) 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) between| (ok + nok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between| (nok + nok)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=or (no items)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=or (ok)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=or (nok + ok)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between.op=or (nok + nok)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=none (empty items)
# {
# 'input' => -3,
# 'name' => '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) 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) between.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => -3,
# 'name' => '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) 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) between.op=none (ok + ok)
# {
# 'input' => 10,
# 'name' => 'mod: (nok)',
# 'schema' => [
# 'int',
# 'mod',
# [
# 3,
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:mod'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:mod, type, type:int) 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) mod: (nok)
# {
# 'input' => 11,
# 'name' => 'mod: (ok)',
# 'schema' => [
# 'int',
# 'mod',
# [
# 3,
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:int',
# 'clause:mod'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:mod, type, type:int) 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) mod: (ok)
# {
# 'input' => 7,
# 'name' => '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) 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) div_by: (nok)
# {
# 'input' => 6,
# 'name' => '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) 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) div_by: (ok)
ok 157
1..157
ok 11 - 10-type-int.json
# Subtest: 10-type-num.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => '-1.1',
# 'name' => 'type check: must accept -1.1',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) type check: must accept -1.1
# {
# 'input' => -1,
# 'name' => 'type check: must accept -1',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) type check: must accept -1
# {
# 'input' => 0,
# 'name' => 'type check: must accept 0',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) type check: must accept 0
# {
# 'input' => 1,
# 'name' => 'type check: must accept 1',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) type check: must accept 1
# {
# 'input' => '1.1',
# 'name' => 'type check: must accept 1.1',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) type check: must accept 1.1
# {
# 'input' => 'a',
# 'name' => 'type check: must reject a',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:num) 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) type check: must reject a
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:num) 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) type check: must reject []
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:num) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'num',
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'num',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:num) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'num',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:num) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'num',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:num) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'num',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:num) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'num',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:num) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'num',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:num) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'num',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:num) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => '1.1',
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => '1.1',
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => '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) 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) default: must accept valid default 1.1
# {
# 'input' => undef,
# 'name' => 'default: must reject invalid default []',
# 'schema' => [
# 'num*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:default'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:default, type, type:num) 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) default: must reject invalid default []
# {
# 'dies' => 1,
# 'input' => '1.1',
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'num*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:num) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 24 - (tags=clause:clause, type, type:num) clause (dies, unknown clause)
# {
# 'input' => '1.1',
# 'name' => 'clause (ok)',
# 'schema' => [
# 'num*',
# 'clause',
# [
# 'min',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:num) 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) clause (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => 'clause (nok)',
# 'schema' => [
# 'num*',
# 'clause',
# [
# 'min',
# 2
# ]
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:num) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => '1.1',
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'num*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:num) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 28 - (tags=clause:clset, type, type:num) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => '1.1',
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 29 - (tags=clause:clset, type, type:num) clset (dies, unknown attr)
# {
# 'input' => '1.1',
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'num*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) clset (empty = ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'num',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:num) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => '0.1',
# 'name' => '.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) .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) .err_level=error (clause=min, ok)
# {
# 'input' => '-0.1',
# 'name' => '.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) .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) .err_level=error (clause=min, nok)
# {
# 'input' => '0.1',
# 'name' => '.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) .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) .err_level=warn (clause=min, ok)
# {
# 'input' => '-0.1',
# 'name' => '.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) .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) .err_level=warn (clause=min, nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is: must accept same value
# {
# 'input' => '1.1',
# 'name' => '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) 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) is: must reject different value
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is& (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => '1.1',
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'num',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) is.op=and (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => '1.1',
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'num',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:num',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:num) 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) in: must reject empty choices
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => '1.1',
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in& (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => '1.1',
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'num',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) in.op=and (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '1.1',
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => '2.1',
# 'name' => '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) 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) min: 2.1 -3.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) min: 2.1 2.1
# {
# 'input' => '-3.1',
# 'name' => '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) 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) min: -3.1 2.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmin: 2.1 -3.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmin: 2.1 2.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '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) 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) xmin: -3.1 2.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) max: 2.1 -3.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) max: 2.1 2.1
# {
# 'input' => '-3.1',
# 'name' => '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) 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) max: -3.1 2.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmax: 2.1 -3.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xmax: 2.1 2.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '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) 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) xmax: -3.1 2.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) between: 2.1 -3.1 & 4.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) between: 2.1 -3.1 & 2.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) between: 2.1 2.1 & 2.1
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between: -3.1 2.1 & 4.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xbetween: 2.1 -3.1 & 4.1
# {
# 'input' => '2.1',
# 'name' => '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) 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) xbetween: 2.1 -3.1 & 2.1 -> fail
# {
# 'input' => '2.1',
# 'name' => '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) 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) xbetween: 2.1 2.1 & 2.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '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) 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) xbetween: -3.1 2.1 & 4.1 -> fail
# {
# 'input' => '-3.1',
# 'name' => '!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) !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) !between (nok)
# {
# 'input' => '-3.1',
# 'name' => '!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) !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) !between (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=not (nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=not (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between& (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between& (ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between& (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => 'between.op=and (no items)',
# 'schema' => [
# 'num',
# 'between',
# [],
# 'between.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:num'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:num) 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) between.op=and (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=and (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (nok + ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between| (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (no items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (nok + ok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=or (nok + nok)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (empty items)
# {
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '-3.1',
# 'name' => '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) 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) between.op=none (ok + ok)
ok 154
1..154
ok 12 - 10-type-num.json
# Subtest: 10-type-obj.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => 1,
# 'name' => 'can (nok)',
# 'schema' => [
# 'obj',
# {
# 'can' => 'foo'
# }
# ],
# 'tags' => [
# 'type',
# 'type:obj',
# 'clause:can'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:can, type, type:obj) 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) can (nok)
# {
# 'input' => 1,
# 'name' => 'isa (nok)',
# 'schema' => [
# 'obj',
# {
# 'isa' => 'foo'
# }
# ],
# 'tags' => [
# 'type',
# 'type:obj',
# 'clause:isa'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:isa, type, type:obj) 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) isa (nok)
ok 3
1..3
ok 13 - 10-type-obj.json
# Subtest: 10-type-str.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => 0,
# 'name' => 'type check: must accept 0',
# 'schema' => 'str',
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) type check: must accept 0
# {
# 'input' => '1.1',
# 'name' => 'type check: must accept 1.1',
# 'schema' => 'str',
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) type check: must accept 1.1
# {
# 'input' => '',
# 'name' => 'type check: must accept ',
# 'schema' => 'str',
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) type check: must accept
# {
# 'input' => 'str
# ',
# 'name' => 'type check: must accept str
# ',
# 'schema' => 'str',
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) type check: must accept str
#
# {
# 'input' => [],
# 'name' => 'type check: must reject []',
# 'schema' => 'str',
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:str) 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) type check: must reject []
# {
# 'input' => {},
# 'name' => 'type check: must reject {}',
# 'schema' => 'str',
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:str) 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) type check: must reject {}
# {
# 'input' => undef,
# 'name' => 'must accept undefined value',
# 'schema' => 'str',
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) must accept undefined value
# {
# 'input' => undef,
# 'name' => 'defhash_v',
# 'schema' => [
# 'str',
# 'defhash_v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:defhash_v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:defhash_v, type, type:str) 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) defhash_v
# {
# 'input' => undef,
# 'name' => 'v',
# 'schema' => [
# 'str',
# 'v',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:v'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:v, type, type:str) 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) v
# {
# 'input' => undef,
# 'name' => 'c',
# 'schema' => [
# 'str',
# 'c.foo.bar',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:c'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:c, type, type:str) 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) c
# {
# 'input' => undef,
# 'name' => '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) 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) default_lang
# {
# 'input' => undef,
# 'name' => 'name',
# 'schema' => [
# 'str',
# 'name',
# 'some name'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:name'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:name, type, type:str) 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) name
# {
# 'input' => undef,
# 'name' => 'summary',
# 'schema' => [
# 'str',
# 'summary',
# 'some summary'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:summary'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:summary, type, type:str) 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) summary
# {
# 'input' => undef,
# 'name' => 'description',
# 'schema' => [
# 'str',
# 'description',
# 'some description and `markdown`'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:description'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:description, type, type:str) 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) description
# {
# 'input' => undef,
# 'name' => 'tags',
# 'schema' => [
# 'str',
# 'tags',
# [
# 'some',
# 'tags'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:tags'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:tags, type, type:str) 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) tags
# {
# 'input' => undef,
# 'name' => '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) 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) req=0 must accept undefined value
# {
# 'input' => undef,
# 'name' => '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) 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) req=1 must reject undefined value
# {
# 'input' => 'a',
# 'name' => '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) 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) forbidden=0 must accept defined value
# {
# 'input' => 'a',
# 'name' => '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) 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) forbidden=1 must reject defined value
# {
# 'input' => undef,
# 'name' => '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) 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) default: must accept valid default a
# {
# 'input' => undef,
# 'name' => 'default: must reject invalid default []',
# 'schema' => [
# 'str*',
# 'default',
# []
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:default'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:default, type, type:str) 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) default: must reject invalid default []
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'clause (dies, unknown clause)',
# 'schema' => [
# 'str*',
# 'clause',
# [
# 'foo',
# 1
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:clause'
# ]
# }
# Subtest: (tags=clause:clause, type, type:str) clause (dies, unknown clause)
ok 1 - compile error
1..1
ok 22 - (tags=clause:clause, type, type:str) clause (dies, unknown clause)
# {
# 'input' => 'a',
# 'name' => 'clause (ok)',
# 'schema' => [
# 'str*',
# 'clause',
# [
# 'match',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:clause'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:clause, type, type:str) 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) clause (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clause (ok) + clause nok = nok
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => 'clause (nok)',
# 'schema' => [
# 'str*',
# 'clause',
# [
# 'match',
# 'b'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:clause'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:clause, type, type:str) 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) clause (nok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'clset (dies, unknown clause)',
# 'schema' => [
# 'str*',
# 'clset',
# {
# 'foo' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:clset'
# ]
# }
# Subtest: (tags=clause:clset, type, type:str) clset (dies, unknown clause)
ok 1 - compile error
1..1
ok 26 - (tags=clause:clset, type, type:str) clset (dies, unknown clause)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => '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) clset (dies, unknown attr)
ok 1 - compile error
1..1
ok 27 - (tags=clause:clset, type, type:str) clset (dies, unknown attr)
# {
# 'input' => 'a',
# 'name' => 'clset (empty = ok)',
# 'schema' => [
# 'str*',
# 'clset',
# {}
# ],
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) clset (empty = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ignored clause/attr = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok + ok = ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok) + clause nok = nok
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (ok + nok = nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (nok + ok = nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) clset (nok + nok = nok)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'str',
# {
# 'ok' => 1
# }
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:ok'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:ok, type, type:str) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => undef,
# 'name' => '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) 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) ok + op not (nok)
# {
# 'input' => 'a',
# 'name' => '.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) .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) .err_level=error (clause=is, ok)
# {
# 'input' => 'a
# ',
# 'name' => '.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) .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) .err_level=error (clause=is, nok)
# {
# 'input' => 'a',
# 'name' => '.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) .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) .err_level=warn (clause=is, ok)
# {
# 'input' => 'a
# ',
# 'name' => '.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) .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) .err_level=warn (clause=is, nok)
# {
# 'input' => 'a',
# 'name' => 'is: must accept same value',
# 'schema' => [
# 'str',
# 'is',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:is'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:is, type, type:str) 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) is: must accept same value
# {
# 'input' => 'a',
# 'name' => 'is: must reject different value',
# 'schema' => [
# 'str',
# 'is',
# 'b'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:is'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:is, type, type:str) 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) is: must reject different value
# {
# 'input' => 'a',
# 'name' => '!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) !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) !is (nok)
# {
# 'input' => 'a',
# 'name' => '!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) !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) !is (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=not (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=not (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is& (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is& (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is& (nok + nok)
# {
# 'input' => 'a',
# 'name' => 'is.op=and (no items)',
# 'schema' => [
# 'str',
# 'is',
# [],
# 'is.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) is.op=and (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=and (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is| (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=or (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (empty items)
# {
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) is.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in: must accept valid choices
# {
# 'input' => 'a',
# 'name' => 'in: must reject empty choices',
# 'schema' => [
# 'str',
# 'in',
# []
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:in'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:in, type, type:str) 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) in: must reject empty choices
# {
# 'input' => 'a',
# 'name' => '!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) !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) !in (nok)
# {
# 'input' => 'a',
# 'name' => '!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) !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) !in (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=not (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=not (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in& (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in& (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in& (nok + nok)
# {
# 'input' => 'a',
# 'name' => 'in.op=and (no items)',
# 'schema' => [
# 'str',
# 'in',
# [],
# 'in.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) in.op=and (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=and (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in| (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in| (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (no items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (nok + ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=or (nok + nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (empty items)
# {
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => 'a',
# 'name' => '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) 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) in.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => 'min: a ',
# 'schema' => [
# 'str',
# 'min',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:str) 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) min: a
# {
# 'input' => 'a',
# 'name' => 'min: a a',
# 'schema' => [
# 'str',
# 'min',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:min'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:min, type, type:str) 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) min: a a
# {
# 'input' => '',
# 'name' => 'min: a -> fail',
# 'schema' => [
# 'str',
# 'min',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:min'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:min, type, type:str) 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) min: a -> fail
# {
# 'input' => 'a',
# 'name' => 'xmin: a ',
# 'schema' => [
# 'str',
# 'xmin',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xmin'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmin, type, type:str) 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) xmin: a
# {
# 'input' => 'a',
# 'name' => 'xmin: a a -> fail',
# 'schema' => [
# 'str',
# 'xmin',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:str) 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) xmin: a a -> fail
# {
# 'input' => '',
# 'name' => 'xmin: a -> fail',
# 'schema' => [
# 'str',
# 'xmin',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xmin'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmin, type, type:str) 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) xmin: a -> fail
# {
# 'input' => 'a',
# 'name' => 'max: a -> fail',
# 'schema' => [
# 'str',
# 'max',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:max'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:max, type, type:str) 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) max: a -> fail
# {
# 'input' => 'a',
# 'name' => 'max: a a',
# 'schema' => [
# 'str',
# 'max',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:str) 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) max: a a
# {
# 'input' => '',
# 'name' => 'max: a',
# 'schema' => [
# 'str',
# 'max',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:max'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:max, type, type:str) 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) max: a
# {
# 'input' => 'a',
# 'name' => 'xmax: a -> fail',
# 'schema' => [
# 'str',
# 'xmax',
# ''
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:str) 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) xmax: a -> fail
# {
# 'input' => 'a',
# 'name' => 'xmax: a a -> fail',
# 'schema' => [
# 'str',
# 'xmax',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xmax'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xmax, type, type:str) 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) xmax: a a -> fail
# {
# 'input' => '',
# 'name' => 'xmax: a',
# 'schema' => [
# 'str',
# 'xmax',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xmax'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xmax, type, type:str) 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) xmax: a
# {
# 'input' => 'a',
# 'name' => 'between: a & ab',
# 'schema' => [
# 'str',
# 'between',
# [
# '',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:str) 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) between: a & ab
# {
# 'input' => 'a',
# 'name' => 'between: a & a',
# 'schema' => [
# 'str',
# 'between',
# [
# '',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:str) 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) between: a & a
# {
# 'input' => 'a',
# 'name' => 'between: a a & a',
# 'schema' => [
# 'str',
# 'between',
# [
# 'a',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:between'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:between, type, type:str) 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) between: a a & a
# {
# 'input' => '',
# 'name' => 'between: a & ab -> fail',
# 'schema' => [
# 'str',
# 'between',
# [
# 'a',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:between'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:between, type, type:str) 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) between: a & ab -> fail
# {
# 'input' => 'a',
# 'name' => 'xbetween: a & ab',
# 'schema' => [
# 'str',
# 'xbetween',
# [
# '',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xbetween'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:xbetween, type, type:str) 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) xbetween: a & ab
# {
# 'input' => 'a',
# 'name' => 'xbetween: a & a -> fail',
# 'schema' => [
# 'str',
# 'xbetween',
# [
# '',
# 'a'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xbetween'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xbetween, type, type:str) 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) xbetween: a & a -> fail
# {
# 'input' => 'a',
# 'name' => '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) 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) xbetween: a a & a -> fail
# {
# 'input' => '',
# 'name' => 'xbetween: a & ab -> fail',
# 'schema' => [
# 'str',
# 'xbetween',
# [
# 'a',
# 'ab'
# ]
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:xbetween'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:xbetween, type, type:str) 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) xbetween: a & ab -> fail
# {
# 'input' => '',
# 'name' => '!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) !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) !between (nok)
# {
# 'input' => '',
# 'name' => '!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) !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) !between (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=not (nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=not (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between& (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between& (ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between& (nok + nok)
# {
# 'input' => '',
# 'name' => 'between.op=and (no items)',
# 'schema' => [
# 'str',
# 'between',
# [],
# 'between.op',
# 'and'
# ],
# 'tags' => [
# 'type',
# 'type:str'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:str) 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) between.op=and (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=and (ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=and (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between| (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (nok + ok)
# {
# 'input' => '',
# 'name' => '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) 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) between| (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between| (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (no items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (nok + ok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=or (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=or (nok + nok)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=none (empty items)
# {
# 'input' => '',
# 'name' => '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) 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) between.op=none (nok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (nok + ok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (ok + nok)
# {
# 'errors' => 1,
# 'input' => '',
# 'name' => '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) 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) between.op=none (ok + ok)
# {
# 'input' => 'a',
# 'name' => 'len (ok)',
# 'schema' => [
# 'str',
# 'len',
# 1
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:len'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:len, type, type:str) 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) len (ok)
# {
# 'input' => 'a',
# 'name' => 'len (nok)',
# 'schema' => [
# 'str',
# 'len',
# 3
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:len'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:len, type, type:str) 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) len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) min_len (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) min_len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) max_len (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) max_len (nok)
# {
# 'input' => 'a',
# 'name' => '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) 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) len_between (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) len_between (nok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_index (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_index (nok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_elem (ok)
# {
# 'input' => 'abc',
# 'name' => '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) 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) each_elem (nok)
# {
# 'invalid_inputs' => [
# '',
# 'A',
# 'c'
# ],
# 'name' => 'has',
# 'schema' => [
# 'str',
# 'has',
# 'a'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:has'
# ],
# 'valid_inputs' => [
# 'abc',
# 'ac'
# ]
# }
# Subtest: (tags=clause:has, type, type:str) 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) has
# {
# 'invalid_inputs' => [
# 'abc',
# 'ac'
# ],
# 'name' => '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) 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) has + op.not
# {
# 'invalid_inputs' => [
# '',
# 'A',
# 'c'
# ],
# 'name' => '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) 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) has + op.or
# {
# 'invalid_inputs' => [
# 'ac',
# '',
# 'A',
# 'c'
# ],
# 'name' => '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) 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) has + op.and
# {
# 'input' => 'a',
# 'name' => 'encoding: (ok)',
# 'schema' => [
# 'str',
# 'encoding',
# 'utf8'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:encoding'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:encoding, type, type:str) 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) encoding: (ok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'encoding: (dies, unknown encoding)',
# 'schema' => [
# 'str',
# 'encoding',
# 'foo'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:encoding'
# ]
# }
# Subtest: (tags=clause:encoding, type, type:str) encoding: (dies, unknown encoding)
ok 1 - compile error
1..1
ok 169 - (tags=clause:encoding, type, type:str) encoding: (dies, unknown encoding)
# {
# 'input' => 'a',
# 'name' => 'match: (ok)',
# 'schema' => [
# 'str',
# 'match',
# '[abc]'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:match'
# ],
# 'valid' => 1
# }
# Subtest: (tags=clause:match, type, type:str) 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) match: (ok)
# {
# 'input' => 'A',
# 'name' => 'match: (nok)',
# 'schema' => [
# 'str',
# 'match',
# '[abc]'
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:match'
# ],
# 'valid' => 0
# }
# Subtest: (tags=clause:match, type, type:str) 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) match: (nok)
# {
# 'dies' => 1,
# 'input' => 'a',
# 'name' => 'match: (dies, invalid regex)',
# 'schema' => [
# 'str',
# 'match',
# '('
# ],
# 'tags' => [
# 'type',
# 'type:str',
# 'clause:match'
# ]
# }
# Subtest: (tags=clause:match, type, type:str) match: (dies, invalid regex)
ok 1 - compile error
1..1
ok 172 - (tags=clause:match, type, type:str) match: (dies, invalid regex)
# {
# 'input' => 'a',
# 'name' => '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) 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) is_re: 1 (ok)
# {
# 'input' => 'a(',
# 'name' => '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) 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) is_re: 1 (nok)
# {
# 'input' => 'a(',
# 'name' => '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) 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) is_re: 0 (ok)
# {
# 'input' => 'a',
# 'name' => '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) 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) is_re: 0 (nok)
ok 177
1..177
ok 14 - 10-type-str.json
# Subtest: 10-type-undef.json
# Test version: v0.9.30 (generated by devscripts/gen-type-spectest on Thu Oct 23 12:00:40 2014)
# {
# 'input' => undef,
# 'name' => 'ok',
# 'schema' => [
# 'undef'
# ],
# 'tags' => [
# 'type',
# 'type:undef'
# ],
# 'valid' => 1
# }
# Subtest: (tags=type, type:undef) ok
ok 1 - compile success
ok 2 - valid (rt=bool)
ok 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) ok
# {
# 'input' => 0,
# 'name' => 'nok',
# 'schema' => [
# 'undef'
# ],
# 'tags' => [
# 'type',
# 'type:undef'
# ],
# 'valid' => 0
# }
# Subtest: (tags=type, type:undef) nok
ok 1 - compile success
ok 2 - invalid (rt=bool)
ok 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) nok
ok 3
1..3
ok 15 - 10-type-undef.json
1..15
ok
t\util-type.t .............
# Subtest: coerce_date
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
1..8
ok 1 - coerce_date
1..1
ok
Test Summary Report
-------------------
t\perl-type-float.t (Wstat: 1280 Tests: 15 Failed: 5)
Failed tests: 5, 9-10, 13, 15
Non-zero exit status: 5
Files=19, Tests=183, 58 wallclock secs ( 3.31 usr + 0.06 sys = 3.38 CPU)
Result: FAIL
Failed 1/19 test programs. 5/183 subtests failed.
NMAKE : fatal error U1077: '"C:\Perl-5.14\bin\perl.exe"' : return code '0xff'
Stop.
PERLANCAR/Data-Sah-0.32.tar.gz
nmake test TEST_VERBOSE=1 -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PERLANCAR/Data-Sah-0.32.tar.gz
Running test for module 'String::LineNumber'
Running make for P/PE/PERLANCAR/String-LineNumber-0.01.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Has already been unwrapped into directory C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
Has already been made
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
Has already been tested successfully
Running make for P/PE/PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Has already been unwrapped into directory C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
Warning: Prerequisite 'Data::Sah => 0.14' for 'PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz' failed when processing 'PERLANCAR/Data-Sah-0.32.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited.
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/Perinci/Sub/Wrapper.pm blib\lib\Perinci\Sub\Wrapper.pm
cp lib/Test/Perinci/Sub/Wrapper.pm blib\lib\Test\Perinci\Sub\Wrapper.pm
PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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..2
ok 1 - Perinci/Sub/Wrapper.pm loaded ok
ok 2 - Test/Perinci/Sub/Wrapper.pm loaded ok
ok
t\00-sanity.t ..................
# Subtest: sanity (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - call doesn't die
ok 5 - call res is array
ok 6 - call status is 200
ok 7 - call res
ok 8 - call actual res
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
ok 4 - res
1..4
ok 9 - call \#1:
ok 10 - wrap_res is an array
ok 11 - call_res is an array
1..11
ok 1 - sanity (dynamic)
# Subtest: sanity (embed)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - embed code compiles ok
ok 5 - call doesn't die
ok 6 - call res is array
ok 7 - call status is 200
ok 8 - call res
ok 9 - call actual res
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
ok 4 - res
1..4
ok 10 - call \#1:
ok 11 - wrap_res is an array
ok 12 - call_res is an array
1..12
ok 2 - sanity (embed)
1..2
ok
t\01-basics.t ..................
# Subtest: internal properties are ignored (dynamic)
ok 1 - wrap doesn't die
1..1
ok 1 - internal properties are ignored (dynamic)
# Subtest: internal properties are ignored (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
1..2
ok 2 - internal properties are ignored (embed)
# Subtest: double wrapping
# Subtest: wrap 1 (dynamic)
ok 1 - wrap doesn't die
ok 2 - normalize_schema is by default 1
ok 3 - validate_args is by default 1
ok 4 - validate_result is by default 1
1..4
ok 1 - wrap 1 (dynamic)
# Subtest: wrap 1 (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
ok 3 - normalize_schema is by default 1
ok 4 - validate_args is by default 1
ok 5 - validate_result is by default 1
1..5
ok 2 - wrap 1 (embed)
# Subtest: second wrapping (dynamic)
ok 1 - wrap doesn't die
ok 2 - there are two log entries
ok 3 - normalize_schema is by default 0
ok 4 - validate_args is by default 0
ok 5 - validate_result is by default 0
1..5
ok 3 - second wrapping (dynamic)
# Subtest: second wrapping (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
ok 3 - there are two log entries
ok 4 - normalize_schema is by default 0
ok 5 - validate_args is by default 0
ok 6 - validate_result is by default 0
1..6
ok 4 - second wrapping (embed)
1..4
ok 3 - double wrapping
# Subtest: meta attribute 'x.perinci.sub.wrapper.disable_validate_args'
# Subtest: meta attribute 'x.perinci.sub.wrapper.disable_validate_args' is consulted (dynamic)
ok 1 - wrap doesn't die
ok 2 - validate_args is 0
1..2
ok 1 - meta attribute 'x.perinci.sub.wrapper.disable_validate_args' is consulted (dynamic)
# Subtest: meta attribute 'x.perinci.sub.wrapper.disable_validate_args' is consulted (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
ok 3 - validate_args is 0
1..3
ok 2 - meta attribute 'x.perinci.sub.wrapper.disable_validate_args' is consulted (embed)
1..2
ok 4 - meta attribute 'x.perinci.sub.wrapper.disable_validate_args'
# Subtest: meta attribute 'x.perinci.sub.wrapper.disable_validate_result'
# Subtest: meta attribute 'x.perinci.sub.wrapper.disable_validate_result' is consulted (dynamic)
ok 1 - wrap doesn't die
ok 2 - validate_result is 0
1..2
ok 1 - meta attribute 'x.perinci.sub.wrapper.disable_validate_result' is consulted (dynamic)
# Subtest: meta attribute 'x.perinci.sub.wrapper.disable_validate_result' is consulted (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
ok 3 - validate_result is 0
1..3
ok 2 - meta attribute 'x.perinci.sub.wrapper.disable_validate_result' is consulted (embed)
1..2
ok 5 - meta attribute 'x.perinci.sub.wrapper.disable_validate_result'
1..5
ok
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 517.
# Looks like you failed 1 test of 1.
# Failed test 'normalized (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'normalized (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 2 tests of 4.
# Failed test 'opt: _schema_is_normalized'
# at t\opt-_schema_is_normalized.t line 33.
# Looks like you failed 1 test of 1.
t\opt-_schema_is_normalized.t ..
# Subtest: opt: _schema_is_normalized
# Subtest: normalized (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 1 - normalized (dynamic)
# Subtest: normalized (embed)
not ok 1 - wrap doesn't die
1..1
not ok 2 - normalized (embed)
# Subtest: not normalized (dynamic)
ok 1 - wrap dies
1..1
ok 3 - not normalized (dynamic)
# Subtest: not normalized (embed)
ok 1 - wrap dies
1..1
ok 4 - not normalized (embed)
1..4
not ok 1 - opt: _schema_is_normalized
1..1
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
t\opt-log.t ....................
# Subtest: opt: log
# Subtest: log=1 (default) (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap log produced
1..2
ok 1 - log=1 (default) (dynamic)
# Subtest: log=1 (default) (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
ok 3 - wrap log produced
1..3
ok 2 - log=1 (default) (embed)
# Subtest: log=0 (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap log not produced
1..2
ok 3 - log=0 (dynamic)
# Subtest: log=0 (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
ok 3 - wrap log not produced
1..3
ok 4 - log=0 (embed)
1..4
ok 1 - opt: log
1..1
ok
t\opt-sub_name.t ...............
# Subtest: specifying sub_name only instead of sub (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - call result
1..4
ok 1 - specifying sub_name only instead of sub (dynamic)
# Subtest: specifying sub_name only instead of sub (embed)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - embed code compiles ok
ok 5 - call result
1..5
ok 2 - specifying sub_name only instead of sub (embed)
1..2
ok
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 517.
# Looks like you failed 1 test of 1.
# Failed test 'validate_args=1 (default) (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'validate_args=1 (default) (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 2 tests of 4.
# Failed test 'arg: validate_args'
# at t\opt-validate_args.t line 39.
# Looks like you failed 1 test of 1.
t\opt-validate_args.t ..........
# Subtest: arg: validate_args
# Subtest: validate_args=1 (default) (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 1 - validate_args=1 (default) (dynamic)
# Subtest: validate_args=1 (default) (embed)
not ok 1 - wrap doesn't die
1..1
not ok 2 - validate_args=1 (default) (embed)
# Subtest: validate_args=0 (dynamic)
ok 1 - wrap doesn't die
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 2 - call \#1:
# Subtest: call #2:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 3 - call \#2:
# Subtest: call #3:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 4 - call \#3:
# Subtest: call #4:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 5 - call \#4:
# Subtest: call #5:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 6 - call \#5:
# Subtest: call #6:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 7 - call \#6:
1..7
ok 3 - validate_args=0 (dynamic)
# Subtest: validate_args=0 (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 3 - call \#1:
# Subtest: call #2:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 4 - call \#2:
# Subtest: call #3:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 5 - call \#3:
# Subtest: call #4:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 6 - call \#4:
# Subtest: call #5:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 7 - call \#5:
# Subtest: call #6:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 8 - call \#6:
1..8
ok 4 - validate_args=0 (embed)
1..4
not ok 1 - arg: validate_args
1..1
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
t\opt-validate_result.t ........
ok 1 - already tested in prop-result.t
1..1
ok
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 517.
# Looks like you failed 1 test of 1.
# Failed test 'req arg + schema req no schema default (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'req arg + schema req no schema default (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'req arg + schema no req with schema default (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'req arg + schema no req with schema default (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'req arg + schema no req no schema default (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'req arg + schema no req no schema default (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'no req arg + schema with schema default (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'no req arg + schema with schema default (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'normal (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'normal (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'req (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'req (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'default prop supersedes schema default (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'default prop supersedes schema default (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 6 tests of 6.
# Failed test 'spec key: default'
# at t\prop-args.t line 158.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'normal (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'normal (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 2 tests of 2.
# Failed test 'submetadata'
# at t\prop-args.t line 179.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'normal (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'normal (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 2 tests of 2.
# Failed test 'element submetadata'
# at t\prop-args.t line 201.
# Looks like you failed 11 tests of 24.
# Failed test 'prop: args'
# at t\prop-args.t line 215.
# Looks like you failed 1 test of 1.
t\prop-args.t ..................
# Subtest: prop: args
# Subtest: unknown arg spec key -> dies (dynamic)
ok 1 - wrap dies
1..1
ok 1 - unknown arg spec key -> dies (dynamic)
# Subtest: unknown arg spec key -> dies (embed)
ok 1 - wrap dies
1..1
ok 2 - unknown arg spec key -> dies (embed)
# Subtest: arg spec key x (dynamic)
ok 1 - wrap doesn't die
1..1
ok 3 - arg spec key x (dynamic)
# Subtest: arg spec key x (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
1..2
ok 4 - arg spec key x (embed)
# Subtest: arg spec key prefixed by _ is ignored (dynamic)
ok 1 - wrap doesn't die
1..1
ok 5 - arg spec key prefixed by _ is ignored (dynamic)
# Subtest: arg spec key prefixed by _ is ignored (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
1..2
ok 6 - arg spec key prefixed by _ is ignored (embed)
# Subtest: arg spec key prefixed by _ is ignored (dynamic)
ok 1 - wrap doesn't die
1..1
ok 7 - arg spec key prefixed by _ is ignored (dynamic)
# Subtest: arg spec key prefixed by _ is ignored (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
1..2
ok 8 - arg spec key prefixed by _ is ignored (embed)
# Subtest: req arg + schema req no schema default (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 9 - req arg + schema req no schema default (dynamic)
# Subtest: req arg + schema req no schema default (embed)
not ok 1 - wrap doesn't die
1..1
not ok 10 - req arg + schema req no schema default (embed)
# Subtest: req arg + schema no req with schema default (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 11 - req arg + schema no req with schema default (dynamic)
# Subtest: req arg + schema no req with schema default (embed)
not ok 1 - wrap doesn't die
1..1
not ok 12 - req arg + schema no req with schema default (embed)
# Subtest: req arg + schema no req no schema default (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 13 - req arg + schema no req no schema default (dynamic)
# Subtest: req arg + schema no req no schema default (embed)
not ok 1 - wrap doesn't die
1..1
not ok 14 - req arg + schema no req no schema default (embed)
# Subtest: req arg + no schema (dynamic)
ok 1 - wrap doesn't die
# Subtest: call #1: missing arg
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 400
1..3
ok 2 - call \#1: missing arg
# Subtest: call #2: undef arg value
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 3 - call \#2: undef arg value
1..3
ok 15 - req arg + no schema (dynamic)
# Subtest: req arg + no schema (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
# Subtest: call #1: missing arg
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 400
1..3
ok 3 - call \#1: missing arg
# Subtest: call #2: undef arg value
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 4 - call \#2: undef arg value
1..4
ok 16 - req arg + no schema (embed)
# Subtest: no req arg + schema no req with schema default (dynamic)
ok 1 - wrap doesn't die
# Subtest: call #1: missing arg
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 2 - call \#1: missing arg
# Subtest: call #2: undef arg value
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 3 - call \#2: undef arg value
1..3
ok 17 - no req arg + schema no req with schema default (dynamic)
# Subtest: no req arg + schema no req with schema default (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
# Subtest: call #1: missing arg
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 3 - call \#1: missing arg
# Subtest: call #2: undef arg value
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 200
1..3
ok 4 - call \#2: undef arg value
1..4
ok 18 - no req arg + schema no req with schema default (embed)
# Subtest: no req arg + schema with schema default (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 19 - no req arg + schema with schema default (dynamic)
# Subtest: no req arg + schema with schema default (embed)
not ok 1 - wrap doesn't die
1..1
not ok 20 - no req arg + schema with schema default (embed)
# Subtest: spec key: default
# Subtest: normal (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 1 - normal (dynamic)
# Subtest: normal (embed)
not ok 1 - wrap doesn't die
1..1
not ok 2 - normal (embed)
# Subtest: req (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 3 - req (dynamic)
# Subtest: req (embed)
not ok 1 - wrap doesn't die
1..1
not ok 4 - req (embed)
# Subtest: default prop supersedes schema default (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 5 - default prop supersedes schema default (dynamic)
# Subtest: default prop supersedes schema default (embed)
not ok 1 - wrap doesn't die
1..1
not ok 6 - default prop supersedes schema default (embed)
1..6
not ok 21 - spec key: default
# Subtest: submetadata
# Subtest: normal (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 1 - normal (dynamic)
# Subtest: normal (embed)
not ok 1 - wrap doesn't die
1..1
not ok 2 - normal (embed)
1..2
not ok 22 - submetadata
# Subtest: element submetadata
# Subtest: normal (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 1 - normal (dynamic)
# Subtest: normal (embed)
not ok 1 - wrap doesn't die
1..1
not ok 2 - normal (embed)
1..2
not ok 23 - element submetadata
# Subtest: default property is used even though there is no schema
# Subtest: normal (dynamic)
ok 1 - wrap doesn't die
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res
1..2
ok 2 - call \#1:
# Subtest: call #2:
ok 1 - doesn't die
ok 2 - res
1..2
ok 3 - call \#2:
1..3
ok 1 - normal (dynamic)
# Subtest: normal (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res
1..2
ok 3 - call \#1:
# Subtest: call #2:
ok 1 - doesn't die
ok 2 - res
1..2
ok 4 - call \#2:
1..4
ok 2 - normal (embed)
1..2
ok 24 - default property is used even though there is no schema
1..24
not ok 1 - prop: args
1..1
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 517.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=hash (default) (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=hash (default) (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=hashref (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=hashref (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=array (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=array (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=arrayref (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'args_as=arrayref (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'convert args_as hash -> array (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'convert args_as hash -> array (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'convert args_as array -> hash (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'convert args_as array -> hash (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 12 tests of 12.
# Failed test 'prop: args_as'
# at t\prop-args_as.t line 100.
# Looks like you failed 1 test of 1.
t\prop-args_as.t ...............
# Subtest: prop: args_as
# Subtest: args_as=hash (default) (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 1 - args_as=hash (default) (dynamic)
# Subtest: args_as=hash (default) (embed)
not ok 1 - wrap doesn't die
1..1
not ok 2 - args_as=hash (default) (embed)
# Subtest: args_as=hashref (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 3 - args_as=hashref (dynamic)
# Subtest: args_as=hashref (embed)
not ok 1 - wrap doesn't die
1..1
not ok 4 - args_as=hashref (embed)
# Subtest: args_as=array (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 5 - args_as=array (dynamic)
# Subtest: args_as=array (embed)
not ok 1 - wrap doesn't die
1..1
not ok 6 - args_as=array (embed)
# Subtest: args_as=arrayref (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 7 - args_as=arrayref (dynamic)
# Subtest: args_as=arrayref (embed)
not ok 1 - wrap doesn't die
1..1
not ok 8 - args_as=arrayref (embed)
# Subtest: convert args_as hash -> array (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 9 - convert args_as hash -> array (dynamic)
# Subtest: convert args_as hash -> array (embed)
not ok 1 - wrap doesn't die
1..1
not ok 10 - convert args_as hash -> array (embed)
# Subtest: convert args_as array -> hash (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 11 - convert args_as array -> hash (dynamic)
# Subtest: convert args_as array -> hash (embed)
not ok 1 - wrap doesn't die
1..1
not ok 12 - convert args_as array -> hash (embed)
1..12
not ok 1 - prop: args_as
1..1
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
t\prop-deps.t ..................
# Subtest: deps 1 (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - call doesn't die
ok 5 - call res is array
ok 6 - call status is 412
1..6
ok 1 - deps 1 (dynamic)
# Subtest: deps 1 (embed)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - embed code compiles ok
ok 5 - call doesn't die
ok 6 - call res is array
ok 7 - call status is 412
1..7
ok 2 - deps 1 (embed)
# Subtest: deps 2 (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - call doesn't die
ok 5 - call res is array
ok 6 - call status is 200
1..6
ok 3 - deps 2 (dynamic)
# Subtest: deps 2 (embed)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - embed code compiles ok
ok 5 - call doesn't die
ok 6 - call res is array
ok 7 - call status is 200
1..7
ok 4 - deps 2 (embed)
1..4
ok
t\prop-features.t ..............
# Subtest: deps 1 (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - call doesn't die
ok 5 - call res is array
ok 6 - call status is 412
1..6
ok 1 - deps 1 (dynamic)
# Subtest: deps 1 (embed)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - embed code compiles ok
ok 5 - call doesn't die
ok 6 - call res is array
ok 7 - call status is 412
1..7
ok 2 - deps 1 (embed)
# Subtest: deps 1 (dynamic)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - call doesn't die
ok 5 - call res is array
ok 6 - call status is 200
1..6
ok 3 - deps 1 (dynamic)
# Subtest: deps 1 (embed)
ok 1 - wrap doesn't die
ok 2 - wrap res is array
ok 3 - wrap status is 200
ok 4 - embed code compiles ok
ok 5 - call doesn't die
ok 6 - call res is array
ok 7 - call status is 200
1..7
ok 4 - deps 1 (embed)
1..4
ok
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'result spec key x (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'result spec key x (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'result spec key prefixed by _ is ignored (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'result spec key prefixed by _ is ignored (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'basics (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'basics (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'opt: validate_result=0 (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 655.
# Looks like you failed 1 test of 1.
# Failed test 'opt: validate_result=0 (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 8 tests of 12.
# Failed test 'prop: result'
# at t\prop-result.t line 65.
# Looks like you failed 1 test of 1.
t\prop-result.t ................
# Subtest: prop: result
# Subtest: unknown result spec key -> dies (dynamic)
ok 1 - wrap dies
1..1
ok 1 - unknown result spec key -> dies (dynamic)
# Subtest: unknown result spec key -> dies (embed)
ok 1 - wrap dies
1..1
ok 2 - unknown result spec key -> dies (embed)
# Subtest: result spec key x (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 3 - result spec key x (dynamic)
# Subtest: result spec key x (embed)
not ok 1 - wrap doesn't die
1..1
not ok 4 - result spec key x (embed)
# Subtest: result spec key prefixed by _ is ignored (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 5 - result spec key prefixed by _ is ignored (dynamic)
# Subtest: result spec key prefixed by _ is ignored (embed)
not ok 1 - wrap doesn't die
1..1
not ok 6 - result spec key prefixed by _ is ignored (embed)
# Subtest: wrapper checks that sub produces enveloped result (dynamic)
ok 1 - wrap doesn't die
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 500
1..3
ok 2 - call \#1:
1..2
ok 7 - wrapper checks that sub produces enveloped result (dynamic)
# Subtest: wrapper checks that sub produces enveloped result (embed)
ok 1 - wrap doesn't die
ok 2 - embed code compiles ok
# Subtest: call #1:
ok 1 - doesn't die
ok 2 - res is array
ok 3 - status is 500
1..3
ok 3 - call \#1:
1..3
ok 8 - wrapper checks that sub produces enveloped result (embed)
# Subtest: basics (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 9 - basics (dynamic)
# Subtest: basics (embed)
not ok 1 - wrap doesn't die
1..1
not ok 10 - basics (embed)
# Subtest: opt: validate_result=0 (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 11 - opt: validate_result=0 (dynamic)
# Subtest: opt: validate_result=0 (embed)
not ok 1 - wrap doesn't die
1..1
not ok 12 - opt: validate_result=0 (embed)
1..12
not ok 1 - prop: result
1..1
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't locate Data/Sah.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 517.
# Looks like you failed 1 test of 1.
# Failed test 'convert result_naked 0->1 (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'convert result_naked 0->1 (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'convert result_naked 1->0 (dynamic)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Failed test 'wrap doesn't die'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 46.
# Can't call method "compile" on an undefined value at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Perinci/Sub/Wrapper.pm line 582.
# Looks like you failed 1 test of 1.
# Failed test 'convert result_naked 1->0 (embed)'
# at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Wrapper-0.67-S2mi35\blib\lib/Test/Perinci/Sub/Wrapper.pm line 191.
# Looks like you failed 4 tests of 4.
# Failed test 'prop: result_naked'
# at t\prop-result_naked.t line 39.
# Looks like you failed 1 test of 1.
t\prop-result_naked.t ..........
# Subtest: prop: result_naked
# Subtest: convert result_naked 0->1 (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 1 - convert result_naked 0->1 (dynamic)
# Subtest: convert result_naked 0->1 (embed)
not ok 1 - wrap doesn't die
1..1
not ok 2 - convert result_naked 0->1 (embed)
# Subtest: convert result_naked 1->0 (dynamic)
not ok 1 - wrap doesn't die
1..1
not ok 3 - convert result_naked 1->0 (dynamic)
# Subtest: convert result_naked 1->0 (embed)
not ok 1 - wrap doesn't die
1..1
not ok 4 - convert result_naked 1->0 (embed)
1..4
not ok 1 - prop: result_naked
1..1
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
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
Test Summary Report
-------------------
t\opt-_schema_is_normalized.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
t\opt-validate_args.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
t\prop-args.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
t\prop-args_as.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
t\prop-result.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
t\prop-result_naked.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
Files=17, Tests=27, 4 wallclock secs ( 0.17 usr + 0.05 sys = 0.22 CPU)
Result: FAIL
Failed 6/17 test programs. 6/27 subtests failed.
NMAKE : fatal error U1077: '"C:\Perl-5.14\bin\perl.exe"' : return code '0xff'
Stop.
PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
one dependency not OK (Data::Sah); additionally test harness failed
nmake test TEST_VERBOSE=1 -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz
Running test for module 'Perinci::Sub::Complete'
Running make for P/PE/PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Fetching with LWP:
http://cpan.nas1.activestate.com/authors/id/P/PE/PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-Sub-Complete-0.67.tar.gz ok
Perinci-Sub-Complete-0.67/
Perinci-Sub-Complete-0.67/README
Perinci-Sub-Complete-0.67/lib/
Perinci-Sub-Complete-0.67/lib/Perinci/
Perinci-Sub-Complete-0.67/lib/Perinci/Sub/
Perinci-Sub-Complete-0.67/lib/Perinci/Sub/Complete.pm
Perinci-Sub-Complete-0.67/Makefile.PL
Perinci-Sub-Complete-0.67/Changes
Perinci-Sub-Complete-0.67/dist.ini
Perinci-Sub-Complete-0.67/LICENSE
Perinci-Sub-Complete-0.67/t/
Perinci-Sub-Complete-0.67/t/00-compile.t
Perinci-Sub-Complete-0.67/t/complete_from_schema.t
Perinci-Sub-Complete-0.67/t/complete_cli_arg.t
Perinci-Sub-Complete-0.67/t/complete_arg_val.t
Perinci-Sub-Complete-0.67/t/release-pod-coverage.t
Perinci-Sub-Complete-0.67/t/release-pod-syntax.t
Perinci-Sub-Complete-0.67/t/release-rinci.t
Perinci-Sub-Complete-0.67/t/complete_arg_elem.t
Perinci-Sub-Complete-0.67/weaver.ini
Perinci-Sub-Complete-0.67/MANIFEST
Perinci-Sub-Complete-0.67/META.json
Perinci-Sub-Complete-0.67/META.yml
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Warning: prerequisite Complete::Getopt::Long 0.13 not found.
Warning: prerequisite Complete::Util 0.15 not found.
Warning: prerequisite Perinci::Sub::Util 0.38 not found. We have 0.37.
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for Perinci::Sub::Complete
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz ----
Complete::Util [requires]
Complete::Getopt::Long [requires]
Perinci::Sub::Util [requires]
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
Delayed until after prerequisites
Running test for module 'Complete::Util'
Running make for P/PE/PERLANCAR/Complete-Util-0.15.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\Complete-Util-0.15.tar.gz ok
Complete-Util-0.15/
Complete-Util-0.15/META.json
Complete-Util-0.15/LICENSE
Complete-Util-0.15/Changes
Complete-Util-0.15/META.yml
Complete-Util-0.15/Makefile.PL
Complete-Util-0.15/t/
Complete-Util-0.15/t/complete_hash_key.t
Complete-Util-0.15/t/release-pod-syntax.t
Complete-Util-0.15/t/complete_array_elem.t
Complete-Util-0.15/t/complete_env.t
Complete-Util-0.15/t/complete_file.t
Complete-Util-0.15/t/complete_program.t
Complete-Util-0.15/t/release-pod-coverage.t
Complete-Util-0.15/t/release-rinci.t
Complete-Util-0.15/t/00-compile.t
Complete-Util-0.15/README
Complete-Util-0.15/dist.ini
Complete-Util-0.15/lib/
Complete-Util-0.15/lib/Complete/
Complete-Util-0.15/lib/Complete/Util.pm
Complete-Util-0.15/MANIFEST
Complete-Util-0.15/weaver.ini
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Complete-Util-0.15.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for Complete::Util
Writing MYMETA.yml and MYMETA.json
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/Complete/Util.pm blib\lib\Complete\Util.pm
PERLANCAR/Complete-Util-0.15.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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 - Complete/Util.pm loaded ok
ok
t\complete_array_elem.t ...
ok 1 - a (result)
ok 2 - an (result)
ok 3 - any (result)
ok 4 - ci (result)
ok 5 - ci (result_ci)
1..5
ok
t\complete_env.t ..........
ok 1 - A (result)
ok 2 - A (result_ci)
# Subtest: ci
1..0 # SKIP Windows converts all env names to uppercase
ok 3 # skip Windows converts all env names to uppercase
1..3
ok
t\complete_file.t .........
ok 1 - (result)
ok 2 - a (result)
ok 3 - d (result)
ok 4 - d (result)
ok 5 - d (result)
ok 6 - (result)
ok 7 - foo/ (result)
ok 8 - foo/f (result)
# Subtest: ci
ok 1 - f (result)
ok 2 - F (result)
ok 3 - Food/f (result)
1..3
ok 9 - ci
1..9
ok
t\complete_hash_key.t .....
ok 1 - a (result)
ok 2 - a (result_ci)
ok 3 - c (result)
ok 4 - c (result_ci)
1..4
ok
# Failed test at t\complete_program.t line 27.
# Structures begin differing at:
# $got->[0] = Does not exist
# $expected->[0] = 'prog1'
# Failed test at t\complete_program.t line 28.
# Structures begin differing at:
# $got->[0] = Does not exist
# $expected->[0] = 'prog3'
# Failed test at t\complete_program.t line 35.
# Structures begin differing at:
# $got->[0] = Does not exist
# $expected->[0] = 'prog1'
# Failed test at t\complete_program.t line 36.
# Structures begin differing at:
# $got->[0] = Does not exist
# $expected->[0] = 'prog3'
# Looks like you failed 2 tests of 3.
# Failed test 'win support'
# at t\complete_program.t line 38.
# Looks like you failed 3 tests of 5.
t\complete_program.t ......
not ok 1
not ok 2
ok 3
# Subtest: win support
not ok 1
not ok 2
ok 3
1..3
not ok 4 - win support
# Subtest: ci
1..0 # SKIP Filesystem is not case-sensitive
ok 5 # skip Filesystem is not case-sensitive
1..5
Dubious, test returned 3 (wstat 768, 0x300)
Failed 3/5 subtests
(less 1 skipped subtest: 1 okay)
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
Test Summary Report
-------------------
t\complete_program.t (Wstat: 768 Tests: 5 Failed: 3)
Failed tests: 1-2, 4
Non-zero exit status: 3
Files=9, Tests=27, 1 wallclock secs ( 0.08 usr + 0.03 sys = 0.11 CPU)
Result: FAIL
Failed 1/9 test programs. 3/27 subtests failed.
NMAKE : fatal error U1077: '"C:\Perl-5.14\bin\perl.exe"' : return code '0xff'
Stop.
PERLANCAR/Complete-Util-0.15.tar.gz
nmake test TEST_VERBOSE=1 -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PERLANCAR/Complete-Util-0.15.tar.gz
Running test for module 'Complete::Getopt::Long'
Running make for P/PE/PERLANCAR/Complete-Getopt-Long-0.18.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\Complete-Getopt-Long-0.18.tar.gz ok
Complete-Getopt-Long-0.18/
Complete-Getopt-Long-0.18/README
Complete-Getopt-Long-0.18/lib/
Complete-Getopt-Long-0.18/lib/Complete/
Complete-Getopt-Long-0.18/lib/Complete/Getopt/
Complete-Getopt-Long-0.18/lib/Complete/Getopt/Long.pm
Complete-Getopt-Long-0.18/Makefile.PL
Complete-Getopt-Long-0.18/Changes
Complete-Getopt-Long-0.18/dist.ini
Complete-Getopt-Long-0.18/LICENSE
Complete-Getopt-Long-0.18/t/
Complete-Getopt-Long-0.18/t/00-compile.t
Complete-Getopt-Long-0.18/t/complete_cli_arg.t
Complete-Getopt-Long-0.18/t/release-pod-coverage.t
Complete-Getopt-Long-0.18/t/release-pod-syntax.t
Complete-Getopt-Long-0.18/t/release-rinci.t
Complete-Getopt-Long-0.18/weaver.ini
Complete-Getopt-Long-0.18/MANIFEST
Complete-Getopt-Long-0.18/META.json
Complete-Getopt-Long-0.18/META.yml
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Complete-Getopt-Long-0.18.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Warning: prerequisite Complete::Util 0.14 not found.
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for Complete::Getopt::Long
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- PERLANCAR/Complete-Getopt-Long-0.18.tar.gz ----
Complete::Util [requires]
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
Delayed until after prerequisites
Running test for module 'Complete::Util'
Running make for P/PE/PERLANCAR/Complete-Util-0.15.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Has already been unwrapped into directory C:\cpanfly-5.14\var\cpan\build\Complete-Util-0.15-d2lxBv
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
Has already been made
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
Won't repeat unsuccessful test during this command
Has already been tested within this command
Running make for P/PE/PERLANCAR/Complete-Getopt-Long-0.18.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Has already been unwrapped into directory C:\cpanfly-5.14\var\cpan\build\Complete-Getopt-Long-0.18-VVM6or
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Complete-Getopt-Long-0.18.tar.gz
Warning: Prerequisite 'Complete::Util => 0.14' for 'PERLANCAR/Complete-Getopt-Long-0.18.tar.gz' failed when processing 'PERLANCAR/Complete-Util-0.15.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited.
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/Complete/Getopt/Long.pm blib\lib\Complete\Getopt\Long.pm
PERLANCAR/Complete-Getopt-Long-0.18.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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 - Complete/Getopt/Long.pm loaded ok
ok
# Child (option name) exited without calling finalize()
# Failed test 'option name'
# at C:/cpanfly-5.14/var/megalib/Test/Builder.pm line 266.
Can't locate Complete/Util.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Complete-Getopt-Long-0.18-VVM6or\blib\lib C:\cpanfly-5.14\var\cpan\build\Complete-Getopt-Long-0.18-VVM6or\blib\arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Complete-Getopt-Long-0.18-VVM6or\blib\lib/Complete/Getopt/Long.pm line 228.
# Child (basics) exited without calling finalize()
# Failed test 'basics'
# at C:/cpanfly-5.14/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\complete_cli_arg.t ......
# Subtest: basics
# Subtest: option name
not ok 1 - option name
not ok 1 - basics
Dubious, test returned 2 (wstat 512, 0x200)
Failed 1/1 subtests
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
Test Summary Report
-------------------
t\complete_cli_arg.t (Wstat: 512 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 2
Parse errors: No plan found in TAP output
Files=5, Tests=2, 1 wallclock secs ( 0.06 usr + 0.02 sys = 0.08 CPU)
Result: FAIL
Failed 1/5 test programs. 1/2 subtests failed.
NMAKE : fatal error U1077: '"C:\Perl-5.14\bin\perl.exe"' : return code '0xff'
Stop.
PERLANCAR/Complete-Getopt-Long-0.18.tar.gz
one dependency not OK (Complete::Util); additionally test harness failed
nmake test TEST_VERBOSE=1 -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PERLANCAR/Complete-Getopt-Long-0.18.tar.gz
Running test for module 'Perinci::Sub::Util'
Running make for P/PE/PERLANCAR/Perinci-Sub-Util-0.40.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Checksum for C:\cpanfly-5.14\var\cpan\sources\authors\id\P\PE\PERLANCAR\Perinci-Sub-Util-0.40.tar.gz ok
Perinci-Sub-Util-0.40/
Perinci-Sub-Util-0.40/Changes
Perinci-Sub-Util-0.40/LICENSE
Perinci-Sub-Util-0.40/MANIFEST
Perinci-Sub-Util-0.40/lib/
Perinci-Sub-Util-0.40/lib/Perinci/
Perinci-Sub-Util-0.40/lib/Perinci/Sub/
Perinci-Sub-Util-0.40/lib/Perinci/Sub/Util/
Perinci-Sub-Util-0.40/lib/Perinci/Sub/Util/ResObj.pm
Perinci-Sub-Util-0.40/lib/Perinci/Sub/Util/Sort.pm
Perinci-Sub-Util-0.40/lib/Perinci/Sub/Util.pm
Perinci-Sub-Util-0.40/README
Perinci-Sub-Util-0.40/META.json
Perinci-Sub-Util-0.40/Makefile.PL
Perinci-Sub-Util-0.40/dist.ini
Perinci-Sub-Util-0.40/t/
Perinci-Sub-Util-0.40/t/release-rinci.t
Perinci-Sub-Util-0.40/t/release-pod-coverage.t
Perinci-Sub-Util-0.40/t/caller.t
Perinci-Sub-Util-0.40/t/00-compile.t
Perinci-Sub-Util-0.40/t/gen_modified_sub.t
Perinci-Sub-Util-0.40/t/err.t
Perinci-Sub-Util-0.40/t/release-pod-syntax.t
Perinci-Sub-Util-0.40/weaver.ini
Perinci-Sub-Util-0.40/META.yml
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Perinci-Sub-Util-0.40.tar.gz
>>> C:\Perl-5.14\bin\perl.exe Makefile.PL
Checking if your kit is complete...
Looks good
Generating a nmake-style Makefile
Writing Makefile for Perinci::Sub::Util
Writing MYMETA.yml and MYMETA.json
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/Perinci/Sub/Util/Sort.pm blib\lib\Perinci\Sub\Util\Sort.pm
cp lib/Perinci/Sub/Util/ResObj.pm blib\lib\Perinci\Sub\Util\ResObj.pm
cp lib/Perinci/Sub/Util.pm blib\lib\Perinci\Sub\Util.pm
PERLANCAR/Perinci-Sub-Util-0.40.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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..3
ok 1 - Perinci/Sub/Util.pm loaded ok
ok 2 - Perinci/Sub/Util/ResObj.pm loaded ok
ok 3 - Perinci/Sub/Util/Sort.pm loaded ok
ok
t\caller.t ................
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
1..6
ok
t\err.t ...................
# Subtest: defaults
ok 1 - func doesn't die
ok 2 - result is defined
ok 3 - result is an array
ok 4 - status is 500
ok 5 - message
ok 6 - result
ok 7 - result metadata is hash
1..7
ok 1 - defaults
# Subtest: set status
ok 1 - func doesn't die
ok 2 - result is defined
ok 3 - result is an array
ok 4 - status is 400
1..4
ok 2 - set status
# Subtest: set message
ok 1 - func doesn't die
ok 2 - result is defined
ok 3 - result is an array
ok 4 - status is 500
ok 5 - message
1..5
ok 3 - set message
# Subtest: set prev
ok 1 - func doesn't die
ok 2 - result is defined
ok 3 - result is an array
ok 4 - status is 400
ok 5 - message
ok 6 - prev
1..6
ok 4 - set prev
# Subtest: caller
ok 1 - func doesn't die
ok 2 - result is defined
ok 3 - result is an array
ok 4 - status is 500
ok 5 - message
ok 6 - log[0] type
ok 7 - log[0] time
ok 8 - log[0] package
ok 9 - log[0] func
ok 10 - log[0] line
1..10
ok 5 - caller
# Subtest: stack_trace
ok 1 - func doesn't die
ok 2 - result is defined
ok 3 - result is an array
ok 4 - status is 500
ok 5 - stack_trace
1..5
ok 6 - stack_trace
# Subtest: stack_trace only produced once
ok 1 - func doesn't die
ok 2 - result is defined
ok 3 - result is an array
ok 4 - status is 501
ok 5 - stack_trace
1..5
ok 7 - stack_trace only produced once
1..7
ok
t\gen_modified_sub.t ......
ok 1
ok 2
1..2
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=7, Tests=18, 1 wallclock secs ( 0.05 usr + 0.03 sys = 0.08 CPU)
Result: PASS
PERLANCAR/Perinci-Sub-Util-0.40.tar.gz
nmake test TEST_VERBOSE=1 -- OK
PPD for Perinci-Sub-Util-0.40 already made
Running make for P/PE/PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Has already been unwrapped into directory C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8
Prepending C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
Warning: Prerequisite 'Complete::Util => 0.15' for 'PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz' failed when processing 'PERLANCAR/Complete-Util-0.15.tar.gz' with 'make_test => NO'. Continuing, but chances to succeed are limited.
Warning: Prerequisite 'Complete::Getopt::Long => 0.13' for 'PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz' failed when processing 'PERLANCAR/Complete-Getopt-Long-0.18.tar.gz' with 'make_test => NO one dependency not OK (Complete::Util); additionally test harness failed'. Continuing, but chances to succeed are limited.
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/Perinci/Sub/Complete.pm blib\lib\Perinci\Sub\Complete.pm
PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\bin\perl.exe" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(1, 'blib\lib', 'blib\arch')" t\*.t
# Failed test 'Perinci/Sub/Complete.pm loaded ok'
# at t\00-compile.t line 37.
# got: '512'
# expected: '0'
Can't locate Complete/Util.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib/Perinci/Sub/Complete.pm line 12.
BEGIN failed--compilation aborted at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib/Perinci/Sub/Complete.pm line 12.
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 - Perinci/Sub/Complete.pm loaded ok
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
t\complete_arg_elem.t .....
ok 1
1..1
ok
t\complete_arg_val.t ......
ok 1
1..1
ok
Can't locate Complete/Getopt/Long.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at t\complete_cli_arg.t line 9.
BEGIN failed--compilation aborted at t\complete_cli_arg.t line 9.
t\complete_cli_arg.t ......
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
Can't locate Complete/Util.pm in @INC (@INC contains: C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib C:/cpanfly-5.14/var/megalib C:/Perl-5.14/site/lib C:/Perl-5.14/lib .) at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib/Perinci/Sub/Complete.pm line 12.
BEGIN failed--compilation aborted at C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Complete-0.67-T8BAR8\blib\lib/Perinci/Sub/Complete.pm line 12.
Compilation failed in require at t\complete_from_schema.t line 7.
BEGIN failed--compilation aborted at t\complete_from_schema.t line 7.
t\complete_from_schema.t ..
Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
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
Test Summary Report
-------------------
t\00-compile.t (Wstat: 256 Tests: 1 Failed: 1)
Failed test: 1
Non-zero exit status: 1
t\complete_cli_arg.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
t\complete_from_schema.t (Wstat: 512 Tests: 0 Failed: 0)
Non-zero exit status: 2
Parse errors: No plan found in TAP output
Files=8, Tests=3, 1 wallclock secs ( 0.05 usr + 0.05 sys = 0.09 CPU)
Result: FAIL
Failed 3/8 test programs. 1/3 subtests failed.
NMAKE : fatal error U1077: '"C:\Perl-5.14\bin\perl.exe"' : return code '0xff'
Stop.
PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
2 dependencies missing (Complete::Getopt::Long,Complete::Util); additionally test harness failed
nmake test TEST_VERBOSE=1 -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz
Running make for P/PE/PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
Prepending C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'get'
Has already been unwrapped into directory C:\cpanfly-5.14\var\cpan\build\Perinci-Access-Perl-0.78-Vd12aT
Prepending C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'make'
CPAN.pm: Building P/PE/PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
Warning: Prerequisite 'Perinci::Sub::Wrapper => 0.62' for 'PERLANCAR/Perinci-Access-Perl-0.78.tar.gz' failed when processing 'PERLANCAR/Perinci-Sub-Wrapper-0.67.tar.gz' with 'make_test => NO one dependency not OK (Data::Sah); additionally test harness failed'. Continuing, but chances to succeed are limited.
Warning: Prerequisite 'Perinci::Sub::Complete => 0.67' for 'PERLANCAR/Perinci-Access-Perl-0.78.tar.gz' failed when processing 'PERLANCAR/Perinci-Sub-Complete-0.67.tar.gz' with 'make_test => NO 2 dependencies missing (Complete::Getopt::Long,Complete::Util); additionally test harness failed'. Continuing, but chances to succeed are limited.
>>> nmake
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
cp lib/Perinci/Access/Schemeless.pm blib\lib\Perinci\Access\Schemeless.pm
cp lib/Perinci/Access/Perl.pm blib\lib\Perinci\Access\Perl.pm
PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
nmake -- OK
Prepending C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/arch C:\cpanfly-5.14\var\cpan\build\Perinci-Sub-Util-0.40-4DR9wc/blib/lib C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/arch C:\cpanfly-5.14\var\cpan\build\String-Indent-0.01-mFM50s/blib/lib C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/arch C:\cpanfly-5.14\var\cpan\build\String-LineNumber-0.01-a7S9vR/blib/lib to PERL5LIB for 'test'
Running make test
>>> nmake test TEST_VERBOSE=1
Microsoft (R) Program Maintenance Utility Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
"C:\Perl-5.14\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..2
ok 1 - Perinci/Access/Perl.pm loaded ok
ok 2 - Perinci/Access/Schemeless.pm loaded ok
ok
t\perl.t ..................
# Subtest: request
# Subtest: only pl scheme is accepted
# Subtest: (req: info foo:/)
ok 1 - status
1..1
ok 1 - (req: info foo:/)
# Subtest: (req: info pm:/)
ok 1 - status
1..1
ok 2 - (req: info pm:/)
# Subtest: (req: info pl:/)
ok 1 - status
1..1
ok 3 - (req: info pl:/)
# Subtest: (req: info /)
ok 1 - status
1..1
ok 4 - (req: info /)
1..4
ok 1 - only pl scheme is accepted
1..1
ok 1 - request
# Subtest: parse_url
ok 1 - schemeless dies
ok 2
1..2
ok 2 - parse_url
1..2
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
t\schemeless-patch.t ......
ok 1
1..1
ok
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286621,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 1 test of 2.
# Failed test 'opt: after_load called (req: call /Perinci/Examples/noop)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286621,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 1 test of 2.
# Failed test 'opt: after_load not called twice (req: call /Perinci/Examples/noop)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 1 test of 1.
# Failed test 'second request (call) to trigger wrapper (req: call /Test/Perinci/Access/Schemeless/f1)'
# at t\schemeless.t line 865.
# Failed test 'result'
# at t\schemeless.t line 857.
# Structures begin differing at:
# $got->{x.perinci.sub.wrapper.logs} = Does not exist
# $expected->{x.perinci.sub.wrapper.logs} = ARRAY(0x11af314)
# [
# 200,
# 'OK (meta action)',
# {
# '_internal1' => 1,
# 'args' => {
# 'a1' => {
# 'schema' => [
# 'int',
# {},
# {}
# ]
# }
# },
# 'args_as' => 'hash',
# 'entity_v' => '1.2',
# 'result' => {
# 'schema' => [
# 'int',
# {
# 'req' => 1
# },
# {}
# ]
# },
# 'result_naked' => 0,
# 'summary' => 'An example function',
# 'v' => '1.1'
# }
# ]
# Looks like you failed 1 test of 2.
# Failed test 'third request (second meta) already uses meta from wrapper (req: meta /Test/Perinci/Access/Schemeless/f1)'
# at t\schemeless.t line 865.
# Looks like you failed 2 tests of 3.
# Failed test 'schema in metadata is normalized'
# at t\schemeless.t line 452.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Failed test 'result'
# at t\schemeless.t line 857.
# Structures begin differing at:
# $got = undef
# $expected = ARRAY(0x11af5b4)
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 2 tests of 2.
# Failed test 'call 1 (req: call /Perinci/Examples/gen_array)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '331'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 1 test of 1.
# Failed test 'call: confirm (w/o) (req: call /Test/Perinci/Access/Schemeless/req_confirm)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 1 test of 1.
# Failed test 'call: confirm (w/) (req: call /Test/Perinci/Access/Schemeless/req_confirm)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '412'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 1 test of 1.
# Failed test 'call: dry_run to function that cannot do dry run -> 412 (req: call /Test/Perinci/Access/Schemeless/f1)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Failed test 'result'
# at t\schemeless.t line 857.
# got: undef
# expected: '2'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 2 tests of 2.
# Failed test 'call: dry_run (using dry_run) (w/o) (req: call /Test/Perinci/Access/Schemeless/dry_run)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Failed test 'result'
# at t\schemeless.t line 857.
# got: undef
# expected: '1'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 2 tests of 2.
# Failed test 'call: dry_run (using dry_run) (w/) (req: call /Test/Perinci/Access/Schemeless/dry_run)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Failed test 'result'
# at t\schemeless.t line 857.
# got: undef
# expected: '2'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 2 tests of 2.
# Failed test 'call: dry_run (using tx) (w/o) (req: call /Test/Perinci/Access/Schemeless/tx)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Failed test 'result'
# at t\schemeless.t line 857.
# got: undef
# expected: '1'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Looks like you failed 2 tests of 2.
# Failed test 'call: dry_run (using tx) (w/) (req: call /Test/Perinci/Access/Schemeless/tx)'
# at t\schemeless.t line 865.
# Failed test 'status'
# at t\schemeless.t line 853.
# got: '500'
# expected: '200'
# [
# 500,
# 'Can\'t wrap function',
# undef,
# {
# 'logs' => [
# {
# 'file' => 'C:\\cpanfly-5.14\\var\\cpan\\build\\Perinci-Access-Perl-0.78-Vd12aT\\blib\\lib/Perinci/Access/Schemeless.pm',
# 'func' => 'Perinci::Access::Schemeless::get_code',
# 'line' => 649,
# 'package' => 'Perinci::Access::Schemeless',
# 'time' => 1418286636,
# 'type' => 'create'
# }
# ],
# 'prev' => [
# 400,
# 'Please specify sub'
# ]
# }
# ]
# Child (call: argv (req: call /Perinci/Examples/gen_array)) exited without calling finalize()
# Failed test 'call: argv (req: call /Perinci/Examples/gen_array)'
# at C:/cpanfly-5.14/var/megalib/Test/Builder.pm line 266.
Can't use an undefined value as an ARRAY reference at t\schemeless.t line 657.
# Child (action: call) exited without calling finalize()
# Failed test 'action: call'
# at C:/cpanfly-5.14/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 25 just after 16.
t\schemeless.t ............
# Subtest: __match_paths
ok 1 - / vs /a
ok 2 - / vs /a/
ok 3 - /a vs /a
ok 4 - /a/ vs /a
ok 5 - /a vs /a/
ok 6 - /a/ vs /a/
ok 7 - /ab vs /a
ok 8 - /ab vs /a/
ok 9 - /a/b vs /a
ok 10 - /a/b vs /a/
ok 11 - /a/b/c vs /a/b
ok 12 - /a/bc vs /a/b
ok 13 - / vs /a/b/
ok 14 - / vs /a/b/
ok 15 - /a vs /a/b
ok 16 - /a vs /a/b/
ok 17 - /a/ vs /a/b
ok 18 - /a/ vs /a/b/
ok 19 - /a/ vs /a/b
ok 20 - /a/b/ vs /a/b
ok 21 - /a/b vs /a/b/
ok 22 - /a/b/ vs /a/b/
ok 23 - /a vs qr{\A/a(?:/|\z)}
ok 24 - /a vs qr{\A/a(?:/|\z)}
ok 25 - /a/b vs qr{\A/a(?:/|\z)}
ok 26 - /ab vs qr{\A/a(?:/|\z)}
1..26
ok 1 - __match_paths
# Subtest: __match_paths2
ok 1 - / vs /a
ok 2 - / vs /a/
ok 3 - /a vs /a
ok 4 - /a/ vs /a
ok 5 - /a vs /a/
ok 6 - /a/ vs /a/
ok 7 - /ab vs /a
ok 8 - /ab vs /a/
ok 9 - /a/b vs /a
ok 10 - /a/b vs /a/
ok 11 - / vs /a/b/
ok 12 - / vs /a/b/
ok 13 - /a vs /a/b
ok 14 - /a vs /a/b/
ok 15 - /a/ vs /a/b
ok 16 - /a/ vs /a/b/
ok 17 - /a/b vs /a/b
ok 18 - /a/b/ vs /a/b
ok 19 - /a/b vs /a/b/
ok 20 - /a/b/ vs /a/b/
ok 21 - /a/b/c vs /a/b
ok 22 - /a/bc vs /a/b
ok 23 - /a vs qr{\A/a(?:/|\z)}
ok 24 - /a vs qr{\A/a(?:/|\z)}
ok 25 - /a/b vs qr{\A/a(?:/|\z)}
ok 26 - /ab vs qr{\A/a(?:/|\z)}
1..26
ok 2 - __match_paths2
# Subtest: opt: after_load called (req: call /Perinci/Examples/noop)
not ok 1 - status
ok 2 - $var incremented
1..2
not ok 3 - opt: after_load called (req: call /Perinci/Examples/noop)
# Subtest: opt: after_load not called twice (req: call /Perinci/Examples/noop)
not ok 1 - status
ok 2 - $var not incremented again
1..2
not ok 4 - opt: after_load not called twice (req: call /Perinci/Examples/noop)
# Subtest: failure in loading module
# Subtest: ok (req: meta /M749868774/OK/)
ok 1 - status
1..1
ok 1 - ok (req: meta /M749868774/OK/)
# Subtest: missing module/prefix on actions (req: actions /M349746704/)
ok 1 - status
1..1
ok 2 - missing module/prefix on actions (req: actions /M349746704/)
# Subtest: missing module/prefix is cached (req: actions /M349746704/)
ok 1 - status
1..1
ok 3 - missing module/prefix is cached (req: actions /M349746704/)
# Subtest: missing module/prefix on list (req: list /M349746704/)
ok 1 - status
1..1
ok 4 - missing module/prefix on list (req: list /M349746704/)
# Subtest: missing module/prefix on info (req: info /M349746704/)
ok 1 - status
1..1
ok 5 - missing module/prefix on info (req: info /M349746704/)
# Subtest: missing module/prefix on meta (req: meta /M349746704/)
ok 1 - status
1..1
ok 6 - missing module/prefix on meta (req: meta /M349746704/)
# Subtest: missing module but existing prefix is okay on actions (req: actions /M749868774/)
ok 1 - status
1..1
ok 7 - missing module but existing prefix is okay on actions (req: actions /M749868774/)
# Subtest: missing module but existing prefix is okay on list (req: list /M749868774/)
ok 1 - status
ok 2 - result
1..2
ok 8 - missing module but existing prefix is okay on list (req: list /M749868774/)
# Subtest: missing module but existing prefix is okay on info (req: info /M749868774/)
ok 1 - status
1..1
ok 9 - missing module but existing prefix is okay on info (req: info /M749868774/)
# Subtest: missing module but existing prefix is okay on meta (req: meta /M749868774/)
ok 1 - status
1..1
ok 10 - missing module but existing prefix is okay on meta (req: meta /M749868774/)
# Subtest: missing function on meta (1) (req: meta /M749868774/foo)
ok 1 - status
1..1
ok 11 - missing function on meta (1) (req: meta /M749868774/foo)
# Subtest: missing function on meta (2) (req: meta /M749868774/OK/foo)
ok 1 - status
1..1
ok 12 - missing function on meta (2) (req: meta /M749868774/OK/foo)
# Subtest: compile error in module on actions (req: actions /M749868774/Err/)
ok 1 - status
1..1
ok 13 - compile error in module on actions (req: actions /M749868774/Err/)
# Subtest: compile error in module is cached (req: actions /M749868774/Err/)
ok 1 - status
1..1
ok 14 - compile error in module is cached (req: actions /M749868774/Err/)
1..14
ok 5 - failure in loading module
# Subtest: unknown action (req: zzz /)
ok 1 - status
1..1
ok 6 - unknown action (req: zzz /)
# Subtest: unknown action for a type (1) (req: call /)
ok 1 - status
1..1
ok 7 - unknown action for a type (1) (req: call /)
# Subtest: unknown action for a type (2) (req: list /Bar/f1)
ok 1 - status
1..1
ok 8 - unknown action for a type (2) (req: list /Bar/f1)
# Subtest: opt: {allow,deny}_schemes
# Subtest: allow_schemes matches (req: meta foo:/Perinci/Examples/)
ok 1 - status
1..1
ok 1 - allow_schemes matches (req: meta foo:/Perinci/Examples/)
# Subtest: allow_schemes doesn't match (req: meta /Perinci/Examples/)
ok 1 - status
1..1
ok 2 - allow_schemes doesn't match (req: meta /Perinci/Examples/)
# Subtest: deny_schemes matches (req: meta foo:/Perinci/Examples/)
ok 1 - status
1..1
ok 3 - deny_schemes matches (req: meta foo:/Perinci/Examples/)
# Subtest: deny_schemes doesn't match (req: meta /Perinci/Examples/)
ok 1 - status
1..1
ok 4 - deny_schemes doesn't match (req: meta /Perinci/Examples/)
1..4
ok 9 - opt: {allow,deny}_schemes
# Subtest: opt: {allow,deny}_paths
# Subtest: allow_paths (req: meta /Perinci/Examples/)
ok 1 - status
1..1
ok 1 - allow_paths (req: meta /Perinci/Examples/)
# Subtest: allow_paths on list / (req: list /)
ok 1 - status
ok 2 - number of results
1..2
ok 2 - allow_paths on list / (req: list /)
# Subtest: allow_paths on list /Perinci/ (req: list /Perinci/)
ok 1 - status
ok 2 - number of results
1..2
ok 3 - allow_paths on list /Perinci/ (req: list /Perinci/)
# Subtest: allow_paths on list /Perinci/Examples/ (req: list /Perinci/Examples/)
ok 1 - status
ok 2 - number of results
1..2
ok 4 - allow_paths on list /Perinci/Examples/ (req: list /Perinci/Examples/)
# Subtest: allow_paths on list /Perinci/Examples/Completion/ (req: list /Perinci/Examples/Completion/)
ok 1 - status
ok 2 - number of results
1..2
ok 5 - allow_paths on list /Perinci/Examples/Completion/ (req: list /Perinci/Examples/Completion/)
# Subtest: deny_paths 1 (req: meta /Perinci/Examples/)
ok 1 - status
1..1
ok 6 - deny_paths 1 (req: meta /Perinci/Examples/)
# Subtest: deny_paths 2 (req: meta /Perinci/Examples/)
ok 1 - status
1..1
ok 7 - deny_paths 2 (req: meta /Perinci/Examples/)
# Subtest: deny_paths on list (req: list /Perinci/Examples/)
ok 1 - status
ok 2 - number of results
1..2
ok 8 - deny_paths on list (req: list /Perinci/Examples/)
1..8
ok 10 - opt: {allow,deny}_paths
# Subtest: schema in metadata is normalized
# Subtest: first request (meta) (req: meta /Test/Perinci/Access/Schemeless/f1)
ok 1 - status
ok 2 - result
1..2
ok 1 - first request (meta) (req: meta /Test/Perinci/Access/Schemeless/f1)
# Subtest: second request (call) to trigger wrapper (req: call /Test/Perinci/Access/Schemeless/f1)
not ok 1 - status
1..1
not ok 2 - second request (call) to trigger wrapper (req: call /Test/Perinci/Access/Schemeless/f1)
# Subtest: third request (second meta) already uses meta from wrapper (req: meta /Test/Perinci/Access/Schemeless/f1)
ok 1 - status
not ok 2 - result
1..2
not ok 3 - third request (second meta) already uses meta from wrapper (req: meta /Test/Perinci/Access/Schemeless/f1)
1..3
not ok 11 - schema in metadata is normalized
# Subtest: action: info
# Subtest: info on / works (req: info /)
ok 1 - status
ok 2 - result
1..2
ok 1 - info on / works (req: info /)
# Subtest: info on package (req: info /Foo/)
ok 1 - status
ok 2 - result
1..2
ok 2 - info on package (req: info /Foo/)
# Subtest: info on function (req: info /Baz/f1)
ok 1 - status
ok 2 - result
1..2
ok 3 - info on function (req: info /Baz/f1)
1..3
ok 12 - action: info
# Subtest: action: meta
# Subtest: meta on / works (req: meta /)
ok 1 - status
1..1
ok 1 - meta on / works (req: meta /)
# Subtest: meta on non-package under / = 404 (req: meta /-000000000000001)
ok 1 - status
1..1
ok 2 - meta on non-package under / = 404 (req: meta /-000000000000001)
# Subtest: meta on package (req: meta /Test/Perinci/Access/Schemeless/)
ok 1 - status
ok 2 - result
1..2
ok 3 - meta on package (req: meta /Test/Perinci/Access/Schemeless/)
# Subtest: meta on package (default meta, no VERSION) (req: meta /Foo/)
ok 1 - status
ok 2 - result
1..2
ok 4 - meta on package (default meta, no VERSION) (req: meta /Foo/)
# Subtest: meta on package (default meta, entity_v from VERSION) (req: meta /Bar/)
ok 1 - status
ok 2 - result
1..2
ok 5 - meta on package (default meta, entity_v from VERSION) (req: meta /Bar/)
# Subtest: meta on function (entity_v from VERSION) (req: meta /Bar/f1)
ok 1 - status
ok 2 - result
1..2
ok 6 - meta on function (entity_v from VERSION) (req: meta /Bar/f1)
# Subtest: meta on package (entity_v not overridden) (req: meta /Baz/)
ok 1 - status
ok 2 - result
1..2
ok 7 - meta on package (entity_v not overridden) (req: meta /Baz/)
# Subtest: meta on function (entity_v not overridden) (req: meta /Baz/f1)
ok 1 - status
ok 2 - result
1..2
ok 8 - meta on function (entity_v not overridden) (req: meta /Baz/f1)
# Subtest: ending slash matters (req: meta /Perinci/Examples)
ok 1 - status
1..1
ok 9 - ending slash matters (req: meta /Perinci/Examples)
1..9
ok 13 - action: meta
# Subtest: action: actions
# Subtest: actions on package (req: actions /Perinci/Examples/)
ok 1 - status
ok 2 - result
1..2
ok 1 - actions on package (req: actions /Perinci/Examples/)
# Subtest: actions on function (req: actions /Perinci/Examples/gen_array)
ok 1 - status
ok 2 - result
1..2
ok 2 - actions on function (req: actions /Perinci/Examples/gen_array)
# Subtest: actions on variable (req: actions /Perinci/Examples/$Var1)
ok 1 - status
ok 2 - result
1..2
ok 3 - actions on variable (req: actions /Perinci/Examples/$Var1)
1..3
ok 14 - action: actions
# Subtest: action: list
# Subtest: default (req: list /Perinci/Examples/)
ok 1 - status
ok 2 - number of results
ok 3 - has entry: noop
ok 4 - has entry: $Var1
ok 5 - has entry: Completion/
ok 6 - record is scalar
1..6
ok 1 - default (req: list /Perinci/Examples/)
# Subtest: opt: detail (req: list /Perinci/Examples/)
ok 1 - status
ok 2 - number of results
ok 3 - record is hash
1..3
ok 2 - opt: detail (req: list /Perinci/Examples/)
1..2
ok 15 - action: list
# Subtest: action: call
# Subtest: call 1 (req: call /Perinci/Examples/gen_array)
not ok 1 - status
not ok 2 - result
1..2
not ok 1 - call 1 (req: call /Perinci/Examples/gen_array)
# Subtest: call: die trapped by wrapper (req: call /Perinci/Examples/dies)
ok 1 - status
1..1
ok 2 - call: die trapped by wrapper (req: call /Perinci/Examples/dies)
# Subtest: call: confirm (w/o) (req: call /Test/Perinci/Access/Schemeless/req_confirm)
not ok 1 - status
1..1
not ok 3 - call: confirm (w/o) (req: call /Test/Perinci/Access/Schemeless/req_confirm)
# Subtest: call: confirm (w/) (req: call /Test/Perinci/Access/Schemeless/req_confirm)
not ok 1 - status
1..1
not ok 4 - call: confirm (w/) (req: call /Test/Perinci/Access/Schemeless/req_confirm)
# Subtest: call: dry_run to function that cannot do dry run -> 412 (req: call /Test/Perinci/Access/Schemeless/f1)
not ok 1 - status
1..1
not ok 5 - call: dry_run to function that cannot do dry run -> 412 (req: call /Test/Perinci/Access/Schemeless/f1)
# Subtest: call: dry_run (using dry_run) (w/o) (req: call /Test/Perinci/Access/Schemeless/dry_run)
not ok 1 - status
not ok 2 - result
1..2
not ok 6 - call: dry_run (using dry_run) (w/o) (req: call /Test/Perinci/Access/Schemeless/dry_run)
# Subtest: call: dry_run (using dry_run) (w/) (req: call /Test/Perinci/Access/Schemeless/dry_run)
not ok 1 - status
not ok 2 - result
1..2
not ok 7 - call: dry_run (using dry_run) (w/) (req: call /Test/Perinci/Access/Schemeless/dry_run)
# Subtest: call: dry_run (using tx) (w/o) (req: call /Test/Perinci/Access/Schemeless/tx)
not ok 1 - status
not ok 2 - result
1..2
not ok 8 - call: dry_run (using tx) (w/o) (req: call /Test/Perinci/Access/Schemeless/tx)
# Subtest: call: dry_run (using tx) (w/) (req: call /Test/Perinci/Access/Schemeless/tx)
not ok 1 - status
not ok 2 - result
1..2
not ok 9 - call: dry_run (using tx) (w/) (req: call /Test/Perinci/Access/Schemeless/tx)
# Subtest: call: argv (req: call /Perinci/Examples/gen_array)
not ok 1 - status
not ok 10 - call: argv (req: call /Perinci/Examples/gen_array)
not ok 16 - action: call
Dubious, test returned 25 (wstat 6400, 0x1900)
Failed 4/16 subtests
Test Summary Report
-------------------
t\schemeless.t (Wstat: 6400 Tests: 16 Failed: 4)
Failed tests: 3-4, 11, 16
Non-zero exit status: 25
Parse errors: No plan found in TAP output
Files=7, Tests=21, 19 wallclock secs ( 0.13 usr + 0.00 sys = 0.13 CPU)
Result: FAIL
Failed 1/7 test programs. 4/21 subtests failed.
NMAKE : fatal error U1077: '"C:\Perl-5.14\bin\perl.exe"' : return code '0x19'
Stop.
PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
one dependency not OK (Perinci::Sub::Complete); additionally test harness failed
nmake test TEST_VERBOSE=1 -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports PERLANCAR/Perinci-Access-Perl-0.78.tar.gz
Finished 2014-12-11T00:30:37