
    <eq#                     ~    d dl mZmZ g dZdddZ G d d          Z G d d	ee          Z G d
 dee          ZdS )    )PyTestCTest)"z<"A JSON payload should be an object or array, not a string."z["Unclosed array"z%{unquoted_key: "keys must be quoted"}z["extra comma",]z["double extra comma",,]z[   , "<-- missing value"]z["Comma after the close"],z["Extra close"]]z{"Extra comma": true,}z:{"Extra value after close": true} "misplaced quoted value"z{"Illegal expression": 1 + 2}z{"Illegal invocation": alert()}z+{"Numbers cannot have leading zeroes": 013}z{"Numbers cannot be hex": 0x14}z"["Illegal backslash escape: \x15"]z[\naked]z"["Illegal backslash escape: \017"]z2[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]z{"Missing colon" null}z{"Double colon":: null}z {"Comma instead of colon", null}z!["Colon instead of comma": false]z["Bad value", truth]z['single quote']z["	tab	character	in	string	"]z&["tab\   character\   in\  string\  "]z["line
break"]z["line\
break"]z[0e]z[0e+]z[0e+-1]z({"Comma instead if closing brace": true,z["mismatch"}z$["AZ control characters in string"]zwhy not have a string payload?z,spec doesn't specify any nesting limitations)      c                   8    e Zd Zd Zd Zd Zd Zd Zd Zd Z	dS )	TestFailc                     t          t                    D ]x\  }}|dz   }|t          v r|                     |           )	 |                     |           |                     d                    ||                     i# | j        $ r Y uw xY wd S )Nr   z(Expected failure for fail{0}.json: {1!r})	enumerateJSONDOCSSKIPSloadsfailformatJSONDecodeError)selfidxdocs      //usr/lib/python3.11/test/test_json/test_fail.pytest_failureszTestFail.test_failuresQ   s    !(++ 
	W 
	WHC'Ce||

3W

3 		DKKCQTUUVVVV '   
	W 
	Ws   A>>
B
Bc                     ddd}|                      t          d          5  |                     |           d d d            d S # 1 swxY w Y   d S )Nr      )a)r   r   z5keys must be str, int, float, bool or None, not tuple)assertRaisesRegex	TypeErrordumps)r   datas     r   test_non_string_keys_dictz"TestFail.test_non_string_keys_dict^   s    !$$##IGI I 	 	JJt	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AAAc                     dd l }|                     t          d          5  |                     |           d d d            d S # 1 swxY w Y   d S )Nr   z.Object of type module is not JSON serializable)sysr   r   r   )r   r   s     r   test_not_serializablezTestFail.test_not_serializabled   s    


##I@B B 	 	JJsOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   AA
Ac                     g d}|ddgz  }|D ]\  }}}|                      | j                  5 }|                     |           d d d            n# 1 swxY w Y   |j        }|                     |j        |           |                     |j        |           |                     |j        d           |                     |j        |dz              |                     t          |          d||dz   |fz             d S )N)) Expecting valuer   )[r#   r   )z[42Expecting ',' delimiter   )z[42,r#      )z["Unterminated string starting atr   )z["spamr(   r   )z["spam"r%      )z["spam",r#      ){1Expecting property name enclosed in double quotesr   )z{"r(   r   )z{"spamr(   r   )z{"spam"Expecting ':' delimiterr)   )z{"spam":r#   r*   )z
{"spam":42r%   
   )z{"spam":42,r,      )"r(   r   )z"spamr(   r   r   %s: line 1 column %d (char %d)
assertRaisesr   r   	exceptionassertEqualmsgposlinenocolnostrr   
test_casesr   r6   r   cmerrs          r   test_truncated_inputzTestFail.test_truncated_inputj   sl   
 
 

" 	7;
 	

 ) 
	2 
	2ND#s""4#788 !B

4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !,CSWc***SWc***SZ+++SYa000SXX=!37C012 2 2 2
	2 
	2   AA	A	c                    g d}|D ]\  }}}|                      | j                  5 }|                     |           d d d            n# 1 swxY w Y   |j        }|                     |j        |           |                     |j        |           |                     |j        d           |                     |j        |dz              |                     t          |          d||dz   |fz             d S )N))z[,r#   r   )z
{"spam":[}r#   	   )z[42:r%   r&   )z
[42 "spam"r%   r'   )z[42,]r#   r'   )z{"spam":[42}r%   r/   )z["]r(   r   )z["spam":r%   r)   )z	["spam",]r#   r*   )z{:r,   r   )z{,r,   r   )z{42r,   r   )z[{]r,   r   )z{"spam",r-   r)   )z{"spam"}r-   r)   )z	[{"spam"]r-   r*   )z	{"spam":}r#   r*   )z
[{"spam":]r#   rB   )z{"spam":42 "ham"r%   r/   )z[{"spam":42]r%   r/   )z{"spam":42,}r,   r/   r   r1   r2   r;   s          r   test_unexpected_datazTestFail.test_unexpected_data   sU   
 
 

. ) 
	2 
	2ND#s""4#788 !B

4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !,CSWc***SWc***SZ+++SYa000SXX=!37C012 2 2 2
	2 
	2s   A		A	A	c                     g d}|ddgz  }|D ]\  }}}|                      | j                  5 }|                     |           d d d            n# 1 swxY w Y   |j        }|                     |j        |           |                     |j        |           |                     |j        d           |                     |j        |dz              |                     t          |          d||dz   |fz             d S )N))z[]]
Extra datar   )z{}}rE   r   )z[],[]rE   r   )z{},{}rE   r   )z	42,"spam"rE   r   )z	"spam",42rE      r   r1   r2   r;   s          r   test_extra_datazTestFail.test_extra_data   sl   
 
 

 	**
 	

 ) 
	2 
	2ND#s""4#788 !B

4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !,CSWc***SWc***SZ+++SYa000SXX=!37C012 2 2 2
	2 
	2r@   c                    g d}|D ]\  }}}}|                      | j                  5 }|                     |           d d d            n# 1 swxY w Y   |j        }|                     |j        d           |                     |j        |           |                     |j        |           |                     |j        |           |                     t          |          d|||fz             d S )N))!r   r   r   )z !r   r   r   )z
!r   r   r   )z
  

     !r'   rF   r.   r#   z,Expecting value: line %s column %d (char %d)r2   )r   r<   r   linecolr   r=   r>   s           r   test_linecolzTestFail.test_linecol   sQ   
 
 

 %/ 
	/ 
	/ D$S""4#788 !B

4   ! ! ! ! ! ! ! ! ! ! ! ! ! ! !,CSW&7888SWc***SZ...SY,,,SXXK"C-./ / / /
	/ 
	/s   A

A	A	N)
__name__
__module____qualname__r   r   r    r?   rC   rG   rL        r   r   r   P   s        W W W     2  2  2D"2 "2 "2H2 2 2./ / / / /rQ   r   c                       e Zd ZdS )
TestPyFailNrM   rN   rO   rP   rQ   r   rS   rS                rQ   rS   c                       e Zd ZdS )	TestCFailNrT   rP   rQ   r   rW   rW      rU   rQ   rW   N)test.test_jsonr   r   r   r   r   rS   rW   rP   rQ   r   <module>rY      s    ( ( ( ( ( ( ( (E E EP (6	 	
H/ H/ H/ H/ H/ H/ H/ H/T ) ( ( ( (6 ( ( ( & & & & &% & & & & &rQ   