
    Ch!                     	   S r SSKJr  SSKr\" 5       r\R                  SS9r\R                  SS9r\R                  SS9r\R                  SS9r	\R                  S	S9r
\R                  S
S9rS rS rS rS rS r\R#                  \R%                  5       \R'                  5       \R)                  SS9\R)                  SS9\R)                  SS9\R*                  \R*                  R,                  S S9r\R#                  \R%                  5       \R'                  5       \R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R0                  \R0                  R,                  S S9
r\R#                  \R%                  5       \R'                  5       \R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R4                  \R4                  R,                  S S9	r\	R#                  \	R%                  5       \	R'                  5       \	R)                  SS9\	R)                  SS9\	R)                  SS9\R)                  SS9\	R)                  SS9\	R)                  SS9\R8                  \R8                  R,                  S S9r\
R#                  \
R%                  5       \
R)                  SS9\
R)                  SS9\
R)                  SS9\
R)                  SS9\
R)                  SS9\
R)                  SS9\
R)                  SS9\
R)                  SS9\
R)                  SS9\R<                  \" SS S!S"9S#9r\
R#                  \
R'                  5       S$\R<                  \R<                  R,                  S% S&9r \R#                  \R%                  5       \
R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\R)                  SS9\RB                  \" SS S!S"9S#9r"\R#                  \R'                  5       S'\RB                  \RB                  R,                  S( S&9r#g))z
Test runner for the JSON Schema official test suite

Tests comprehensive correctness of each draft's validator.

