
    8tf6                     H    d dl Z d dlmZ d dlZg dZdddZ G d de      Zy)	    N)TestCase):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{]z{"foo": "bar"]z{"foo": "bar"nulnulx-z-xz-ez-e0z	-Infinitez-InfInfinitInfiniteNaMNuNfalsyfaltrugtru1e1exz1e-z1e-xzwhy not have a string payload?z,spec doesn't specify any nesting limitations)      c                       e Zd Zd Zd Zd Zy)TestFailc                    t        t              D ]T  \  }}|dz   }|t        v rt        j                  |       )	 t        j                  |       | j                  d||fz         V y # t        j                  $ r Y mw xY w)Nr   z$Expected failure for fail%d.json: %r)	enumerateJSONDOCSSKIPSjsonloadsfailJSONDecodeError)selfidxdocs      d/var/www/html/software/conda/envs/higlass/lib/python3.12/site-packages/simplejson/tests/test_fail.pytest_failureszTestFail.test_failuresm   s}    !(+ 
	OHC'Ce|

3O

3 		@C:MN
	O '' s   A((A>=A>c                    dD ])  }	 t        j                  |       | j                  d       + y # t         j                  $ rn t	        j
                         d   }| j                  |j                  d       | j                  |j                  d       | j                  |j                  d       Y t        $ r1 t	        j
                         d   }| j                  d|d|       Y w xY w)N)[,]r$   z Unexpected success parsing '[,]'r      Unexpected exception raised  )r   r   r   r   sysexc_infoassertEqualposlinenocolno	Exception)r   r    es      r!   test_array_decoder_issue46z#TestFail.test_array_decoder_issue46z   s    " 	>C>

3 		<=	> '' -LLN1%  *  1-  !, HLLN1%		AFGHs   0A>C)06C)(C)c                     g d}|D ]1  \  }}}	 t        j                  |       | j                  d|d       3 y # t         j                  $ r t	        j
                         d   }| j                  |j                  d t        |       ||j                  d|d|       | j                  |j                  |d|j                  d|d|       Y t        $ r2 t	        j
                         d   }| j                  d	|d
|       Y w xY w)N)) Expecting valuer   )[zExpecting value or ']'r   )z[42Expecting ',' delimiter   )z[42,r3      )z["Unterminated string starting atr   )z["spamr8   r   )z["spam"r5      )z["spam",r3      )r   z8Expecting property name enclosed in double quotes or '}'r   )z{"r8   r   )z{"spamr8   r   )z{"spam"zExpecting ':' delimiterr9   )z{"spam":r3   r:   )z
{"spam":42r5   
   )z{"spam":42,z1Expecting property name enclosed in double quotes   )"r8   r   )z"spamr8   r   )z[,r3   r   )z--r3   r   )z"dzInvalid control character %rr   zUnexpected success parsing ''r   z doesn't start with z for zpos z != r&   r'   )r   r   r   r   r(   r)   r*   msglenr+   r.   )r   
test_casesdatar?   r   r/   s         r!   test_truncated_inputzTestFail.test_truncated_input   s    

. ) 	GND#sG

4  		tEF!	G '' @LLN1%  EE)3s8$9:TJL   EE3-.UUC>@  HLLN1%		AFGHs   <BD6DDN)__name__
__module____qualname__r"   r0   rC        r!   r   r   l   s    O> (GrH   r   )r(   unittestr   
simplejsonr   r   r   r   rG   rH   r!   <module>rK      s6    
  ^B (6	
FGx FGrH   