See https://github.com/json-schema-org/JSON-Schema-Test-Suite for details.
    )SuiteNdraft3)namedraft4draft6draft7zdraft2019-09zdraft2020-12c                    ^ ^ UU 4S jnU$ )Nc                 \   >^  [        U 4S jTR                  5        5       5      (       a  T$ g )Nc              3   F   >#    U  H  u  pU[        TU5      :H  v   M     g 7fN)getattr).0attrvaluetests      e/home/james-whalen/.local/lib/python3.13/site-packages/jsonschema/tests/test_jsonschema_test_suite.py	<genexpr>(skip.<locals>.skipper.<locals>.<genexpr>   s     N~ud++~s   !)allitems)r   kwargsmessages   `r   skipperskip.<locals>.skipper   s%    Nv||~NNNN O     )r   r   r   s   `` r   skipr      s     Nr   c                 &    U R                   S:X  a  gg )Nzecmascript-regexz*ECMA regex support will be added in #1142.)subjectr   s    r   ecmascript_regexr!      s    ||)); *r   c                    ^  U 4S jnU$ )Nc                    > U R                   nUSL d9  USL d4  SU;  d.  US   TR                  R                  ;   d  U R                  (       a  g SUS   < S3$ )NTFformatzFormat checker z not found.)schemaFORMAT_CHECKERcheckersvalid)r   r%   	Validators     r   missing_format&missing_format.<locals>.missing_format#   sZ    dNv%h9#;#;#D#DDzz !1 4K@@r   r   )r)   r*   s   ` r   r*   r*   "   s    A r   c                     U R                   S:w  a  g Sn[        USS9" U 5      =(       dU    [        USS9" U 5      =(       d>    [        USS9" U 5      =(       d'    [        USS9" U 5      =(       d    [        USS9" U 5      $ )	Nemailz8Complex email validation is (intentionally) unsupported.zan invalid domain)r   descriptionzan invalid IPv4-address-literalz!dot after local part is not validz"dot before local part is not validz3two subsequent dots inside local part are not valid)r   r   r   r   s     r   complex_email_validationr0   2   s    ||wHG'   5  7  8  I r   c                    Sn[        USSS9" U 5      =(       d    [        USSS9" U 5      =(       d    [        USSS9" U 5      =(       d    [        USSS9" U 5      =(       d    [        USSS9" U 5      =(       dq    [        USS	S9" U 5      =(       dY    [        USS
S9" U 5      =(       dA    [        USSS9" U 5      =(       d)    [        USSS9" U 5      =(       d    [        USSS9" U 5      $ )NzLeap seconds are unsupported.timez$a valid time string with leap secondr   r   r.   z*a valid time string with leap second, Zuluz0a valid time string with leap second with offsetz'valid leap second, positive time-offsetz'valid leap second, negative time-offsetz-valid leap second, large positive time-offsetz-valid leap second, large negative time-offsetz#valid leap second, zero time-offsetz	date-timez)a valid date-time with a leap second, UTCz7a valid date-time with a leap second, with minus offset)r   r/   s     r   leap_secondr4   I   s]   -G: 	 ( @ 		( F 	( = 	(  = 	!(( C 	)(0 C 	1(8 9 	9(@ ? 	A(H M 	I(r   bignumznon-bmp-regexzeroTerminatedFloatsc                     [        U 5      =(       d1    [        [        R                  5      " U 5      =(       d    [	        U 5      $ r   )r!   r*   
jsonschemaDraft3Validatorr0   r    s    r   <lambda>r:   ~   s4     	**445d;	*#D)	*r   )r)   format_checkerr   zfloat-overflowidc                     [        U 5      =(       dC    [        U 5      =(       d1    [        [        R                  5      " U 5      =(       d    [        U 5      $ r   )r!   r4   r*   r8   Draft4Validatorr0   r    s    r   r:   r:      C     	*t	**445d;	* $D)	*r   c                     [        U 5      =(       dC    [        U 5      =(       d1    [        [        R                  5      " U 5      =(       d    [        U 5      $ r   )r!   r4   r*   r8   Draft6Validatorr0   r    s    r   r:   r:      r?   r   zcross-draftunknownKeywordc                     [        U 5      =(       dC    [        U 5      =(       d1    [        [        R                  5      " U 5      =(       d    [        U 5      $ r   )r!   r4   r*   r8   Draft7Validatorr0   r    s    r   r:   r:      r?   r   anchorz	no-schemarefOfUnknownKeywordz(Vocabulary support is still in-progress.
vocabularyz5no validation: invalid number, but it still validatesr3   )r)   r   TestDraft201909Formatc                     [        U 5      =(       dU    [        U 5      =(       dC    [        U 5      =(       d1    [        [        R
                  5      " U 5      =(       d    [        U 5      $ r   )r0   r!   r4   r*   r8   Draft201909Validatorr    s    r   r:   r:      R     & 	*D!	*t	* *99:4@	* $D)		*r   )r   r)   r;   r   TestDraft202012Formatc                     [        U 5      =(       dU    [        U 5      =(       dC    [        U 5      =(       d1    [        [        R
                  5      " U 5      =(       d    [        U 5      $ r   )r0   r!   r4   r*   r8   Draft202012Validatorr    s    r   r:   r:      rK   r   )$__doc__jsonschema.tests._suiter   r8   SUITEversionDRAFT3DRAFT4DRAFT6DRAFT7DRAFT201909DRAFT202012r   r!   r*   r0   r4   to_unittest_testcasecasesformat_casesoptional_cases_ofr9   r&   
TestDraft3r>   
TestDraft4rA   
TestDraft6rD   
TestDraft7rJ   TestDraft201909rH   rN   TestDraft202012rL   r   r   r   <module>rc      s)   * 	H	%	H	%	H	%	H	%mmm0mmm0<
 .*Z ((
LLN

(+
/2
"89((--<<
 ) 
  ((
LLN

(+
"23
$'
/2
"89((--<<
 ) 
& ((
LLN

(+
"23
$'
/2((--<<
 ) 
$ ((
LLN

(+
-0
"23
$'
/2
"23((--<<
 ) 
( 22!!x!0!!x!0!!}!5!!'7!8!!t!,!!{!3!!!7!!'<!=!!'7!8--	:C	
 3 , $88	 --22AA
 9   22!!x!0!!x!0!!}!5!!'7!8!!t!,!!{!3!!!7!!'<!=!!'7!8--	:C	
 3 , $88	 --22AA
 9  r   